Introduction

Overview

The goal of this framework is to make it as easy to send telecommands (TCs) to the On-Board Software (OBSW) running on an external On-Board Computer (OBC) and to analyse the telemetry (TMs) coming back. The following graph shows two possible ways to use the TMTC commander

_images/tmtccmd_usage.PNG

The first way assumes that the OBSW can be run on a host computer and starts a TPC/IP server internally. The TMTC commander can then be used to send telecommands via the TCP/IP interface. The second way assumes that the OBSW is run on an external microcontroller. Here, the serial interface is used to send telecommands. Other ways like sending TMTCs via Ethernet to a microcontroller running a TCP/IP server are possible as well.

Features

  • Generic communication interface abstraction in form of the tmtccmd.com.ComInterface. This abstraction could also be used without the other components of the library if the goal is to separate the packet logic from the communication interface. The Communication Abstraction 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 library.

This framework also has a communication interface abstraction which allows to exchange TMTC through different channels. The framework currently supports (among others) the following communication interfaces:

  1. TCP/IP with the tmtccmd.com.udp.UdpClient and tmtccmd.com.tcp.TcpSpacepacketsClient.

  2. Serial Communication with COBS encoded packets by using the tmtccmd.com.serial_cobs.SerialCobsComIF.

It is also possible to supply custom interfaces.