FastCS IOC for the ScanLab RTC6 Ethernet laser controller
Source | https://github.com/dperl-dls/rtc6-fastcs |
---|---|
Docker | docker run ghcr.io/dperl-dls/rtc6-fastcs:latest |
Releases | https://github.com/dperl-dls/rtc6-fastcs/releases |
To update the bindings, in the devcontainer and with the virtual env activated, execute:
cd src/rtc6_fastcs/bindings
mkdir build # if necessary
cd build
cmake ..
make
cd ../../../..
pybind11-stubgen rtc6_fastcs.bindings.rtc6_bindings -o src
ruff format .
At diamond the default devcontainer settings result in some permission issues when run over ssh, but you can build the container and develop in it manually
manually build the container with podman build -t rtc6-fastcs-dev --target=developer .
and run it with podman run -it --net=host --security-opt=label=disable --mount=type=bind,source=/scratch/<fedID>/rtc6-fastcs/,destination=/workspace rtc6-fastcs-dev
then connect vscode to the laser lab workstation with remote:ssh
and attach to the running container from the remote:containers
view
the first time for a running container you will need to install the relevant extensions, run pip install -e .[dev]
, and rtc6-fastcs install-library
or the install-library.sh
script from the repo
when everything is set up, test_connect()
from test_bindings.py
should pass, and ./rebuild_bindings.sh
should execute cleanly
you may need/want to add the following to the C++ extension include path for better IDE support:
${workspaceFolder}/**
/venv/lib/python3.11/site-packages/pybind11/include/
/usr/include/python3.11
/usr/include
- fastcs doesn't completely work for python 3.12 but fails silently so this project will need to be moved to 3.11