You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The default return value bool status = true; Seems to be problematic in our case. For some reason (probably a race-condition) the loop while( TimerGetElapsedTime( carrierSenseTime ) < maxCarrierSenseTime ) exits immediately without measuring the RSSI even once and the function returns true
Adding a check rssi != 0 resolves this problem.
Example solution:
bool RadioIsChannelFree( uint32_t freq, uint32_t rxBandwidth, int16_t rssiThresh, uint32_t maxCarrierSenseTime )
{
...
RadioSleep( );
// Make sure that the carrier sense is executed once
return (rssi != 0) ? status : false;
}
Hi,
We are attempting to approbate region KR920 and the test house reports failure on the listen-before-talk test.
Looking at the following code snippet:
LoRaMac-node/src/radio/sx126x/radio.c
Lines 586 to 618 in 2bf36bd
The default return value
bool status = true;
Seems to be problematic in our case. For some reason (probably a race-condition) the loopwhile( TimerGetElapsedTime( carrierSenseTime ) < maxCarrierSenseTime )
exits immediately without measuring the RSSI even once and the function returnstrue
Adding a check
rssi != 0
resolves this problem.Example solution:
Or maybe nicer, change while -> do while:
What is your opinion on this?
The text was updated successfully, but these errors were encountered: