Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

GOAL: Stream GLOBAL_POSITION_INT & ATTITUDE messages to the ground station to be displayed on Mission Planner.

TM Will:

  1. Drone to Ground Station Communication via RFD 900 Radio

    1. RX

      1. Receive raw MAVLink bytes from the ground station.

    2. TX

      1. Transmit raw MAVLink bytes from the ground station.

  2. Encode & Decode Raw MAVLink Data

    1. Encode

      1. Into Mavlink bytes to send to Mission Planner transmitted via RFD 900

    2. Decode

      1. Decode raw Mavlink bytes received from Mission Planner, received via RFD 900.

  3. Ingest Drone State Data (Lat, Lng, Velocity, Pitch, etc) via C++ references

    1. Should these references be passed at TM instantiation?

    2. Is there a finite list of drone state data TM will be ingesting?

    3. Sample rate?

  4. TM will communicate with other managers via [UNDEFINED COMMUNICATION MEDIUM]: Maybe for TM, this should go in M3?

    1. ROS LCM?

    2. Byte Streams?

    3. MQTT Style?

  5. TM will have an input/output testing strategy

    1. ?

Thread 1 (translateToMavlinkThread)

...

Code Block
languagecpp
/**
 * @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:

  1. Drone to Ground Station Communication via RFD 900 Radio

    1. RX

      1. Receive raw MAVLink bytes from the ground station.

    2. TX

      1. Transmit raw MAVLink bytes from the ground station.

  2. Encode & Decode Raw MAVLink Data

    1. Encode

      1. Into Mavlink bytes to send to Mission Planner transmitted via RFD 900

    2. Decode

      1. Decode raw Mavlink bytes received from Mission Planner, received via RFD 900.

  3. Ingest Drone State Data (Lat, Lng, Velocity, Pitch, etc) via C++ references

    1. Should these references be passed at TM instantiation?

    2. Is there a finite list of drone state data TM will be ingesting?

    3. Sample rate?

  4. TM will communicate with other managers via [UNDEFINED COMMUNICATION MEDIUM]: Maybe for TM, this should go in M3?

    1. ROS LCM?

    2. Byte Streams?

    3. MQTT Style?

  5. TM will have an input/output testing strategy

    1. ?