Preliminary Architecture
...
The data telemetry system would facilitate seamless data transfer from the flight and ground station using XBees. On the ground side, we would receive the data from the flight through the GroundReceive module which decodes the data from the Array of Bytes format and send it to the GUI. The GUI will then send back the data to the GroundSend module, which encodes the data back to the Array of Bytes format and sends it to the flight.
GroundReceive Module
...
The GroundReceive module has an XBeesInterface to read in the data from the other XBees device on the flight using the read_data() function. After reading the data, we would have a GroundReceiveWorker() function that will be passed as a callback to the interface to decode data from Array of Bytes and send it to the GUI.
GroundSend Module
...
The GroundSend module has an XBeesInterface to send encoded data back to the flight using the write_data() function. Before sending the data, we would have a pipeline from the GUI that sends the data to this module. The GroundSendWorker function will take in this data and encode it back to the Array of Bytes format to facilitate data transfer back to the flight.
Next Steps
Understand how the XBeesInterface class works so that both the GroundSend and GroundReceive Module can be built
Document the format of data being sent from the flight controller
Figure out how to format and encode the data across the workflow