|
QGroundControl
Ground Control Station for MAVLink Drones
|
Classes | |
| struct | MessageFormat |
Typedefs | |
| using | MessageCallback = std::function< bool(uint8_t msgType, const char *payload, int payloadSize, const MessageFormat &fmt)> |
Functions | |
| int | formatCharSize (char c) |
| int | calculatePayloadSize (const QString &format) |
| float | halfToFloat (uint16_t bits) |
| QVariant | parseValue (const char *data, char formatChar) |
| QMap< QString, QVariant > | parseMessage (const char *data, const MessageFormat &fmt) |
| bool | isValidHeader (const char *data, qint64 size) |
| qint64 | findNextHeader (const char *data, qint64 size, qint64 offset) |
| MessageFormat | parseFmtPayload (const char *data) |
| bool | parseFmtMessages (const char *data, qint64 size, QMap< uint8_t, MessageFormat > &formats) |
| int | iterateMessages (const char *data, qint64 size, const QMap< uint8_t, MessageFormat > &formats, const MessageCallback &callback) |
Variables | |
| constexpr uint8_t | kHeaderByte1 = 0xA3 |
| constexpr uint8_t | kHeaderByte2 = 0x95 |
| constexpr uint8_t | kFmtMessageType = 128 |
| constexpr int | kFmtPayloadSize = 86 |
| using DataFlashUtility::MessageCallback = typedef std::function<bool(uint8_t msgType, const char *payload, int payloadSize, const MessageFormat &fmt)> |
Callback for message iteration
| msgType | Message type |
| payload | Pointer to message payload (after header) |
| payloadSize | Size of payload |
| fmt | MessageFormat for this message type |
Definition at line 117 of file DataFlashUtility.h.
| int DataFlashUtility::calculatePayloadSize | ( | const QString & | format | ) |
Calculate total payload size from a format string
| format | Format string (e.g., "QBILLefffff") |
Definition at line 37 of file DataFlashUtility.cc.
References calculatePayloadSize(), and formatCharSize().
Referenced by calculatePayloadSize().
| qint64 DataFlashUtility::findNextHeader | ( | const char * | data, |
| qint64 | size, | ||
| qint64 | offset | ||
| ) |
Find the next message header starting from offset
| data | Pointer to data |
| size | Total size of data |
| offset | Starting position to search from |
Definition at line 200 of file DataFlashUtility.cc.
References findNextHeader(), kHeaderByte1, and kHeaderByte2.
Referenced by findNextHeader().
| int DataFlashUtility::formatCharSize | ( | char | c | ) |
Get the byte size for a DataFlash format character
| c | Format character (from pymavlink FORMAT_TO_STRUCT) |
Definition at line 15 of file DataFlashUtility.cc.
References formatCharSize().
Referenced by calculatePayloadSize(), formatCharSize(), and parseMessage().
| float DataFlashUtility::halfToFloat | ( | uint16_t | bits | ) |
Convert IEEE 754 binary16 (half-precision) to single-precision float
| bits | 16-bit half-precision representation |
Definition at line 50 of file DataFlashUtility.cc.
References halfToFloat().
Referenced by halfToFloat(), and parseValue().
| bool DataFlashUtility::isValidHeader | ( | const char * | data, |
| qint64 | size | ||
| ) |
Check if data starts with a valid DataFlash header
| data | Pointer to data |
| size | Size of available data |
Definition at line 191 of file DataFlashUtility.cc.
References isValidHeader(), kHeaderByte1, and kHeaderByte2.
Referenced by DataFlashParser::getTagsFromLog(), isValidHeader(), and parseFmtMessages().
| int DataFlashUtility::iterateMessages | ( | const char * | data, |
| qint64 | size, | ||
| const QMap< uint8_t, MessageFormat > & | formats, | ||
| const MessageCallback & | callback | ||
| ) |
Iterate over all messages in a DataFlash log
| data | Pointer to complete log data |
| size | Size of log data |
| formats | Message formats from parseFmtMessages() |
| callback | Function called for each message |
Definition at line 275 of file DataFlashUtility.cc.
References iterateMessages(), kHeaderByte1, kHeaderByte2, and DataFlashUtility::MessageFormat::length.
Referenced by DataFlashParser::getTagsFromLog(), and iterateMessages().
| bool DataFlashUtility::parseFmtMessages | ( | const char * | data, |
| qint64 | size, | ||
| QMap< uint8_t, MessageFormat > & | formats | ||
| ) |
Parse all FMT messages from a DataFlash log (first pass)
| data | Pointer to complete log data |
| size | Size of log data |
| formats | Output map of message type -> MessageFormat |
Definition at line 228 of file DataFlashUtility.cc.
References isValidHeader(), kFmtMessageType, kFmtPayloadSize, kHeaderByte1, kHeaderByte2, parseFmtMessages(), parseFmtPayload(), and DataFlashUtility::MessageFormat::type.
Referenced by DataFlashParser::getTagsFromLog(), and parseFmtMessages().
| MessageFormat DataFlashUtility::parseFmtPayload | ( | const char * | data | ) |
Parse an FMT message payload into a MessageFormat structure
| data | Pointer to FMT payload (86 bytes: Type(1)+Length(1)+Name(4)+Format(16)+Columns(64)) |
Definition at line 216 of file DataFlashUtility.cc.
References DataFlashUtility::MessageFormat::columns, DataFlashUtility::MessageFormat::format, DataFlashUtility::MessageFormat::length, DataFlashUtility::MessageFormat::name, parseFmtPayload(), and DataFlashUtility::MessageFormat::type.
Referenced by parseFmtMessages(), and parseFmtPayload().
| QMap< QString, QVariant > DataFlashUtility::parseMessage | ( | const char * | data, |
| const MessageFormat & | fmt | ||
| ) |
Parse message data into a map of field name -> value
| data | Pointer to the message payload (after header) |
| fmt | Message format definition |
Definition at line 166 of file DataFlashUtility.cc.
References DataFlashUtility::MessageFormat::columns, DataFlashUtility::MessageFormat::format, formatCharSize(), parseMessage(), and parseValue().
Referenced by DataFlashParser::getTagsFromLog(), and parseMessage().
| QVariant DataFlashUtility::parseValue | ( | const char * | data, |
| char | formatChar | ||
| ) |
Parse a value from binary data based on format character Handles scaling for special types:
| data | Pointer to binary data |
| formatChar | Format character |
Definition at line 74 of file DataFlashUtility.cc.
References halfToFloat(), and parseValue().
Referenced by parseMessage(), and parseValue().
|
constexpr |
Definition at line 24 of file DataFlashUtility.h.
Referenced by parseFmtMessages().
|
constexpr |
Definition at line 25 of file DataFlashUtility.h.
Referenced by parseFmtMessages().
|
constexpr |
Definition at line 22 of file DataFlashUtility.h.
Referenced by findNextHeader(), isValidHeader(), iterateMessages(), and parseFmtMessages().
|
constexpr |
Definition at line 23 of file DataFlashUtility.h.
Referenced by findNextHeader(), isValidHeader(), iterateMessages(), and parseFmtMessages().