In ZDApp.c, if the device drops off the network and try to rejoin, it will change the scan duration to zgDefaultStartingScanDuration = BEACON_ORDER_60_MSEC, which is shorter than 480ms default scan, however, when device performs the orphan scan, in ZDApp.c, the scan duration is changed as:
ret = NLME_OrphanJoinRequest( zgDefaultChannelList, zgDefaultStartingScanDuration );
based on this, we expect to see orphan scan duration to be short. however, we tested and found the orphan scan duration is not changed. so looking at mac scan:
if (macScan.scanCnf.scanType == MAC_SCAN_ORPHAN)
{
timeout = (uint32) macPib.responseWaitTime * MAC_A_BASE_SUPERFRAME_DURATION;
}
else
{
timeout = (((uint32) 1 << macScan.scanDuration) + 1) * MAC_A_BASE_SUPERFRAME_DURATION;
}
the orphan scan duration is not changed. so here is my question:
is responseWaitTime same as default scan time?
If so, why this is not changed during rejoin to a shorter time?
Thanks
Rui