Skip to content
Snippets Groups Projects
Select Git revision
  • dt54xxps-autorange
  • main default protected
  • devel protected
  • feat/CAENHVPS_DT803x
  • feat/CAENHVPS
  • fdti-bugfix
  • testbeam
  • tmp_swint
  • addKeithley2230G
  • revert-9dfbb40f
  • xray_devel
  • add_NGP804
  • monitoring_watch_dog
  • kk_spift232h
  • add_CAEN_R803x_PS
  • kk_DS10CP154A
  • 2022-slac-testing
  • add_generator
  • kk_betsee
  • kk_pcf8591
  • main_copy
  • 4.1.0
  • tag.4.devel
  • v4.0
  • v3.0
  • v2.0
  • v1.0
  • v0.2
  • v0.1
  • RALIrradNov2018
30 results

labRemote

  • Open with
  • Download source code
  • Your workspaces

      A workspace is a virtual sandbox environment for your code in GitLab.

      No agents available to create workspaces. Please consult Workspaces documentation for troubleshooting.

  • user avatar
    Karol Krizka authored
    bd478755
    History

    Small library to control and read out lab equipment.

    Getting code

    If you want the external dependencies compiled internally, then make sure you clone recursive:

    git clone --recursive <url>

    Commiting code

    Create new branch with your initials and short description, for example jd_mybranch. When creating merge request make sure to check the box with delete branch after merging.

    Compile code

    To start with:

    mkdir build; cd build
    cmake .. # On CentOS, use the cmake3 command
    make -j4

    New projects

    You can add labRemote as a submodule and create a new project. All projects should be labRemote-apps Example project is: ExampleLabRemoteProject

    Probe Station

    The external dependencies listed below are for various pieces of functionality in the project.

    Requirements for probe station controller:

    Requirements for FTDICom:

    • libftdi - Generic FTDI library
    • libmpsse - Library that implements common communication protocols (I2C, SPI) using the MPSSE framework on FTDI chips

    Requirements for JSON (used by libPS and libEquipConf):

    Python Bindings

    Python bindings are built via the labRemote target which is enabled by the cmake flag -DUSE_PYTHON=on. This will put a .so file in ${BUILD}/lib/ that can be directly used in python. As such, it requires the Python libraries to be findable (e.g. python3-devel is installed). For example, after building with make, while inside the build directory,

    PYTHONPATH=lib/:$PYTHONPATH python3
    Python 3.6.8 (default, Aug  7 2019, 17:28:10)
    [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import labRemote

    For now, the following classes are supported:

    • libCom
      • ICom
        • CharDeviceCom
        • SerialCom
          • TextSerialCom
          • GPIBSerialCom
    • libEquipConf
      • EquipConf
    • libPS
      • IPowerSupply
        • AgilentPs
          • AgilentE3631APs
          • AgilentE364xAPs
          • AgilentE3634APs
        • Bk16XXPs
        • DT54xxPs
        • Keithley22XX
        • Keithley24XX
        • RS_HMPXXXX
        • RigolDP832
        • SorensenPs
        • TTIMX180TPPs
        • TTITSX1820PPs
      • PowerSupplyChannel

    Requirements/Installing

    Note that in every shell, python needs to be able to find the built shared-object files to dynamically load the python bindings. Make sure you export the PYTHONPATH as shown below and/or described in the make output.

    yum install python3-devel
    cmake3 -DUSE_PYTHON=on
    make
    export PYTHONPATH=/home/<username>/<directoryToLabRemote>/build/lib:$PYTHONPATH
    python3 -c "import labRemote"