Data Telemetry Current Architecture
Send
Class to allow sending data to RFD from either Ground Station or Jetson. The constructor requires defining the serial port RFD is connected to (so that this port can be written to), and the send method takes a python dictionary as well as number of the datatype struct type defined in Communication and Method Formats that encode into a bytestring and written to the serial port.
Â
GroundReceive
Class that reads receives data from an RFD through a serial port and decodes data from a bytestring to python dictionary. The data must be the a datatype struct sent to the GSPC defined in Communication and Method Formats. Decoded data will be assigned to the class’s `payload` property. The serial port which receives data must be defined in the construtor, and data will start being read from the RFD when the `receive` method is called.
Â
AirReceive
Same as `GroundReceive` class, but expected datatype structs are messages sent to the Jetson
Â
AccessData
Class that allows for indexing and accessing separate values from a bytestring. Should only be called by GroundReceive and AirRecieve classes.
Â
Mock Module for GUI team
Can be found at the mock_for_gui branch on the IMACS repository. Mocks the GroundRecieve and Send classes. Send class has a `send` method to pretend to send data through RFDs.
Â
The GroundReceive class indefinitely updates its `payload` property with random numbers at random intervals when the receive() method is called. The payload will always be the Ground Station Data payload defined here. The PID Set Response payload may also be sent to the ground station PC but not implemented in this class.