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 submodule
file
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, errors
can be represented by a pFS
Python 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 submodule
file:
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