Parameter protocol updates for encoding method #436
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Essentially we have two parameter protocols, that pretty much differ only in that PX4 uses byte-wise encoding and ArduPilot uses C-style encoding (there are other differences, but most of these are not incompatible - more like extensions).
The suggestion by @auturgy here: mavlink/mavlink#1769 (comment) was that we simply use the protocol bits
MAV_PROTOCOL_CAPABILITY_PARAM_UNION
andMAV_PROTOCOL_CAPABILITY_PARAM_FLOAT
to differentiate these. These can then also be used for discovery of the protocol.I like this because it more accurately reflects the actual history - early inconsistency in the implementations, and further, it might actually have been the intent of these protocol bits originally.
Do not merge until mavlink/mavlink#1799 is finalised. If merges, will need to update the protocol bits documented.
MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_BYTEWISE
MAV_PROTOCOL_CAPABILITY_PARAM_ENCODE_C_CAST