From 4ee617771c497ba4595fe8204fc0d9311a2e6c86 Mon Sep 17 00:00:00 2001 From: Michel Pastor Date: Sun, 2 Dec 2018 21:40:08 +0100 Subject: [PATCH] Make the debug array cells int32 and increase cell count to 8 --- src/main/blackbox/blackbox.c | 12 ++++++++---- src/main/build/debug.c | 2 +- src/main/build/debug.h | 4 ++-- src/main/fc/fc_msp.c | 8 +++++++- src/main/msp/msp_protocol_v2_inav.h | 2 ++ src/test/unit/flight_failsafe_unittest.cc.txt | 2 +- src/test/unit/flight_imu_unittest.cc.txt | 4 ++-- src/test/unit/flight_mixer_unittest.cc.txt | 2 +- src/test/unit/navigation_unittest.cc.txt | 2 +- src/test/unit/serial_msp_unittest.cc.txt | 2 +- src/test/unit/telemetry_hott_unittest.cc | 2 +- 11 files changed, 27 insertions(+), 15 deletions(-) diff --git a/src/main/blackbox/blackbox.c b/src/main/blackbox/blackbox.c index 1b6aea1efd..fe2e68d60e 100644 --- a/src/main/blackbox/blackbox.c +++ b/src/main/blackbox/blackbox.c @@ -270,6 +270,10 @@ static const blackboxDeltaFieldDefinition_t blackboxMainFields[] = { {"debug", 1, SIGNED, .Ipredict = PREDICT(0), .Iencode = ENCODING(SIGNED_VB), .Ppredict = PREDICT(AVERAGE_2), .Pencode = ENCODING(SIGNED_VB), FLIGHT_LOG_FIELD_CONDITION_DEBUG}, {"debug", 2, SIGNED, .Ipredict = PREDICT(0), .Iencode = ENCODING(SIGNED_VB), .Ppredict = PREDICT(AVERAGE_2), .Pencode = ENCODING(SIGNED_VB), FLIGHT_LOG_FIELD_CONDITION_DEBUG}, {"debug", 3, SIGNED, .Ipredict = PREDICT(0), .Iencode = ENCODING(SIGNED_VB), .Ppredict = PREDICT(AVERAGE_2), .Pencode = ENCODING(SIGNED_VB), FLIGHT_LOG_FIELD_CONDITION_DEBUG}, + {"debug", 4, SIGNED, .Ipredict = PREDICT(0), .Iencode = ENCODING(SIGNED_VB), .Ppredict = PREDICT(AVERAGE_2), .Pencode = ENCODING(SIGNED_VB), FLIGHT_LOG_FIELD_CONDITION_DEBUG}, + {"debug", 5, SIGNED, .Ipredict = PREDICT(0), .Iencode = ENCODING(SIGNED_VB), .Ppredict = PREDICT(AVERAGE_2), .Pencode = ENCODING(SIGNED_VB), FLIGHT_LOG_FIELD_CONDITION_DEBUG}, + {"debug", 6, SIGNED, .Ipredict = PREDICT(0), .Iencode = ENCODING(SIGNED_VB), .Ppredict = PREDICT(AVERAGE_2), .Pencode = ENCODING(SIGNED_VB), FLIGHT_LOG_FIELD_CONDITION_DEBUG}, + {"debug", 7, SIGNED, .Ipredict = PREDICT(0), .Iencode = ENCODING(SIGNED_VB), .Ppredict = PREDICT(AVERAGE_2), .Pencode = ENCODING(SIGNED_VB), FLIGHT_LOG_FIELD_CONDITION_DEBUG}, /* Motors only rarely drops under minthrottle (when stick falls below mincommand), so predict minthrottle for it and use *unsigned* encoding (which is large for negative numbers but more compact for positive ones): */ {"motor", 0, UNSIGNED, .Ipredict = PREDICT(MINTHROTTLE), .Iencode = ENCODING(UNSIGNED_VB), .Ppredict = PREDICT(AVERAGE_2), .Pencode = ENCODING(SIGNED_VB), CONDITION(AT_LEAST_MOTORS_1)}, /* Subsequent motors base their I-frame values on the first one, P-frame values on the average of last two frames: */ @@ -396,7 +400,7 @@ typedef struct blackboxMainState_s { int16_t gyroADC[XYZ_AXIS_COUNT]; int16_t accADC[XYZ_AXIS_COUNT]; int16_t attitude[XYZ_AXIS_COUNT]; - int16_t debug[DEBUG16_VALUE_COUNT]; + int32_t debug[DEBUG32_VALUE_COUNT]; int16_t motor[MAX_SUPPORTED_MOTORS]; int16_t servo[MAX_SUPPORTED_SERVOS]; @@ -755,7 +759,7 @@ static void writeIntraframe(void) blackboxWriteSigned16VBArray(blackboxCurrent->attitude, XYZ_AXIS_COUNT); if (testBlackboxCondition(FLIGHT_LOG_FIELD_CONDITION_DEBUG)) { - blackboxWriteSigned16VBArray(blackboxCurrent->debug, DEBUG16_VALUE_COUNT); + blackboxWriteSignedVBArray(blackboxCurrent->debug, DEBUG32_VALUE_COUNT); } //Motors can be below minthrottle when disarmed, but that doesn't happen much @@ -966,7 +970,7 @@ static void writeInterframe(void) blackboxWriteMainStateArrayUsingAveragePredictor(offsetof(blackboxMainState_t, accADC), XYZ_AXIS_COUNT); blackboxWriteMainStateArrayUsingAveragePredictor(offsetof(blackboxMainState_t, attitude), XYZ_AXIS_COUNT); if (testBlackboxCondition(FLIGHT_LOG_FIELD_CONDITION_DEBUG)) { - blackboxWriteMainStateArrayUsingAveragePredictor(offsetof(blackboxMainState_t, debug), DEBUG16_VALUE_COUNT); + blackboxWriteMainStateArrayUsingAveragePredictor(offsetof(blackboxMainState_t, debug), DEBUG32_VALUE_COUNT); } blackboxWriteMainStateArrayUsingAveragePredictor(offsetof(blackboxMainState_t, motor), getMotorCount()); @@ -1335,7 +1339,7 @@ static void loadMainState(timeUs_t currentTimeUs) blackboxCurrent->attitude[1] = attitude.values.pitch; blackboxCurrent->attitude[2] = attitude.values.yaw; - for (int i = 0; i < DEBUG16_VALUE_COUNT; i++) { + for (int i = 0; i < DEBUG32_VALUE_COUNT; i++) { blackboxCurrent->debug[i] = debug[i]; } diff --git a/src/main/build/debug.c b/src/main/build/debug.c index 9aaa469366..7852afd98c 100644 --- a/src/main/build/debug.c +++ b/src/main/build/debug.c @@ -43,7 +43,7 @@ timeUs_t sectionTimes[2][4]; #endif -int16_t debug[DEBUG16_VALUE_COUNT]; +int32_t debug[DEBUG32_VALUE_COUNT]; uint8_t debugMode; #if defined(USE_DEBUG_TRACE) diff --git a/src/main/build/debug.h b/src/main/build/debug.h index 29e66a3dca..c799d57a8c 100644 --- a/src/main/build/debug.h +++ b/src/main/build/debug.h @@ -19,8 +19,8 @@ #include #include -#define DEBUG16_VALUE_COUNT 4 -extern int16_t debug[DEBUG16_VALUE_COUNT]; +#define DEBUG32_VALUE_COUNT 8 +extern int32_t debug[DEBUG32_VALUE_COUNT]; extern uint8_t debugMode; #define DEBUG_SET(mode, index, value) {if (debugMode == (mode)) {debug[(index)] = (value);}} diff --git a/src/main/fc/fc_msp.c b/src/main/fc/fc_msp.c index c3741c3e5a..0878a8bf71 100644 --- a/src/main/fc/fc_msp.c +++ b/src/main/fc/fc_msp.c @@ -787,11 +787,17 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF // output some useful QA statistics // debug[x] = ((hse_value / 1000000) * 1000) + (SystemCoreClock / 1000000); // XX0YY [crystal clock : core clock] - for (int i = 0; i < DEBUG16_VALUE_COUNT; i++) { + for (int i = 0; i < 4; i++) { sbufWriteU16(dst, debug[i]); // 4 variables are here for general monitoring purpose } break; + case MSP2_INAV_DEBUG: + for (int i = 0; i < DEBUG32_VALUE_COUNT; i++) { + sbufWriteU32(dst, debug[i]); // 8 variables are here for general monitoring purpose + } + break; + case MSP_UID: sbufWriteU32(dst, U_ID_0); sbufWriteU32(dst, U_ID_1); diff --git a/src/main/msp/msp_protocol_v2_inav.h b/src/main/msp/msp_protocol_v2_inav.h index 15c200f26a..351da8d043 100755 --- a/src/main/msp/msp_protocol_v2_inav.h +++ b/src/main/msp/msp_protocol_v2_inav.h @@ -43,3 +43,5 @@ #define MSP2_INAV_OSD_SET_PREFERENCES 0x2017 #define MSP2_INAV_SELECT_BATTERY_PROFILE 0x2018 + +#define MSP2_INAV_DEBUG 0x2019 diff --git a/src/test/unit/flight_failsafe_unittest.cc.txt b/src/test/unit/flight_failsafe_unittest.cc.txt index cee78f6653..21a9717261 100644 --- a/src/test/unit/flight_failsafe_unittest.cc.txt +++ b/src/test/unit/flight_failsafe_unittest.cc.txt @@ -410,7 +410,7 @@ int16_t rcData[MAX_SUPPORTED_RC_CHANNEL_COUNT]; uint8_t armingFlags; int16_t rcCommand[4]; uint32_t rcModeActivationMask; -int16_t debug[DEBUG16_VALUE_COUNT]; +int32_t debug[DEBUG32_VALUE_COUNT]; bool isUsingSticksToArm = true; diff --git a/src/test/unit/flight_imu_unittest.cc.txt b/src/test/unit/flight_imu_unittest.cc.txt index df913ebdb5..28886c89ff 100644 --- a/src/test/unit/flight_imu_unittest.cc.txt +++ b/src/test/unit/flight_imu_unittest.cc.txt @@ -135,7 +135,7 @@ int16_t heading; gyro_t gyro; int32_t magADC[XYZ_AXIS_COUNT]; int32_t BaroAlt; -int16_t debug[DEBUG16_VALUE_COUNT]; +int32_t debug[DEBUG32_VALUE_COUNT]; uint8_t stateFlags; uint16_t flightModeFlags; @@ -179,4 +179,4 @@ bool isBaroCalibrationComplete(void) { return true; } void performBaroCalibrationCycle(void) {} int32_t baroCalculateAltitude(void) { return 0; } -} \ No newline at end of file +} diff --git a/src/test/unit/flight_mixer_unittest.cc.txt b/src/test/unit/flight_mixer_unittest.cc.txt index 6909f4f95b..6b33b6c50c 100644 --- a/src/test/unit/flight_mixer_unittest.cc.txt +++ b/src/test/unit/flight_mixer_unittest.cc.txt @@ -373,7 +373,7 @@ int16_t rcCommand[4]; int16_t rcData[MAX_SUPPORTED_RC_CHANNEL_COUNT]; uint32_t rcModeActivationMask; -int16_t debug[DEBUG16_VALUE_COUNT]; +int32_t debug[DEBUG32_VALUE_COUNT]; uint8_t stateFlags; uint16_t flightModeFlags; diff --git a/src/test/unit/navigation_unittest.cc.txt b/src/test/unit/navigation_unittest.cc.txt index e6f0b6dd89..10472283f4 100755 --- a/src/test/unit/navigation_unittest.cc.txt +++ b/src/test/unit/navigation_unittest.cc.txt @@ -134,7 +134,7 @@ int32_t accSum[XYZ_AXIS_COUNT]; int16_t accADC[XYZ_AXIS_COUNT]; int16_t gyroADC[XYZ_AXIS_COUNT]; int16_t magADC[XYZ_AXIS_COUNT]; -int16_t debug[DEBUG16_VALUE_COUNT]; +int32_t debug[DEBUG32_VALUE_COUNT]; uint8_t stateFlags; uint16_t flightModeFlags; diff --git a/src/test/unit/serial_msp_unittest.cc.txt b/src/test/unit/serial_msp_unittest.cc.txt index 2ffb7e558c..14d75c9c17 100644 --- a/src/test/unit/serial_msp_unittest.cc.txt +++ b/src/test/unit/serial_msp_unittest.cc.txt @@ -511,7 +511,7 @@ void featureSet(uint32_t mask) {UNUSED(mask);} void featureClearAll() {} uint32_t featureMask(void) {return 0;} // from debug.c -int16_t debug[DEBUG16_VALUE_COUNT]; +int32_t debug[DEBUG32_VALUE_COUNT]; // from gps.c #define GPS_SV_MAXSATS 16 int32_t GPS_coord[2]; // LAT/LON diff --git a/src/test/unit/telemetry_hott_unittest.cc b/src/test/unit/telemetry_hott_unittest.cc index fadbee50c9..3e643b5f6f 100644 --- a/src/test/unit/telemetry_hott_unittest.cc +++ b/src/test/unit/telemetry_hott_unittest.cc @@ -163,7 +163,7 @@ TEST(TelemetryHottTest, PrepareGPSMessage_Altitude1m) extern "C" { -int16_t debug[DEBUG16_VALUE_COUNT]; +int32_t debug[DEBUG32_VALUE_COUNT]; uint32_t stateFlags;