@@ -542,7 +542,7 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
542
542
break ;
543
543
544
544
case MSP2_INAV_OPTICAL_FLOW :
545
- #ifdef USE_OPTICAL_FLOW
545
+ #ifdef USE_OPFLOW
546
546
sbufWriteU8 (dst , opflow .rawQuality );
547
547
sbufWriteU16 (dst , RADIANS_TO_DEGREES (opflow .flowRate [X ]));
548
548
sbufWriteU16 (dst , RADIANS_TO_DEGREES (opflow .flowRate [Y ]));
@@ -1062,7 +1062,7 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
1062
1062
sbufWriteU8 (dst , gyroConfig ()-> gyro_align );
1063
1063
sbufWriteU8 (dst , accelerometerConfig ()-> acc_align );
1064
1064
sbufWriteU8 (dst , compassConfig ()-> mag_align );
1065
- #ifdef USE_OPTICAL_FLOW
1065
+ #ifdef USE_OPFLOW
1066
1066
sbufWriteU8 (dst , opticalFlowConfig ()-> opflow_align );
1067
1067
#else
1068
1068
sbufWriteU8 (dst , 0 );
@@ -1178,7 +1178,7 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
1178
1178
#else
1179
1179
sbufWriteU8 (dst , 0 );
1180
1180
#endif
1181
- #ifdef USE_OPTICAL_FLOW
1181
+ #ifdef USE_OPFLOW
1182
1182
sbufWriteU8 (dst , opticalFlowConfig ()-> opflow_hardware );
1183
1183
#else
1184
1184
sbufWriteU8 (dst , 0 );
@@ -1252,6 +1252,12 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
1252
1252
sbufWriteU16 (dst , 0 );
1253
1253
sbufWriteU16 (dst , 0 );
1254
1254
#endif
1255
+
1256
+ #ifdef USE_OPFLOW
1257
+ sbufWriteU16 (dst , opticalFlowConfig ()-> opflow_scale * 256 );
1258
+ #else
1259
+ sbufWriteU16 (dst , 0 );
1260
+ #endif
1255
1261
break ;
1256
1262
1257
1263
case MSP_POSITION_ESTIMATION_CONFIG :
@@ -1948,7 +1954,7 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
1948
1954
#else
1949
1955
sbufReadU8 (src );
1950
1956
#endif
1951
- #ifdef USE_OPTICAL_FLOW
1957
+ #ifdef USE_OPFLOW
1952
1958
opticalFlowConfigMutable ()-> opflow_align = sbufReadU8 (src );
1953
1959
#else
1954
1960
sbufReadU8 (src );
@@ -2080,7 +2086,7 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
2080
2086
#else
2081
2087
sbufReadU8 (src ); // rangefinder hardware
2082
2088
#endif
2083
- #ifdef USE_OPTICAL_FLOW
2089
+ #ifdef USE_OPFLOW
2084
2090
opticalFlowConfigMutable ()-> opflow_hardware = sbufReadU8 (src );
2085
2091
#else
2086
2092
sbufReadU8 (src ); // optical flow hardware
@@ -2163,6 +2169,11 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
2163
2169
sbufReadU16 (src );
2164
2170
sbufReadU16 (src );
2165
2171
sbufReadU16 (src );
2172
+ #endif
2173
+ #ifdef USE_OPFLOW
2174
+ if (dataSize >= 20 ) {
2175
+ opticalFlowConfigMutable ()-> opflow_scale = sbufReadU16 (src ) / 256.0f ;
2176
+ }
2166
2177
#endif
2167
2178
} else
2168
2179
return MSP_RESULT_ERROR ;
@@ -2205,6 +2216,15 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
2205
2216
return MSP_RESULT_ERROR ;
2206
2217
break ;
2207
2218
2219
+ #ifdef USE_OPFLOW
2220
+ case MSP2_INAV_OPFLOW_CALIBRATION :
2221
+ if (!ARMING_FLAG (ARMED ))
2222
+ opflowStartCalibration ();
2223
+ else
2224
+ return MSP_RESULT_ERROR ;
2225
+ break ;
2226
+ #endif
2227
+
2208
2228
case MSP_EEPROM_WRITE :
2209
2229
if (!ARMING_FLAG (ARMED )) {
2210
2230
writeEEPROM ();
0 commit comments