Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 2 additions & 40 deletions docs/development/msp/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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`.

## <a id="msp_servo_mix_rules"></a>`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`.

## <a id="msp_set_servo_mix_rule"></a>`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`.

## <a id="msp_set_passthrough"></a>`MSP_SET_PASSTHROUGH (245 / 0xf5)`
**Description:** Enables serial passthrough mode to peripherals like ESCs (BLHeli 4-way) or other serial devices.

Expand Down Expand Up @@ -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.

## <a id="msp2_inav_servo_mixer"></a>`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**

Expand All @@ -3834,7 +3796,7 @@ When the MSP JSON specification changes, bump `msp_messages.json` version:
**Notes:** `conditionId` requires `USE_PROGRAMMING_FRAMEWORK`.

## <a id="msp2_inav_set_servo_mixer"></a>`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|
Expand Down
118 changes: 4 additions & 114 deletions docs/development/msp/msp_messages.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"version": {
"major": 2,
"minor": 1,
"major": 3,
"minor": 0,
"patch": 0
},
"messages": {
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -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,
Expand Down
25 changes: 0 additions & 25 deletions src/main/fc/fc_msp.c
Original file line number Diff line number Diff line change
Expand Up @@ -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));
Expand Down Expand Up @@ -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)) {
Expand Down
2 changes: 0 additions & 2 deletions src/main/msp/msp_protocol.h
Original file line number Diff line number Diff line change
Expand Up @@ -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))
Expand Down
Loading