@@ -334,24 +334,24 @@ static const blackboxDeltaFieldDefinition_t blackboxMainFields[] = {
334
334
{"motor" , 7 , UNSIGNED , .Ipredict = PREDICT (MOTOR_0 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_MOTORS_8 )},
335
335
336
336
/* servos */
337
- {"servo" , 0 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
338
- {"servo" , 1 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
339
- {"servo" , 2 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
340
- {"servo" , 3 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
341
- {"servo" , 4 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
342
- {"servo" , 5 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
343
- {"servo" , 6 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
344
- {"servo" , 7 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
345
- {"servo" , 8 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
346
- {"servo" , 9 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
347
- {"servo" , 10 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
348
- {"servo" , 11 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
349
- {"servo" , 12 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
350
- {"servo" , 13 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
351
- {"servo" , 14 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
352
- {"servo" , 15 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
353
- {"servo" , 16 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
354
- {"servo" , 17 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
337
+ {"servo" , 0 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_1 )},
338
+ {"servo" , 1 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_2 )},
339
+ {"servo" , 2 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_3 )},
340
+ {"servo" , 3 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_4 )},
341
+ {"servo" , 4 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_5 )},
342
+ {"servo" , 5 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_6 )},
343
+ {"servo" , 6 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_7 )},
344
+ {"servo" , 7 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_8 )},
345
+ {"servo" , 8 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_9 )},
346
+ {"servo" , 9 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_10 )},
347
+ {"servo" , 10 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_11 )},
348
+ {"servo" , 11 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_12 )},
349
+ {"servo" , 12 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_13 )},
350
+ {"servo" , 13 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_14 )},
351
+ {"servo" , 14 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_15 )},
352
+ {"servo" , 15 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_16 )},
353
+ {"servo" , 16 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_17 )},
354
+ {"servo" , 17 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_SERVOS_18 )},
355
355
356
356
{"navState" , -1 , SIGNED , .Ipredict = PREDICT (0 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
357
357
{"navFlags" , -1 , UNSIGNED , .Ipredict = PREDICT (0 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
@@ -656,6 +656,26 @@ static bool testBlackboxConditionUncached(FlightLogFieldCondition condition)
656
656
case FLIGHT_LOG_FIELD_CONDITION_SERVOS :
657
657
return isMixerUsingServos ();
658
658
659
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_1 :
660
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_2 :
661
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_3 :
662
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_4 :
663
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_5 :
664
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_6 :
665
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_7 :
666
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_8 :
667
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_9 :
668
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_10 :
669
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_11 :
670
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_12 :
671
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_13 :
672
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_14 :
673
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_15 :
674
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_16 :
675
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_17 :
676
+ case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_18 :
677
+ return ((FlightLogFieldCondition )getServoCount () >= condition - FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_SERVOS_1 + 1 );
678
+
659
679
case FLIGHT_LOG_FIELD_CONDITION_NONZERO_PID_D_0 :
660
680
case FLIGHT_LOG_FIELD_CONDITION_NONZERO_PID_D_1 :
661
681
case FLIGHT_LOG_FIELD_CONDITION_NONZERO_PID_D_2 :
@@ -955,7 +975,8 @@ static void writeIntraframe(void)
955
975
}
956
976
957
977
if (testBlackboxCondition (FLIGHT_LOG_FIELD_CONDITION_SERVOS )) {
958
- for (int x = 0 ; x < MAX_SUPPORTED_SERVOS ; x ++ ) {
978
+ const int servoCount = getServoCount ();
979
+ for (int x = 0 ; x < servoCount ; x ++ ) {
959
980
//Assume that servos spends most of its time around the center
960
981
blackboxWriteSignedVB (blackboxCurrent -> servo [x ] - 1500 );
961
982
}
@@ -1214,7 +1235,7 @@ static void writeInterframe(void)
1214
1235
}
1215
1236
1216
1237
if (testBlackboxCondition (FLIGHT_LOG_FIELD_CONDITION_SERVOS )) {
1217
- blackboxWriteArrayUsingAveragePredictor16 (offsetof(blackboxMainState_t , servo ), MAX_SUPPORTED_SERVOS );
1238
+ blackboxWriteArrayUsingAveragePredictor16 (offsetof(blackboxMainState_t , servo ), getServoCount () );
1218
1239
}
1219
1240
1220
1241
blackboxWriteSignedVB (blackboxCurrent -> navState - blackboxLast -> navState );
@@ -1682,7 +1703,8 @@ static void loadMainState(timeUs_t currentTimeUs)
1682
1703
1683
1704
blackboxCurrent -> rssi = getRSSI ();
1684
1705
1685
- for (int i = 0 ; i < MAX_SUPPORTED_SERVOS ; i ++ ) {
1706
+ const int servoCount = getServoCount ();
1707
+ for (int i = 0 ; i < servoCount ; i ++ ) {
1686
1708
blackboxCurrent -> servo [i ] = servo [i ];
1687
1709
}
1688
1710
0 commit comments