mirror of
https://github.com/markqvist/RNode_Firmware.git
synced 2025-06-27 16:07:34 -04:00
Add modem comm timeout error code
This commit is contained in:
parent
c55d907045
commit
22372855b3
1 changed files with 37 additions and 18 deletions
|
@ -163,20 +163,26 @@ void setup() {
|
||||||
// probe boot parameters.
|
// probe boot parameters.
|
||||||
if (LoRa->preInit()) {
|
if (LoRa->preInit()) {
|
||||||
modem_installed = true;
|
modem_installed = true;
|
||||||
uint32_t lfr = LoRa->getFrequency();
|
|
||||||
if (lfr == 0) {
|
#if HAS_INPUT
|
||||||
// Normal boot
|
// Skip quick-reset console activation
|
||||||
} else if (lfr == M_FRQ_R) {
|
#else
|
||||||
// Quick reboot
|
uint32_t lfr = LoRa->getFrequency();
|
||||||
#if HAS_CONSOLE
|
if (lfr == 0) {
|
||||||
if (rtc_get_reset_reason(0) == POWERON_RESET) {
|
// Normal boot
|
||||||
console_active = true;
|
} else if (lfr == M_FRQ_R) {
|
||||||
}
|
// Quick reboot
|
||||||
#endif
|
#if HAS_CONSOLE
|
||||||
} else {
|
if (rtc_get_reset_reason(0) == POWERON_RESET) {
|
||||||
// Unknown boot
|
console_active = true;
|
||||||
}
|
}
|
||||||
LoRa->setFrequency(M_FRQ_S);
|
#endif
|
||||||
|
} else {
|
||||||
|
// Unknown boot
|
||||||
|
}
|
||||||
|
LoRa->setFrequency(M_FRQ_S);
|
||||||
|
#endif
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
modem_installed = false;
|
modem_installed = false;
|
||||||
}
|
}
|
||||||
|
@ -573,7 +579,14 @@ void transmit(uint16_t size) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
LoRa->endPacket(); add_airtime(written);
|
if (!LoRa->endPacket()) {
|
||||||
|
kiss_indicate_error(ERROR_MODEM_TIMEOUT);
|
||||||
|
kiss_indicate_error(ERROR_TXFAILED);
|
||||||
|
led_indicate_error(5);
|
||||||
|
hard_reset();
|
||||||
|
}
|
||||||
|
add_airtime(written);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// In promiscuous mode, we only send out
|
// In promiscuous mode, we only send out
|
||||||
// plain raw LoRa packets with a maximum
|
// plain raw LoRa packets with a maximum
|
||||||
|
@ -988,7 +1001,13 @@ void serialCallback(uint8_t sbyte) {
|
||||||
bt_start();
|
bt_start();
|
||||||
bt_conf_save(true);
|
bt_conf_save(true);
|
||||||
} else if (sbyte == 0x02) {
|
} else if (sbyte == 0x02) {
|
||||||
bt_enable_pairing();
|
if (bt_state == BT_STATE_OFF) {
|
||||||
|
bt_start();
|
||||||
|
bt_conf_save(true);
|
||||||
|
}
|
||||||
|
if (bt_state != BT_STATE_CONNECTED) {
|
||||||
|
bt_enable_pairing();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
} else if (command == CMD_DISP_INT) {
|
} else if (command == CMD_DISP_INT) {
|
||||||
|
@ -1282,8 +1301,8 @@ void validate_status() {
|
||||||
#define _S 10.0
|
#define _S 10.0
|
||||||
float csma_slope(float u) { return (pow(_e,_S*u-_S/2.0))/(pow(_e,_S*u-_S/2.0)+1.0); }
|
float csma_slope(float u) { return (pow(_e,_S*u-_S/2.0))/(pow(_e,_S*u-_S/2.0)+1.0); }
|
||||||
void update_csma_p() {
|
void update_csma_p() {
|
||||||
csma_p = (uint8_t)((1.0-(csma_p_min+(csma_p_max-csma_p_min)*csma_slope(airtime)))*255.0);
|
csma_p = (uint8_t)((1.0-(csma_p_min+(csma_p_max-csma_p_min)*csma_slope(airtime)))*255.0);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue