Skip to content

Latest commit

 

History

History
77 lines (59 loc) · 3.21 KB

ADVANCED_README.md

File metadata and controls

77 lines (59 loc) · 3.21 KB
edie_logo

NovAtel EDIE Advanced Readme

Table of Contents

Generate Code Documentation

Windows

  1. Install exhale and sphinx_rtd_theme: pip3 install exhale sphinx_rtd_theme
  2. Run Sphinx on each component. For example: sphinx-build src/decoders/common/doc doc/decoders/common/doc/html

Linux

  1. Update the system: apt-get update
  2. Install tzdata, doxygen, and python3-pip: apt-get install -y tzdata doxygen python3-pip
  3. Install exhale and sphinx_rtd_theme: pip3 install exhale sphinx_rtd_theme
  4. Run Sphinx on each component. For example: sphinx-build src/decoders/common/doc doc/decoders/common/doc/html

Decoding Chain

The EDIE decoding chain has components that pass common structures (green boxes) between them to frame, decode, and encode each message.

edie_logo

EDIE Data Structures

MessageDataStruct

The MessageDataStruct stores encoded message components such as the header, header length, message body, and body length.

struct MessageDataStruct
{
   unsigned char* pucMessageHeader; // Pointer to the message header.
   uint32_t uiMessageHeaderLength;  // Length of the message header in bytes.
   unsigned char* pucMessageBody;   // Pointer to the message body.
   uint32_t uiMessageBodyLength;    // Length of the message body in bytes.
   unsigned char* pucMessage;       // Pointer to the message beginning.
   uint32_t uiMessageLength;        // Length of the message in bytes.
}

MetaDataStruct

The MetaDataStruct stores message information before it was decoded, or information that is unchanged by decoding and encoding.

struct MetaDataStruct
{
   HEADER_FORMAT eFormat;                               // The format of the message when it was framed.
   MEASUREMENT_SOURCE eMeasurementSource;               // Also called the sibling ID.
   TIME_STATUS eTimeStatus;                             // The GPS Time Status of the message.
   bool bResponse;                                      // True if the message is a response to a command.
   uint16_t usWeek;                                     // The GPS Week number.
   double dMilliseconds;                                // The GPS Milliseconds.
   uint32_t uiBinaryMsgLength;                          // Message length according to the binary header. This field is only used if eFormat is HEADER_FORMAT::BINARY.
   uint32_t uiLength;                                   // Length of the entire message, including the header and CRC.
   uint32_t uiHeaderLength;                             // The length of the message header.
   uint16_t usMessageID;                                // The message ID.
   uint32_t uiMessageCRC;                               // The message definition CRC.
   char acMessageName[OEM4_ASCII_MESSAGE_NAME_MAX+1];   // The name of the message
};