Versions Compared

Key

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

...

Code Block
languagejson
{
  takeoffCommand: 41 byte boolean,
  qrScanFlag: 41 byte boolean,
  detectFlag: 41 byte boolean, 
  gpsCoordinates: {
    lattitude: 8 byte double,
    longtitude: 8 byte double
  }
}

...

Encoding

Encode the schema as a semicolon separated value with start and end bitsbyte array. Note that the semicolons are just for readability, they're not part of the message.

FOJI

Start bit is a $ followed by FOJI

Code Block
$FOJI;lattitude;longtitude;altitude;yaw;pitch;roll

Total Message Size: 47 41 bytes

FIJO

Start messages with a '$' sign followed by the string “FIJO”

Code Block
languagejson
$FIJO;takeoffCommand;qrScanFlag;detectFlag;lattitude;longitude

Total message size: 38 24 bytes

Implementation - Computer Vision

FOJI Reception:

...

All functionality for FOJI is contained in the FltConnReceive module. The worker function will contain a blocking call to the read method of the UARTInterface in a loop. When a message is received, it will be passed into readFOJI to be decoded from a the FOJI encoding defined above into a response object of type “STATE_INFO” defined here. After decoded, it will be put into the pipeline out before a blocking call is made again to read the next message.

FIJO send:

...

All functionality relating to FIJO will be contained in the FltConnSend module. When a request is recieved of type QR_COORDINATES or TARGET_COORDINATES as defined here from the input pipeline in the worker function it will call the sendFIJO method to encode it into a string as defined above and set the required flags. The worker function will then use the write method of the UARTInterface to send the message before waiting for the next message from the pipeline.

Timeline/Plan:

  1. Understand how to create a general UART communication link between 2 microcontrollers - December 10th at the latest (the second I find some free time, won't take too long)

  2. Create a UART Driver to get ZeroPilot to send and receive data taking into account all the required information above - Maybe before exams?

  3. Test and integrate into Telemetry Manager - Sometime after exams, potentially winter break?

  4. Modify Telemetry and Path Manager Comms as required - Sometime after exams, potentially winter break?