diff --git a/PROTOCOL.md b/PROTOCOL.md index f22385c..b97e359 100644 --- a/PROTOCOL.md +++ b/PROTOCOL.md @@ -200,7 +200,7 @@ A client whose inactivity timer has fired is considered disconnected. Transport- ### 3.5 Operations Spanning Reconfiguration -**`SET_CONFIG` while a TX is on the air**: the in-progress TX is allowed to physically complete. Its `TX_DONE` is emitted normally. Any queued-but-not-yet-started TXs are cancelled and emit `TX_DONE(result=CANCELLED)`. Continuous RX, if active, is aborted. RX ring is cleared. New configuration takes effect after the in-flight TX finishes. +**`SET_CONFIG` while a TX is on the air**: the in-progress TX is allowed to physically complete. Its `TX_DONE` is emitted normally. Any queued-but-not-yet-started TXs are cancelled and emit `TX_DONE(result=CANCELLED)`. The RX ring is cleared. If the radio was in continuous RX when `SET_CONFIG` was issued, RX is automatically re-armed with the new parameters once the in-flight TX finishes and the radio has completed reconfiguration; the host does **not** need to re-issue `RX_START`. New configuration takes effect after the in-flight TX finishes. **`SET_CONFIG` validation failure (`ERR(EPARAM)`, `ERR(ELENGTH)`, `ERR(EMODULATION)`)**: the chip is not touched. All parameters are validated before any SPI write to the radio. If validation fails, the radio and state machine are unchanged. @@ -381,9 +381,8 @@ Offset Size Field Description **Side effects on `APPLIED`**: - Any in-progress TX is allowed to finish; its `TX_DONE` is emitted normally. - All queued (not yet started) TXs are cancelled with `TX_DONE(result=CANCELLED)`. -- Any continuous RX is stopped. - RX ring is cleared. -- Radio is reconfigured, calibrated if required, and left in idle. The `OK` response is not emitted until this sequence completes. +- Radio is reconfigured and calibrated if required. If the radio was in continuous RX when `SET_CONFIG` was issued, RX is automatically re-armed with the new parameters once reconfiguration completes; otherwise the radio is left in idle. Either way, the `OK` response is not emitted until this sequence finishes, so the host may issue TX / RX commands immediately after `OK`. **Notes**: - **Auto-LDRO**: For LoRa, the device automatically enables Low Data Rate Optimization when `(2^SF) / BW_Hz > 16 ms` (the Semtech-recommended threshold). The host does not specify LDRO and is not informed of its state.