mirror of
https://github.com/meshtastic/firmware.git
synced 2025-08-12 16:25:16 +00:00
Add more useful error output in radio interfaces (#3615)
* Add more useful error output in radio interfaces * trunk
This commit is contained in:
parent
f1a1834ee2
commit
0a246bfe9b
@ -128,12 +128,18 @@ bool RF95Interface::reconfigure()
|
|||||||
RECORD_CRITICALERROR(meshtastic_CriticalErrorCode_INVALID_RADIO_SETTING);
|
RECORD_CRITICALERROR(meshtastic_CriticalErrorCode_INVALID_RADIO_SETTING);
|
||||||
|
|
||||||
err = lora->setSyncWord(syncWord);
|
err = lora->setSyncWord(syncWord);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting RF95 setSyncWord!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
err = lora->setCurrentLimit(currentLimit);
|
err = lora->setCurrentLimit(currentLimit);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting RF95 setCurrentLimit!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
err = lora->setPreambleLength(preambleLength);
|
err = lora->setPreambleLength(preambleLength);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting RF95 setPreambleLength!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
err = lora->setFrequency(getFreq());
|
err = lora->setFrequency(getFreq());
|
||||||
@ -164,6 +170,8 @@ void RF95Interface::addReceiveMetadata(meshtastic_MeshPacket *mp)
|
|||||||
void RF95Interface::setStandby()
|
void RF95Interface::setStandby()
|
||||||
{
|
{
|
||||||
int err = lora->standby();
|
int err = lora->standby();
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting RF95 standby!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
isReceiving = false; // If we were receiving, not any more
|
isReceiving = false; // If we were receiving, not any more
|
||||||
@ -185,6 +193,8 @@ void RF95Interface::startReceive()
|
|||||||
setTransmitEnable(false);
|
setTransmitEnable(false);
|
||||||
setStandby();
|
setStandby();
|
||||||
int err = lora->startReceive();
|
int err = lora->startReceive();
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting RF95 startReceive!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
isReceiving = true;
|
isReceiving = true;
|
||||||
@ -205,6 +215,8 @@ bool RF95Interface::isChannelActive()
|
|||||||
// LOG_DEBUG("Channel is busy!\n");
|
// LOG_DEBUG("Channel is busy!\n");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
if (result != RADIOLIB_ERR_WRONG_MODEM)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting RF95 isChannelActive!\n", result);
|
||||||
assert(result != RADIOLIB_ERR_WRONG_MODEM);
|
assert(result != RADIOLIB_ERR_WRONG_MODEM);
|
||||||
|
|
||||||
// LOG_DEBUG("Channel is free!\n");
|
// LOG_DEBUG("Channel is free!\n");
|
||||||
|
@ -181,12 +181,18 @@ template <typename T> bool SX126xInterface<T>::reconfigure()
|
|||||||
RECORD_CRITICALERROR(meshtastic_CriticalErrorCode_INVALID_RADIO_SETTING);
|
RECORD_CRITICALERROR(meshtastic_CriticalErrorCode_INVALID_RADIO_SETTING);
|
||||||
|
|
||||||
err = lora.setSyncWord(syncWord);
|
err = lora.setSyncWord(syncWord);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX126X setSyncWord!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
err = lora.setCurrentLimit(currentLimit);
|
err = lora.setCurrentLimit(currentLimit);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX126X setCurrentLimit!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
err = lora.setPreambleLength(preambleLength);
|
err = lora.setPreambleLength(preambleLength);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX126X setPreambleLength!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
err = lora.setFrequency(getFreq());
|
err = lora.setFrequency(getFreq());
|
||||||
@ -197,6 +203,8 @@ template <typename T> bool SX126xInterface<T>::reconfigure()
|
|||||||
power = SX126X_MAX_POWER;
|
power = SX126X_MAX_POWER;
|
||||||
|
|
||||||
err = lora.setOutputPower(power);
|
err = lora.setOutputPower(power);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX126X setOutputPower!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
startReceive(); // restart receiving
|
startReceive(); // restart receiving
|
||||||
@ -215,10 +223,8 @@ template <typename T> void SX126xInterface<T>::setStandby()
|
|||||||
|
|
||||||
int err = lora.standby();
|
int err = lora.standby();
|
||||||
|
|
||||||
if (err != RADIOLIB_ERR_NONE) {
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
LOG_DEBUG("SX126x standby failed with error %d\n", err);
|
LOG_DEBUG("SX126x standby failed with error %d\n", err);
|
||||||
}
|
|
||||||
|
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
isReceiving = false; // If we were receiving, not any more
|
isReceiving = false; // If we were receiving, not any more
|
||||||
@ -260,6 +266,8 @@ template <typename T> void SX126xInterface<T>::startReceive()
|
|||||||
int err = lora.startReceiveDutyCycleAuto(preambleLength, 8,
|
int err = lora.startReceiveDutyCycleAuto(preambleLength, 8,
|
||||||
RADIOLIB_SX126X_IRQ_RX_DEFAULT | RADIOLIB_SX126X_IRQ_PREAMBLE_DETECTED |
|
RADIOLIB_SX126X_IRQ_RX_DEFAULT | RADIOLIB_SX126X_IRQ_PREAMBLE_DETECTED |
|
||||||
RADIOLIB_SX126X_IRQ_HEADER_VALID);
|
RADIOLIB_SX126X_IRQ_HEADER_VALID);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX126X startReceiveDutyCycleAuto!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
isReceiving = true;
|
isReceiving = true;
|
||||||
@ -279,7 +287,8 @@ template <typename T> bool SX126xInterface<T>::isChannelActive()
|
|||||||
result = lora.scanChannel();
|
result = lora.scanChannel();
|
||||||
if (result == RADIOLIB_LORA_DETECTED)
|
if (result == RADIOLIB_LORA_DETECTED)
|
||||||
return true;
|
return true;
|
||||||
|
if (result != RADIOLIB_ERR_WRONG_MODEM)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX126X scanChannel!\n", result);
|
||||||
assert(result != RADIOLIB_ERR_WRONG_MODEM);
|
assert(result != RADIOLIB_ERR_WRONG_MODEM);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -126,9 +126,13 @@ template <typename T> bool SX128xInterface<T>::reconfigure()
|
|||||||
RECORD_CRITICALERROR(meshtastic_CriticalErrorCode_INVALID_RADIO_SETTING);
|
RECORD_CRITICALERROR(meshtastic_CriticalErrorCode_INVALID_RADIO_SETTING);
|
||||||
|
|
||||||
err = lora.setSyncWord(syncWord);
|
err = lora.setSyncWord(syncWord);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX128X setSyncWord!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
err = lora.setPreambleLength(preambleLength);
|
err = lora.setPreambleLength(preambleLength);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX128X setPreambleLength!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
err = lora.setFrequency(getFreq());
|
err = lora.setFrequency(getFreq());
|
||||||
@ -139,6 +143,8 @@ template <typename T> bool SX128xInterface<T>::reconfigure()
|
|||||||
power = SX128X_MAX_POWER;
|
power = SX128X_MAX_POWER;
|
||||||
|
|
||||||
err = lora.setOutputPower(power);
|
err = lora.setOutputPower(power);
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX128X setOutputPower!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
startReceive(); // restart receiving
|
startReceive(); // restart receiving
|
||||||
@ -162,10 +168,8 @@ template <typename T> void SX128xInterface<T>::setStandby()
|
|||||||
|
|
||||||
int err = lora.standby();
|
int err = lora.standby();
|
||||||
|
|
||||||
if (err != RADIOLIB_ERR_NONE) {
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
LOG_ERROR("SX128x standby failed with error %d\n", err);
|
LOG_ERROR("SX128x standby failed with error %d\n", err);
|
||||||
}
|
|
||||||
|
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
#if ARCH_PORTDUINO
|
#if ARCH_PORTDUINO
|
||||||
if (settingsMap[rxen] != RADIOLIB_NC) {
|
if (settingsMap[rxen] != RADIOLIB_NC) {
|
||||||
@ -255,6 +259,8 @@ template <typename T> void SX128xInterface<T>::startReceive()
|
|||||||
lora.startReceive(RADIOLIB_SX128X_RX_TIMEOUT_INF, RADIOLIB_SX128X_IRQ_RX_DEFAULT | RADIOLIB_SX128X_IRQ_PREAMBLE_DETECTED |
|
lora.startReceive(RADIOLIB_SX128X_RX_TIMEOUT_INF, RADIOLIB_SX128X_IRQ_RX_DEFAULT | RADIOLIB_SX128X_IRQ_PREAMBLE_DETECTED |
|
||||||
RADIOLIB_SX128X_IRQ_HEADER_VALID);
|
RADIOLIB_SX128X_IRQ_HEADER_VALID);
|
||||||
|
|
||||||
|
if (err != RADIOLIB_ERR_NONE)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX128X startReceive!\n", err);
|
||||||
assert(err == RADIOLIB_ERR_NONE);
|
assert(err == RADIOLIB_ERR_NONE);
|
||||||
|
|
||||||
isReceiving = true;
|
isReceiving = true;
|
||||||
@ -274,7 +280,8 @@ template <typename T> bool SX128xInterface<T>::isChannelActive()
|
|||||||
result = lora.scanChannel();
|
result = lora.scanChannel();
|
||||||
if (result == RADIOLIB_LORA_DETECTED)
|
if (result == RADIOLIB_LORA_DETECTED)
|
||||||
return true;
|
return true;
|
||||||
|
if (result != RADIOLIB_ERR_WRONG_MODEM)
|
||||||
|
LOG_ERROR("Radiolib error %d when attempting SX128X scanChannel!\n", result);
|
||||||
assert(result != RADIOLIB_ERR_WRONG_MODEM);
|
assert(result != RADIOLIB_ERR_WRONG_MODEM);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
Loading…
Reference in New Issue
Block a user