1
0
Fork 0
mirror of https://github.com/iNavFlight/inav.git synced 2025-07-26 09:45:33 +03:00

Experimental opflow calibration; Add opflow calibration value to MSP [ci skip]

This commit is contained in:
Konstantin Sharlaimov (DigitalEntity) 2018-08-29 21:35:40 +02:00
parent 8fe96cfca4
commit d2368ff17b
4 changed files with 57 additions and 3 deletions

View file

@ -1252,6 +1252,12 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
sbufWriteU16(dst, 0);
sbufWriteU16(dst, 0);
#endif
#ifdef USE_OPTICAL_FLOW
sbufWriteU16(dst, opticalFlowConfig()->opflow_scale * 256);
#else
sbufWriteU16(dst, 0);
#endif
break;
case MSP_POSITION_ESTIMATION_CONFIG:
@ -2163,6 +2169,11 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
sbufReadU16(src);
sbufReadU16(src);
sbufReadU16(src);
#endif
#ifdef USE_OPTICAL_FLOW
if (dataSize >= 20) {
opticalFlowConfigMutable()->opflow_scale = sbufReadU16(src) / 256.0f;
}
#endif
} else
return MSP_RESULT_ERROR;
@ -2205,6 +2216,13 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
return MSP_RESULT_ERROR;
break;
case MSP2_INAV_OPFLOW_CALIBRATION:
if (!ARMING_FLAG(ARMED))
opflowStartCalibration();
else
return MSP_RESULT_ERROR;
break;
case MSP_EEPROM_WRITE:
if (!ARMING_FLAG(ARMED)) {
writeEEPROM();