Skip to content
Snippets Groups Projects
Commit d48a70a3 authored by Thomas Juerges's avatar Thomas Juerges
Browse files

Add requirements.txt dependencies

Explain in README.md that dependencies are needed and how to
install them in a virtual environment.  Also add an explanation
how to run the thing.
parent 7de5efab
Branches
Tags
1 merge request!3Add requirements
**/env
**/__pycache__
......@@ -4,14 +4,66 @@ Python OPC-UA server to control the I2C devices in the LTS.
+ opcuserv.py: OPC-UA server that expose (visible) variables and methods.
# LTS structure:
# 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.
```bash
# 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:
```bash
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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment