jaeger

jaeger provides high level control for the SDSS-V Focal Plane System. Some of the features that jaeger provide are:
- Wraps the low level CAN commands for simpler use.
- Provides a framework that is independent of the CAN interface used (by using the python-can library).
- Interfaces with kaiju to provide anticollision path planning for trajectories.
- Implements status and position update loops.
- Provides implementations for commonly used tasks (e.g., go to position, send trajectory).
- Interfaces with the Instrument Electronics Box modbus PLC controller.
- Provides a TCP/IP interface to send commands and output keywords using the SDSS-standard formatting.
The code for jaeger is developed in GitHub and can be installed using sdss_install or by running
pip install --upgrade sdss-jaeger
To check out the development version do
git clone https://github.com/sdss/jaeger.git
jaeger is developed as an asyncio library and a certain familiarity with asynchronous programming is required. The actor functionality (TCP/IP connection, command parser, inter-actor communication) is built on top of CLU.
A simple jaeger program
import asyncio
from jaeger import FPS, log
async def main():
log.set_level(0)
fps = FPS()
await fps.initialise()
print(fps[4].status)
await pos.goto(alpha=90, beta=45)
await fps.shutdown()
asyncio.run(main())