Browse Source

add GPS interval validation and bounds checking

pull/1156/head
csrutil 6 months ago
parent
commit
678915ef3b
  1. 9
      examples/companion_radio/MyMesh.cpp

9
examples/companion_radio/MyMesh.cpp

@ -779,6 +779,7 @@ void MyMesh::begin(bool has_display) {
_prefs.cr = constrain(_prefs.cr, 5, 8); _prefs.cr = constrain(_prefs.cr, 5, 8);
_prefs.tx_power_dbm = constrain(_prefs.tx_power_dbm, 1, MAX_LORA_TX_POWER); _prefs.tx_power_dbm = constrain(_prefs.tx_power_dbm, 1, MAX_LORA_TX_POWER);
_prefs.gps_enabled = constrain(_prefs.gps_enabled, 0, 1); // Ensure boolean 0 or 1 _prefs.gps_enabled = constrain(_prefs.gps_enabled, 0, 1); // Ensure boolean 0 or 1
_prefs.gps_interval = constrain(_prefs.gps_interval, 0, 86400); // Max 24 hours
#ifdef BLE_PIN_CODE // 123456 by default #ifdef BLE_PIN_CODE // 123456 by default
if (_prefs.ble_pin == 0) { if (_prefs.ble_pin == 0) {
@ -809,9 +810,11 @@ void MyMesh::begin(bool has_display) {
#if ENV_INCLUDE_GPS == 1 #if ENV_INCLUDE_GPS == 1
sensors.setSettingValue("gps", _prefs.gps_enabled ? "1" : "0"); sensors.setSettingValue("gps", _prefs.gps_enabled ? "1" : "0");
char interval_str[12]; // Max: 24 hours = 86400 seconds (5 digits + null) if (_prefs.gps_interval > 0) {
sprintf(interval_str, "%u", _prefs.gps_interval); char interval_str[12]; // Max: 24 hours = 86400 seconds (5 digits + null)
sensors.setSettingValue("gps_interval", interval_str); sprintf(interval_str, "%u", _prefs.gps_interval);
sensors.setSettingValue("gps_interval", interval_str);
}
#endif #endif
} }

Loading…
Cancel
Save