GOAL: Stream GLOBAL_POSITION_INT & ATTITUDE messages to the ground station to be displayed on Mission Planner.
TM Will:
Drone to Ground Station Communication via RFD 900 Radio
RX
Receive raw MAVLink bytes from the ground station.
TX
Transmit raw MAVLink bytes from the ground station.
Encode & Decode Raw MAVLink Data
Encode
Into Mavlink bytes to send to Mission Planner transmitted via RFD 900
Decode
Decode raw Mavlink bytes received from Mission Planner, received via RFD 900.
Ingest Drone State Data (Lat, Lng, Velocity, Pitch, etc) via C++ references
Should these references be passed at TM instantiation?
Is there a finite list of drone state data TM will be ingesting?
Sample rate?
TM will communicate with other managers via [UNDEFINED COMMUNICATION MEDIUM]: Maybe for TM, this should go in M3?
ROS LCM?
Byte Streams?
MQTT Style?
TM will have an input/output testing strategy
?
Thread 1 (translateToMavlinkThread)
...
Code Block | ||
---|---|---|
| ||
/** * @brief This interrupt service routine is called every 1000ms. It is responsible for * sending the highest priority drone "state" data to the ground station. Data such as * heartbeat message, altitude, attitude, latitude, longitude... And anything else deemed * important enough to be transmitted at a regular interval. This is the highest priority * data in the GSC.highPriorityTransmitBuffer. * */ void TimerISR1000ms() { // START: ingest drone state data and pack bytes into GSC.highPriorityTransmitBuffer // END: ingest drone state data and pack bytes into GSC.highPriorityTransmitBuffer // transmit the data via GSC.sendToGroundStation(); function GSC.sendToGroundStation(GSC.highPriorityTransmitBuffer); } |
TM Will:
Drone to Ground Station Communication via RFD 900 Radio
RX
Receive raw MAVLink bytes from the ground station.
TX
Transmit raw MAVLink bytes from the ground station.
Encode & Decode Raw MAVLink Data
Encode
Into Mavlink bytes to send to Mission Planner transmitted via RFD 900
Decode
Decode raw Mavlink bytes received from Mission Planner, received via RFD 900.
Ingest Drone State Data (Lat, Lng, Velocity, Pitch, etc) via C++ references
Should these references be passed at TM instantiation?
Is there a finite list of drone state data TM will be ingesting?
Sample rate?
TM will communicate with other managers via [UNDEFINED COMMUNICATION MEDIUM]: Maybe for TM, this should go in M3?
ROS LCM?
Byte Streams?
MQTT Style?
TM will have an input/output testing strategy
?