mirror of
https://github.com/iNavFlight/inav.git
synced 2025-07-26 17:55:28 +03:00
increase bbl denom range (cleanup)
This commit is contained in:
parent
04978a1694
commit
9d19ec5dc1
6 changed files with 41 additions and 32 deletions
|
@ -93,7 +93,7 @@
|
||||||
#define BLACKBOX_INTERVED_CARD_DETECTION 0
|
#define BLACKBOX_INTERVED_CARD_DETECTION 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PG_REGISTER_WITH_RESET_TEMPLATE(blackboxConfig_t, blackboxConfig, PG_BLACKBOX_CONFIG, 0);
|
PG_REGISTER_WITH_RESET_TEMPLATE(blackboxConfig_t, blackboxConfig, PG_BLACKBOX_CONFIG, 1);
|
||||||
|
|
||||||
PG_RESET_TEMPLATE(blackboxConfig_t, blackboxConfig,
|
PG_RESET_TEMPLATE(blackboxConfig_t, blackboxConfig,
|
||||||
.device = DEFAULT_BLACKBOX_DEVICE,
|
.device = DEFAULT_BLACKBOX_DEVICE,
|
||||||
|
@ -1540,7 +1540,7 @@ static bool blackboxWriteSysinfo(void)
|
||||||
BLACKBOX_PRINT_HEADER_LINE("Firmware date", "%s %s", buildDate, buildTime);
|
BLACKBOX_PRINT_HEADER_LINE("Firmware date", "%s %s", buildDate, buildTime);
|
||||||
BLACKBOX_PRINT_HEADER_LINE("Log start datetime", "%s", blackboxGetStartDateTime(buf));
|
BLACKBOX_PRINT_HEADER_LINE("Log start datetime", "%s", blackboxGetStartDateTime(buf));
|
||||||
BLACKBOX_PRINT_HEADER_LINE("Craft name", "%s", systemConfig()->name);
|
BLACKBOX_PRINT_HEADER_LINE("Craft name", "%s", systemConfig()->name);
|
||||||
BLACKBOX_PRINT_HEADER_LINE("P interval", "%d/%d", blackboxConfig()->rate_num, blackboxConfig()->rate_denom);
|
BLACKBOX_PRINT_HEADER_LINE("P interval", "%u/%u", blackboxConfig()->rate_num, blackboxConfig()->rate_denom);
|
||||||
BLACKBOX_PRINT_HEADER_LINE("minthrottle", "%d", motorConfig()->minthrottle);
|
BLACKBOX_PRINT_HEADER_LINE("minthrottle", "%d", motorConfig()->minthrottle);
|
||||||
BLACKBOX_PRINT_HEADER_LINE("maxthrottle", "%d", motorConfig()->maxthrottle);
|
BLACKBOX_PRINT_HEADER_LINE("maxthrottle", "%d", motorConfig()->maxthrottle);
|
||||||
BLACKBOX_PRINT_HEADER_LINE("gyro_scale", "0x%x", castFloatBytesToInt(1.0f));
|
BLACKBOX_PRINT_HEADER_LINE("gyro_scale", "0x%x", castFloatBytesToInt(1.0f));
|
||||||
|
@ -1949,18 +1949,18 @@ void blackboxInit(void)
|
||||||
blackboxSetState(BLACKBOX_STATE_DISABLED);
|
blackboxSetState(BLACKBOX_STATE_DISABLED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* FIXME is this really necessary ? Why? */
|
||||||
|
int max_denom = 4096*1000 / gyroConfig()->looptime;
|
||||||
|
if (blackboxConfig()->rate_denom > max_denom) {
|
||||||
|
blackboxConfigMutable()->rate_denom = max_denom;
|
||||||
|
}
|
||||||
/* Decide on how ofter are we going to log I-frames*/
|
/* Decide on how ofter are we going to log I-frames*/
|
||||||
if (blackboxConfig()->rate_denom <= 32) {
|
if (blackboxConfig()->rate_denom <= 32) {
|
||||||
blackboxIFrameInterval = 32;
|
blackboxIFrameInterval = 32;
|
||||||
}
|
}
|
||||||
else if (blackboxConfig()->rate_denom <= 64) {
|
|
||||||
blackboxIFrameInterval = 64;
|
|
||||||
}
|
|
||||||
else if (blackboxConfig()->rate_denom <= 128) {
|
|
||||||
blackboxIFrameInterval = 128;
|
|
||||||
}
|
|
||||||
else {
|
else {
|
||||||
blackboxIFrameInterval = 256;
|
// Use next higher power of two via GCC builtin
|
||||||
|
blackboxIFrameInterval = 1 << (32 - __builtin_clz (blackboxConfig()->rate_denom - 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -22,8 +22,8 @@
|
||||||
#include "config/parameter_group.h"
|
#include "config/parameter_group.h"
|
||||||
|
|
||||||
typedef struct blackboxConfig_s {
|
typedef struct blackboxConfig_s {
|
||||||
uint8_t rate_num;
|
uint16_t rate_num;
|
||||||
uint8_t rate_denom;
|
uint16_t rate_denom;
|
||||||
uint8_t device;
|
uint8_t device;
|
||||||
uint8_t invertedCardDetection;
|
uint8_t invertedCardDetection;
|
||||||
} blackboxConfig_t;
|
} blackboxConfig_t;
|
||||||
|
|
|
@ -956,16 +956,23 @@ static bool mspFcProcessOutCommand(uint16_t cmdMSP, sbuf_t *dst, mspPostProcessF
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MSP_BLACKBOX_CONFIG:
|
case MSP_BLACKBOX_CONFIG:
|
||||||
|
sbufWriteU8(dst, 0); // API no longer supported
|
||||||
|
sbufWriteU8(dst, 0);
|
||||||
|
sbufWriteU8(dst, 0);
|
||||||
|
sbufWriteU8(dst, 0);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case MSP2_BLACKBOX_CONFIG:
|
||||||
#ifdef USE_BLACKBOX
|
#ifdef USE_BLACKBOX
|
||||||
sbufWriteU8(dst, 1); //Blackbox supported
|
sbufWriteU8(dst, 1); //Blackbox supported
|
||||||
sbufWriteU8(dst, blackboxConfig()->device);
|
sbufWriteU8(dst, blackboxConfig()->device);
|
||||||
sbufWriteU8(dst, blackboxConfig()->rate_num);
|
sbufWriteU16(dst, blackboxConfig()->rate_num);
|
||||||
sbufWriteU8(dst, blackboxConfig()->rate_denom);
|
sbufWriteU16(dst, blackboxConfig()->rate_denom);
|
||||||
#else
|
#else
|
||||||
sbufWriteU8(dst, 0); // Blackbox not supported
|
sbufWriteU8(dst, 0); // Blackbox not supported
|
||||||
sbufWriteU8(dst, 0);
|
sbufWriteU8(dst, 0);
|
||||||
sbufWriteU8(dst, 0);
|
sbufWriteU16(dst, 0);
|
||||||
sbufWriteU8(dst, 0);
|
sbufWriteU16(dst, 0);
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -2089,12 +2096,12 @@ static mspResult_e mspFcProcessInCommand(uint16_t cmdMSP, sbuf_t *src)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
#ifdef USE_BLACKBOX
|
#ifdef USE_BLACKBOX
|
||||||
case MSP_SET_BLACKBOX_CONFIG:
|
case MSP2_SET_BLACKBOX_CONFIG:
|
||||||
// Don't allow config to be updated while Blackbox is logging
|
// Don't allow config to be updated while Blackbox is logging
|
||||||
if ((dataSize >= 3) && blackboxMayEditConfig()) {
|
if ((dataSize >= 5) && blackboxMayEditConfig()) {
|
||||||
blackboxConfigMutable()->device = sbufReadU8(src);
|
blackboxConfigMutable()->device = sbufReadU8(src);
|
||||||
blackboxConfigMutable()->rate_num = sbufReadU8(src);
|
blackboxConfigMutable()->rate_num = sbufReadU16(src);
|
||||||
blackboxConfigMutable()->rate_denom = sbufReadU8(src);
|
blackboxConfigMutable()->rate_denom = sbufReadU16(src);
|
||||||
} else
|
} else
|
||||||
return MSP_RESULT_ERROR;
|
return MSP_RESULT_ERROR;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -396,11 +396,11 @@ groups:
|
||||||
- name: blackbox_rate_num
|
- name: blackbox_rate_num
|
||||||
field: rate_num
|
field: rate_num
|
||||||
min: 1
|
min: 1
|
||||||
max: 255
|
max: 65535
|
||||||
- name: blackbox_rate_denom
|
- name: blackbox_rate_denom
|
||||||
field: rate_denom
|
field: rate_denom
|
||||||
min: 1
|
min: 1
|
||||||
max: 255
|
max: 65535
|
||||||
- name: blackbox_device
|
- name: blackbox_device
|
||||||
field: device
|
field: device
|
||||||
table: blackbox_device
|
table: blackbox_device
|
||||||
|
@ -1768,4 +1768,3 @@ groups:
|
||||||
min: 0
|
min: 0
|
||||||
max: 255
|
max: 255
|
||||||
type: uint8_t
|
type: uint8_t
|
||||||
|
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
#define MSP_PROTOCOL_VERSION 0 // Same version over MSPv1 & MSPv2 - message format didn't change and it backward compatible
|
#define MSP_PROTOCOL_VERSION 0 // Same version over MSPv1 & MSPv2 - message format didn't change and it backward compatible
|
||||||
|
|
||||||
#define API_VERSION_MAJOR 2 // increment when major changes are made
|
#define API_VERSION_MAJOR 2 // increment when major changes are made
|
||||||
#define API_VERSION_MINOR 2 // increment when any change is made, reset to zero when major changes are released after changing API_VERSION_MAJOR
|
#define API_VERSION_MINOR 3 // increment when any change is made, reset to zero when major changes are released after changing API_VERSION_MAJOR
|
||||||
|
|
||||||
#define API_VERSION_LENGTH 2
|
#define API_VERSION_LENGTH 2
|
||||||
|
|
||||||
|
|
|
@ -45,3 +45,6 @@
|
||||||
#define MSP2_INAV_SELECT_BATTERY_PROFILE 0x2018
|
#define MSP2_INAV_SELECT_BATTERY_PROFILE 0x2018
|
||||||
|
|
||||||
#define MSP2_INAV_DEBUG 0x2019
|
#define MSP2_INAV_DEBUG 0x2019
|
||||||
|
|
||||||
|
#define MSP2_BLACKBOX_CONFIG 0x201A
|
||||||
|
#define MSP2_SET_BLACKBOX_CONFIG 0x201B
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue