kopia lustrzana https://github.com/sh123/esp32_loraprs
Improve and refactor
rodzic
5abf4e8d09
commit
987a83184b
|
@ -221,12 +221,12 @@ bool Processor::receiveByteRaw(byte rxByte)
|
||||||
}
|
}
|
||||||
isRawIdle_ = false;
|
isRawIdle_ = false;
|
||||||
}
|
}
|
||||||
onRigTx(rxByte);
|
|
||||||
// NOTE, TNC2 uses \n as a packet delimiter
|
// NOTE, TNC2 uses \n as a packet delimiter
|
||||||
if (rxByte == '\n') {
|
if (rxByte == '\n') {
|
||||||
onRigTx('\0');
|
|
||||||
onRigTxEnd();
|
onRigTxEnd();
|
||||||
isRawIdle_ = true;
|
isRawIdle_ = true;
|
||||||
|
} else {
|
||||||
|
onRigTx(rxByte);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -447,13 +447,29 @@ bool Service::sendAX25ToLora(const AX25::Payload &payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
void Service::onRigPacket(void *packet, int packetLength)
|
void Service::onRigPacket(void *packet, int packetLength)
|
||||||
{
|
{
|
||||||
|
if (config_.EnableAutoFreqCorrection) {
|
||||||
|
performFrequencyCorrection();
|
||||||
|
}
|
||||||
|
if (config_.KissEnableExtensions) {
|
||||||
|
#ifdef USE_RADIOLIB
|
||||||
|
sendSignalReportEvent(radio_->getRSSI(), radio_->getSNR());
|
||||||
|
#else
|
||||||
|
sendSignalReportEvent(LoRa.packetRssi(), LoRa.packetSnr());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
if (!config_.IsClientMode) {
|
||||||
|
processIncomingRawPacketAsServer((const byte*)packet, packetLength);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Service::performFrequencyCorrection() {
|
||||||
#ifdef USE_RADIOLIB
|
#ifdef USE_RADIOLIB
|
||||||
long frequencyErrorHz = radio_->getFrequencyError();
|
long frequencyErrorHz = radio_->getFrequencyError();
|
||||||
#else
|
#else
|
||||||
long frequencyErrorHz = LoRa.packetFrequencyError();
|
long frequencyErrorHz = LoRa.packetFrequencyError();
|
||||||
#endif
|
#endif
|
||||||
if (config_.EnableAutoFreqCorrection && abs(frequencyErrorHz) > config_.AutoFreqCorrectionDeltaHz) {
|
if (abs(frequencyErrorHz) > config_.AutoFreqCorrectionDeltaHz) {
|
||||||
config_.LoraFreq -= frequencyErrorHz;
|
config_.LoraFreq -= frequencyErrorHz;
|
||||||
LOG_INFO("Correcting frequency:", frequencyErrorHz);
|
LOG_INFO("Correcting frequency:", frequencyErrorHz);
|
||||||
#ifdef USE_RADIOLIB
|
#ifdef USE_RADIOLIB
|
||||||
|
@ -470,18 +486,6 @@ void Service::onRigPacket(void *packet, int packetLength)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config_.KissEnableExtensions) {
|
|
||||||
#ifdef USE_RADIOLIB
|
|
||||||
sendSignalReportEvent(radio_->getRSSI(), radio_->getSNR());
|
|
||||||
#else
|
|
||||||
sendSignalReportEvent(LoRa.packetRssi(), LoRa.packetSnr());
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!config_.IsClientMode) {
|
|
||||||
processIncomingRawPacketAsServer((const byte*)packet, packetLength);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef USE_RADIOLIB
|
#ifndef USE_RADIOLIB
|
||||||
|
|
|
@ -61,6 +61,7 @@ private:
|
||||||
void sendToAprsis(const String &aprsMessage);
|
void sendToAprsis(const String &aprsMessage);
|
||||||
bool sendAX25ToLora(const AX25::Payload &payload);
|
bool sendAX25ToLora(const AX25::Payload &payload);
|
||||||
void processIncomingRawPacketAsServer(const byte *packet, int packetLength);
|
void processIncomingRawPacketAsServer(const byte *packet, int packetLength);
|
||||||
|
void performFrequencyCorrection();
|
||||||
|
|
||||||
inline bool needsAprsis() const {
|
inline bool needsAprsis() const {
|
||||||
return !config_.IsClientMode // only in server mode
|
return !config_.IsClientMode // only in server mode
|
||||||
|
|
Ładowanie…
Reference in New Issue