-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Deprecate 16 legacy MSP commands (for removal in INAV 10.0 or 11) #11315
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: maintenance-9.x
Are you sure you want to change the base?
Deprecate 16 legacy MSP commands (for removal in INAV 10.0 or 11) #11315
Conversation
Deprecate the following MSP commands with replacement info: - MSP_ANALOG (110) -> MSP2_INAV_ANALOG - MSP_MISC (114) / MSP_SET_MISC (207) -> MSP2_INAV_MISC / MSP2_INAV_SET_MISC - MSP_PIDNAMES (117) -> no replacement needed - MSP_FILTER_CONFIG (92) / MSP_SET_FILTER_CONFIG (93) -> MSP2_COMMON_SETTING - MSP_PID_ADVANCED (94) / MSP_SET_PID_ADVANCED (95) -> MSP_INAV_PID - MSP_OSD_CONFIG (84) / MSP_SET_OSD_CONFIG (85) -> MSP2_INAV_OSD_* - MSP_POSITION_ESTIMATION_CONFIG (16) / MSP_SET_POSITION_ESTIMATION_CONFIG (17) -> MSP2_COMMON_SETTING - MSP_SERVO_MIX_RULES (241) / MSP_SET_SERVO_MIX_RULE (242) -> MSP2_INAV_SERVO_MIXER Commands remain fully functional. This gives third-party developers a full major release cycle of notice before removal. Also adds "replaced_by" field to the MSP message JSON schema (docs/development/msp/format.md) and populates it for all 14 entries.
PR Compliance Guide 🔍All compliance sections have been disabled in the configurations. |
|
@xznhj8129 Does this addition to the JSON work for you? |
Yes that looks like a solid addition, will make it easier to parse rather than just a note |
Co-authored-by: qodo-code-review[bot] <151058649+qodo-code-review[bot]@users.noreply.github.com>
|
If you really think this is worth doing, by the same logic, you might consider deprecating other obsolete messages superseded by
and and and probably the others listed as "Superseded" in the MSP reference. Also
|
Should we bump the version number when we aren't adding or removing anything other than a comment? I don't mind doing so, just checking. Or should that wait until we actually change the implementation, when something is removed in INAV 10 or 11?
What do you think? This was initiated by Pawel and I was somewhat figuring "if Pawel think it should be done, maybe it should be". I also value your opinion. |
User description
Summary
Marks 16 legacy MSP commands as deprecated with specific replacement info, rather than immediately dropping them. This gives third-party developers (ground stations, OSD tools, telemetry apps, scripting libraries) a full major release cycle of notice before removal in INAV 10.0.
All commands remain fully functional — no behavioral changes, no code removal, no API version bump.
Supersedes
This PR supersedes the following PRs which proposed immediate removal without a deprecation period:
Deprecated commands and their replacements
MSP_POSITION_ESTIMATION_CONFIGMSP2_COMMON_SETTINGMSP_SET_POSITION_ESTIMATION_CONFIGMSP2_COMMON_SET_SETTINGMSP_OSD_CONFIGMSP2_INAV_OSD_LAYOUTS/MSP2_INAV_OSD_ALARMS/MSP2_INAV_OSD_PREFERENCESMSP_SET_OSD_CONFIGMSP2_INAV_OSD_SET_LAYOUT_ITEM/MSP2_INAV_OSD_SET_ALARMS/MSP2_INAV_OSD_SET_PREFERENCESMSP_FILTER_CONFIGMSP2_COMMON_SETTINGMSP_SET_FILTER_CONFIGMSP2_COMMON_SET_SETTINGMSP_PID_ADVANCEDMSP_INAV_PIDMSP_SET_PID_ADVANCEDMSP_SET_INAV_PIDMSP_ANALOGMSP2_INAV_ANALOGMSP_MISCMSP2_INAV_MISCMSP_PIDNAMESMSP_SET_MISCMSP2_INAV_SET_MISCMSP_SERVO_MIX_RULESMSP2_INAV_SERVO_MIXERMSP_SET_SERVO_MIX_RULEMSP2_INAV_SET_SERVO_MIXERNone of these commands were previously marked as deprecated.
Changes
src/main/msp/msp_protocol.h— Added//DEPRECATED in INAV 9.1comments with replacement info to all 16#definesdocs/development/msp/msp_messages.json— Added"replaced_by"field to all 14 command entriesdocs/development/msp/format.md— Documented the newreplaced_byschema fieldWhy deprecate instead of drop?
Third-party tools (mwptools, mobile ground stations, Lua scripts, Python libraries) may still use these commands. Dropping without notice breaks those tools silently. A deprecation cycle gives developers time to migrate, then allows clean removal in INAV 10.0.
Testing
Documentation/comment-only changes — no compiled code modified. JSON schema validated.
PR Type
Enhancement
Description
Mark 16 legacy MSP commands as deprecated for removal in INAV 10.0
Add deprecation comments with replacement guidance to protocol header
Document
replaced_byfield in MSP message JSON schemaPopulate
replaced_byfield for all 14 deprecated command entriesDiagram Walkthrough
File Walkthrough
msp_protocol.h
Add deprecation notices to legacy MSP command definitionssrc/main/msp/msp_protocol.h
//DEPRECATED in INAV 9.1comments to 16 MSP command#definestatements
deprecated command
MSP_POSITION_ESTIMATION_CONFIG(16),MSP_SET_POSITION_ESTIMATION_CONFIG(17),MSP_OSD_CONFIG(84),MSP_SET_OSD_CONFIG(85),MSP_FILTER_CONFIG(92),MSP_SET_FILTER_CONFIG(93),
MSP_PID_ADVANCED(94),MSP_SET_PID_ADVANCED(95),MSP_ANALOG(110),
MSP_MISC(114),MSP_PIDNAMES(117),MSP_SET_MISC(207),MSP_SERVO_MIX_RULES(241),MSP_SET_SERVO_MIX_RULE(242)format.md
Document replaced_by schema field for deprecated commandsdocs/development/msp/format.md
replaced_byschema field in MSP messageformat
commands
msp_messages.json
Populate replaced_by metadata for deprecated MSP commandsdocs/development/msp/msp_messages.json
replaced_byfield to 14 deprecated MSP command entries in JSONschema
MSP_POSITION_ESTIMATION_CONFIG(16) →["MSP2_COMMON_SETTING"]MSP_SET_POSITION_ESTIMATION_CONFIG(17) →["MSP2_COMMON_SET_SETTING"]MSP_OSD_CONFIG(84) →["MSP2_INAV_OSD_LAYOUTS","MSP2_INAV_OSD_ALARMS", "MSP2_INAV_OSD_PREFERENCES"]MSP_SET_OSD_CONFIG(85) →["MSP2_INAV_OSD_SET_LAYOUT_ITEM","MSP2_INAV_OSD_SET_ALARMS", "MSP2_INAV_OSD_SET_PREFERENCES"]MSP_FILTER_CONFIG(92) →["MSP2_COMMON_SETTING"]MSP_SET_FILTER_CONFIG(93) →["MSP2_COMMON_SET_SETTING"]MSP_PID_ADVANCED(94) →["MSP_INAV_PID"]MSP_SET_PID_ADVANCED(95) →["MSP_SET_INAV_PID"]MSP_ANALOG(110) →["MSP2_INAV_ANALOG"]MSP_MISC(114) →["MSP2_INAV_MISC"]MSP_PIDNAMES(117) →[](no replacement needed)MSP_SET_MISC(207) →["MSP2_INAV_SET_MISC"]MSP_SERVO_MIX_RULES(241) →["MSP2_INAV_SERVO_MIXER"]MSP_SET_SERVO_MIX_RULE(242) →["MSP2_INAV_SET_SERVO_MIXER"]