diff --git a/platformio.ini b/platformio.ini index 0bc8224..3fda3a6 100644 --- a/platformio.ini +++ b/platformio.ini @@ -15,7 +15,7 @@ lib_deps = sandeepmistry/LoRa @ 0.7.2 peterus/APRS-Decoder-Lib @ 0.0.5 peterus/APRS-IS-Lib @ 0.0.7 - peterus/LoRa-APRS-Lib @ 0.0.4 + peterus/LoRa-APRS-Lib @ 0.0.5 check_tool = cppcheck check_flags = cppcheck: --suppress=*:*.pio\* --inline-suppr diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 068d748..4754501 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -171,14 +171,14 @@ void loop() std::shared_ptr msg = lora_aprs.getMessage(); setup_display(); secondsSinceDisplay = 0; display_is_on = true; - show_display(Config.callsign, timeClient.getFormattedTime() + " LoRa", "RSSI: " + String(lora_aprs.getMessageRssi()) + ", SNR: " + String(lora_aprs.getMessageSnr()), msg->toString()); + show_display(Config.callsign, timeClient.getFormattedTime() + " LoRa", "RSSI: " + String(lora_aprs.packetRssi()) + ", SNR: " + String(lora_aprs.packetSnr()), msg->toString()); Serial.print("[" + timeClient.getFormattedTime() + "] "); Serial.print(" Received packet '"); Serial.print(msg->toString()); Serial.print("' with RSSI "); - Serial.print(lora_aprs.getMessageRssi()); + Serial.print(lora_aprs.packetRssi()); Serial.print(" and SNR "); - Serial.println(lora_aprs.getMessageSnr()); + Serial.println(lora_aprs.packetSnr()); if(Config.aprs_is.active) { @@ -191,9 +191,9 @@ void loop() Serial.print("Message already received as repeater: '"); Serial.print(msg->toString()); Serial.print("' with RSSI "); - Serial.print(lora_aprs.getMessageRssi()); + Serial.print(lora_aprs.packetRssi()); Serial.print(" and SNR "); - Serial.println(lora_aprs.getMessageSnr()); + Serial.println(lora_aprs.packetSnr()); return; } @@ -212,13 +212,13 @@ void loop() if(foundMsg == lastMessages.end()) { setup_display(); secondsSinceDisplay = 0; display_is_on = true; - show_display(Config.callsign, "RSSI: " + String(lora_aprs.getMessageRssi()) + ", SNR: " + String(lora_aprs.getMessageSnr()), msg->toString(), 0); + show_display(Config.callsign, "RSSI: " + String(lora_aprs.packetRssi()) + ", SNR: " + String(lora_aprs.packetSnr()), msg->toString(), 0); Serial.print("Received packet '"); Serial.print(msg->toString()); Serial.print("' with RSSI "); - Serial.print(lora_aprs.getMessageRssi()); + Serial.print(lora_aprs.packetRssi()); Serial.print(" and SNR "); - Serial.println(lora_aprs.getMessageSnr()); + Serial.println(lora_aprs.packetSnr()); msg->setPath(String(Config.callsign) + "*"); lora_aprs.sendMessage(msg); lastMessages.insert({secondsSinceStartup, msg}); @@ -228,9 +228,9 @@ void loop() Serial.print("Message already received (timeout): '"); Serial.print(msg->toString()); Serial.print("' with RSSI "); - Serial.print(lora_aprs.getMessageRssi()); + Serial.print(lora_aprs.packetRssi()); Serial.print(" and SNR "); - Serial.println(lora_aprs.getMessageSnr()); + Serial.println(lora_aprs.packetSnr()); } return; } @@ -362,15 +362,18 @@ void setup_ota() void setup_lora() { - lora_aprs.rx_frequency = Config.lora.frequencyRx; - lora_aprs.tx_frequency = Config.lora.frequencyTx; - if (!lora_aprs.begin()) + lora_aprs.setRxFrequency(Config.lora.frequencyRx); + lora_aprs.setTxFrequency(Config.lora.frequencyTx); + if (!lora_aprs.begin(lora_aprs.getRxFrequency())) { Serial.println("[ERROR] Starting LoRa failed!"); show_display("ERROR", "Starting LoRa failed!"); 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