Skip to main content

An implementation of the telemetry and telecommand packet utilization standard (PUS).

Project description

Puslib

Puslib is a Python implementation of the telemetry and telecommand packet utilization standard (PUS). It is a standard widely used in the space industry for the purposes of remote monitoring and control of spacecraft subsystems and payloads.

This package is mainly intended for ground segment tools, e.g.:

  • data extraction and post-processing of telemetry.
  • simulators.
  • EGSE SW, and thus enabling the use of mission control systems for controling and monitoring of EGSE equipment.
  • enable Python based commanding for mission control systems and other PUS based systems.
  • mission-specific tools.
  • student projects.

Install

pip install puslib

Python 3.10 or later is required.

Basic Example

from datetime import datetime
from functools import partial

from puslib import packet
from puslib import time

MyTmPacket = partial(packet.PusTmPacket.deserialize,
                     has_type_counter_field=False,
                     has_destination_field=False)
MyCucTime = partial(time.CucTime, 4, 2, has_preamble=False)

with open('telemetry.dump', 'rb') as f:
    content = f.read()
    data = memoryview(content)

    offset = 0
    cuc_time = MyCucTime()
    while offset < len(data):
        packet_length, packet = MyTmPacket(data[offset:],
                                           cuc_time,
                                           validate_fields=False,
                                           validate_pec=False)
        offset += packet_length
        if packet.service == 3 and packet.subservice == 25:
            print(packet)

Supported Features

  • CCSDS packet handling (telecommands and telemetry packets)
  • CCSDS Unsegmented Time Code (CUC) support
  • Policy handling of mission specific or implementation specific configurations
  • Simple abstraction of application processes
  • Streams for telemetry and telecommand I/O access
  • PUS Services:
    • PUS 1: Request Verification
    • PUS 3: Housekeeping (partial support)
    • PUS 5: Event Reporting
    • PUS 8: Function Management
    • PUS 17: Test (partial support)
    • PUS 20: On-board Parameter Management (partial support)

Links

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

puslib-0.3.0.tar.gz (29.2 kB view details)

Uploaded Source

Built Distribution

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

puslib-0.3.0-py3-none-any.whl (32.2 kB view details)

Uploaded Python 3

File details

Details for the file puslib-0.3.0.tar.gz.

File metadata

  • Download URL: puslib-0.3.0.tar.gz
  • Upload date:
  • Size: 29.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for puslib-0.3.0.tar.gz
Algorithm Hash digest
SHA256 b54f921797da17deab8da1f82aa9c41feb55ae9cade25050b3affcfd378df1c6
MD5 d92677b47f3696a04ca4948387fa9799
BLAKE2b-256 4628caf1acc98065dad9981202be72dd7adea15e612d736638c0a55c60bea719

See more details on using hashes here.

File details

Details for the file puslib-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: puslib-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 32.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for puslib-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 68bd0fe61e372d591ac49cfaa3045dad9d49a3146184b876eea8799e9744fe0a
MD5 74cf5090ffe9196589f4b15bb945acfc
BLAKE2b-256 a725ac9e0de1e4288c7089a09320aca01b4dcb99f22247a8aa6d63efe253bc15

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