TMTC Commander Core
Overview
- Documentation: https://tmtccmd.readthedocs.io/en/latest/
- Project Homepage: https://github.com/spacefisch/tmtccmd
This commander application was first developed by KSat for the SOURCE project to test the on-board software but has evolved into a more generic tool for satellite developers to perform TMTC (Telemetry and Telecommand) handling and testing via different communication interfaces. Currently, only the PUS standard is implemented as a packet standard. This tool can be used either as a command line tool or as a GUI tool. The GUI features require a PyQt5 installation.
This client currently supports the following communication interfaces:
- TCP/IP with UDP and TCP
- Serial Communication using fixed frames or a simple ASCII based transport layer
- QEMU, using a virtual serial interface
The TMTC commander also includes a Space Packet and a ECSS PUS packet stack. Some of these components might be moved to an own library soon, so they were decoupled from the rest of the TMTC commander components.
Examples
The example
folder contains a simple example using a dummy communication interface. It can be run like this on Linux
cd example
./tmtc_cli.py
or on Windows
cd example
py tmtc_cli.py
The SOURCE implementation of the TMTC commander provides a more complex implementation.
Tests
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
python3 -m pip install coverage pytest
Installation
On Ubuntu, if pip
is not installed yet, you can install it with
sudo apt-get install python3-pip
The minimum allowed Python version is 3.8. For developers, it is recommended to add this repostiory as a submodule with the following command:
git submodule add https://github.com/rmspacefish/tmtccmd.git
For the following commands, replace python3
with py
on Windows. After that, you can install the package in an editable mode with the following command:
cd tmtccmd
python3 -m pip install -e .
To also install the requirements for the GUI mode, run this command instead
cd tmtccmd
python3 -m pip install -e .[gui]
Omit the -e
for a regular installation. Alternatively you can now install the package from PyPI with python3 -m pip install -e tmtccmd[gui]
.