US-like `TxParamSetupReq` processing is erroneous
terrillmoore opened this issue · 0 comments
terrillmoore commented
TxParamSetupReq
as implemented for us-like regions has a few problems.
- It miscomputes the base channel for a change group change; if the host asks to disable all 500k channels, it will instead disable 125k channels 0..15, causing an assert the next time nextTx is called.
- nextTx() should try 125k channels and lowering datarate (or 500k channels and raising datarate).
- It doesn't check the feasibility of the selected data rate given the effective set of enabled channels
- It doesn't include the need for minimum number of 125k channels in its effectiveness decision.
The US compliance tests do things like turning off all 125kHz channels and setting DR to DR1 -- not feasible unless you have some number of 125kHz channels. In this case, we're supposed to reject the request.