From 3c0b9ea8c52c4fdecd67f8d622e2a778bbe1279d Mon Sep 17 00:00:00 2001 From: Nicholas Sherlock Date: Wed, 25 Jan 2017 12:44:04 +1300 Subject: [PATCH] Support Betaflight's gyro_scale field --- src/parser.c | 4 ++-- src/parser.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/parser.c b/src/parser.c index 85c7608..1383ea5 100644 --- a/src/parser.c +++ b/src/parser.c @@ -454,7 +454,7 @@ static void parseHeaderLine(flightLog_t *log, mmapStream_t *stream) log->sysConfig.currentMeterOffset = currentMeterParams[0]; log->sysConfig.currentMeterScale = currentMeterParams[1]; - } else if (strcmp(fieldName, "gyro.scale") == 0) { + } else if (strcmp(fieldName, "gyro.scale") == 0 || strcmp(fieldName, "gyro_scale") == 0) { floatConvert.u = strtoul(fieldValue, 0, 16); log->sysConfig.gyroScale = floatConvert.f; @@ -463,7 +463,7 @@ static void parseHeaderLine(flightLog_t *log, mmapStream_t *stream) * per second and leaves the conversion to radians per us to the IMU. Let's just convert Cleanflight's scale to * match Baseflight so we can use Baseflight's IMU for both: */ - if (log->sysConfig.firmwareType == FIRMWARE_TYPE_CLEANFLIGHT) { + if (log->sysConfig.firmwareType != FIRMWARE_TYPE_BASEFLIGHT) { log->sysConfig.gyroScale = (float) (log->sysConfig.gyroScale * (M_PI / 180.0) * 0.000001); } } else if (strcmp(fieldName, "acc_1G") == 0) { diff --git a/src/parser.h b/src/parser.h index 93c5479..7e5c216 100644 --- a/src/parser.h +++ b/src/parser.h @@ -20,7 +20,8 @@ typedef enum FirmwareType { FIRMWARE_TYPE_UNKNOWN = 0, FIRMWARE_TYPE_BASEFLIGHT, - FIRMWARE_TYPE_CLEANFLIGHT + FIRMWARE_TYPE_CLEANFLIGHT, + FIRMWARE_TYPE_BETAFLIGHT } FirmwareType; typedef struct flightLogFrameStatistics_t {