diff --git a/docs/development/msp/README.md b/docs/development/msp/README.md index 7377eef84bc..be176540f49 100644 --- a/docs/development/msp/README.md +++ b/docs/development/msp/README.md @@ -326,8 +326,6 @@ When the MSP JSON specification changes, bump `msp_messages.json` version: [221 - MSP_SET_LED_STRIP_MODECOLOR](#msp_set_led_strip_modecolor) [239 - MSP_SET_ACC_TRIM](#msp_set_acc_trim) [240 - MSP_ACC_TRIM](#msp_acc_trim) -[241 - MSP_SERVO_MIX_RULES](#msp_servo_mix_rules) -[242 - MSP_SET_SERVO_MIX_RULE](#msp_set_servo_mix_rule) [245 - MSP_SET_PASSTHROUGH](#msp_set_passthrough) [246 - MSP_RTC](#msp_rtc) [247 - MSP_SET_RTC](#msp_set_rtc) @@ -2646,42 +2644,6 @@ When the MSP JSON specification changes, bump `msp_messages.json` version: **Notes:** Not implemented in INAV `fc_msp.c`. Calibration data via `MSP_CALIBRATION_DATA`. -## `MSP_SERVO_MIX_RULES (241 / 0xf1)` -**Description:** Retrieves the custom servo mixer rules (legacy format). - -**Request Payload:** **None** - -**Reply Payload:** -|Field|C Type|Size (Bytes)|Units|Description| -|---|---|---|---|---| -| `targetChannel` | `uint8_t` | 1 | Index | Servo output channel index (0-based) | -| `inputSource` | `uint8_t` | 1 | [inputSource_e](https://github.com/iNavFlight/inav/wiki/Enums-reference#enum-inputsource_e) | Enum `inputSource_e` Input source for the mix (RC chan, Roll, Pitch...) | -| `rate` | `int16_t` | 2 | % | Mixing rate/weight (`-1000` to `+1000`, percent with sign) | -| `speed` | `uint8_t` | 1 | 0-255 | Speed/Slew rate limit (`0`=instant, higher slows response) | -| `reserved1` | `uint8_t` | 1 | - | Always 0 | -| `legacyMax` | `uint8_t` | 1 | - | Always 100 (Legacy) | -| `legacyBox` | `uint8_t` | 1 | - | Always 0 (Legacy) | - -**Notes:** Superseded by `MSP2_INAV_SERVO_MIXER`. - -## `MSP_SET_SERVO_MIX_RULE (242 / 0xf2)` -**Description:** Sets a single custom servo mixer rule (legacy format). - -**Request Payload:** -|Field|C Type|Size (Bytes)|Units|Description| -|---|---|---|---|---| -| `ruleIndex` | `uint8_t` | 1 | Index | Index of the rule to set (0 to `MAX_SERVO_RULES - 1`) | -| `targetChannel` | `uint8_t` | 1 | Index | Servo output channel index | -| `inputSource` | `uint8_t` | 1 | [inputSource_e](https://github.com/iNavFlight/inav/wiki/Enums-reference#enum-inputsource_e) | Enum `inputSource_e` Input source for the mix | -| `rate` | `int16_t` | 2 | % | Mixing rate/weight (`-1000` to `+1000`, percent with sign) | -| `speed` | `uint8_t` | 1 | 0-255 | Speed/Slew rate limit (`0`=instant, higher slows response) | -| `legacyMinMax` | `uint16_t` | 2 | - | Ignored | -| `legacyBox` | `uint8_t` | 1 | - | Ignored | - -**Reply Payload:** **None** - -**Notes:** Expects 9 bytes. Returns error if index invalid. Calls `loadCustomServoMixer()`. Superseded by `MSP2_INAV_SET_SERVO_MIXER`. - ## `MSP_SET_PASSTHROUGH (245 / 0xf5)` **Description:** Enables serial passthrough mode to peripherals like ESCs (BLHeli 4-way) or other serial devices. @@ -3813,7 +3775,7 @@ When the MSP JSON specification changes, bump `msp_messages.json` version: **Notes:** Requires `USE_SIMULATOR`. Complex message handling state changes for enabling/disabling HITL. Sensor data is injected directly. OSD data is sent using a custom RLE scheme. See `simulatorData` struct and associated code for details. ## `MSP2_INAV_SERVO_MIXER (8224 / 0x2020)` -**Description:** Retrieves the custom servo mixer rules, including programming framework condition IDs, for primary and secondary mixer profiles. Supersedes `MSP_SERVO_MIX_RULES`. +**Description:** Retrieves the custom servo mixer rules, including programming framework condition IDs, for primary and secondary mixer profiles. **Request Payload:** **None** @@ -3834,7 +3796,7 @@ When the MSP JSON specification changes, bump `msp_messages.json` version: **Notes:** `conditionId` requires `USE_PROGRAMMING_FRAMEWORK`. ## `MSP2_INAV_SET_SERVO_MIXER (8225 / 0x2021)` -**Description:** Sets a single custom servo mixer rule, including programming framework condition ID. Supersedes `MSP_SET_SERVO_MIX_RULE`. +**Description:** Sets a single custom servo mixer rule, including programming framework condition ID. **Request Payload:** |Field|C Type|Size (Bytes)|Units|Description| diff --git a/docs/development/msp/msp_messages.json b/docs/development/msp/msp_messages.json index 176833915ad..06f29779bc4 100644 --- a/docs/development/msp/msp_messages.json +++ b/docs/development/msp/msp_messages.json @@ -1,7 +1,7 @@ { "version": { - "major": 2, - "minor": 1, + "major": 3, + "minor": 0, "patch": 0 }, "messages": { @@ -5613,116 +5613,6 @@ "notes": "Not implemented in INAV `fc_msp.c`. Calibration data via `MSP_CALIBRATION_DATA`.", "description": "Gets the accelerometer trim values." }, - "MSP_SERVO_MIX_RULES": { - "code": 241, - "mspv": 1, - "replaced_by": ["MSP2_INAV_SERVO_MIXER"], - "request": null, - "reply": { - "payload": [ - { - "name": "targetChannel", - "ctype": "uint8_t", - "desc": "Servo output channel index (0-based)", - "units": "Index" - }, - { - "name": "inputSource", - "ctype": "uint8_t", - "desc": "Enum `inputSource_e` Input source for the mix (RC chan, Roll, Pitch...)", - "units": "Enum", - "enum": "inputSource_e" - }, - { - "name": "rate", - "ctype": "int16_t", - "desc": "Mixing rate/weight (`-1000` to `+1000`, percent with sign)", - "units": "%" - }, - { - "name": "speed", - "ctype": "uint8_t", - "desc": "Speed/Slew rate limit (`0`=instant, higher slows response)", - "units": "0-255" - }, - { - "name": "reserved1", - "ctype": "uint8_t", - "desc": "Always 0", - "value": 0 - }, - { - "name": "legacyMax", - "ctype": "uint8_t", - "desc": "Always 100 (Legacy)", - "value": 100 - }, - { - "name": "legacyBox", - "ctype": "uint8_t", - "desc": "Always 0 (Legacy)", - "value": 0 - } - ], - "repeating": "MAX_SERVO_RULES" - }, - "variable_len": "MAX_SERVO_RULES", - "notes": "Superseded by `MSP2_INAV_SERVO_MIXER`.", - "description": "Retrieves the custom servo mixer rules (legacy format)." - }, - "MSP_SET_SERVO_MIX_RULE": { - "code": 242, - "mspv": 1, - "replaced_by": ["MSP2_INAV_SET_SERVO_MIXER"], - "request": { - "payload": [ - { - "name": "ruleIndex", - "ctype": "uint8_t", - "desc": "Index of the rule to set (0 to `MAX_SERVO_RULES - 1`)", - "units": "Index" - }, - { - "name": "targetChannel", - "ctype": "uint8_t", - "desc": "Servo output channel index", - "units": "Index" - }, - { - "name": "inputSource", - "ctype": "uint8_t", - "desc": "Enum `inputSource_e` Input source for the mix", - "units": "Enum", - "enum": "inputSource_e" - }, - { - "name": "rate", - "ctype": "int16_t", - "desc": "Mixing rate/weight (`-1000` to `+1000`, percent with sign)", - "units": "%" - }, - { - "name": "speed", - "ctype": "uint8_t", - "desc": "Speed/Slew rate limit (`0`=instant, higher slows response)", - "units": "0-255" - }, - { - "name": "legacyMinMax", - "ctype": "uint16_t", - "desc": "Ignored" - }, - { - "name": "legacyBox", - "ctype": "uint8_t", - "desc": "Ignored" - } - ] - }, - "reply": null, - "notes": "Expects 9 bytes. Returns error if index invalid. Calls `loadCustomServoMixer()`. Superseded by `MSP2_INAV_SET_SERVO_MIXER`.", - "description": "Sets a single custom servo mixer rule (legacy format)." - }, "MSP_SET_PASSTHROUGH": { "code": 245, "mspv": 1, @@ -9034,7 +8924,7 @@ }, "variable_len": "MAX_SERVO_RULES", "notes": "`conditionId` requires `USE_PROGRAMMING_FRAMEWORK`.", - "description": "Retrieves the custom servo mixer rules, including programming framework condition IDs, for primary and secondary mixer profiles. Supersedes `MSP_SERVO_MIX_RULES`." + "description": "Retrieves the custom servo mixer rules, including programming framework condition IDs, for primary and secondary mixer profiles." }, "MSP2_INAV_SET_SERVO_MIXER": { "code": 8225, @@ -9082,7 +8972,7 @@ }, "reply": null, "notes": "Expects 7 bytes. Returns error if index invalid. Calls `loadCustomServoMixer()`.", - "description": "Sets a single custom servo mixer rule, including programming framework condition ID. Supersedes `MSP_SET_SERVO_MIX_RULE`." + "description": "Sets a single custom servo mixer rule, including programming framework condition ID." }, "MSP2_INAV_LOGIC_CONDITIONS": { "code": 8226, diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c index 1edf45749e2..8a18a69c6a8 100644 --- a/src/main/fc/fc_msp.c +++ b/src/main/fc/fc_msp.c @@ -611,17 +611,6 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF mspSerializeServoParams(dst, servoParams(i)); } break; - case MSP_SERVO_MIX_RULES: - for (int i = 0; i < MAX_SERVO_RULES; i++) { - sbufWriteU8(dst, customServoMixers(i)->targetChannel); - sbufWriteU8(dst, customServoMixers(i)->inputSource); - sbufWriteU16(dst, customServoMixers(i)->rate); - sbufWriteU8(dst, customServoMixers(i)->speed); - sbufWriteU8(dst, 0); - sbufWriteU8(dst, 100); - sbufWriteU8(dst, 0); - } - break; case MSP2_INAV_SERVO_MIXER: for (int i = 0; i < MAX_SERVO_RULES; i++) { mspSerializeServoMixer(dst, customServoMixers(i)); @@ -2550,20 +2539,6 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src) } break; - case MSP_SET_SERVO_MIX_RULE: - sbufReadU8Safe(&tmp_u8, src); - if ((dataSize == 9) && (tmp_u8 < MAX_SERVO_RULES)) { - customServoMixersMutable(tmp_u8)->targetChannel = sbufReadU8(src); - customServoMixersMutable(tmp_u8)->inputSource = sbufReadU8(src); - customServoMixersMutable(tmp_u8)->rate = sbufReadU16(src); - customServoMixersMutable(tmp_u8)->speed = sbufReadU8(src); - sbufReadU16(src); //Read 2bytes for min/max and ignore it - sbufReadU8(src); //Read 1 byte for `box` and ignore it - loadCustomServoMixer(); - } else - return MSP_RESULT_ERROR; - break; - case MSP2_INAV_SET_SERVO_MIXER: sbufReadU8Safe(&tmp_u8, src); if ((dataSize == 7) && (tmp_u8 < MAX_SERVO_RULES)) { diff --git a/src/main/msp/msp_protocol.h b/src/main/msp/msp_protocol.h index 6b4705a738c..6effe0dc825 100644 --- a/src/main/msp/msp_protocol.h +++ b/src/main/msp/msp_protocol.h @@ -295,8 +295,6 @@ #define MSP_GPSSTATISTICS 166 //out message get GPS debugging data #define MSP_ACC_TRIM 240 //out message get acc angle trim values #define MSP_SET_ACC_TRIM 239 //in message set acc angle trim values -#define MSP_SERVO_MIX_RULES 241 //DEPRECATED in INAV 9.1 - use MSP2_INAV_SERVO_MIXER instead. Will be removed in INAV 10.0 -#define MSP_SET_SERVO_MIX_RULE 242 //DEPRECATED in INAV 9.1 - use MSP2_INAV_SET_SERVO_MIXER instead. Will be removed in INAV 10.0 #define MSP_SET_PASSTHROUGH 245 //in message Sets up passthrough to different peripherals (4way interface, uart, etc...) #define MSP_RTC 246 //out message Gets the RTC clock (returns: secs(i32) millis(u16) - (0,0) if time is not known) #define MSP_SET_RTC 247 //in message Sets the RTC clock (args: secs(i32) millis(u16))