Formats and Commands

The standardization of all messages and commands along with how they are processed

Overview

From a software standpoint, there are three types of messages sent, both inside satellite and between the groundstation and the satellite.

Types of Messages:

Logs

Log messages include any informative, non-error message. Since there is not a use case where the TJREVERB groundstation will be sending a message of type Log to the satellite, Logs can be represented by a pFS Python class.

String Representation Format

This is how Log is represented through a string

  • PREFIX

    • LOG&

  • BODY

    • {SYSTEM}:{LEVEL}:{TIMESTAMP}:{MESSAGE}

Example: LOG%CORE:INFO:00000:STARTUP

This is the Log class. This class is also on GitHub.

To import this class from a submodule, add this line to the submodulefile

Errors

error messages include any message that denotes an error in the flight software. For example, if APRS was unable to send a message for any reason, the resultant message would be logged as a message of type error. Since there is no use case where the TJREVERB groundstation will be sending a message of type error to the satellite, errorscan be represented by a pFSPython class.

String Representation Format

This is how Error is represented through a string

  • PREFIX

    • ERR!

  • BODY

    • {SYSTEM}:{TIMESTAMP}:{MESSAGE}

Example: ERR!CORE:00000:STARTUP_FAILED

This is the error class. This class is also on GitHub.

To import this class from a submodule, add this line to the submodulefile:

Commands

command messages include any message that denotes an intent to execute command on the satellite. For example, if it was necessary for the groundstation to receive the most recent telemetry data dump, the groundstation could send a message via the APRS radio to the satellite. The satellite, upon receiving the message, shall recognize the message as a command, and, if valid, execute the command. Since there is a use case where the groundstation will be sending messages of type command to the satellite, there needs to be a way of representing commands with strings.

String Representation Format

  • Prefix

    • CMD$

  • Body

    • [module_name];[function_name];[arg1,arg2,arg3,..]

There is no pFS Python class representation for commands

Last updated

Was this helpful?