mirror of
https://github.com/lora-aprs/LoRa_APRS_iGate.git
synced 2025-12-06 07:42:00 +01:00
remove smart pointer from Modem
This commit is contained in:
parent
b24f42d00a
commit
b16ea9dd81
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -4,20 +4,11 @@
|
|||
#include <Arduino.h>
|
||||
|
||||
#include <APRS-Decoder.h>
|
||||
#include <BoardFinder.h>
|
||||
#include <LoRa.h>
|
||||
#include <memory>
|
||||
|
||||
#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<APRSMessage> getMessage();
|
||||
|
||||
|
|
|
|||
|
|
@ -14,37 +14,38 @@ ModemTask::~ModemTask() {
|
|||
}
|
||||
|
||||
bool ModemTask::setup(System &system) {
|
||||
_lora_aprs = std::shared_ptr<LoRa_APRS>(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<APRSMessage> msg = _lora_aprs->getMessage();
|
||||
if (_lora_aprs.checkMessage()) {
|
||||
std::shared_ptr<APRSMessage> 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) {
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ public:
|
|||
virtual bool loop(System &system) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<LoRa_APRS> _lora_aprs;
|
||||
LoRa_APRS _lora_aprs;
|
||||
TaskQueue<std::shared_ptr<APRSMessage>> &_fromModem;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue