diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index a1d1f93..4890bf3 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -365,6 +365,9 @@ void setup_lora() while (1); } lora_aprs.setTxPower(Config.lora.power); + lora_aprs.setSpreadingFactor(Config.lora.spreadingFactor); + lora_aprs.setSignalBandwidth(Config.lora.signalBandwidth); + lora_aprs.setCodingRate4(Config.lora.codingRate4); Serial.println("[INFO] LoRa init done!"); show_display("INFO", "LoRa init done!", 2000); diff --git a/src/configuration.cpp b/src/configuration.cpp index 6240063..264d202 100644 --- a/src/configuration.cpp +++ b/src/configuration.cpp @@ -69,6 +69,12 @@ Configuration ConfigurationManagement::readConfiguration() conf.display.timeout = data["display"]["timeout"]; conf.display.overwritePin = data["display"]["overwrite_pin"]; } + if(data["version"] >= 3) + { + conf.lora.spreadingFactor = data["lora"]["spreading_factor"]; + conf.lora.signalBandwidth = data["lora"]["signal_bandwidth"]; + conf.lora.codingRate4 = data["lora"]["coding_rate4"]; + } return conf; } @@ -110,6 +116,9 @@ void ConfigurationManagement::writeConfiguration(Configuration conf) data["lora"]["frequency_rx"] = conf.lora.frequencyRx; data["lora"]["frequency_tx"] = conf.lora.frequencyTx; data["lora"]["power"] = conf.lora.power; + data["lora"]["spreading_factor"] = conf.lora.spreadingFactor; + data["lora"]["signal_bandwidth"] = conf.lora.signalBandwidth; + data["lora"]["coding_rate4"] = conf.lora.codingRate4; data["display"]["always_on"] = conf.display.alwaysOn; data["display"]["timeout"] = conf.display.timeout; data["display"]["overwrite_pin"] = conf.display.overwritePin; diff --git a/src/configuration.h b/src/configuration.h index 02747bc..601904c 100644 --- a/src/configuration.h +++ b/src/configuration.h @@ -62,11 +62,14 @@ public: class LoRa { public: - LoRa() : frequencyRx(433775000), frequencyTx(433775000), power(20) {} + LoRa() : frequencyRx(433775000), frequencyTx(433775000), power(20), spreadingFactor(12), signalBandwidth(125000), codingRate4(5) {} long frequencyRx; long frequencyTx; int power; + int spreadingFactor; + long signalBandwidth; + int codingRate4; }; class Display