...
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 DataReceive module which decodes the data from MavLink format and send it to the GUI. The GUI will then send back the data to the GroundSend DataSend module, which encodes the data back to MavLink format and sends it to the flight.
...
DataReceive Module
...
The GroundReceive DataReceive 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 GroundReceiveWorkerDataReceiveWorker() function that will be passed as a callback to the interface to decode data from MavLink and send it to the GUI.
...
DataSend Module
...
The GroudSend DataSend 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 DataSendWorker function will take in this data and encode it back to the Mavlink format to facilitate data transfer back to the flight.
...