From b16ea9dd81a18209d0327e23286d97768ab08dc3 Mon Sep 17 00:00:00 2001 From: Peter Buchegger Date: Fri, 21 May 2021 23:04:10 +0200 Subject: [PATCH] remove smart pointer from Modem --- lib/LoRa_APRS/LoRa_APRS.cpp | 5 ----- lib/LoRa_APRS/LoRa_APRS.h | 9 --------- src/TaskModem.cpp | 27 ++++++++++++++------------- src/TaskModem.h | 2 +- 4 files changed, 15 insertions(+), 28 deletions(-) diff --git a/lib/LoRa_APRS/LoRa_APRS.cpp b/lib/LoRa_APRS/LoRa_APRS.cpp index 6221f2b..1f8493f 100644 --- a/lib/LoRa_APRS/LoRa_APRS.cpp +++ b/lib/LoRa_APRS/LoRa_APRS.cpp @@ -1,10 +1,5 @@ #include "LoRa_APRS.h" -LoRa_APRS::LoRa_APRS(BoardConfig const *const boardConfig) : _LastReceivedMsg(0), _RxFrequency(LORA_RX_FREQUENCY), _TxFrequency(LORA_TX_FREQUENCY) { - SPI.begin(boardConfig->LoraSck, boardConfig->LoraMiso, boardConfig->LoraMosi, boardConfig->LoraCS); - setPins(boardConfig->LoraCS, boardConfig->LoraReset, boardConfig->LoraIRQ); -} - bool LoRa_APRS::checkMessage() { if (!parsePacket()) { return false; diff --git a/lib/LoRa_APRS/LoRa_APRS.h b/lib/LoRa_APRS/LoRa_APRS.h index e0b9b87..d9cb093 100644 --- a/lib/LoRa_APRS/LoRa_APRS.h +++ b/lib/LoRa_APRS/LoRa_APRS.h @@ -4,20 +4,11 @@ #include #include -#include #include #include -#define LORA_RX_FREQUENCY (433775000) -#define LORA_TX_FREQUENCY (433900000) -#define LORA_SPREADING_FACTOR (12) -#define LORA_SIGNAL_BANDWIDTH (125E3) -#define LORA_CODING_RATE4 (5) - class LoRa_APRS : public LoRaClass { public: - explicit LoRa_APRS(BoardConfig const *const boardConfig); - bool checkMessage(); std::shared_ptr getMessage(); diff --git a/src/TaskModem.cpp b/src/TaskModem.cpp index 3a1d233..0414d05 100644 --- a/src/TaskModem.cpp +++ b/src/TaskModem.cpp @@ -14,37 +14,38 @@ ModemTask::~ModemTask() { } bool ModemTask::setup(System &system) { - _lora_aprs = std::shared_ptr(new LoRa_APRS(system.getBoardConfig())); - if (!_lora_aprs->begin(_lora_aprs->getRxFrequency())) { + 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)) { 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->setSpreadingFactor(system.getUserConfig()->lora.spreadingFactor); - _lora_aprs->setSignalBandwidth(system.getUserConfig()->lora.signalBandwidth); - _lora_aprs->setCodingRate4(system.getUserConfig()->lora.codingRate4); - _lora_aprs->enableCrc(); + _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 = ""; return true; } bool ModemTask::loop(System &system) { - if (_lora_aprs->checkMessage()) { - std::shared_ptr msg = _lora_aprs->getMessage(); + if (_lora_aprs.checkMessage()) { + std::shared_ptr msg = _lora_aprs.getMessage(); // msg->getAPRSBody()->setData(msg->getAPRSBody()->getData() + " 123"); logPrintD("[" + timeString() + "] "); logPrintD("Received packet '"); logPrintD(msg->toString()); logPrintD("' with RSSI "); - logPrintD(String(_lora_aprs->packetRssi())); + logPrintD(String(_lora_aprs.packetRssi())); logPrintD(" and SNR "); - logPrintlnD(String(_lora_aprs->packetSnr())); + logPrintlnD(String(_lora_aprs.packetSnr())); String path = msg->getPath(); if (path.indexOf("RFONLY") != -1 || path.indexOf("NOGATE") != -1 || path.indexOf("TCPIP") != -1) { diff --git a/src/TaskModem.h b/src/TaskModem.h index 890b3c7..a11dfd3 100644 --- a/src/TaskModem.h +++ b/src/TaskModem.h @@ -14,7 +14,7 @@ public: virtual bool loop(System &system) override; private: - std::shared_ptr _lora_aprs; + LoRa_APRS _lora_aprs; TaskQueue> &_fromModem; };