Skip to content
Snippets Groups Projects
Select Git revision
  • d10296252e93269b5388b57333c6eb119f4399fa
  • master default protected
  • dither_on_off_disabled
  • yocto
  • pypcc2
  • pypcc3
  • 2020-12-07-the_only_working_copy
  • v2.0
  • v1.0
  • v0.9
  • Working-RCU_ADC,ID
  • 2020-12-11-Holiday_Season_release
12 results

pypcc

  • 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.

  • PyPCC

    Python OPC-UA server to control the I2C devices in the LTS.

    • opcuserv.py: OPC-UA server that expose (visible) variables and methods.

    Prerequisites

    Requirements

    This Python3 code uses other Python3 modules:

    • opcua
    • pyyaml
    • numpy

    We recommend to install a virtual environment and then install the dependencies there. For convenience we have added the relevant modules to the file requirements.txt that can be used to install them with pip3: python3 -m pip install -r requirements.txt

    Below are step-by-step instructions that show how to install the dependencies neatly in a Python3 virtual environment.

    # Create a Python3 virtual environment with the name "env"
    python3 -m venv env
    # Activate the virtual environment
    . env/bin/activate
    # Update the already installed modules in the virtual environment since they are usually outdated
    python3 -m pip install --upgrade pip wheel
    # Deactivate the virtual environment and start it again
    deactivate
    . env/bin/activate
    # And finally install the module dependencies
    python3 -m pip install -r requirements.txt

    Execute it

    The software can be simply executed with Python3: python3 opcuaserv.py

    Optional parameters are explained when the -h or --help parameter is supplied:

    python3 opcuaserv.py --help
    cryptography is not installed, use of crypto disabled
    cryptography is not installed, use of crypto disabled
    usage: opcuaserv.py [-h] [-s] [--no-lib-hack] [-p PORT]
    
    optional arguments:
      -h, --help            show this help message and exit
      -s, --simulator       Do not connect to I2c, but simulate behaviour.
      --no-lib-hack         Do not require a hacked opcua library. Breaks behaviour.
      -p PORT, --port PORT  Port number to listen on [4842].

    LTS structure

    Raspberry pi (LTS_pypcc.yaml -> I2C controller on raspberry pi)

    Control PCB (LTS_switch.yaml -> I2C switch)

    RCU2 PCB (LTS_RCUx.yaml -> I2C devices)

    RCU2 Dither source (LTS_RCU2_dither.yaml -> I2C bitbang)

    ADC (LTS_RCU2_ADC.yaml -> SPI bitbang2)

    Clock PCB (LTS_clk.yaml -> I2C device)

    PLL (LTS_clkPLL.yaml -> SPI bitbang1)