Skip to main content

Controllers for the SDSS-V FPS

Project description

jaeger

Versions Documentation Status Tests Status 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.8.0.tar.gz (157.3 kB view details)

Uploaded Source

Built Distribution

jaeger-1.8.0-py3-none-any.whl (200.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jaeger-1.8.0.tar.gz
  • Upload date:
  • Size: 157.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for jaeger-1.8.0.tar.gz
Algorithm Hash digest
SHA256 5740089bba78981ffe9f035a62d49435e47323c6317dec0abdd739bc4ddde1e2
MD5 45ab909389b0774703be5cc70d76c5db
BLAKE2b-256 df50ed528e7e49184452ce92b15475cfc6147dd8672154e0404c4efac9ffdf79

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jaeger-1.8.0-py3-none-any.whl
  • Upload date:
  • Size: 200.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for jaeger-1.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1175d485047e2335de601461592f50795679140886ab46fb267a1f4508b39fa4
MD5 63e2bf3b1da1a3893196b4773d82d69b
BLAKE2b-256 7107c1e196ea0a36cd132b1536b84d0386326554b44dc82ca6c558c98509bd04

See more details on using hashes here.

Supported by

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