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;
|
||||
}
|
||||
onRigTx(rxByte);
|
||||
// NOTE, TNC2 uses \n as a packet delimiter
|
||||
if (rxByte == '\n') {
|
||||
onRigTx('\0');
|
||||
onRigTxEnd();
|
||||
isRawIdle_ = true;
|
||||
} else {
|
||||
onRigTx(rxByte);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -447,13 +447,29 @@ bool Service::sendAX25ToLora(const AX25::Payload &payload)
|
|||
}
|
||||
|
||||
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
|
||||
long frequencyErrorHz = radio_->getFrequencyError();
|
||||
#else
|
||||
long frequencyErrorHz = LoRa.packetFrequencyError();
|
||||
#endif
|
||||
if (config_.EnableAutoFreqCorrection && abs(frequencyErrorHz) > config_.AutoFreqCorrectionDeltaHz) {
|
||||
if (abs(frequencyErrorHz) > config_.AutoFreqCorrectionDeltaHz) {
|
||||
config_.LoraFreq -= frequencyErrorHz;
|
||||
LOG_INFO("Correcting frequency:", frequencyErrorHz);
|
||||
#ifdef USE_RADIOLIB
|
||||
|
@ -470,18 +486,6 @@ void Service::onRigPacket(void *packet, int packetLength)
|
|||
}
|
||||
#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
|
||||
|
|
|
@ -61,6 +61,7 @@ private:
|
|||
void sendToAprsis(const String &aprsMessage);
|
||||
bool sendAX25ToLora(const AX25::Payload &payload);
|
||||
void processIncomingRawPacketAsServer(const byte *packet, int packetLength);
|
||||
void performFrequencyCorrection();
|
||||
|
||||
inline bool needsAprsis() const {
|
||||
return !config_.IsClientMode // only in server mode
|
||||
|
|
Ładowanie…
Reference in New Issue