FastCS support for the Odin detector software framework
Project description
FastCS Odin
FastCS support for the Odin detector software framework
| Source | https://github.com/DiamondLightSource/fastcs-odin |
|---|---|
| PyPI | pip install fastcs-odin |
| Docker | docker run ghcr.io/diamondlightsource/fastcs-odin:latest |
| Documentation | https://diamondlightsource.github.io/fastcs-odin |
| Releases | https://github.com/DiamondLightSource/fastcs-odin/releases |
Development
In most cases it should be sufficient to work within the fastcs-odin devcontainer (or a virtualenv) and run the unit tests to develop new features and bug fixes.
In order to develop and test fastcs-odin alongside local dev versions of odin-control and odin-data applications, a development environment can be run up from the odin-data devcontainer.
Full Development Environment
The following instructions assume use of vscode, as it makes it very convenient to set up an environment that "just works". However, it is possible to run the same environment up manually using the odin-data-developer container and the following steps should still provide a good overview.
Note, commands starting with > are vscode commands and can be run with Ctrl+Shift+P,
while commands starting with $ are bash commands to be run in a terminal (inside the
vscode devcontainer).
-
Clone odin-data (next to fastcs-odin), checkout the
fastcs-devbranch and re-open in devcontainer -
Add fastcs-odin to the workspace
> Workspaces: Add Folder to Workspace...i. If it asks to reload window, then do so
-
Install the recommended extensions with
> Extensions: Show Recommended Extensions -
Build odin-data into
/odini.
> CMake: Delete Cache and Reconfigureand select a compiler, e.g./usr/bin/gccii.
> CMake: Install -
Install fastcs-odin and its odin dev environment
i.
> Python: Select Interpreter,Select at workspace leveland select/venv/bin/pythonii. Run
$ pip install -e .[dev,odin]at the root of fastcs-odin -
Prepare the dev environment (in the root of fastcs-odin)
i.
$ dev/configure.sh one_node_fp /workspaces/odin-data/vscode_prefix /venvii.
$ zellij, wait for it to finish installing and close withCtrl+Q -
Run the dev environment (in the root of fastcs-odin)
i.
$ dev/start.sh -
> Debug: Select and Start Debuggingand selectOdin IOCto run the IOC
UIs will be generated in the root of fastcs-odin that can be opened in Phoebus. This is
the clearest way to see the PVs that have been generated for the Odin server. It is also
possible to run dbl() in the EPICS shell to print a flat list of PVs.
To run a dev version of any of the applications, stop that process in the deployment (by
clicking the pane and pressing Ctrl+C) then run/debug it manually. There is a vscode
launch config for an odin server using the same config as the dev deployment for this
purpose.
To run local versions of odin-data / odin-control python applications install it into
the virtual environment with $ pip install -e ... to override the versions installed
from GitHub.
Isolated Development Environment
While it is necessary to work on odin-control / odin-data alongside fastcs-odin in some cases, once these additions have been made they should be backed by tests that can be run without the full development environment. This means in most case it is possible to develop fastcs-odin in isolation and trust the unit tests to give a good indication that things are working as expected, and so that the same checks can be made in CI and reduce manual testing during code review.
It is possible to test some functionality in isolation by dumping server responses and
creating tests that parse those responses. Responses can be dumped from various Odin
systems and tests written against them that can run in CI to ensure support for those
systems is not broken (or get early warning that an adapter needs to be updated to work
with the latest fastcs-odin). The tests/dump_server_response.py helper script will
generate json files for each adapter in an Odin server to write tests against.
See https://diamondlightsource.github.io/fastcs-odin for more detailed documentation.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastcs_odin-0.9.0.tar.gz.
File metadata
- Download URL: fastcs_odin-0.9.0.tar.gz
- Upload date:
- Size: 261.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
819f45e2fa20ba1a80447374f47b54e01a377ba325c0a7db0a98d6e7c3decdc3
|
|
| MD5 |
d92832fa6d958c069145713299c7480e
|
|
| BLAKE2b-256 |
417f66997ceb65ef8ea4946f4c51e675ea0aca3f724def893769d0e4b9a9d7d5
|
File details
Details for the file fastcs_odin-0.9.0-py3-none-any.whl.
File metadata
- Download URL: fastcs_odin-0.9.0-py3-none-any.whl
- Upload date:
- Size: 29.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b25049f724cfdec11905caf9e7c0497535bb1df69b02b9b866ebdbbb8e8e85a6
|
|
| MD5 |
71283d72892a2c7a51918d30efa5fff1
|
|
| BLAKE2b-256 |
e175f05356f837f02e76bb9bdab4b000d1335b9f9ad392d6ef9d336e57720a50
|