|
|
|
@ -55,12 +55,12 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) { |
|
|
|
file.read((uint8_t *)&_prefs->tx_power_dbm, sizeof(_prefs->tx_power_dbm)); // 76
|
|
|
|
file.read((uint8_t *)&_prefs->disable_fwd, sizeof(_prefs->disable_fwd)); // 77
|
|
|
|
file.read((uint8_t *)&_prefs->advert_interval, sizeof(_prefs->advert_interval)); // 78
|
|
|
|
file.read((uint8_t *)pad, 1); // 79 was 'unused'
|
|
|
|
file.read((uint8_t *)&_prefs->rx_boosted_gain, sizeof(_prefs->rx_boosted_gain)); // 79
|
|
|
|
file.read((uint8_t *)&_prefs->rx_delay_base, sizeof(_prefs->rx_delay_base)); // 80
|
|
|
|
file.read((uint8_t *)&_prefs->tx_delay_factor, sizeof(_prefs->tx_delay_factor)); // 84
|
|
|
|
file.read((uint8_t *)&_prefs->guest_password[0], sizeof(_prefs->guest_password)); // 88
|
|
|
|
file.read((uint8_t *)&_prefs->direct_tx_delay_factor, sizeof(_prefs->direct_tx_delay_factor)); // 104
|
|
|
|
file.read(pad, 4); // 108
|
|
|
|
file.read(pad, 4); // 108 : 4 bytes unused
|
|
|
|
file.read((uint8_t *)&_prefs->sf, sizeof(_prefs->sf)); // 112
|
|
|
|
file.read((uint8_t *)&_prefs->cr, sizeof(_prefs->cr)); // 113
|
|
|
|
file.read((uint8_t *)&_prefs->allow_read_only, sizeof(_prefs->allow_read_only)); // 114
|
|
|
|
@ -85,9 +85,9 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) { |
|
|
|
file.read((uint8_t *)&_prefs->gps_interval, sizeof(_prefs->gps_interval)); // 157
|
|
|
|
file.read((uint8_t *)&_prefs->advert_loc_policy, sizeof (_prefs->advert_loc_policy)); // 161
|
|
|
|
file.read((uint8_t *)&_prefs->discovery_mod_timestamp, sizeof(_prefs->discovery_mod_timestamp)); // 162
|
|
|
|
file.read((uint8_t *)&_prefs->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166
|
|
|
|
file.read((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
|
|
|
|
// 290
|
|
|
|
file.read((uint8_t *)&_prefs->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166
|
|
|
|
file.read((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
|
|
|
|
// next: 290
|
|
|
|
|
|
|
|
// sanitise bad pref values
|
|
|
|
_prefs->rx_delay_base = constrain(_prefs->rx_delay_base, 0, 20.0f); |
|
|
|
@ -115,6 +115,9 @@ void CommonCLI::loadPrefsInt(FILESYSTEM* fs, const char* filename) { |
|
|
|
_prefs->gps_enabled = constrain(_prefs->gps_enabled, 0, 1); |
|
|
|
_prefs->advert_loc_policy = constrain(_prefs->advert_loc_policy, 0, 2); |
|
|
|
|
|
|
|
// sanitise settings
|
|
|
|
_prefs->rx_boosted_gain = constrain(_prefs->rx_boosted_gain, 0, 1); // boolean
|
|
|
|
|
|
|
|
file.close(); |
|
|
|
} |
|
|
|
} |
|
|
|
@ -142,12 +145,12 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) { |
|
|
|
file.write((uint8_t *)&_prefs->tx_power_dbm, sizeof(_prefs->tx_power_dbm)); // 76
|
|
|
|
file.write((uint8_t *)&_prefs->disable_fwd, sizeof(_prefs->disable_fwd)); // 77
|
|
|
|
file.write((uint8_t *)&_prefs->advert_interval, sizeof(_prefs->advert_interval)); // 78
|
|
|
|
file.write((uint8_t *)pad, 1); // 79 was 'unused'
|
|
|
|
file.write((uint8_t *)&_prefs->rx_boosted_gain, sizeof(_prefs->rx_boosted_gain)); // 79
|
|
|
|
file.write((uint8_t *)&_prefs->rx_delay_base, sizeof(_prefs->rx_delay_base)); // 80
|
|
|
|
file.write((uint8_t *)&_prefs->tx_delay_factor, sizeof(_prefs->tx_delay_factor)); // 84
|
|
|
|
file.write((uint8_t *)&_prefs->guest_password[0], sizeof(_prefs->guest_password)); // 88
|
|
|
|
file.write((uint8_t *)&_prefs->direct_tx_delay_factor, sizeof(_prefs->direct_tx_delay_factor)); // 104
|
|
|
|
file.write(pad, 4); // 108
|
|
|
|
file.write(pad, 4); // 108 : 4 byte unused
|
|
|
|
file.write((uint8_t *)&_prefs->sf, sizeof(_prefs->sf)); // 112
|
|
|
|
file.write((uint8_t *)&_prefs->cr, sizeof(_prefs->cr)); // 113
|
|
|
|
file.write((uint8_t *)&_prefs->allow_read_only, sizeof(_prefs->allow_read_only)); // 114
|
|
|
|
@ -173,8 +176,8 @@ void CommonCLI::savePrefs(FILESYSTEM* fs) { |
|
|
|
file.write((uint8_t *)&_prefs->advert_loc_policy, sizeof(_prefs->advert_loc_policy)); // 161
|
|
|
|
file.write((uint8_t *)&_prefs->discovery_mod_timestamp, sizeof(_prefs->discovery_mod_timestamp)); // 162
|
|
|
|
file.write((uint8_t *)&_prefs->adc_multiplier, sizeof(_prefs->adc_multiplier)); // 166
|
|
|
|
file.write((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
|
|
|
|
// 290
|
|
|
|
file.write((uint8_t *)_prefs->owner_info, sizeof(_prefs->owner_info)); // 170
|
|
|
|
// next: 290
|
|
|
|
|
|
|
|
file.close(); |
|
|
|
} |
|
|
|
@ -318,6 +321,10 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch |
|
|
|
sprintf(reply, "> %s", StrHelper::ftoa(_prefs->node_lat)); |
|
|
|
} else if (memcmp(config, "lon", 3) == 0) { |
|
|
|
sprintf(reply, "> %s", StrHelper::ftoa(_prefs->node_lon)); |
|
|
|
#if defined(USE_SX1262) || defined(USE_SX1268) |
|
|
|
} else if (memcmp(config, "radio.rxgain", 12) == 0) { |
|
|
|
sprintf(reply, "> %s", _prefs->rx_boosted_gain ? "on" : "off"); |
|
|
|
#endif |
|
|
|
} else if (memcmp(config, "radio", 5) == 0) { |
|
|
|
char freq[16], bw[16]; |
|
|
|
strcpy(freq, StrHelper::ftoa(_prefs->freq)); |
|
|
|
@ -511,6 +518,13 @@ void CommonCLI::handleCommand(uint32_t sender_timestamp, const char* command, ch |
|
|
|
_prefs->disable_fwd = memcmp(&config[7], "off", 3) == 0; |
|
|
|
savePrefs(); |
|
|
|
strcpy(reply, _prefs->disable_fwd ? "OK - repeat is now OFF" : "OK - repeat is now ON"); |
|
|
|
#if defined(USE_SX1262) || defined(USE_SX1268) |
|
|
|
} else if (memcmp(config, "radio.rxgain ", 13) == 0) { |
|
|
|
_prefs->rx_boosted_gain = memcmp(&config[13], "on", 2) == 0; |
|
|
|
strcpy(reply, "OK"); |
|
|
|
savePrefs(); |
|
|
|
_callbacks->setRxBoostedGain(_prefs->rx_boosted_gain); |
|
|
|
#endif |
|
|
|
} else if (memcmp(config, "radio ", 6) == 0) { |
|
|
|
strcpy(tmp, &config[6]); |
|
|
|
const char *parts[4]; |
|
|
|
|