} if ((ScanType > 3) || (ScanType < 3 && ScanDuration > 14) ||
(ChannelPage != IEEE154_SUPPORTED_CHANNELPAGE) ||
!(supportedChannels & ScanChannels) ||
- (EnergyDetectListNumEntries && PANDescriptorListNumEntries) ||
+ ((ScanType != ORPHAN_SCAN) &&
+ ((EnergyDetectListNumEntries && PANDescriptorListNumEntries) ||
(EnergyDetectList != NULL && PANDescriptorList != NULL) ||
(EnergyDetectListNumEntries && EnergyDetectList == NULL) ||
- (PANDescriptorListNumEntries && PANDescriptorList == NULL)) {
+ (PANDescriptorListNumEntries && PANDescriptorList == NULL)))) {
status = IEEE154_INVALID_PARAMETER;
} else if (ScanType != ENERGY_DETECTION_SCAN &&
!(m_txFrame = call TxFramePool.get())) {
((uint8_t*) m_resultList)[m_resultIndex++] = EnergyLevel;
if (m_resultIndex == m_resultListNumEntries)
m_terminateScan = TRUE; // done
- call RadioOff.off();
+ if (call RadioOff.off() == EALREADY)
+ signal RadioOff.offDone();
}
/* ----------------------- Active/Orphan scan ----------------------- */