diff --git a/proto b/proto index a4ebed7b..6794a2f4 160000 --- a/proto +++ b/proto @@ -1 +1 @@ -Subproject commit a4ebed7b563fc4b95acd90fca2dcf8fcd2a09287 +Subproject commit 6794a2f4aaca7540793fc3a73982152722656ba4 diff --git a/src/gps/GPS.cpp b/src/gps/GPS.cpp index d59ff4c3..b1bc00eb 100644 --- a/src/gps/GPS.cpp +++ b/src/gps/GPS.cpp @@ -146,16 +146,6 @@ void GPS::setAwake(bool on) } } -GpsOperation GPS::getGpsOp() const -{ - auto op = radioConfig.preferences.gps_operation; - - if (op == GpsOperation_GpsOpUnset) - op = (radioConfig.preferences.disable_location_share) ? GpsOperation_GpsOpTimeOnly : GpsOperation_GpsOpMobile; - - return op; -} - /** Get how long we should stay looking for each aquisition in msecs */ uint32_t GPS::getWakeTime() const @@ -179,10 +169,9 @@ uint32_t GPS::getWakeTime() const uint32_t GPS::getSleepTime() const { uint32_t t = radioConfig.preferences.gps_update_interval; + bool disabled = radioConfig.preferences.gps_disabled; - auto op = getGpsOp(); - bool gotTime = (getRTCQuality() >= RTCQualityGPS); - if ((gotTime && op == GpsOperation_GpsOpTimeOnly) || (op == GpsOperation_GpsOpDisabled)) + if (disabled) t = UINT32_MAX; // Sleep forever now if (t == UINT32_MAX) @@ -256,9 +245,8 @@ int32_t GPS::runOnce() bool tooLong = wakeTime != UINT32_MAX && (now - lastWakeStartMsec) > wakeTime; // Once we get a location we no longer desperately want an update - // or if we got a time and we are in GpsOpTimeOnly mode // DEBUG_MSG("gotLoc %d, tooLong %d, gotTime %d\n", gotLoc, tooLong, gotTime); - if ((gotLoc && gotTime) || tooLong || (gotTime && getGpsOp() == GpsOperation_GpsOpTimeOnly)) { + if ((gotLoc && gotTime) || tooLong) { if (tooLong) { // we didn't get a location during this ack window, therefore declare loss of lock diff --git a/src/gps/GPS.h b/src/gps/GPS.h index 4764d1fb..8d483359 100644 --- a/src/gps/GPS.h +++ b/src/gps/GPS.h @@ -138,8 +138,6 @@ class GPS : private concurrency::OSThread */ uint32_t getSleepTime() const; - GpsOperation getGpsOp() const; - /** * Tell users we have new GPS readings */ diff --git a/src/mesh/generated/radioconfig.pb.h b/src/mesh/generated/radioconfig.pb.h index 487c0838..dc46c0f5 100644 --- a/src/mesh/generated/radioconfig.pb.h +++ b/src/mesh/generated/radioconfig.pb.h @@ -51,14 +51,6 @@ typedef enum _ChargeCurrent { ChargeCurrent_MA1320 = 16 } ChargeCurrent; -typedef enum _GpsOperation { - GpsOperation_GpsOpUnset = 0, - GpsOperation_GpsOpStationary = 1, - GpsOperation_GpsOpMobile = 2, - GpsOperation_GpsOpTimeOnly = 3, - GpsOperation_GpsOpDisabled = 4 -} GpsOperation; - typedef enum _GpsCoordinateFormat { GpsCoordinateFormat_GpsFormatDec = 0, GpsCoordinateFormat_GpsFormatDMS = 1, @@ -124,7 +116,7 @@ typedef struct _RadioConfig_UserPreferences { bool position_broadcast_smart_disabled; Role role; bool disable_location_share; - GpsOperation gps_operation; + bool gps_disabled; uint32_t gps_update_interval; uint32_t gps_attempt_time; bool is_low_power; @@ -211,10 +203,6 @@ typedef struct _RadioConfig { #define _ChargeCurrent_MAX ChargeCurrent_MA1320 #define _ChargeCurrent_ARRAYSIZE ((ChargeCurrent)(ChargeCurrent_MA1320+1)) -#define _GpsOperation_MIN GpsOperation_GpsOpUnset -#define _GpsOperation_MAX GpsOperation_GpsOpDisabled -#define _GpsOperation_ARRAYSIZE ((GpsOperation)(GpsOperation_GpsOpDisabled+1)) - #define _GpsCoordinateFormat_MIN GpsCoordinateFormat_GpsFormatDec #define _GpsCoordinateFormat_MAX GpsCoordinateFormat_GpsFormatOSGR #define _GpsCoordinateFormat_ARRAYSIZE ((GpsCoordinateFormat)(GpsCoordinateFormat_GpsFormatOSGR+1)) @@ -238,9 +226,9 @@ extern "C" { /* Initializer values for message structs */ #define RadioConfig_init_default {false, RadioConfig_UserPreferences_init_default} -#define RadioConfig_UserPreferences_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, _RegionCode_MIN, _ChargeCurrent_MIN, 0, _Role_MIN, 0, _GpsOperation_MIN, 0, 0, 0, 0, 0, 0, "", 0, _GpsCoordinateFormat_MIN, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_TelemetrySensorType_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, 0, 0, 0, 0, _InputEventChar_MIN, _InputEventChar_MIN, _InputEventChar_MIN, 0, "", 0, 0, 0, 0} +#define RadioConfig_UserPreferences_init_default {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, _RegionCode_MIN, _ChargeCurrent_MIN, 0, _Role_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", 0, _GpsCoordinateFormat_MIN, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_TelemetrySensorType_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, 0, 0, 0, 0, _InputEventChar_MIN, _InputEventChar_MIN, _InputEventChar_MIN, 0, "", 0, 0, 0, 0} #define RadioConfig_init_zero {false, RadioConfig_UserPreferences_init_zero} -#define RadioConfig_UserPreferences_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, _RegionCode_MIN, _ChargeCurrent_MIN, 0, _Role_MIN, 0, _GpsOperation_MIN, 0, 0, 0, 0, 0, 0, "", 0, _GpsCoordinateFormat_MIN, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_TelemetrySensorType_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, 0, 0, 0, 0, _InputEventChar_MIN, _InputEventChar_MIN, _InputEventChar_MIN, 0, "", 0, 0, 0, 0} +#define RadioConfig_UserPreferences_init_zero {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, _RegionCode_MIN, _ChargeCurrent_MIN, 0, _Role_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", 0, _GpsCoordinateFormat_MIN, 0, 0, 0, 0, 0, {0, 0, 0}, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, _RadioConfig_UserPreferences_TelemetrySensorType_MIN, 0, 0, 0, 0, 0, 0, 0, 0, "", "", 0, 0, 0, 0, 0, 0, _InputEventChar_MIN, _InputEventChar_MIN, _InputEventChar_MIN, 0, "", 0, 0, 0, 0} /* Field tags (for use in manual encoding/decoding) */ #define RadioConfig_UserPreferences_position_broadcast_secs_tag 1 @@ -261,7 +249,7 @@ extern "C" { #define RadioConfig_UserPreferences_position_broadcast_smart_disabled_tag 17 #define RadioConfig_UserPreferences_role_tag 18 #define RadioConfig_UserPreferences_disable_location_share_tag 32 -#define RadioConfig_UserPreferences_gps_operation_tag 33 +#define RadioConfig_UserPreferences_gps_disabled_tag 33 #define RadioConfig_UserPreferences_gps_update_interval_tag 34 #define RadioConfig_UserPreferences_gps_attempt_time_tag 36 #define RadioConfig_UserPreferences_is_low_power_tag 38 @@ -354,7 +342,7 @@ X(a, STATIC, SINGULAR, UENUM, charge_current, 16) \ X(a, STATIC, SINGULAR, BOOL, position_broadcast_smart_disabled, 17) \ X(a, STATIC, SINGULAR, UENUM, role, 18) \ X(a, STATIC, SINGULAR, BOOL, disable_location_share, 32) \ -X(a, STATIC, SINGULAR, UENUM, gps_operation, 33) \ +X(a, STATIC, SINGULAR, BOOL, gps_disabled, 33) \ X(a, STATIC, SINGULAR, UINT32, gps_update_interval, 34) \ X(a, STATIC, SINGULAR, UINT32, gps_attempt_time, 36) \ X(a, STATIC, SINGULAR, BOOL, is_low_power, 38) \