From d8f64d6f216df0d169a9e376fa03a84f7c165be1 Mon Sep 17 00:00:00 2001 From: sh123 Date: Mon, 8 Feb 2021 20:30:23 +0200 Subject: [PATCH] Use code 6 for SetHardware and code 7 for signal report --- kiss_processor.cpp | 2 +- kiss_processor.h | 12 ++---------- loraprs_service.cpp | 26 +++++++++++++------------- loraprs_service.h | 12 ++++++------ 4 files changed, 22 insertions(+), 30 deletions(-) diff --git a/kiss_processor.cpp b/kiss_processor.cpp index 709ce89..9aaeb42 100644 --- a/kiss_processor.cpp +++ b/kiss_processor.cpp @@ -65,7 +65,7 @@ bool Processor::processCommand(byte rxByte) { state_ = State::GetData; dataType_ = DataType::Raw; break; - case Cmd::RadioControl: + case Cmd::SetHardware: state_ = State::GetData; dataType_ = DataType::Control; cmdBuffer_.clear(); diff --git a/kiss_processor.h b/kiss_processor.h index 0e3866e..a0fe54d 100644 --- a/kiss_processor.h +++ b/kiss_processor.h @@ -28,19 +28,11 @@ protected: }; enum Cmd { - - // generic Data = 0x00, P = 0x02, SlotTime = 0x03, - - // extended to modem - RadioControl = 0x10, - - // extended from modem - RadioSignalLevel = 0x30, - - // end of cmds + SetHardware = 0x06, + SignalReport = 0x07, NoCmd = 0x80 }; diff --git a/loraprs_service.cpp b/loraprs_service.cpp index b678209..6e8873b 100644 --- a/loraprs_service.cpp +++ b/loraprs_service.cpp @@ -234,12 +234,12 @@ void Service::onAprsisDataAvailable() void Service::sendSignalReportEvent(int rssi, float snr) { - struct SignalLevelEvent event; + struct SignalReport signalReport; - event.rssi = htobe16(rssi); - event.snr = htobe16(snr * 100); + signalReport.rssi = htobe16(rssi); + signalReport.snr = htobe16(snr * 100); - serialSend(Cmd::RadioSignalLevel, (const byte *)&event, sizeof(SignalLevelEvent)); + serialSend(Cmd::SignalReport, (const byte *)&signalReport, sizeof(SignalReport)); } bool Service::sendAX25ToLora(const AX25::Payload &payload) @@ -372,16 +372,16 @@ void Service::onControlCommand(Cmd cmd, byte value) void Service::onRadioControlCommand(const std::vector &rawCommand) { - if (config_.EnableKissExtensions && rawCommand.size() == sizeof(ControlCommand)) { - const struct ControlCommand * controlCommand = reinterpret_cast(rawCommand.data()); + if (config_.EnableKissExtensions && rawCommand.size() == sizeof(SetHardware)) { + const struct SetHardware * setHardware = reinterpret_cast(rawCommand.data()); - config_.LoraFreq = be32toh(controlCommand->freq); - config_.LoraBw = be32toh(controlCommand->bw); - config_.LoraSf = be16toh(controlCommand->sf); - config_.LoraCodingRate = be16toh(controlCommand->cr); - config_.LoraPower = be16toh(controlCommand->pwr); - config_.LoraSync = be16toh(controlCommand->sync); - config_.LoraEnableCrc = controlCommand->crc; + config_.LoraFreq = be32toh(setHardware->freq); + config_.LoraBw = be32toh(setHardware->bw); + config_.LoraSf = be16toh(setHardware->sf); + config_.LoraCodingRate = be16toh(setHardware->cr); + config_.LoraPower = be16toh(setHardware->pwr); + config_.LoraSync = be16toh(setHardware->sync); + config_.LoraEnableCrc = setHardware->crc; setupLora(config_.LoraFreq, config_.LoraBw, config_.LoraSf, config_.LoraCodingRate, config_.LoraPower, config_.LoraSync, config_.LoraEnableCrc); diff --git a/loraprs_service.h b/loraprs_service.h index 2272fcb..2a8ec77 100644 --- a/loraprs_service.h +++ b/loraprs_service.h @@ -60,12 +60,7 @@ protected: virtual void onRadioControlCommand(const std::vector &command); private: - struct SignalLevelEvent { - int16_t rssi; - int16_t snr; - } __attribute__((packed)); - - struct ControlCommand { + struct SetHardware { uint32_t freq; uint32_t bw; uint16_t sf; @@ -75,6 +70,11 @@ private: uint8_t crc; } __attribute__((packed)); + struct SignalReport { + int16_t rssi; + int16_t snr; + } __attribute__((packed)); + private: const String CfgLoraprsVersion = "LoRAPRS 0.1";