diff --git a/src/main/cli/settings.c b/src/main/cli/settings.c index c0515de0b8..abadf718d0 100644 --- a/src/main/cli/settings.c +++ b/src/main/cli/settings.c @@ -1717,7 +1717,9 @@ const clivalue_t valueTable[] = { #endif // PG_POSITION - { "position_alt_source", VAR_INT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_POSITION_ALT_SOURCE }, PG_POSITION, offsetof(positionConfig_t, altSource) }, + { "position_alt_source", VAR_INT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_POSITION_ALT_SOURCE }, PG_POSITION, offsetof(positionConfig_t, altSource) }, + { "position_alt_num_sats_gps_use", VAR_INT8 | MASTER_VALUE, .config.minmaxUnsigned = { 4, 50 }, PG_POSITION, offsetof(positionConfig_t, altNumSatsGpsUse) }, + { "position_alt_num_baro_fallback", VAR_INT8 | MASTER_VALUE, .config.minmaxUnsigned = { 4, 50 }, PG_POSITION, offsetof(positionConfig_t, altNumSatsBaroFallback) }, // PG_MODE_ACTIVATION_CONFIG #if defined(USE_CUSTOM_BOX_NAMES) { "box_user_1_name", VAR_UINT8 | HARDWARE_VALUE | MODE_STRING, .config.string = { 1, MAX_BOX_USER_NAME_LENGTH, STRING_FLAGS_NONE }, PG_MODE_ACTIVATION_CONFIG, offsetof(modeActivationConfig_t, box_user_1_name) }, diff --git a/src/main/flight/position.c b/src/main/flight/position.c index 9dc88a5b93..dbfe841712 100644 --- a/src/main/flight/position.c +++ b/src/main/flight/position.c @@ -52,10 +52,12 @@ typedef enum { GPS_ONLY } altSource_e; -PG_REGISTER_WITH_RESET_TEMPLATE(positionConfig_t, positionConfig, PG_POSITION, 1); +PG_REGISTER_WITH_RESET_TEMPLATE(positionConfig_t, positionConfig, PG_POSITION, 2); PG_RESET_TEMPLATE(positionConfig_t, positionConfig, .altSource = DEFAULT, +.altNumSatsGpsUse = 10, +.altNumSatsBaroFallback = 7, ); static int32_t estimatedAltitudeCm = 0; // in cm @@ -153,8 +155,8 @@ void calculateEstimatedAltitude(timeUs_t currentTimeUs) int badGpsSats = 0; if (haveBaroAlt) { - goodGpsSats = 10; - badGpsSats = 7; + goodGpsSats = positionConfig()->altNumSatsGpsUse; + badGpsSats = positionConfig()->altNumSatsBaroFallback; } if (ARMING_FLAG(ARMED)) { diff --git a/src/main/flight/position.h b/src/main/flight/position.h index ac528848aa..e693f9ae05 100644 --- a/src/main/flight/position.h +++ b/src/main/flight/position.h @@ -24,6 +24,8 @@ typedef struct positionConfig_s { uint8_t altSource; + uint8_t altNumSatsGpsUse; + uint8_t altNumSatsBaroFallback; } positionConfig_t; PG_DECLARE(positionConfig_t, positionConfig);