Skip to main content

Controllers for the SDSS-V FPS

Project description

jaeger

Versions Documentation Status Build codecov

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():

    # Set logging level to DEBUG
    log.set_level(0)

    # Initialise the FPS instance.
    fps = FPS()
    await fps.initialise()

    # Print the status of positioner 4
    print(fps[4].status)

    # Send positioner 4 to alpha=90, beta=45
    await pos.goto(alpha=90, beta=45)

    # Cleanly finish all pending tasks and exit
    await fps.shutdown()

asyncio.run(main())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

jaeger-1.2.0.tar.gz (151.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

jaeger-1.2.0-py3-none-any.whl (187.4 kB view details)

Uploaded Python 3

File details

Details for the file jaeger-1.2.0.tar.gz.

File metadata

  • Download URL: jaeger-1.2.0.tar.gz
  • Upload date:
  • Size: 151.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for jaeger-1.2.0.tar.gz
Algorithm Hash digest
SHA256 4d653b3df7e9fba807c2f19b30d0f8736a8c82478d5294ebad56067a02e0d9c7
MD5 520fe4c6f74a3a303a448acf304f31e7
BLAKE2b-256 b4e5979879652c4619b08fee8a16a3afde5ba7522334ccb10008e9682708ec41

See more details on using hashes here.

File details

Details for the file jaeger-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: jaeger-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 187.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for jaeger-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 674ae1d922598471f5178df1efdbf01ee9678d858c101546825b1fc73ea8b4cf
MD5 e5966ec4071f555ec7b0c044f3f9c91b
BLAKE2b-256 8ae3159f9bca67018af2339409f5bdc779d3141dc72fce8742835e3bee8a0aa7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page