diff --git a/data_embed/index.html b/data_embed/index.html index ca75c85..bf73bf3 100644 --- a/data_embed/index.html +++ b/data_embed/index.html @@ -853,7 +853,9 @@ id="lora.rxSpreadingFactor" required="" > - + + + @@ -873,7 +875,9 @@ id="lora.txSpreadingFactor" required="" > - + + + diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 0fd5d11..a280100 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -67,8 +67,8 @@ ___________________________________________________________________*/ #endif -String versionDate = "2025-12-29"; -String versionNumber = "3.1.7"; +String versionDate = "2026-01-07"; +String versionNumber = "3.1.7.1"; Configuration Config; WiFiClient aprsIsClient; WiFiClient mqttClient; diff --git a/src/configuration.cpp b/src/configuration.cpp index adbcc3b..4d2e0c2 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -92,15 +92,31 @@ bool Configuration::writeFile() { data["lora"]["rxActive"] = loramodule.rxActive; data["lora"]["rxFreq"] = loramodule.rxFreq; - data["lora"]["rxSpreadingFactor"] = loramodule.rxSpreadingFactor; data["lora"]["rxCodingRate4"] = loramodule.rxCodingRate4; data["lora"]["rxSignalBandwidth"] = loramodule.rxSignalBandwidth; data["lora"]["txActive"] = loramodule.txActive; data["lora"]["txFreq"] = loramodule.txFreq; - data["lora"]["txSpreadingFactor"] = loramodule.txSpreadingFactor; data["lora"]["txCodingRate4"] = loramodule.txCodingRate4; data["lora"]["txSignalBandwidth"] = loramodule.txSignalBandwidth; - data["lora"]["power"] = loramodule.power; + data["lora"]["power"] = loramodule.power; + + int rxSpreadingFactor = loramodule.rxSpreadingFactor; + int txSpreadingFactor = loramodule.txSpreadingFactor; + #if defined(HAS_SX1276) || defined(HAS_SX1278) + const int minSF = 6, maxSF = 12; + #endif + #if defined(HAS_SX1262) || defined(HAS_SX1268) + const int minSF = 5, maxSF = 12; + #endif + #if defined(HAS_LLCC68) + const int minSF = 5, maxSF = 11; + #endif + + rxSpreadingFactor = (rxSpreadingFactor < minSF) ? minSF : (rxSpreadingFactor > maxSF) ? maxSF : rxSpreadingFactor; + txSpreadingFactor = (txSpreadingFactor < minSF) ? minSF : (txSpreadingFactor > maxSF) ? maxSF : txSpreadingFactor; + + data["lora"]["rxSpreadingFactor"] = rxSpreadingFactor; + data["lora"]["txSpreadingFactor"] = txSpreadingFactor; data["display"]["alwaysOn"] = display.alwaysOn; data["display"]["timeout"] = display.timeout;