jaeger


Namejaeger JSON
Version 1.6.3 PyPI version JSON
download
home_pagehttps://github.com/sdss/jaeger
SummaryControllers for the SDSS-V FPS
upload_time2024-04-01 21:45:47
maintainerNone
docs_urlNone
authorJosé Sánchez-Gallego
requires_python<3.11,>=3.9
licenseBSD-3-Clause
keywords astronomy software
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # jaeger

![Versions](https://img.shields.io/badge/python->=3.9,<3.11-blue)
[![Documentation Status](https://readthedocs.org/projects/sdss-jaeger/badge/?version=latest)](https://sdss-jaeger.readthedocs.io/en/latest/?badge=latest)
[![Tests Status](https://github.com/sdss/jaeger/workflows/Test/badge.svg)](https://github.com/sdss/jaeger/actions)
[![codecov](https://codecov.io/gh/sdss/jaeger/branch/main/graph/badge.svg)](https://codecov.io/gh/sdss/jaeger)

[jaeger](http://pacificrim.wikia.com/wiki/Jaeger>) provides high level control for the SDSS-V [Focal Plane System](https://wiki.sdss.org/display/FPS). 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](https://python-can.readthedocs.io/en/master/) library).
- Interfaces with [kaiju](https://github.com/sdss/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](https://github.com/sdss/jaeger) and can be installed using [sdss_install](https://github.com/sdss/sdss_install) or by running

```console
pip install --upgrade sdss-jaeger
```

To check out the development version do

```console
git clone https://github.com/sdss/jaeger.git
```

jaeger is developed as an [asyncio](https://docs.python.org/3/library/asyncio.html) 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](https://github.com/sdss/clu).

## A simple jaeger program

```python
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())
```


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sdss/jaeger",
    "name": "jaeger",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<3.11,>=3.9",
    "maintainer_email": null,
    "keywords": "astronomy, software",
    "author": "Jos\u00e9 S\u00e1nchez-Gallego",
    "author_email": "gallegoj@uw.edu",
    "download_url": "https://files.pythonhosted.org/packages/7e/03/583bd05a34d05b6f14ff342bdd2c66aed0c659f08575fa97d37d24ed085b/jaeger-1.6.3.tar.gz",
    "platform": null,
    "description": "# jaeger\n\n![Versions](https://img.shields.io/badge/python->=3.9,<3.11-blue)\n[![Documentation Status](https://readthedocs.org/projects/sdss-jaeger/badge/?version=latest)](https://sdss-jaeger.readthedocs.io/en/latest/?badge=latest)\n[![Tests Status](https://github.com/sdss/jaeger/workflows/Test/badge.svg)](https://github.com/sdss/jaeger/actions)\n[![codecov](https://codecov.io/gh/sdss/jaeger/branch/main/graph/badge.svg)](https://codecov.io/gh/sdss/jaeger)\n\n[jaeger](http://pacificrim.wikia.com/wiki/Jaeger>) provides high level control for the SDSS-V [Focal Plane System](https://wiki.sdss.org/display/FPS). Some of the features that jaeger provide are:\n\n- Wraps the low level CAN commands for simpler use.\n- Provides a framework that is independent of the CAN interface used (by using the [python-can](https://python-can.readthedocs.io/en/master/) library).\n- Interfaces with [kaiju](https://github.com/sdss/kaiju) to provide anticollision path planning for trajectories.\n- Implements status and position update loops.\n- Provides implementations for commonly used tasks (e.g., go to position, send trajectory).\n- Interfaces with the Instrument Electronics Box modbus PLC controller.\n- Provides a TCP/IP interface to send commands and output keywords using the SDSS-standard formatting.\n\nThe code for jaeger is developed in [GitHub](https://github.com/sdss/jaeger) and can be installed using [sdss_install](https://github.com/sdss/sdss_install) or by running\n\n```console\npip install --upgrade sdss-jaeger\n```\n\nTo check out the development version do\n\n```console\ngit clone https://github.com/sdss/jaeger.git\n```\n\njaeger is developed as an [asyncio](https://docs.python.org/3/library/asyncio.html) 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](https://github.com/sdss/clu).\n\n## A simple jaeger program\n\n```python\nimport asyncio\nfrom jaeger import FPS, log\n\nasync def main():\n\n    # Set logging level to DEBUG\n    log.set_level(0)\n\n    # Initialise the FPS instance.\n    fps = FPS()\n    await fps.initialise()\n\n    # Print the status of positioner 4\n    print(fps[4].status)\n\n    # Send positioner 4 to alpha=90, beta=45\n    await pos.goto(alpha=90, beta=45)\n\n    # Cleanly finish all pending tasks and exit\n    await fps.shutdown()\n\nasyncio.run(main())\n```\n\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "Controllers for the SDSS-V FPS",
    "version": "1.6.3",
    "project_urls": {
        "Documentation": "https://sdss-jaeger.readthedocs.io/en/latest/",
        "Homepage": "https://github.com/sdss/jaeger",
        "Repository": "https://github.com/sdss/jaeger"
    },
    "split_keywords": [
        "astronomy",
        " software"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "02bfd9f4b53852d0c58771ea183f4d0f4f42c3dd2c15571eb20ff5ff9a02bf3c",
                "md5": "f76198b64d6ca2481b72cb0e023547a7",
                "sha256": "da35de1326fa5d5b559bfa3a901c5947afbfabbe539dd6093aad34dbdc9921de"
            },
            "downloads": -1,
            "filename": "jaeger-1.6.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "f76198b64d6ca2481b72cb0e023547a7",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<3.11,>=3.9",
            "size": 189736,
            "upload_time": "2024-04-01T21:45:45",
            "upload_time_iso_8601": "2024-04-01T21:45:45.703469Z",
            "url": "https://files.pythonhosted.org/packages/02/bf/d9f4b53852d0c58771ea183f4d0f4f42c3dd2c15571eb20ff5ff9a02bf3c/jaeger-1.6.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7e03583bd05a34d05b6f14ff342bdd2c66aed0c659f08575fa97d37d24ed085b",
                "md5": "7158ab927e2ff965ad661a8c44796c1d",
                "sha256": "007e6caae6c435f1a5c26ddd7a74bb0fd58e782b838af62d6a9fab7107577a5f"
            },
            "downloads": -1,
            "filename": "jaeger-1.6.3.tar.gz",
            "has_sig": false,
            "md5_digest": "7158ab927e2ff965ad661a8c44796c1d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<3.11,>=3.9",
            "size": 152608,
            "upload_time": "2024-04-01T21:45:47",
            "upload_time_iso_8601": "2024-04-01T21:45:47.380855Z",
            "url": "https://files.pythonhosted.org/packages/7e/03/583bd05a34d05b6f14ff342bdd2c66aed0c659f08575fa97d37d24ed085b/jaeger-1.6.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-01 21:45:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sdss",
    "github_project": "jaeger",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "jaeger"
}
        
Elapsed time: 0.22327s