54 lines
2.6 KiB
Dart
54 lines
2.6 KiB
Dart
/// MSP-Befehlsnummern, geprueft gegen den tatsaechlichen iNAV-9.1.0-Quellcode
|
|
/// statt aus dem Gedaechtnis uebernommen (Doku Kommunikationsschicht
|
|
/// Abschnitt 4):
|
|
/// https://github.com/iNavFlight/inav/blob/9.1.0/src/main/msp/msp_protocol.h
|
|
/// https://github.com/iNavFlight/inav/blob/9.1.0/src/main/msp/msp_protocol_v2_inav.h
|
|
///
|
|
/// `MSP_STATUS` und `MSP_ANALOG` sind laut `msp_protocol.h` seit iNAV 9.1
|
|
/// als "DEPRECATED ... use MSP2_INAV_STATUS/MSP2_INAV_ANALOG instead. Will
|
|
/// be removed in INAV 10.0" markiert - deshalb wird hier bewusst die
|
|
/// MSP2_INAV_-Variante verwendet, nicht die MSPv1-Klassiker.
|
|
abstract final class MspCommands {
|
|
/// Response: u8 fixType, u8 numSat, i32 lat(1e-7 deg), i32 lon(1e-7 deg),
|
|
/// u16 alt(m), u16 groundSpeed(cm/s), u16 groundCourse(0.1 deg), u16 hdop.
|
|
/// (`fc_msp.c`, `case MSP_RAW_GPS`)
|
|
static const int rawGps = 106;
|
|
|
|
/// Response: i32 estAlt(cm), i16 vario(cm/s), i32 baroAlt(cm).
|
|
/// (`fc_msp.c`, `case MSP_ALTITUDE`)
|
|
static const int altitude = 109;
|
|
|
|
/// Response: u8 mode, u8 state, u8 activeWpAction, u8 activeWpNumber,
|
|
/// u8 error, u16 headingHoldTarget. (`fc_msp.c`, `case MSP_NAV_STATUS`)
|
|
static const int navStatus = 121;
|
|
|
|
/// Response: u16 cycleTime, u16 i2cErrors, u16 sensorStatus,
|
|
/// u16 avgSystemLoad%, u8 (batteryProfile<<4|configProfile),
|
|
/// u32 armingFlags, 8 byte boxModeFlags, u8 mixerProfile.
|
|
/// (`fc_msp.c`, `case MSP2_INAV_STATUS`; ID aus
|
|
/// `msp_protocol_v2_inav.h`: `#define MSP2_INAV_STATUS 0x2000`)
|
|
static const int inavStatus = 0x2000;
|
|
|
|
/// Response (24 Byte): u8 flags, u16 batteryVoltage(0.01V),
|
|
/// u16 amperage(0.01A), u32 power, u32 mAhDrawn, u32 mWhDrawn,
|
|
/// u32 remainingCapacity, u8 batteryPercentage(0-100, bereits fertig
|
|
/// berechnet ueber `calculateBatteryPercentage()`), u16 legacyRssi
|
|
/// (0-1023, veraltete Skala - siehe stattdessen [inavLinkStats]).
|
|
/// (`fc_msp.c`, `case MSP2_INAV_ANALOG`; ID aus
|
|
/// `msp_protocol_v2_inav.h`: `#define MSP2_INAV_ANALOG 0x2002`)
|
|
static const int inavAnalog = 0x2002;
|
|
|
|
/// Response (3 Byte): u8 uplinkRssiDbm (negiert gespeichert als
|
|
/// `-rxLinkStatistics.uplinkRSSI`), u8 uplinkLinkQuality (0-100%,
|
|
/// `rxLinkStatistics.uplinkLQ` - das ist die "Receiver Link Quality"),
|
|
/// i8 uplinkSnr. (`fc_msp.c`, `case MSP2_INAV_GET_LINK_STATS`; ID aus
|
|
/// `msp_protocol_v2_inav.h`: `#define MSP2_INAV_GET_LINK_STATS 0x2103`)
|
|
static const int inavLinkStats = 0x2103;
|
|
}
|
|
|
|
/// Bits von `armingFlags` (Doku: `fc/runtime_config.h`, `armingFlags_e`).
|
|
/// Nur das fuer die Telemetrie benoetigte ARMED-Bit ist hier abgebildet.
|
|
abstract final class MspArmingFlags {
|
|
static const int armed = 1 << 2;
|
|
}
|