Skip to main content

TMTC Commander Documentation Status ci codecov PyPI version

Overview

This is a small Python framework targeted towards the testing of remote systems like satellites and rovers. It simplifies sending and receiving TMTCs (Telemetry and Telecommands) and testing via different communication interfaces. This tool can be used either as a command line tool or as a GUI tool which requires a PyQt6 installation.

Features

  • Generic communication interface abstraction which can also be used without the other components of the library if the goal is to separate the packet logic from the communication interface. The dedicated documentation chapter contains a more information and examples.
  • Special support for Packet Utilisation Standard (PUS) packets and CCSDS Space Packets. This library uses the spacepackets library for most packet implementations.
  • Support for both CLI and GUI usage.
  • Flexibility in the way to specify telecommands to send and how to handle incoming telemetry. This is done by requiring the user to specify callbacks for both TC specification and TM handling.
  • One-Queue Mode for simple command sequences and Multi-Queue for more complex command sequences.
  • Listener mode to only listen to incoming telemetry.
  • Some components are tailored towards usage with the Flight Software Framework (FSFW) and the sat-rs framework

The framework currently supports the following communication interfaces (among others):

  1. TCP/IP with UDP and TCP. The TCP interface currently only supports sending CCSDS space packets and is able to parse those packets from the received data stream.
  2. Serial Communication with a transport layer using COBS.

It is also possible to supply custom interfaces.

Examples

The examples folder contains a simple example using a dummy communication interface. It sends a PUS ping telecommand and then reads the ping reply and the verification replies back from the dummy interface. Assuming, the package was installed in a virtual environment like shown in the installation chapter, it can be run like this for the CLI mode:

cd examples
./tmtcc.py

or like this for the GUI mode:

cd examples
./tmtcc.py -g

The EIVE and SOURCE project implementation of the TMTC commander provide more complex implementations.

Tests

To run the tests, install the test requirements first with the following command, assuming a virtual environment:

pip install .[test]

All tests are provided in the src/test folder and can be run with coverage information by running

coverage run -m pytest

provided that pytest and coverage were installed with

pip install coverage pytest

Installation

It is recommended to use a virtual environment when installing this library. The steps here assume you have set up and activated the environment.

To install the full version with GUI support, run the following command to install from the cloned source code

pip install .[gui]

You can omit [gui] for a CLI only installation. Alternatively you can also install the package from PyPI with pip install tmtccmd[gui].

Documentation

The documentation is built with Sphinx

Install the required dependencies first:

pip install -r docs/requirements.txt

Then the documentation can be built with

cd docs
make html

The doctests can be run with the following command

cd docs
make doctest

Using PyCharm

When using PyCharm and running the application from PyCharm, it is recommended to set the Emulate terminal in output console option. This is because packages like prompt-toolkit require a complete terminal for features like auto-complete to work.

Metadata

Release files for tmtccmd 8.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tmtccmd 8.2.0
File Size Uploaded
tmtccmd-8.2.0.tar.gz 718.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tmtccmd 8.2.0
File Interpreter ABI Platform
tmtccmd-8.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 845.8 kB

Release files / tmtccmd-8.2.0.tar.gz

Download URL tmtccmd-8.2.0.tar.gz
Size 718.8 kB
Tags Source
SHA-256 checksum
How to use checksums
dde4c8e43882281a619e489e95287b74923b30a357ae550e3ed8ba83e8d82bc9
BLAKE2b-256 checksum
How to use checksums
46d3e95a326ad8f7510c6eef983d096a0d030c59fc71029c91e51fce3abf0161
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release files / tmtccmd-8.2.0-py3-none-any.whl

Download URL tmtccmd-8.2.0-py3-none-any.whl
Size 126.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
33e55fda587c599ba85e24eea452da7e7d1755ef6e2ef3ac544690a888e4fd8c
BLAKE2b-256 checksum
How to use checksums
8f3445d88ac11ed161bfd838f940d102ea2c27c118d15f0d2bcf494670c91ae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

8.2.0 This release

2 release files

8.1.1

2 release files

8.1.0

2 release files

8.0.3

2 release files

8.0.2

2 release files

8.0.1

2 release files

8.0.0

2 release files

7.0.0

2 release files

6.0.0

2 release files

5.0.0

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.0

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.10.2

2 release files

1.10.1

2 release files

1.10.0

2 release files

1.9.1

2 release files

1.9.0

2 release files

1.8.0

2 release files

1.7.3

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.6.1

2 release files

1.6.0

2 release files

1.5.0

2 release files

1.4.4

2 release files

1.4.3

2 release files

1.4.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page