4.3 KiB
Format:
JSON format example:
"MSP_API_VERSION": {
"code": 1,
"mspv": 1,
"request": null,
"reply": {
"payload": [
{
"name": "mspProtocolVersion",
"ctype": "uint8_t",
"units": "",
"desc": "MSP Protocol version (`MSP_PROTOCOL_VERSION`, typically 0)."
},
{
"name": "apiVersionMajor",
"ctype": "uint8_t",
"units": "",
"desc": "INAV API Major version (`API_VERSION_MAJOR`)."
},
{
"name": "apiVersionMinor",
"ctype": "uint8_t",
"units": "",
"desc": "INAV API Minor version (`API_VERSION_MINOR`)."
}
],
},
"notes": "Used by configurators to check compatibility.",
"description": "Provides the MSP protocol version and the INAV API version."
},
Message fields:
name: MSP message name
code: Integer message code
description: String with description of message
request: null or dict of data sent
reply: null or dict of data received
variable_len: Optional boolean, if true, message does not have a predefined fixed length and needs appropriate handling
variants: Optional special case, message has different cases of reply/request. Key/description is not a strict expression or code; just a readable condition
not_implemented: Optional special case, message is not implemented (never or deprecated)
replaced_by: Optional array of MSP message names that replace this command. Present when a command is deprecated and scheduled for removal. Empty array if no replacement is needed
notes: String with details of message
Data dict fields:
payload: Array of payload fields
repeating: Optional Special Case, integer or string of how many times the entire payload is repeated
Payload fields:
Fields:
name: field name from code
ctype: Base C type of the value. Arrays list their element type here as well
desc: Optional string with description and details of field
units: Optional defined units
enum: Optional string of enum struct if value is an enum
array: Optional boolean to denote field is array of more values
array_size: If array, integer count of elements. Use 0 when the length is indeterminate/variable
array_size_define: Optional string naming the source #define that provides the size (informational only)
repeating: Optional Special case, contains array of more payload fields that are added Times * Key
payload: If repeating, contains more payload fields
polymorph: Optional boolean special case, field does not have a defined C type and could be anything
Simple value
{
"name": "mspProtocolVersion",
"ctype": "uint8_t",
"units": "",
"desc": "MSP Protocol version (`MSP_PROTOCOL_VERSION`, typically 0)."
},
Fixed length array
{
"name": "fcVariantIdentifier",
"ctype": "char",
"desc": "4-character identifier string (e.g., \"INAV\"). Defined by `flightControllerIdentifier",
"array": true,
"array_size": 4,
"units": ""
}
Array sized via define
{
"name": "buildDate",
"ctype": "char",
"desc": "Build date string (e.g., \"Dec 31 2023\").",
"array": true,
"array_size": 11,
"array_size_define": "BUILD_DATE_LENGTH",
"units": ""
}
Undefined length array
{
"name": "firmwareChunk",
"ctype": "uint8_t",
"desc": "Chunk of firmware data",
"array": true,
"array_size": 0,
}
As of yet unknown length array
{
"name": "elementText",
"ctype": "char",
"desc": "Static text bytes, not NUL-terminated and not yet sized.",
"array": true,
"array_size": 0
}
Nested array with struct
{
"repeating": "maxVehicles",
"payload": [
{
"name": "adsbVehicle",
"ctype": "adsbVehicle_t",
"desc": "Array of `adsbVehicle_t` Repeated `maxVehicles` times",
"repeating": "maxVehicles",
"array": true,
"array_size": 0,
"units": ""
}
]
}