Apply busy radio settings and recover service starts automatically
Save valid busy RX, fast-switch and Companion tuple changes once, then apply the latest accepted intent at a safe radio gap. Preserve checked-save rollback, runtime RXEN intent, TempRadio ownership and exact remote reply delivery. Repair failed preamble compensation without hiding uncertain saves. Retry WebConfig, MQTT and NimBLE startup failures automatically. Preserve explicit off choices, OTA ownership and the latest WiFi credentials through cooperative shutdown. Add regression coverage and update command guides. Validation: focused host transaction, rollback, ownership and lifecycle suites; Full RAK4631, Heltec V4 R8 TFT and RC32 packages; representative room, sensor, LR1110, LR2021, SX1276, STM32WL and ESP-NOW builds. Linked RAK crypto and OTA workspace checks pass; its complete OTA image uses 712644/712704 bytes.
This commit is contained in:
1 parent
fb73e3afac
commit
73c5f572eb
89 files changed
+2978
-816
No files matched your search
@@ -83,7 +83,7 @@ bool SensorMesh::trackerNeedsRadio() const {
|
||||
|| board.isRadioTestActive() || mesh::isUsbLoggingWatchdogArmed()
|
||||
|| isAnyTempRadioActive() || hasPendingOtaApply() || isDualRadioActive()
|
||||
|| set_radio_at || revert_radio_at || saved_radio_apply_pending
|
||||
|| _cli.hasActiveUserGpioTimer() || _cli.hasPendingTxPower()
|
||||
|| _cli.hasActiveUserGpioTimer() || _cli.hasPendingRadioSettings()
|
||||
|| hasOutbound() || _mgr->getOutboundTotal() != 0)
|
||||
return true;
|
||||
uint32_t delay;
|
||||
@@ -272,6 +272,9 @@ void SensorMesh::onSendComplete(mesh::Packet* packet) {
|
||||
mesh::Mesh::onSendComplete(packet);
|
||||
_cli.servicePendingTxPower();
|
||||
_cli.morseReply().complete(packet);
|
||||
_cli.servicePendingRxSettings();
|
||||
_cli.radioProfiles().servicePendingTuning();
|
||||
servicePendingPrimaryRadioSettings(true);
|
||||
if (!tracker_pending || !packet || packet->getPayloadType() != PAYLOAD_TYPE_REQ) return;
|
||||
uint8_t hash[MAX_HASH_SIZE];
|
||||
packet->calculatePacketHash(hash);
|
||||
|
||||
Reference in new issue
Block a user