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.11.0.tar.gz (160.1 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.11.0-py3-none-any.whl (206.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jaeger-1.11.0.tar.gz
  • Upload date:
  • Size: 160.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jaeger-1.11.0.tar.gz
Algorithm Hash digest
SHA256 6e646289f6ef81bc6fe0305a4894b7bc82f24afd1a9761251d0f6344cc750911
MD5 7b31870e9dda60befa095b9bfc4b48b1
BLAKE2b-256 a923b4dc74223e5aad224cb7c4a8136caeb21e6af590a640d8b4dee2a1849410

See more details on using hashes here.

Provenance

The following attestation bundles were made for jaeger-1.11.0.tar.gz:

Publisher: release.yml on sdss/jaeger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: jaeger-1.11.0-py3-none-any.whl
  • Upload date:
  • Size: 206.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for jaeger-1.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4056d45dec07b30f30f62a447888c0a0802e0961b5e6fd9aa6a7162cf3b800c6
MD5 0ff048c2336e4138eb566c51c95476f4
BLAKE2b-256 39de29e9cd955f14e3c04be4e99bc564100a46f6ba6f4e5e89a1cfe061a2c9e1

See more details on using hashes here.

Provenance

The following attestation bundles were made for jaeger-1.11.0-py3-none-any.whl:

Publisher: release.yml on sdss/jaeger

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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