Defer busy Companion TX-power updates without interrupting RX
A settings save could reach the power setter while RX, TX, duty cycling or a profile transition owned the radio, returning BAD_STATE after earlier settings had already saved. Distinguish busy admission from a hardware rejection and reuse the existing command route, storage and three-second deadline for power. Acknowledge only after hardware acceptance and a successful preference save. Skip hardware work for verified unchanged power. Invalidate that verification after failed writes or radio initialization, retaining rollback and exclusive beacon/Morse ownership. Keep the existing firmware memory limits and features. Cover retries, captured routes, timeout/rollover, disconnect, partial writes, failed saves and recovery. Keep ESP-NOW/simulation adapters compatible and add ESP-NOW Companion compilation to the existing sequential smoke job.
This commit is contained in:
1 parent
af69918094
commit
8dfdba3f6d
17 files changed
+470
-57
No files matched your search
@@ -201,9 +201,11 @@ jobs:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Setup Build Environment
|
||||
uses: ./.github/actions/setup-build-environment
|
||||
- name: Compile RP2040 contact storage and Arduino 3 ESP32-C6 room services
|
||||
- name: Compile RP2040 contacts, ESP32-C6 rooms and ESP-NOW Companion
|
||||
# One process: PlatformIO environments share this checkout's build tree.
|
||||
run: pio run -e Xiao_rp2040_companion_radio_usb -e LilyGo_Tlora_C6_room_server_
|
||||
run: >-
|
||||
pio run -e Xiao_rp2040_companion_radio_usb
|
||||
-e LilyGo_Tlora_C6_room_server_ -e Generic_ESPNOW_comp_radio_usb
|
||||
|
||||
management-reports:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -736,6 +738,7 @@ jobs:
|
||||
python3 -B test/test_radio_profile_scan.py
|
||||
python3 -B test/test_radio_profile_clock.py -v
|
||||
python3 -B test/test_radio_profile_repair.py -v
|
||||
python3 -B test/test_radio_tx_power_transaction.py -v
|
||||
python3 -B test/test_radio_profile_runtime_recommendation.py -v
|
||||
python3 -B test/test_radio_profile_idle_dispatcher.py -v
|
||||
python3 -B test/test_radio_rxps_rejection.py -v
|
||||
|
||||
Reference in new issue
Block a user