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.7 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.2.5.tar.gz
(24.6 kB
view details)
Built Distribution
puslib-0.2.5-py3-none-any.whl
(25.9 kB
view details)
File details
Details for the file puslib-0.2.5.tar.gz
.
File metadata
- Download URL: puslib-0.2.5.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4304e73b4a52e112dc9b75c4ca19e09b61fba9f8856e1c70686b261639598ac1 |
|
MD5 | e031ea5fa8ccb84b1b4bb0997c8a5be1 |
|
BLAKE2b-256 | 421330ddf5cb4c37457fe822ca244484554d7c3fa7534ee75791c31ee31b8a08 |
File details
Details for the file puslib-0.2.5-py3-none-any.whl
.
File metadata
- Download URL: puslib-0.2.5-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.19
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce298441e54e31c8fb98b3b83dd803b11362912fa211fd6607663e5df5f0310c |
|
MD5 | 85b9a99e29f5911541821d60eb3eb6bb |
|
BLAKE2b-256 | 2ebd90d79636cc0f2ca2b0c93502721e6aaa00309ea8ba680294f03606aaea8b |