@@ -289,14 +289,14 @@ static const blackboxDeltaFieldDefinition_t blackboxMainFields[] = {
289289 {"motor" , 7 , UNSIGNED , .Ipredict = PREDICT (MOTOR_0 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (AT_LEAST_MOTORS_8 )},
290290
291291 /* servos */
292- {"servo" , 0 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
293- {"servo" , 1 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
294- {"servo" , 2 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
295- {"servo" , 3 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
296- {"servo" , 4 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
297- {"servo" , 5 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
298- {"servo" , 6 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
299- {"servo" , 7 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
292+ {"servo" , 0 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
293+ {"servo" , 1 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
294+ {"servo" , 2 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
295+ {"servo" , 3 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
296+ {"servo" , 4 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
297+ {"servo" , 5 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
298+ {"servo" , 6 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
299+ {"servo" , 7 , UNSIGNED , .Ipredict = PREDICT (1500 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (AVERAGE_2 ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (SERVOS )},
300300
301301#ifdef NAV_BLACKBOX
302302 {"navState" , -1 , SIGNED , .Ipredict = PREDICT (0 ), .Iencode = ENCODING (SIGNED_VB ), .Ppredict = PREDICT (PREVIOUS ), .Pencode = ENCODING (SIGNED_VB ), CONDITION (ALWAYS )},
@@ -563,8 +563,8 @@ static bool testBlackboxConditionUncached(FlightLogFieldCondition condition)
563563 case FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_MOTORS_8 :
564564 return getMotorCount () >= condition - FLIGHT_LOG_FIELD_CONDITION_AT_LEAST_MOTORS_1 + 1 ;
565565
566- case FLIGHT_LOG_FIELD_CONDITION_TRICOPTER :
567- return mixerConfig () -> platformType == PLATFORM_TRICOPTER ;
566+ case FLIGHT_LOG_FIELD_CONDITION_SERVOS :
567+ return isMixerUsingServos () ;
568568
569569 case FLIGHT_LOG_FIELD_CONDITION_NONZERO_PID_D_0 :
570570 case FLIGHT_LOG_FIELD_CONDITION_NONZERO_PID_D_1 :
@@ -798,9 +798,11 @@ static void writeIntraframe(void)
798798 blackboxWriteSignedVB (blackboxCurrent -> motor [x ] - blackboxCurrent -> motor [0 ]);
799799 }
800800
801- for (int x = 0 ; x < MAX_SUPPORTED_SERVOS ; x ++ ) {
802- //Assume that servos spends most of its time around the center
803- blackboxWriteSignedVB (blackboxCurrent -> servo [x ] - servoParams (x )-> middle );
801+ if (testBlackboxCondition (FLIGHT_LOG_FIELD_CONDITION_SERVOS )) {
802+ for (int x = 0 ; x < MAX_SUPPORTED_SERVOS ; x ++ ) {
803+ //Assume that servos spends most of its time around the center
804+ blackboxWriteSignedVB (blackboxCurrent -> servo [x ] - 1500 );
805+ }
804806 }
805807
806808#ifdef NAV_BLACKBOX
@@ -1001,7 +1003,9 @@ static void writeInterframe(void)
10011003 }
10021004 blackboxWriteMainStateArrayUsingAveragePredictor (offsetof(blackboxMainState_t , motor ), getMotorCount ());
10031005
1004- blackboxWriteMainStateArrayUsingAveragePredictor (offsetof(blackboxMainState_t , servo ), MAX_SUPPORTED_SERVOS );
1006+ if (testBlackboxCondition (FLIGHT_LOG_FIELD_CONDITION_SERVOS )) {
1007+ blackboxWriteMainStateArrayUsingAveragePredictor (offsetof(blackboxMainState_t , servo ), MAX_SUPPORTED_SERVOS );
1008+ }
10051009
10061010#ifdef NAV_BLACKBOX
10071011 blackboxWriteSignedVB (blackboxCurrent -> navState - blackboxLast -> navState );
0 commit comments