What to build
Restore Android/iOS native parity for Refloat Tune Snapshot decoding by adding the missing tiltback_constant_erpm and tiltback_variable_erpm field definitions to the iOS Refloat tune group.
The iOS decoder must expose these values when the board-provided Refloat schema contains them and preserve existing compatibility behavior when an older schema omits them.
Likely files
modules/vesc-ble/ios/RefloatConfigModels.swift - iOS REFLOAT_TUNE_GROUPS definition missing both fields.
modules/vesc-ble/android/src/main/java/expo/modules/vescble/RefloatConfigModels.kt - parity reference containing the expected IDs, labels, units, and ordering.
modules/vesc-ble/ios/RefloatConfigDecoder.swift - existing schema-driven omission and missingFieldIds behavior to verify.
modules/vesc-ble/ios/Tests/ - likely location for native decoder/model parity coverage; inspect existing test structure first.
Implementation hints
- Preserve the field order used by Android:
tiltback_constant, tiltback_constant_erpm, tiltback_variable, tiltback_variable_max, tiltback_variable_erpm.
- Match Android labels and units exactly.
- Do not make either ERPM field mandatory.
RefloatConfigDecoder already skips definitions absent from a board schema and records their IDs in missingFieldIds.
- Inspect both files linked by the existing
@parity annotations before finishing.
Acceptance criteria
Blocked by
None - can start immediately
Related
None
What to build
Restore Android/iOS native parity for Refloat Tune Snapshot decoding by adding the missing
tiltback_constant_erpmandtiltback_variable_erpmfield definitions to the iOS Refloat tune group.The iOS decoder must expose these values when the board-provided Refloat schema contains them and preserve existing compatibility behavior when an older schema omits them.
Likely files
modules/vesc-ble/ios/RefloatConfigModels.swift- iOSREFLOAT_TUNE_GROUPSdefinition missing both fields.modules/vesc-ble/android/src/main/java/expo/modules/vescble/RefloatConfigModels.kt- parity reference containing the expected IDs, labels, units, and ordering.modules/vesc-ble/ios/RefloatConfigDecoder.swift- existing schema-driven omission andmissingFieldIdsbehavior to verify.modules/vesc-ble/ios/Tests/- likely location for native decoder/model parity coverage; inspect existing test structure first.Implementation hints
tiltback_constant,tiltback_constant_erpm,tiltback_variable,tiltback_variable_max,tiltback_variable_erpm.RefloatConfigDecoderalready skips definitions absent from a board schema and records their IDs inmissingFieldIds.@parityannotations before finishing.Acceptance criteria
REFLOAT_TUNE_GROUPSincludestiltback_constant_erpmwith labelConstant Tiltback ERPMand unitERPM.REFLOAT_TUNE_GROUPSincludestiltback_variable_erpmwith labelVariable Tiltback Start ERPMand unitERPM.missingFieldIds.Blocked by
None - can start immediately
Related
None