From 9acfce8ee2144a63c1d4080e0b56c76cbdc03b5c Mon Sep 17 00:00:00 2001 From: dj1an Date: Wed, 25 Aug 2021 20:07:13 +0200 Subject: [PATCH] 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 {