https://github.com/diamondlightsource/rtc6-fastcs
FastCS IOC for the ScanLab RTC6 Ethernet laser controller
https://github.com/diamondlightsource/rtc6-fastcs
Last synced: 3 months ago
JSON representation
FastCS IOC for the ScanLab RTC6 Ethernet laser controller
- Host: GitHub
- URL: https://github.com/diamondlightsource/rtc6-fastcs
- Owner: DiamondLightSource
- License: apache-2.0
- Created: 2024-11-07T15:25:54.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-02-25T15:05:50.000Z (3 months ago)
- Last Synced: 2025-02-25T15:41:46.042Z (3 months ago)
- Language: Python
- Size: 2.74 MB
- Stars: 3
- Watchers: 28
- Forks: 0
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- Contributing: .github/CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/dperl-dls/rtc6-fastcs/actions/workflows/ci.yml)
[](https://codecov.io/gh/dperl-dls/rtc6-fastcs)[](https://www.apache.org/licenses/LICENSE-2.0)
# rtc6_fastcs
FastCS IOC for the ScanLab RTC6 Ethernet laser controller
Source |
:---: | :---:
Docker | `docker run ghcr.io/dperl-dls/rtc6-fastcs:latest`
Releases |# updating the bindings module
To update the bindings, in the devcontainer and with the virtual env activated, execute:
```bash
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 .
```# developing in the container over ssh
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//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 cleanlyyou 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
```# notes
- fastcs doesn't completely work for python 3.12 but fails silently so this project will need to be moved to 3.11