From 9acfce8ee2144a63c1d4080e0b56c76cbdc03b5c Mon Sep 17 00:00:00 2001 From: dj1an Date: Wed, 25 Aug 2021 20:07:13 +0200 Subject: [PATCH 01/19] Initial add RX TX Parameters --- data/is-cfg.json | 9 +++-- lib/LoRa_APRS/LoRa_APRS.cpp | 65 ++++++++++++++++++++++++++++++++++- src/TaskModem.cpp | 9 +++-- src/project_configuration.cpp | 36 +++++++++++-------- src/project_configuration.h | 11 +++--- 5 files changed, 104 insertions(+), 26 deletions(-) diff --git a/data/is-cfg.json b/data/is-cfg.json index 736d44c..7f1c696 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -38,9 +38,12 @@ "frequency_rx": 433775000, "frequency_tx": 433775000, "power": 20, - "spreading_factor": 12, - "signal_bandwidth": 125000, - "coding_rate4": 5 + "spreading_factor_rx": 12, + "signal_bandwidth_rx": 125000, + "coding_rate4_rx": 5, + "spreading_factor_tx": 12, + "signal_bandwidth_tx": 125000, + "coding_rate4_tx": 5 }, "display": { "always_on": true, diff --git a/lib/LoRa_APRS/LoRa_APRS.cpp b/lib/LoRa_APRS/LoRa_APRS.cpp index ea28f8b..eac6a4f 100644 --- a/lib/LoRa_APRS/LoRa_APRS.cpp +++ b/lib/LoRa_APRS/LoRa_APRS.cpp @@ -1,6 +1,6 @@ #include "LoRa_APRS.h" -LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000) { +LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000), _RxSpreadingFactor(12), _RxSignalBandwidth(125000), _RxCodingRate4(5), _TxSpreadingFactor(12), _TxSignalBandwidth(125000), _TxCodingRate4(5) { } bool LoRa_APRS::checkMessage() { @@ -32,6 +32,9 @@ std::shared_ptr LoRa_APRS::getMessage() { } void LoRa_APRS::sendMessage(const std::shared_ptr msg) { + setSpreadingFactor(_TxSpreadingFactor); + setSignalBandwidth(_TxSignalBandwidth); + setCodingRate4(_TxCodingRate4); setFrequency(_TxFrequency); String data = msg->encode(); beginPacket(); @@ -42,6 +45,9 @@ void LoRa_APRS::sendMessage(const std::shared_ptr msg) { // APRS Data: write((const uint8_t *)data.c_str(), data.length()); endPacket(); + setSpreadingFactor(_RxSpreadingFactor); + setSignalBandwidth(_RxSignalBandwidth); + setCodingRate4(_RxCodingRate4); setFrequency(_RxFrequency); } @@ -63,3 +69,60 @@ void LoRa_APRS::setTxFrequency(long frequency) { long LoRa_APRS::getTxFrequency() const { return _TxFrequency; } + +void LoRa_APRS::setRxSpreadingFactor(int spreadingFactor) { + _RxSpreadingFactor = spreadingFactor; + setSpreadingFactor(_RxSpreadingFactor); +} + +// cppcheck-suppress unusedFunction +long LoRa_APRS::getRxSpreadingFactor() const { + return _RxSpreadingFactor; +} + +void LoRa_APRS::setRxSignalBandwidth(long signalBandwidth) { + _RxSignalBandwidth = signalBandwidth; + setSignalBandwidth(_RxSignalBandwidth); +} + +// cppcheck-suppress unusedFunction +long LoRa_APRS::getRxSignalBandwidth() const { + return _RxSignalBandwidth; +} + +void LoRa_APRS::setRxCodingRate4(int codingRate) { + _RxCodingRate4 = codingRate; + setCodingRate4(_RxCodingRate4); +} + +// cppcheck-suppress unusedFunction +long LoRa_APRS::getRxCodingRate4() const { + return _RxCodingRate4; +} + +void LoRa_APRS::setTxSpreadingFactor(int spreadingFactor) { + _TxSpreadingFactor = spreadingFactor; +} + +// cppcheck-suppress unusedFunction +long LoRa_APRS::getTxSpreadingFactor() const { + return _TxSpreadingFactor; +} + +void LoRa_APRS::setTxSignalBandwidth(long signalBandwidth) { + _TxSignalBandwidth = signalBandwidth; +} + +// cppcheck-suppress unusedFunction +long LoRa_APRS::getTxSignalBandwidth() const { + return _TxSignalBandwidth; +} + +void LoRa_APRS::setTxCodingRate4(int codingRate) { + _TxCodingRate4 = codingRate; +} + +// cppcheck-suppress unusedFunction +long LoRa_APRS::getTxCodingRate4() const { + return _TxCodingRate4; +} diff --git a/src/TaskModem.cpp b/src/TaskModem.cpp index 7dad353..6fbc1b2 100644 --- a/src/TaskModem.cpp +++ b/src/TaskModem.cpp @@ -26,9 +26,12 @@ bool ModemTask::setup(System &system) { _lora_aprs.setRxFrequency(system.getUserConfig()->lora.frequencyRx); _lora_aprs.setTxFrequency(system.getUserConfig()->lora.frequencyTx); _lora_aprs.setTxPower(system.getUserConfig()->lora.power); - _lora_aprs.setSpreadingFactor(system.getUserConfig()->lora.spreadingFactor); - _lora_aprs.setSignalBandwidth(system.getUserConfig()->lora.signalBandwidth); - _lora_aprs.setCodingRate4(system.getUserConfig()->lora.codingRate4); + _lora_aprs.setRxSpreadingFactor(system.getUserConfig()->lora.spreadingFactorRx); + _lora_aprs.setRxSignalBandwidth(system.getUserConfig()->lora.signalBandwidthRx); + _lora_aprs.setRxCodingRate4(system.getUserConfig()->lora.codingRate4Rx); + _lora_aprs.setTxSpreadingFactor(system.getUserConfig()->lora.spreadingFactorTx); + _lora_aprs.setTxSignalBandwidth(system.getUserConfig()->lora.signalBandwidthTx); + _lora_aprs.setTxCodingRate4(system.getUserConfig()->lora.codingRate4Tx); _lora_aprs.enableCrc(); _stateInfo = ""; diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 656d284..8a46f1a 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -36,18 +36,21 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.aprs_is.server = data["aprs_is"]["server"].as(); conf.aprs_is.port = data["aprs_is"]["port"] | 14580; - conf.digi.active = data["digi"]["active"] | false; - conf.digi.beacon = data["digi"]["beacon"] | false; - conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000; - conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000; - conf.lora.power = data["lora"]["power"] | 20; - conf.lora.spreadingFactor = data["lora"]["spreading_factor"] | 12; - conf.lora.signalBandwidth = data["lora"]["signal_bandwidth"] | 125000; - conf.lora.codingRate4 = data["lora"]["coding_rate4"] | 5; - conf.display.alwaysOn = data["display"]["always_on"] | true; - conf.display.timeout = data["display"]["timeout"] | 10; - conf.display.overwritePin = data["display"]["overwrite_pin"] | 0; - conf.display.turn180 = data["display"]["turn180"] | true; + conf.digi.active = data["digi"]["active"] | false; + conf.digi.beacon = data["digi"]["beacon"] | false; + conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000; + conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000; + conf.lora.power = data["lora"]["power"] | 20; + conf.lora.spreadingFactorRx = data["lora"]["spreading_factor_rx"] | 12; + conf.lora.signalBandwidthRx = data["lora"]["signal_bandwidth_rx"] | 125000; + conf.lora.codingRate4Rx = data["lora"]["coding_rate4_rx"] | 5; + conf.lora.spreadingFactorTx = data["lora"]["spreading_factor_tx"] | 12; + conf.lora.signalBandwidthTx = data["lora"]["signal_bandwidth_tx"] | 125000; + conf.lora.codingRate4Tx = data["lora"]["coding_rate4_tx"] | 5; + conf.display.alwaysOn = data["display"]["always_on"] | true; + conf.display.timeout = data["display"]["timeout"] | 10; + conf.display.overwritePin = data["display"]["overwrite_pin"] | 0; + conf.display.turn180 = data["display"]["turn180"] | true; conf.ftp.active = data["ftp"]["active"] | false; JsonArray users = data["ftp"]["user"].as(); @@ -101,9 +104,12 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co 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["lora"]["spreading_factor_rx"] = conf.lora.spreadingFactorRx; + data["lora"]["signal_bandwidth_rx"] = conf.lora.signalBandwidthRx; + data["lora"]["coding_rate4_rx"] = conf.lora.codingRate4Rx; + data["lora"]["spreading_factor_tx"] = conf.lora.spreadingFactorTx; + data["lora"]["signal_bandwidth_tx"] = conf.lora.signalBandwidthTx; + data["lora"]["coding_rate4_tx"] = conf.lora.codingRate4Tx; data["display"]["always_on"] = conf.display.alwaysOn; data["display"]["timeout"] = conf.display.timeout; data["display"]["overwrite_pin"] = conf.display.overwritePin; diff --git a/src/project_configuration.h b/src/project_configuration.h index b2ba0bc..ff3ae9b 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -66,15 +66,18 @@ public: class LoRa { public: - LoRa() : frequencyRx(433775000), frequencyTx(433775000), power(20), spreadingFactor(12), signalBandwidth(125000), codingRate4(5) { + LoRa() : frequencyRx(433775000), frequencyTx(433775000), power(20), spreadingFactorRx(12), signalBandwidthRx(125000), codingRate4Rx(5), spreadingFactorTx(12), signalBandwidthTx(125000), codingRate4Tx(5) { } long frequencyRx; long frequencyTx; int power; - int spreadingFactor; - long signalBandwidth; - int codingRate4; + int spreadingFactorRx; + long signalBandwidthRx; + int codingRate4Rx; + int spreadingFactorTx; + long signalBandwidthTx; + int codingRate4Tx; }; class Display { From ebf214ba210c445a41988322b710e0194c9e667b Mon Sep 17 00:00:00 2001 From: dj1an Date: Mon, 30 Aug 2021 21:15:47 +0200 Subject: [PATCH 02/19] header changes --- lib/LoRa_APRS/LoRa_APRS.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lib/LoRa_APRS/LoRa_APRS.h b/lib/LoRa_APRS/LoRa_APRS.h index cacd0fe..854a733 100644 --- a/lib/LoRa_APRS/LoRa_APRS.h +++ b/lib/LoRa_APRS/LoRa_APRS.h @@ -22,10 +22,34 @@ public: void setTxFrequency(long frequency); long getTxFrequency() const; + void setRxSpreadingFactor(int spreadingFactor); + long getRxSpreadingFactor() const; + + void setRxSignalBandwidth(long signalBandwidth); + long getRxSignalBandwidth() const; + + void setRxCodingRate4(int codingRate); + long getRxCodingRate4() const; + + void setTxSpreadingFactor(int spreadingFactor); + long getTxSpreadingFactor() const; + + void setTxSignalBandwidth(long signalBandwidth); + long getTxSignalBandwidth() const; + + void setTxCodingRate4(int codingRate); + long getTxCodingRate4() const; + private: std::shared_ptr _LastReceivedMsg; long _RxFrequency; long _TxFrequency; + int _RxSpreadingFactor; + long _RxSignalBandwidth; + int _RxCodingRate4; + int _TxSpreadingFactor; + long _TxSignalBandwidth; + int _TxCodingRate4; }; #endif From 3cb8d4bcfe1b851451bee8315be236d64e57ad48 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Wed, 1 Sep 2021 21:28:21 +0200 Subject: [PATCH 03/19] version bump to 21.35.0-dev --- src/LoRa_APRS_iGate.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index eb29c1f..05739dd 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -18,7 +18,7 @@ #include "TaskWifi.h" #include "project_configuration.h" -#define VERSION "21.29.0-dev" +#define VERSION "21.35.0-dev" String create_lat_aprs(double lat); String create_long_aprs(double lng); From 3be30a42eb0ae2a6a4fe6dc2303b54214b850b96 Mon Sep 17 00:00:00 2001 From: dj1an Date: Thu, 2 Sep 2021 19:16:44 +0200 Subject: [PATCH 04/19] changed naming Conventions for Variables --- data/is-cfg.json | 19 ++++++------ lib/LoRa_APRS/LoRa_APRS.cpp | 58 +++++++++++++++++------------------ lib/LoRa_APRS/LoRa_APRS.h | 16 +++++----- src/TaskModem.cpp | 22 +++++++------ src/project_configuration.cpp | 41 ++++++++++++++----------- src/project_configuration.h | 21 +++++++------ 6 files changed, 93 insertions(+), 84 deletions(-) diff --git a/data/is-cfg.json b/data/is-cfg.json index 7f1c696..66a8a09 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -35,15 +35,16 @@ "beacon": false }, "lora": { - "frequency_rx": 433775000, - "frequency_tx": 433775000, - "power": 20, - "spreading_factor_rx": 12, - "signal_bandwidth_rx": 125000, - "coding_rate4_rx": 5, - "spreading_factor_tx": 12, - "signal_bandwidth_tx": 125000, - "coding_rate4_tx": 5 + "rxFrequency": 433775000, + "rxSpreadingFactor": 12, + "rxSignalBandwidth": 125000, + "rxCodingRate4": 5, + "rxGain": 1, + "txFrequency": 433900000, + "txSpreadingFactor": 11, + "txSignalBandwidth": 125000, + "txCodingRate4": 5, + "txPower": 20 }, "display": { "always_on": true, diff --git a/lib/LoRa_APRS/LoRa_APRS.cpp b/lib/LoRa_APRS/LoRa_APRS.cpp index eac6a4f..d790d77 100644 --- a/lib/LoRa_APRS/LoRa_APRS.cpp +++ b/lib/LoRa_APRS/LoRa_APRS.cpp @@ -1,6 +1,6 @@ #include "LoRa_APRS.h" -LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000), _RxSpreadingFactor(12), _RxSignalBandwidth(125000), _RxCodingRate4(5), _TxSpreadingFactor(12), _TxSignalBandwidth(125000), _TxCodingRate4(5) { +LoRa_APRS::LoRa_APRS() : _rxFrequency(433775000), _rxSpreadingFactor(12), _rxSignalBandwidth(125000), _rxCodingRate4(5), _txFrequency(433775000), _txSpreadingFactor(12), _txSignalBandwidth(125000), _txCodingRate4(5) { } bool LoRa_APRS::checkMessage() { @@ -32,10 +32,10 @@ std::shared_ptr LoRa_APRS::getMessage() { } void LoRa_APRS::sendMessage(const std::shared_ptr msg) { - setSpreadingFactor(_TxSpreadingFactor); - setSignalBandwidth(_TxSignalBandwidth); - setCodingRate4(_TxCodingRate4); - setFrequency(_TxFrequency); + setSpreadingFactor(_txSpreadingFactor); + setSignalBandwidth(_txSignalBandwidth); + setCodingRate4(_txCodingRate4); + setFrequency(_txFrequency); String data = msg->encode(); beginPacket(); // Header: @@ -45,84 +45,84 @@ void LoRa_APRS::sendMessage(const std::shared_ptr msg) { // APRS Data: write((const uint8_t *)data.c_str(), data.length()); endPacket(); - setSpreadingFactor(_RxSpreadingFactor); - setSignalBandwidth(_RxSignalBandwidth); - setCodingRate4(_RxCodingRate4); - setFrequency(_RxFrequency); + setSpreadingFactor(_rxSpreadingFactor); + setSignalBandwidth(_rxSignalBandwidth); + setCodingRate4(_rxCodingRate4); + setFrequency(_rxFrequency); } void LoRa_APRS::setRxFrequency(long frequency) { - _RxFrequency = frequency; - setFrequency(_RxFrequency); + _rxFrequency = frequency; + setFrequency(_rxFrequency); } // cppcheck-suppress unusedFunction long LoRa_APRS::getRxFrequency() const { - return _RxFrequency; + return _rxFrequency; } void LoRa_APRS::setTxFrequency(long frequency) { - _TxFrequency = frequency; + _txFrequency = frequency; } // cppcheck-suppress unusedFunction long LoRa_APRS::getTxFrequency() const { - return _TxFrequency; + return _txFrequency; } void LoRa_APRS::setRxSpreadingFactor(int spreadingFactor) { - _RxSpreadingFactor = spreadingFactor; - setSpreadingFactor(_RxSpreadingFactor); + _rxSpreadingFactor = spreadingFactor; + setSpreadingFactor(_rxSpreadingFactor); } // cppcheck-suppress unusedFunction long LoRa_APRS::getRxSpreadingFactor() const { - return _RxSpreadingFactor; + return _rxSpreadingFactor; } void LoRa_APRS::setRxSignalBandwidth(long signalBandwidth) { - _RxSignalBandwidth = signalBandwidth; - setSignalBandwidth(_RxSignalBandwidth); + _rxSignalBandwidth = signalBandwidth; + setSignalBandwidth(_rxSignalBandwidth); } // cppcheck-suppress unusedFunction long LoRa_APRS::getRxSignalBandwidth() const { - return _RxSignalBandwidth; + return _rxSignalBandwidth; } void LoRa_APRS::setRxCodingRate4(int codingRate) { - _RxCodingRate4 = codingRate; - setCodingRate4(_RxCodingRate4); + _rxCodingRate4 = codingRate; + setCodingRate4(_rxCodingRate4); } // cppcheck-suppress unusedFunction long LoRa_APRS::getRxCodingRate4() const { - return _RxCodingRate4; + return _rxCodingRate4; } void LoRa_APRS::setTxSpreadingFactor(int spreadingFactor) { - _TxSpreadingFactor = spreadingFactor; + _txSpreadingFactor = spreadingFactor; } // cppcheck-suppress unusedFunction long LoRa_APRS::getTxSpreadingFactor() const { - return _TxSpreadingFactor; + return _txSpreadingFactor; } void LoRa_APRS::setTxSignalBandwidth(long signalBandwidth) { - _TxSignalBandwidth = signalBandwidth; + _txSignalBandwidth = signalBandwidth; } // cppcheck-suppress unusedFunction long LoRa_APRS::getTxSignalBandwidth() const { - return _TxSignalBandwidth; + return _txSignalBandwidth; } void LoRa_APRS::setTxCodingRate4(int codingRate) { - _TxCodingRate4 = codingRate; + _txCodingRate4 = codingRate; } // cppcheck-suppress unusedFunction long LoRa_APRS::getTxCodingRate4() const { - return _TxCodingRate4; + return _txCodingRate4; } diff --git a/lib/LoRa_APRS/LoRa_APRS.h b/lib/LoRa_APRS/LoRa_APRS.h index 854a733..6e92229 100644 --- a/lib/LoRa_APRS/LoRa_APRS.h +++ b/lib/LoRa_APRS/LoRa_APRS.h @@ -42,14 +42,14 @@ public: private: std::shared_ptr _LastReceivedMsg; - long _RxFrequency; - long _TxFrequency; - int _RxSpreadingFactor; - long _RxSignalBandwidth; - int _RxCodingRate4; - int _TxSpreadingFactor; - long _TxSignalBandwidth; - int _TxCodingRate4; + long _rxFrequency; + int _rxSpreadingFactor; + long _rxSignalBandwidth; + int _rxCodingRate4; + long _txFrequency; + int _txSpreadingFactor; + long _txSignalBandwidth; + int _txCodingRate4; }; #endif diff --git a/src/TaskModem.cpp b/src/TaskModem.cpp index 6fbc1b2..ffb8cb2 100644 --- a/src/TaskModem.cpp +++ b/src/TaskModem.cpp @@ -16,22 +16,24 @@ ModemTask::~ModemTask() { bool ModemTask::setup(System &system) { SPI.begin(system.getBoardConfig()->LoraSck, system.getBoardConfig()->LoraMiso, system.getBoardConfig()->LoraMosi, system.getBoardConfig()->LoraCS); _lora_aprs.setPins(system.getBoardConfig()->LoraCS, system.getBoardConfig()->LoraReset, system.getBoardConfig()->LoraIRQ); - if (!_lora_aprs.begin(system.getUserConfig()->lora.frequencyRx)) { + if (!_lora_aprs.begin(system.getUserConfig()->lora.rxFrequency)) { logPrintlnE("Starting LoRa failed!"); _stateInfo = "LoRa-Modem failed"; _state = Error; while (true) ; } - _lora_aprs.setRxFrequency(system.getUserConfig()->lora.frequencyRx); - _lora_aprs.setTxFrequency(system.getUserConfig()->lora.frequencyTx); - _lora_aprs.setTxPower(system.getUserConfig()->lora.power); - _lora_aprs.setRxSpreadingFactor(system.getUserConfig()->lora.spreadingFactorRx); - _lora_aprs.setRxSignalBandwidth(system.getUserConfig()->lora.signalBandwidthRx); - _lora_aprs.setRxCodingRate4(system.getUserConfig()->lora.codingRate4Rx); - _lora_aprs.setTxSpreadingFactor(system.getUserConfig()->lora.spreadingFactorTx); - _lora_aprs.setTxSignalBandwidth(system.getUserConfig()->lora.signalBandwidthTx); - _lora_aprs.setTxCodingRate4(system.getUserConfig()->lora.codingRate4Tx); + _lora_aprs.setRxFrequency(system.getUserConfig()->lora.rxFrequency); + _lora_aprs.setRxSpreadingFactor(system.getUserConfig()->lora.rxSpreadingFactor); + _lora_aprs.setRxSignalBandwidth(system.getUserConfig()->lora.rxSignalBandwidth); + _lora_aprs.setRxCodingRate4(system.getUserConfig()->lora.rxCodingRate4); + _lora_aprs.setGain(system.getUserConfig()->lora.rxGain); + + _lora_aprs.setTxFrequency(system.getUserConfig()->lora.txFrequency); + _lora_aprs.setTxSpreadingFactor(system.getUserConfig()->lora.txSpreadingFactor); + _lora_aprs.setTxSignalBandwidth(system.getUserConfig()->lora.txSignalBandwidth); + _lora_aprs.setTxCodingRate4(system.getUserConfig()->lora.txCodingRate4); + _lora_aprs.setTxPower(system.getUserConfig()->lora.txPower); _lora_aprs.enableCrc(); _stateInfo = ""; diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 8a46f1a..2157b59 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -38,15 +38,19 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.digi.active = data["digi"]["active"] | false; conf.digi.beacon = data["digi"]["beacon"] | false; - conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000; - conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000; - conf.lora.power = data["lora"]["power"] | 20; - conf.lora.spreadingFactorRx = data["lora"]["spreading_factor_rx"] | 12; - conf.lora.signalBandwidthRx = data["lora"]["signal_bandwidth_rx"] | 125000; - conf.lora.codingRate4Rx = data["lora"]["coding_rate4_rx"] | 5; - conf.lora.spreadingFactorTx = data["lora"]["spreading_factor_tx"] | 12; - conf.lora.signalBandwidthTx = data["lora"]["signal_bandwidth_tx"] | 125000; - conf.lora.codingRate4Tx = data["lora"]["coding_rate4_tx"] | 5; + + conf.lora.rxFrequency = data["lora"]["rxFrequency"] | 433775000; + conf.lora.rxSpreadingFactor = data["lora"]["rxSpreadingFactor"] | 12; + conf.lora.rxSignalBandwidth = data["lora"]["rxSignalBandwidth"] | 125000; + conf.lora.rxCodingRate4 = data["lora"]["rxCodingRate4"] | 5; + conf.lora.rxGain = data["lora"]["rxGain"] | 1; + + conf.lora.txFrequency = data["lora"]["txFrequency"] | 433775000; + conf.lora.txSpreadingFactor = data["lora"]["txSpreadingFactor"] | 12; + conf.lora.txSignalBandwidth = data["lora"]["txSignalBandwidth"] | 125000; + conf.lora.txCodingRate4 = data["lora"]["txCodingRate4"] | 5; + conf.lora.txPower = data["lora"]["txPower"] | 20; + conf.display.alwaysOn = data["display"]["always_on"] | true; conf.display.timeout = data["display"]["timeout"] | 10; conf.display.overwritePin = data["display"]["overwrite_pin"] | 0; @@ -101,15 +105,16 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["aprs_is"]["port"] = conf.aprs_is.port; data["digi"]["active"] = conf.digi.active; data["digi"]["beacon"] = conf.digi.beacon; - data["lora"]["frequency_rx"] = conf.lora.frequencyRx; - data["lora"]["frequency_tx"] = conf.lora.frequencyTx; - data["lora"]["power"] = conf.lora.power; - data["lora"]["spreading_factor_rx"] = conf.lora.spreadingFactorRx; - data["lora"]["signal_bandwidth_rx"] = conf.lora.signalBandwidthRx; - data["lora"]["coding_rate4_rx"] = conf.lora.codingRate4Rx; - data["lora"]["spreading_factor_tx"] = conf.lora.spreadingFactorTx; - data["lora"]["signal_bandwidth_tx"] = conf.lora.signalBandwidthTx; - data["lora"]["coding_rate4_tx"] = conf.lora.codingRate4Tx; + data["lora"]["rxFrequency"] = conf.lora.rxFrequency; + data["lora"]["rxSpreadingFactor"] = conf.lora.rxSpreadingFactor; + data["lora"]["rxSignalBandwidth"] = conf.lora.rxSignalBandwidth; + data["lora"]["rxCodingRate4"] = conf.lora.rxCodingRate4; + data["lora"]["rxGain"] = conf.lora.rxGain; + data["lora"]["txFrequency"] = conf.lora.txFrequency; + data["lora"]["txSpreadingFactor"] = conf.lora.txSpreadingFactor; + data["lora"]["txSignalBandwidth"] = conf.lora.txSignalBandwidth; + data["lora"]["txCodingRate4"] = conf.lora.txCodingRate4; + data["lora"]["txPower"] = conf.lora.txPower; data["display"]["always_on"] = conf.display.alwaysOn; data["display"]["timeout"] = conf.display.timeout; data["display"]["overwrite_pin"] = conf.display.overwritePin; diff --git a/src/project_configuration.h b/src/project_configuration.h index ff3ae9b..9628451 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -66,18 +66,19 @@ public: class LoRa { public: - LoRa() : frequencyRx(433775000), frequencyTx(433775000), power(20), spreadingFactorRx(12), signalBandwidthRx(125000), codingRate4Rx(5), spreadingFactorTx(12), signalBandwidthTx(125000), codingRate4Tx(5) { + LoRa() : rxFrequency(433775000), rxSpreadingFactor(12), rxSignalBandwidth(125000), rxCodingRate4(5), rxGain(1), txFrequency(433775000), txSpreadingFactor(12), txSignalBandwidth(125000), txCodingRate4(5), txPower(20) { } - long frequencyRx; - long frequencyTx; - int power; - int spreadingFactorRx; - long signalBandwidthRx; - int codingRate4Rx; - int spreadingFactorTx; - long signalBandwidthTx; - int codingRate4Tx; + long rxFrequency; + int rxSpreadingFactor; + long rxSignalBandwidth; + int rxCodingRate4; + int rxGain; + long txFrequency; + int txSpreadingFactor; + long txSignalBandwidth; + int txCodingRate4; + int txPower; }; class Display { From 9b5a86ceb22af5cbb48fc1d6ab4395df21aaca8b Mon Sep 17 00:00:00 2001 From: Willi <36384850+OK1FWG@users.noreply.github.com> Date: Thu, 2 Sep 2021 23:16:57 +0200 Subject: [PATCH 05/19] Update TaskRouter.cpp --- src/TaskRouter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TaskRouter.cpp b/src/TaskRouter.cpp index ec8f485..1b166d4 100644 --- a/src/TaskRouter.cpp +++ b/src/TaskRouter.cpp @@ -94,7 +94,7 @@ bool RouterTask::loop(System &system) { } uint32_t diff = _beacon_timer.getTriggerTimeInSec(); - _stateInfo = "beacon " + String(uint32_t(diff / 60)) + ":" + String(uint32_t(diff % 60)); + _stateInfo = "beacon " + String(uint32_t(diff / 600)) + String(uint32_t(diff / 60) % 10) + ":" + String(uint32_t(diff / 10) % 6) + String(uint32_t(diff % 10)); return true; } From 86791ce4b90038a8eb823748d5252d4f86488fac Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Fri, 3 Sep 2021 20:37:22 +0100 Subject: [PATCH 06/19] fixing #103 --- lib/System/TaskManager.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/System/TaskManager.cpp b/lib/System/TaskManager.cpp index b53bc1d..d524ad0 100644 --- a/lib/System/TaskManager.cpp +++ b/lib/System/TaskManager.cpp @@ -14,7 +14,9 @@ void TaskManager::addAlwaysRunTask(Task *task) { } std::list TaskManager::getTasks() { - return _tasks; + std::list tasks = _alwaysRunTasks; + std::copy(_tasks.begin(), _tasks.end(), std::back_inserter(tasks)); + return tasks; } bool TaskManager::setup(System &system) { From c1193eba5348768c3a19b2079b3cea8edeb6e93c Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Fri, 3 Sep 2021 21:24:04 +0100 Subject: [PATCH 07/19] fixing #111 --- lib/Display/Display.cpp | 5 +++++ lib/Display/Display.h | 2 ++ src/TaskDisplay.cpp | 3 +++ 3 files changed, 10 insertions(+) diff --git a/lib/Display/Display.cpp b/lib/Display/Display.cpp index 95766b5..16a7e9d 100644 --- a/lib/Display/Display.cpp +++ b/lib/Display/Display.cpp @@ -42,6 +42,11 @@ void Display::setDisplaySaveTimeout(uint32_t timeout) { _displaySaveModeTimer.setTimeout(timeout * 1000); } +void Display::activateDistplay() +{ + _disp->displayOn(); +} + void Display::update() { if (_displayFrameRate.check()) { diff --git a/lib/Display/Display.h b/lib/Display/Display.h index 045e898..6347737 100644 --- a/lib/Display/Display.h +++ b/lib/Display/Display.h @@ -37,6 +37,8 @@ public: void activateDisplaySaveMode(); void setDisplaySaveTimeout(uint32_t timeout); + void activateDistplay(); + // functions for update loop void update(); void addFrame(std::shared_ptr frame); diff --git a/src/TaskDisplay.cpp b/src/TaskDisplay.cpp index bfe6d0b..6d3ab19 100644 --- a/src/TaskDisplay.cpp +++ b/src/TaskDisplay.cpp @@ -25,6 +25,9 @@ bool DisplayTask::setup(System &system) { } bool DisplayTask::loop(System &system) { + if (system.getUserConfig()->display.overwritePin != 0 && !digitalRead(system.getUserConfig()->display.overwritePin)) { + system.getDisplay().activateDistplay(); + } system.getDisplay().update(); return true; } From a5e391d416ad9b1f89efa454fecf69b72c52b430 Mon Sep 17 00:00:00 2001 From: Willi <36384850+OK1FWG@users.noreply.github.com> Date: Tue, 7 Sep 2021 10:01:46 +0200 Subject: [PATCH 08/19] Update TaskRouter.cpp --- src/TaskRouter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TaskRouter.cpp b/src/TaskRouter.cpp index 1b166d4..c85fa05 100644 --- a/src/TaskRouter.cpp +++ b/src/TaskRouter.cpp @@ -94,7 +94,7 @@ bool RouterTask::loop(System &system) { } uint32_t diff = _beacon_timer.getTriggerTimeInSec(); - _stateInfo = "beacon " + String(uint32_t(diff / 600)) + String(uint32_t(diff / 60) % 10) + ":" + String(uint32_t(diff / 10) % 6) + String(uint32_t(diff % 10)); + _stateInfo = "beacon " + String(uint32_t(diff/600)) + String(uint32_t(diff/60) % 10) + ":" + String(uint32_t(diff/10) % 6) + String(uint32_t(diff % 10)); return true; } From ed90ea99099b74993dffe63593e5ab1b6714c575 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Mon, 13 Sep 2021 22:32:31 +0200 Subject: [PATCH 09/19] format update --- src/project_configuration.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 2157b59..eeb0ff2 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -36,14 +36,14 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.aprs_is.server = data["aprs_is"]["server"].as(); conf.aprs_is.port = data["aprs_is"]["port"] | 14580; - conf.digi.active = data["digi"]["active"] | false; - conf.digi.beacon = data["digi"]["beacon"] | false; + conf.digi.active = data["digi"]["active"] | false; + conf.digi.beacon = data["digi"]["beacon"] | false; conf.lora.rxFrequency = data["lora"]["rxFrequency"] | 433775000; conf.lora.rxSpreadingFactor = data["lora"]["rxSpreadingFactor"] | 12; conf.lora.rxSignalBandwidth = data["lora"]["rxSignalBandwidth"] | 125000; conf.lora.rxCodingRate4 = data["lora"]["rxCodingRate4"] | 5; - conf.lora.rxGain = data["lora"]["rxGain"] | 1; + conf.lora.rxGain = data["lora"]["rxGain"] | 1; conf.lora.txFrequency = data["lora"]["txFrequency"] | 433775000; conf.lora.txSpreadingFactor = data["lora"]["txSpreadingFactor"] | 12; @@ -51,10 +51,10 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.lora.txCodingRate4 = data["lora"]["txCodingRate4"] | 5; conf.lora.txPower = data["lora"]["txPower"] | 20; - conf.display.alwaysOn = data["display"]["always_on"] | true; - conf.display.timeout = data["display"]["timeout"] | 10; - conf.display.overwritePin = data["display"]["overwrite_pin"] | 0; - conf.display.turn180 = data["display"]["turn180"] | true; + conf.display.alwaysOn = data["display"]["always_on"] | true; + conf.display.timeout = data["display"]["timeout"] | 10; + conf.display.overwritePin = data["display"]["overwrite_pin"] | 0; + conf.display.turn180 = data["display"]["turn180"] | true; conf.ftp.active = data["ftp"]["active"] | false; JsonArray users = data["ftp"]["user"].as(); From 8019d78ba0a9e4d741579bde8f9449084922e311 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Mon, 13 Sep 2021 22:40:41 +0200 Subject: [PATCH 10/19] fix format --- src/TaskRouter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TaskRouter.cpp b/src/TaskRouter.cpp index c85fa05..a11a5f6 100644 --- a/src/TaskRouter.cpp +++ b/src/TaskRouter.cpp @@ -94,7 +94,7 @@ bool RouterTask::loop(System &system) { } uint32_t diff = _beacon_timer.getTriggerTimeInSec(); - _stateInfo = "beacon " + String(uint32_t(diff/600)) + String(uint32_t(diff/60) % 10) + ":" + String(uint32_t(diff/10) % 6) + String(uint32_t(diff % 10)); + _stateInfo = "beacon " + String(uint32_t(diff/600)) + String(uint32_t(diff/60) % 10) + ":" + String(uint32_t(diff/10) % 6) + String(uint32_t(diff % 10)); return true; } From 6f8a0b73081b1c78a2c3da620a335ec9a2e5db4e Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Mon, 13 Sep 2021 22:44:53 +0200 Subject: [PATCH 11/19] fix format --- src/TaskRouter.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/TaskRouter.cpp b/src/TaskRouter.cpp index a11a5f6..f64f6b0 100644 --- a/src/TaskRouter.cpp +++ b/src/TaskRouter.cpp @@ -94,7 +94,7 @@ bool RouterTask::loop(System &system) { } uint32_t diff = _beacon_timer.getTriggerTimeInSec(); - _stateInfo = "beacon " + String(uint32_t(diff/600)) + String(uint32_t(diff/60) % 10) + ":" + String(uint32_t(diff/10) % 6) + String(uint32_t(diff % 10)); + _stateInfo = "beacon " + String(uint32_t(diff / 600)) + String(uint32_t(diff / 60) % 10) + ":" + String(uint32_t(diff / 10) % 6) + String(uint32_t(diff % 10)); return true; } From f8dfdc124626ea29720bec3e2d6c7cbe77ceabdb Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 19 Sep 2021 21:36:51 +0200 Subject: [PATCH 12/19] Revert "Digipeater - Different LoRa Settings for RX and TX" --- data/is-cfg.json | 16 +++---- lib/LoRa_APRS/LoRa_APRS.cpp | 79 ++++------------------------------- lib/LoRa_APRS/LoRa_APRS.h | 28 +------------ src/TaskModem.cpp | 19 ++++----- src/project_configuration.cpp | 39 +++++++---------- src/project_configuration.h | 18 ++++---- 6 files changed, 44 insertions(+), 155 deletions(-) diff --git a/data/is-cfg.json b/data/is-cfg.json index 66a8a09..736d44c 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -35,16 +35,12 @@ "beacon": false }, "lora": { - "rxFrequency": 433775000, - "rxSpreadingFactor": 12, - "rxSignalBandwidth": 125000, - "rxCodingRate4": 5, - "rxGain": 1, - "txFrequency": 433900000, - "txSpreadingFactor": 11, - "txSignalBandwidth": 125000, - "txCodingRate4": 5, - "txPower": 20 + "frequency_rx": 433775000, + "frequency_tx": 433775000, + "power": 20, + "spreading_factor": 12, + "signal_bandwidth": 125000, + "coding_rate4": 5 }, "display": { "always_on": true, diff --git a/lib/LoRa_APRS/LoRa_APRS.cpp b/lib/LoRa_APRS/LoRa_APRS.cpp index d790d77..ea28f8b 100644 --- a/lib/LoRa_APRS/LoRa_APRS.cpp +++ b/lib/LoRa_APRS/LoRa_APRS.cpp @@ -1,6 +1,6 @@ #include "LoRa_APRS.h" -LoRa_APRS::LoRa_APRS() : _rxFrequency(433775000), _rxSpreadingFactor(12), _rxSignalBandwidth(125000), _rxCodingRate4(5), _txFrequency(433775000), _txSpreadingFactor(12), _txSignalBandwidth(125000), _txCodingRate4(5) { +LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000) { } bool LoRa_APRS::checkMessage() { @@ -32,10 +32,7 @@ std::shared_ptr LoRa_APRS::getMessage() { } void LoRa_APRS::sendMessage(const std::shared_ptr msg) { - setSpreadingFactor(_txSpreadingFactor); - setSignalBandwidth(_txSignalBandwidth); - setCodingRate4(_txCodingRate4); - setFrequency(_txFrequency); + setFrequency(_TxFrequency); String data = msg->encode(); beginPacket(); // Header: @@ -45,84 +42,24 @@ void LoRa_APRS::sendMessage(const std::shared_ptr msg) { // APRS Data: write((const uint8_t *)data.c_str(), data.length()); endPacket(); - setSpreadingFactor(_rxSpreadingFactor); - setSignalBandwidth(_rxSignalBandwidth); - setCodingRate4(_rxCodingRate4); - setFrequency(_rxFrequency); + setFrequency(_RxFrequency); } void LoRa_APRS::setRxFrequency(long frequency) { - _rxFrequency = frequency; - setFrequency(_rxFrequency); + _RxFrequency = frequency; + setFrequency(_RxFrequency); } // cppcheck-suppress unusedFunction long LoRa_APRS::getRxFrequency() const { - return _rxFrequency; + return _RxFrequency; } void LoRa_APRS::setTxFrequency(long frequency) { - _txFrequency = frequency; + _TxFrequency = frequency; } // cppcheck-suppress unusedFunction long LoRa_APRS::getTxFrequency() const { - return _txFrequency; -} - -void LoRa_APRS::setRxSpreadingFactor(int spreadingFactor) { - _rxSpreadingFactor = spreadingFactor; - setSpreadingFactor(_rxSpreadingFactor); -} - -// cppcheck-suppress unusedFunction -long LoRa_APRS::getRxSpreadingFactor() const { - return _rxSpreadingFactor; -} - -void LoRa_APRS::setRxSignalBandwidth(long signalBandwidth) { - _rxSignalBandwidth = signalBandwidth; - setSignalBandwidth(_rxSignalBandwidth); -} - -// cppcheck-suppress unusedFunction -long LoRa_APRS::getRxSignalBandwidth() const { - return _rxSignalBandwidth; -} - -void LoRa_APRS::setRxCodingRate4(int codingRate) { - _rxCodingRate4 = codingRate; - setCodingRate4(_rxCodingRate4); -} - -// cppcheck-suppress unusedFunction -long LoRa_APRS::getRxCodingRate4() const { - return _rxCodingRate4; -} - -void LoRa_APRS::setTxSpreadingFactor(int spreadingFactor) { - _txSpreadingFactor = spreadingFactor; -} - -// cppcheck-suppress unusedFunction -long LoRa_APRS::getTxSpreadingFactor() const { - return _txSpreadingFactor; -} - -void LoRa_APRS::setTxSignalBandwidth(long signalBandwidth) { - _txSignalBandwidth = signalBandwidth; -} - -// cppcheck-suppress unusedFunction -long LoRa_APRS::getTxSignalBandwidth() const { - return _txSignalBandwidth; -} - -void LoRa_APRS::setTxCodingRate4(int codingRate) { - _txCodingRate4 = codingRate; -} - -// cppcheck-suppress unusedFunction -long LoRa_APRS::getTxCodingRate4() const { - return _txCodingRate4; + return _TxFrequency; } diff --git a/lib/LoRa_APRS/LoRa_APRS.h b/lib/LoRa_APRS/LoRa_APRS.h index 6e92229..cacd0fe 100644 --- a/lib/LoRa_APRS/LoRa_APRS.h +++ b/lib/LoRa_APRS/LoRa_APRS.h @@ -22,34 +22,10 @@ public: void setTxFrequency(long frequency); long getTxFrequency() const; - void setRxSpreadingFactor(int spreadingFactor); - long getRxSpreadingFactor() const; - - void setRxSignalBandwidth(long signalBandwidth); - long getRxSignalBandwidth() const; - - void setRxCodingRate4(int codingRate); - long getRxCodingRate4() const; - - void setTxSpreadingFactor(int spreadingFactor); - long getTxSpreadingFactor() const; - - void setTxSignalBandwidth(long signalBandwidth); - long getTxSignalBandwidth() const; - - void setTxCodingRate4(int codingRate); - long getTxCodingRate4() const; - private: std::shared_ptr _LastReceivedMsg; - long _rxFrequency; - int _rxSpreadingFactor; - long _rxSignalBandwidth; - int _rxCodingRate4; - long _txFrequency; - int _txSpreadingFactor; - long _txSignalBandwidth; - int _txCodingRate4; + long _RxFrequency; + long _TxFrequency; }; #endif diff --git a/src/TaskModem.cpp b/src/TaskModem.cpp index ffb8cb2..7dad353 100644 --- a/src/TaskModem.cpp +++ b/src/TaskModem.cpp @@ -16,24 +16,19 @@ ModemTask::~ModemTask() { bool ModemTask::setup(System &system) { SPI.begin(system.getBoardConfig()->LoraSck, system.getBoardConfig()->LoraMiso, system.getBoardConfig()->LoraMosi, system.getBoardConfig()->LoraCS); _lora_aprs.setPins(system.getBoardConfig()->LoraCS, system.getBoardConfig()->LoraReset, system.getBoardConfig()->LoraIRQ); - if (!_lora_aprs.begin(system.getUserConfig()->lora.rxFrequency)) { + if (!_lora_aprs.begin(system.getUserConfig()->lora.frequencyRx)) { logPrintlnE("Starting LoRa failed!"); _stateInfo = "LoRa-Modem failed"; _state = Error; while (true) ; } - _lora_aprs.setRxFrequency(system.getUserConfig()->lora.rxFrequency); - _lora_aprs.setRxSpreadingFactor(system.getUserConfig()->lora.rxSpreadingFactor); - _lora_aprs.setRxSignalBandwidth(system.getUserConfig()->lora.rxSignalBandwidth); - _lora_aprs.setRxCodingRate4(system.getUserConfig()->lora.rxCodingRate4); - _lora_aprs.setGain(system.getUserConfig()->lora.rxGain); - - _lora_aprs.setTxFrequency(system.getUserConfig()->lora.txFrequency); - _lora_aprs.setTxSpreadingFactor(system.getUserConfig()->lora.txSpreadingFactor); - _lora_aprs.setTxSignalBandwidth(system.getUserConfig()->lora.txSignalBandwidth); - _lora_aprs.setTxCodingRate4(system.getUserConfig()->lora.txCodingRate4); - _lora_aprs.setTxPower(system.getUserConfig()->lora.txPower); + _lora_aprs.setRxFrequency(system.getUserConfig()->lora.frequencyRx); + _lora_aprs.setTxFrequency(system.getUserConfig()->lora.frequencyTx); + _lora_aprs.setTxPower(system.getUserConfig()->lora.power); + _lora_aprs.setSpreadingFactor(system.getUserConfig()->lora.spreadingFactor); + _lora_aprs.setSignalBandwidth(system.getUserConfig()->lora.signalBandwidth); + _lora_aprs.setCodingRate4(system.getUserConfig()->lora.codingRate4); _lora_aprs.enableCrc(); _stateInfo = ""; diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index eeb0ff2..656d284 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -36,21 +36,14 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.aprs_is.server = data["aprs_is"]["server"].as(); conf.aprs_is.port = data["aprs_is"]["port"] | 14580; - conf.digi.active = data["digi"]["active"] | false; - conf.digi.beacon = data["digi"]["beacon"] | false; - - conf.lora.rxFrequency = data["lora"]["rxFrequency"] | 433775000; - conf.lora.rxSpreadingFactor = data["lora"]["rxSpreadingFactor"] | 12; - conf.lora.rxSignalBandwidth = data["lora"]["rxSignalBandwidth"] | 125000; - conf.lora.rxCodingRate4 = data["lora"]["rxCodingRate4"] | 5; - conf.lora.rxGain = data["lora"]["rxGain"] | 1; - - conf.lora.txFrequency = data["lora"]["txFrequency"] | 433775000; - conf.lora.txSpreadingFactor = data["lora"]["txSpreadingFactor"] | 12; - conf.lora.txSignalBandwidth = data["lora"]["txSignalBandwidth"] | 125000; - conf.lora.txCodingRate4 = data["lora"]["txCodingRate4"] | 5; - conf.lora.txPower = data["lora"]["txPower"] | 20; - + conf.digi.active = data["digi"]["active"] | false; + conf.digi.beacon = data["digi"]["beacon"] | false; + conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000; + conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000; + conf.lora.power = data["lora"]["power"] | 20; + conf.lora.spreadingFactor = data["lora"]["spreading_factor"] | 12; + conf.lora.signalBandwidth = data["lora"]["signal_bandwidth"] | 125000; + conf.lora.codingRate4 = data["lora"]["coding_rate4"] | 5; conf.display.alwaysOn = data["display"]["always_on"] | true; conf.display.timeout = data["display"]["timeout"] | 10; conf.display.overwritePin = data["display"]["overwrite_pin"] | 0; @@ -105,16 +98,12 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["aprs_is"]["port"] = conf.aprs_is.port; data["digi"]["active"] = conf.digi.active; data["digi"]["beacon"] = conf.digi.beacon; - data["lora"]["rxFrequency"] = conf.lora.rxFrequency; - data["lora"]["rxSpreadingFactor"] = conf.lora.rxSpreadingFactor; - data["lora"]["rxSignalBandwidth"] = conf.lora.rxSignalBandwidth; - data["lora"]["rxCodingRate4"] = conf.lora.rxCodingRate4; - data["lora"]["rxGain"] = conf.lora.rxGain; - data["lora"]["txFrequency"] = conf.lora.txFrequency; - data["lora"]["txSpreadingFactor"] = conf.lora.txSpreadingFactor; - data["lora"]["txSignalBandwidth"] = conf.lora.txSignalBandwidth; - data["lora"]["txCodingRate4"] = conf.lora.txCodingRate4; - data["lora"]["txPower"] = conf.lora.txPower; + 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/project_configuration.h b/src/project_configuration.h index 9628451..b2ba0bc 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -66,19 +66,15 @@ public: class LoRa { public: - LoRa() : rxFrequency(433775000), rxSpreadingFactor(12), rxSignalBandwidth(125000), rxCodingRate4(5), rxGain(1), txFrequency(433775000), txSpreadingFactor(12), txSignalBandwidth(125000), txCodingRate4(5), txPower(20) { + LoRa() : frequencyRx(433775000), frequencyTx(433775000), power(20), spreadingFactor(12), signalBandwidth(125000), codingRate4(5) { } - long rxFrequency; - int rxSpreadingFactor; - long rxSignalBandwidth; - int rxCodingRate4; - int rxGain; - long txFrequency; - int txSpreadingFactor; - long txSignalBandwidth; - int txCodingRate4; - int txPower; + long frequencyRx; + long frequencyTx; + int power; + int spreadingFactor; + long signalBandwidth; + int codingRate4; }; class Display { From 1390fc1ad0a9583b0045c2eee17631b1a1f32602 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Mon, 20 Sep 2021 07:43:43 +0200 Subject: [PATCH 13/19] Update README.md --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index bc8bd22..29e9c73 100644 --- a/README.md +++ b/README.md @@ -125,4 +125,3 @@ A direct mount of the [other display](pics/display-wrong.jpg) is not possible wi The 'wrong' display works too but you have to change VCC and GND by wire ! feel free to add hints! - From 6612e3da16542dd7908284ac79eb4b0ee1594c29 Mon Sep 17 00:00:00 2001 From: Jochen Date: Sat, 6 Nov 2021 22:00:27 +0100 Subject: [PATCH 14/19] Added an option to enable WiFi on (PoE) Ethernet boards as proposed in issue #116 Added an option to adjust LoRa receiver gain --- data/is-cfg.json | 2 ++ lib/LoRa_APRS/LoRa_APRS.cpp | 7 ++++++- lib/LoRa_APRS/LoRa_APRS.h | 3 +++ src/LoRa_APRS_iGate.cpp | 7 ++++--- src/TaskModem.cpp | 1 + src/project_configuration.cpp | 8 ++++++-- src/project_configuration.h | 4 +++- 7 files changed, 25 insertions(+), 7 deletions(-) diff --git a/data/is-cfg.json b/data/is-cfg.json index 736d44c..93808e2 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -11,6 +11,7 @@ "wifi": { "AP": [ { + "active": false, "SSID": "YOURSSID", "password": "YOURPASSWORD" } @@ -36,6 +37,7 @@ }, "lora": { "frequency_rx": 433775000, + "gain_rx": 6; "frequency_tx": 433775000, "power": 20, "spreading_factor": 12, diff --git a/lib/LoRa_APRS/LoRa_APRS.cpp b/lib/LoRa_APRS/LoRa_APRS.cpp index ea28f8b..668dc52 100644 --- a/lib/LoRa_APRS/LoRa_APRS.cpp +++ b/lib/LoRa_APRS/LoRa_APRS.cpp @@ -1,6 +1,6 @@ #include "LoRa_APRS.h" -LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000) { +LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000), _RxGain(6) { } bool LoRa_APRS::checkMessage() { @@ -50,6 +50,11 @@ void LoRa_APRS::setRxFrequency(long frequency) { setFrequency(_RxFrequency); } +void LoRa_APRS::setRxGain(uint8_t gain) { + _RxGain = gain; + setGain(_RxGain); +} + // cppcheck-suppress unusedFunction long LoRa_APRS::getRxFrequency() const { return _RxFrequency; diff --git a/lib/LoRa_APRS/LoRa_APRS.h b/lib/LoRa_APRS/LoRa_APRS.h index cacd0fe..748bfac 100644 --- a/lib/LoRa_APRS/LoRa_APRS.h +++ b/lib/LoRa_APRS/LoRa_APRS.h @@ -19,6 +19,8 @@ public: void setRxFrequency(long frequency); long getRxFrequency() const; + void setRxGain(uint8_t gain); + void setTxFrequency(long frequency); long getTxFrequency() const; @@ -26,6 +28,7 @@ private: std::shared_ptr _LastReceivedMsg; long _RxFrequency; long _TxFrequency; + uint8_t _RxGain; }; #endif diff --git a/src/LoRa_APRS_iGate.cpp b/src/LoRa_APRS_iGate.cpp index 05739dd..6e4cf58 100644 --- a/src/LoRa_APRS_iGate.cpp +++ b/src/LoRa_APRS_iGate.cpp @@ -18,7 +18,7 @@ #include "TaskWifi.h" #include "project_configuration.h" -#define VERSION "21.35.0-dev" +#define VERSION "21.44.0-dev" String create_lat_aprs(double lat); String create_long_aprs(double lng); @@ -100,9 +100,10 @@ void setup() { LoRaSystem.getTaskManager().addTask(&routerTask); if (userConfig.aprs_is.active) { - if (boardConfig->Type == eETH_BOARD) { + if (boardConfig->Type == eETH_BOARD && !userConfig.wifi.active) { LoRaSystem.getTaskManager().addAlwaysRunTask(ðTask); - } else { + } + if (userConfig.wifi.active) { LoRaSystem.getTaskManager().addAlwaysRunTask(&wifiTask); } LoRaSystem.getTaskManager().addTask(&otaTask); diff --git a/src/TaskModem.cpp b/src/TaskModem.cpp index 7dad353..d3908bc 100644 --- a/src/TaskModem.cpp +++ b/src/TaskModem.cpp @@ -24,6 +24,7 @@ bool ModemTask::setup(System &system) { ; } _lora_aprs.setRxFrequency(system.getUserConfig()->lora.frequencyRx); + _lora_aprs.setRxGain(system.getUserConfig()->lora.gainRx); _lora_aprs.setTxFrequency(system.getUserConfig()->lora.frequencyTx); _lora_aprs.setTxPower(system.getUserConfig()->lora.power); _lora_aprs.setSpreadingFactor(system.getUserConfig()->lora.spreadingFactor); diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 656d284..895f257 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -17,7 +17,8 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.network.dns2.fromString(data["network"]["dns2"].as()); } - JsonArray aps = data["wifi"]["AP"].as(); + conf.wifi.active = data["wifi"]["active"]; + JsonArray aps = data["wifi"]["AP"].as(); for (JsonVariant v : aps) { Configuration::Wifi::AP ap; ap.SSID = v["SSID"].as(); @@ -39,6 +40,7 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.digi.active = data["digi"]["active"] | false; conf.digi.beacon = data["digi"]["beacon"] | false; conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000; + conf.lora.gainRx = data["lora"]["gain_rx"] | 6; conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000; conf.lora.power = data["lora"]["power"] | 20; conf.lora.spreadingFactor = data["lora"]["spreading_factor"] | 12; @@ -82,7 +84,8 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["network"]["dns2"] = conf.network.dns2.toString(); } - JsonArray aps = data["wifi"].createNestedArray("AP"); + data["wifi"]["active"] = conf.wifi.active; + JsonArray aps = data["wifi"].createNestedArray("AP"); for (Configuration::Wifi::AP ap : conf.wifi.APs) { JsonObject v = aps.createNestedObject(); v["SSID"] = ap.SSID; @@ -99,6 +102,7 @@ void ProjectConfigurationManagement::writeProjectConfiguration(Configuration &co data["digi"]["active"] = conf.digi.active; data["digi"]["beacon"] = conf.digi.beacon; data["lora"]["frequency_rx"] = conf.lora.frequencyRx; + data["lora"]["gain_rx"] = conf.lora.gainRx; data["lora"]["frequency_tx"] = conf.lora.frequencyTx; data["lora"]["power"] = conf.lora.power; data["lora"]["spreading_factor"] = conf.lora.spreadingFactor; diff --git a/src/project_configuration.h b/src/project_configuration.h index b2ba0bc..e013fe1 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -21,13 +21,14 @@ public: class Wifi { public: + bool active; class AP { public: String SSID; String password; }; - Wifi() { + Wifi() : active(true) { } std::list APs; @@ -70,6 +71,7 @@ public: } long frequencyRx; + uint8_t gainRx; long frequencyTx; int power; int spreadingFactor; From f518df43c6b25888432100c7b1eefc7f10a32184 Mon Sep 17 00:00:00 2001 From: df2jh <91030275+df2jh@users.noreply.github.com> Date: Sat, 6 Nov 2021 22:24:12 +0100 Subject: [PATCH 15/19] Update is-cfg.json --- data/is-cfg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/is-cfg.json b/data/is-cfg.json index 93808e2..91ad74f 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -37,7 +37,7 @@ }, "lora": { "frequency_rx": 433775000, - "gain_rx": 6; + "gain_rx": 6, "frequency_tx": 433775000, "power": 20, "spreading_factor": 12, From 36d73552ff5c55b048d296b10739886fc263196a Mon Sep 17 00:00:00 2001 From: Jochen Date: Sun, 7 Nov 2021 10:48:10 +0100 Subject: [PATCH 16/19] fixed is-cfg.json and project_configuration.h --- data/is-cfg.json | 4 ++-- src/project_configuration.h | 18 +++++++++--------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/data/is-cfg.json b/data/is-cfg.json index 93808e2..db2b2ba 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -9,9 +9,9 @@ "dns2": "192.0.2.2" }, "wifi": { + "active": true, "AP": [ { - "active": false, "SSID": "YOURSSID", "password": "YOURPASSWORD" } @@ -37,7 +37,7 @@ }, "lora": { "frequency_rx": 433775000, - "gain_rx": 6; + "gain_rx": 6, "frequency_tx": 433775000, "power": 20, "spreading_factor": 12, diff --git a/src/project_configuration.h b/src/project_configuration.h index e013fe1..c9d9ea9 100644 --- a/src/project_configuration.h +++ b/src/project_configuration.h @@ -21,6 +21,9 @@ public: class Wifi { public: + Wifi() : active(true) { + } + bool active; class AP { public: @@ -28,9 +31,6 @@ public: String password; }; - Wifi() : active(true) { - } - std::list APs; }; @@ -70,13 +70,13 @@ public: LoRa() : frequencyRx(433775000), frequencyTx(433775000), power(20), spreadingFactor(12), signalBandwidth(125000), codingRate4(5) { } - long frequencyRx; + long frequencyRx; uint8_t gainRx; - long frequencyTx; - int power; - int spreadingFactor; - long signalBandwidth; - int codingRate4; + long frequencyTx; + int power; + int spreadingFactor; + long signalBandwidth; + int codingRate4; }; class Display { From d6222b6cbeb63b018179c79d338a59bffcf8644a Mon Sep 17 00:00:00 2001 From: Jochen Date: Sun, 7 Nov 2021 19:54:22 +0100 Subject: [PATCH 17/19] minor changes in LoRa_APRS.h --- lib/LoRa_APRS/LoRa_APRS.cpp | 5 ++--- lib/LoRa_APRS/LoRa_APRS.h | 1 - src/project_configuration.cpp | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/lib/LoRa_APRS/LoRa_APRS.cpp b/lib/LoRa_APRS/LoRa_APRS.cpp index 668dc52..48d2dfa 100644 --- a/lib/LoRa_APRS/LoRa_APRS.cpp +++ b/lib/LoRa_APRS/LoRa_APRS.cpp @@ -1,6 +1,6 @@ #include "LoRa_APRS.h" -LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000), _RxGain(6) { +LoRa_APRS::LoRa_APRS() : _RxFrequency(433775000), _TxFrequency(433775000) { } bool LoRa_APRS::checkMessage() { @@ -51,8 +51,7 @@ void LoRa_APRS::setRxFrequency(long frequency) { } void LoRa_APRS::setRxGain(uint8_t gain) { - _RxGain = gain; - setGain(_RxGain); + setGain(gain); } // cppcheck-suppress unusedFunction diff --git a/lib/LoRa_APRS/LoRa_APRS.h b/lib/LoRa_APRS/LoRa_APRS.h index 748bfac..3d6eff4 100644 --- a/lib/LoRa_APRS/LoRa_APRS.h +++ b/lib/LoRa_APRS/LoRa_APRS.h @@ -28,7 +28,6 @@ private: std::shared_ptr _LastReceivedMsg; long _RxFrequency; long _TxFrequency; - uint8_t _RxGain; }; #endif diff --git a/src/project_configuration.cpp b/src/project_configuration.cpp index 895f257..a416aa1 100644 --- a/src/project_configuration.cpp +++ b/src/project_configuration.cpp @@ -40,7 +40,7 @@ void ProjectConfigurationManagement::readProjectConfiguration(DynamicJsonDocumen conf.digi.active = data["digi"]["active"] | false; conf.digi.beacon = data["digi"]["beacon"] | false; conf.lora.frequencyRx = data["lora"]["frequency_rx"] | 433775000; - conf.lora.gainRx = data["lora"]["gain_rx"] | 6; + conf.lora.gainRx = data["lora"]["gain_rx"] | 0; conf.lora.frequencyTx = data["lora"]["frequency_tx"] | 433775000; conf.lora.power = data["lora"]["power"] | 20; conf.lora.spreadingFactor = data["lora"]["spreading_factor"] | 12; From c3a49b6c32115cf98bba9e74fc060c5b96047216 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sun, 7 Nov 2021 20:59:44 +0100 Subject: [PATCH 18/19] set rx gain to 0 for agc usage --- data/is-cfg.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/is-cfg.json b/data/is-cfg.json index db2b2ba..02737a3 100644 --- a/data/is-cfg.json +++ b/data/is-cfg.json @@ -37,7 +37,7 @@ }, "lora": { "frequency_rx": 433775000, - "gain_rx": 6, + "gain_rx": 0, "frequency_tx": 433775000, "power": 20, "spreading_factor": 12, From 6897dd4856dbb210e5eb3eea2320d4147bc30801 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Sat, 18 Dec 2021 18:13:33 +0100 Subject: [PATCH 19/19] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 29e9c73..bc8bd22 100644 --- a/README.md +++ b/README.md @@ -125,3 +125,4 @@ A direct mount of the [other display](pics/display-wrong.jpg) is not possible wi The 'wrong' display works too but you have to change VCC and GND by wire ! feel free to add hints! +