From 38e77ec2722d57ab7802b0b172dfe0cb0a5a013d Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 1 Nov 2020 00:42:20 +0100 Subject: [PATCH 1/2] preperation for version change --- platformio.ini | 2 +- src/LoRa_APRS_iGate.cpp | 26 +++++++++++++------------- 2 files changed, 14 insertions(+), 14 deletions(-) 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 a65c8c4..62fe1f8 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -167,14 +167,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) { @@ -187,9 +187,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; } @@ -208,13 +208,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}); @@ -224,9 +224,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; } @@ -358,9 +358,9 @@ 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!"); From 3608e69fe5d93ac99177bb6e2480ca0c4fe12e99 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 1 Nov 2020 01:26:06 +0100 Subject: [PATCH 2/2] add config for spreading factor, signal bandwith and coding rate 4 --- src/LoRa_APRS_iGate.cpp | 3 +++ src/configuration.cpp | 9 +++++++++ src/configuration.h | 5 ++++- 3 files changed, 16 insertions(+), 1 deletion(-) 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