not configure discovery scan duration (#1502)

This commit is contained in:
rongli
2017-04-06 09:56:31 -07:00
committed by Jonathan Hui
parent 6064c03e63
commit 2ba9933882
10 changed files with 16 additions and 27 deletions
+1 -2
View File
@@ -1334,7 +1334,6 @@ OTCALL
otThreadDiscover(
_In_ otInstance *aInstance,
uint32_t aScanChannels,
uint16_t aScanDuration,
uint16_t aPanid,
otHandleActiveScanResult aCallback,
void *aCallbackContext
@@ -1347,7 +1346,7 @@ otThreadDiscover(
aInstance->InterfaceGuid, aCallback, aCallbackContext
);
PackedBuffer4<GUID,uint32_t,uint16_t,uint16_t> Buffer(aInstance->InterfaceGuid, aScanChannels, aScanDuration, aPanid);
PackedBuffer3<GUID,uint32_t,uint16_t> Buffer(aInstance->InterfaceGuid, aScanChannels, aPanid);
return DwordToThreadError(SendIOCTL(aInstance->ApiHandle, IOCTL_OTLWF_OT_DISCOVER, &Buffer, sizeof(Buffer), nullptr, 0));
}
+2 -4
View File
@@ -904,16 +904,14 @@ otLwfIoCtl_otDiscover(
{
NTSTATUS status = STATUS_INVALID_PARAMETER;
if (InBufferLength >= sizeof(uint32_t) + sizeof(uint16_t) + sizeof(uint16_t))
if (InBufferLength >= sizeof(uint32_t) + sizeof(uint16_t))
{
uint32_t aScanChannels = *(uint32_t*)InBuffer;
uint16_t aScanDuration = *(uint16_t*)(InBuffer + sizeof(uint32_t));
uint16_t aPanid = *(uint16_t*)(InBuffer + sizeof(uint32_t) + sizeof(uint16_t));
uint16_t aPanid = *(uint16_t*)(InBuffer + sizeof(uint32_t));
status = ThreadErrorToNtstatus(
otThreadDiscover(
pFilter->otCtx,
aScanChannels,
aScanDuration,
aPanid,
otLwfDiscoverCallback,
pFilter)
+1 -3
View File
@@ -114,7 +114,6 @@ OTAPI bool OTCALL otThreadIsSingleton(otInstance *aInstance);
*
* @param[in] aInstance A pointer to an OpenThread instance.
* @param[in] aScanChannels A bit vector indicating which channels to scan (e.g. OT_CHANNEL_11_MASK).
* @param[in] aScanDuration The time in milliseconds to spend scanning each channel.
* @param[in] aPanId The PAN ID filter (set to Broadcast PAN to disable filter).
* @param[in] aCallback A pointer to a function called on receiving an MLE Discovery Response or scan completes.
* @param[in] aCallbackContext A pointer to application-specific context.
@@ -123,8 +122,7 @@ OTAPI bool OTCALL otThreadIsSingleton(otInstance *aInstance);
* @retval kThreadError_Busy Already performing an Thread Discovery.
*
*/
OTAPI ThreadError OTCALL otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aScanDuration,
uint16_t aPanid,
OTAPI ThreadError OTCALL otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aPanid,
otHandleActiveScanResult aCallback, void *aCallbackContext);
/**
+1 -1
View File
@@ -709,7 +709,7 @@ void Interpreter::ProcessDiscover(int argc, char *argv[])
scanChannels = 1 << value;
}
SuccessOrExit(error = otThreadDiscover(mInstance, scanChannels, 0, OT_PANID_BROADCAST,
SuccessOrExit(error = otThreadDiscover(mInstance, scanChannels, OT_PANID_BROADCAST,
&Interpreter::s_HandleActiveScanResult, this));
sServer->OutputFormat("| J | Network Name | Extended PAN | PAN | MAC Address | Ch | dBm | LQI |\r\n");
sServer->OutputFormat("+---+------------------+------------------+------+------------------+----+-----+-----+\r\n");
+2 -3
View File
@@ -652,11 +652,10 @@ bool otThreadIsSingleton(otInstance *aInstance)
return aInstance->mThreadNetif.GetMle().IsSingleton();
}
ThreadError otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aScanDuration, uint16_t aPanId,
ThreadError otThreadDiscover(otInstance *aInstance, uint32_t aScanChannels, uint16_t aPanId,
otHandleActiveScanResult aCallback, void *aCallbackContext)
{
return aInstance->mThreadNetif.GetMle().Discover(aScanChannels, aScanDuration, aPanId, false,
aCallback, aCallbackContext);
return aInstance->mThreadNetif.GetMle().Discover(aScanChannels, aPanId, false, aCallback, aCallbackContext);
}
bool otThreadIsDiscoverInProgress(otInstance *aInstance)
+1 -1
View File
@@ -114,7 +114,7 @@ ThreadError Joiner::Start(const char *aPSKd, const char *aProvisioningUrl,
SuccessOrExit(error);
mJoinerRouterPanId = Mac::kPanIdBroadcast;
SuccessOrExit(error = mNetif.GetMle().Discover(0, 0, mNetif.GetMac().GetPanId(), true, HandleDiscoverResult, this));
SuccessOrExit(error = mNetif.GetMle().Discover(0, mNetif.GetMac().GetPanId(), true, HandleDiscoverResult, this));
mVendorName = aVendorName;
mVendorModel = aVendorModel;
+2 -4
View File
@@ -74,7 +74,6 @@ MeshForwarder::MeshForwarder(ThreadNetif &aThreadNetif):
mScheduleTransmissionTask(aThreadNetif.GetIp6().mTaskletScheduler, ScheduleTransmissionTask, this),
mEnabled(false),
mScanChannels(0),
mScanDuration(0),
mScanChannel(0),
mRestoreChannel(0),
mRestorePanId(Mac::kPanIdBroadcast),
@@ -1620,7 +1619,7 @@ void MeshForwarder::HandleSentFrame(Mac::Frame &aFrame, ThreadError aError)
if (mSendMessage->GetSubType() == Message::kSubTypeMleDiscoverRequest)
{
mSendBusy = true;
mDiscoverTimer.Start(mScanDuration);
mDiscoverTimer.Start(static_cast<uint16_t>(Mac::kScanDurationDefault));
ExitNow();
}
}
@@ -1661,10 +1660,9 @@ exit:
}
}
void MeshForwarder::SetDiscoverParameters(uint32_t aScanChannels, uint16_t aScanDuration)
void MeshForwarder::SetDiscoverParameters(uint32_t aScanChannels)
{
mScanChannels = (aScanChannels == 0) ? static_cast<uint32_t>(Mac::kScanChannelsAll) : aScanChannels;
mScanDuration = (aScanDuration == 0) ? static_cast<uint16_t>(Mac::kScanDurationDefault) : aScanDuration;
}
void MeshForwarder::HandleDiscoverTimer(void *aContext)
+1 -3
View File
@@ -151,10 +151,9 @@ public:
* This method sets the scan parameters for MLE Discovery Request messages.
*
* @param[in] aScanChannels A bit vector indicating which channels to scan.
* @param[in] aScanDuration The time in milliseconds to spend scanning each channel.
*
*/
void SetDiscoverParameters(uint32_t aScanChannels, uint16_t aScanDuration);
void SetDiscoverParameters(uint32_t aScanChannels);
/**
* This method frees any indirect messages queued for a specific child.
@@ -321,7 +320,6 @@ private:
bool mEnabled;
uint32_t mScanChannels;
uint16_t mScanDuration;
uint8_t mScanChannel;
uint8_t mRestoreChannel;
uint16_t mRestorePanId;
+3 -3
View File
@@ -375,8 +375,8 @@ exit:
return error;
}
ThreadError Mle::Discover(uint32_t aScanChannels, uint16_t aScanDuration, uint16_t aPanId, bool aJoiner,
DiscoverHandler aCallback, void *aContext)
ThreadError Mle::Discover(uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, DiscoverHandler aCallback,
void *aContext)
{
ThreadError error = kThreadError_None;
Message *message = NULL;
@@ -389,7 +389,7 @@ ThreadError Mle::Discover(uint32_t aScanChannels, uint16_t aScanDuration, uint16
mDiscoverHandler = aCallback;
mDiscoverContext = aContext;
mNetif.GetMeshForwarder().SetDiscoverParameters(aScanChannels, aScanDuration);
mNetif.GetMeshForwarder().SetDiscoverParameters(aScanChannels);
VerifyOrExit((message = NewMleMessage()) != NULL);
message->SetSubType(Message::kSubTypeMleDiscoverRequest);
+2 -3
View File
@@ -539,7 +539,6 @@ public:
* This method initiates a Thread Discovery.
*
* @param[in] aScanChannels A bit vector indicating which channels to scan.
* @param[in] aScanDuration The time in milliseconds to spend scanning each channel.
* @param[in] aPanId The PAN ID filter (set to Broadcast PAN to disable filter).
* @param[in] aJoiner Value of the Joiner Flag in the Discovery Request TLV.
* @param[in] aHandler A pointer to a function that is called on receiving an MLE Discovery Response.
@@ -549,8 +548,8 @@ public:
* @retval kThreadError_Busy Thread Discovery is already in progress.
*
*/
ThreadError Discover(uint32_t aScanChannels, uint16_t aScanDuration, uint16_t aPanId, bool aJoiner,
DiscoverHandler aCallback, void *aContext);
ThreadError Discover(uint32_t aScanChannels, uint16_t aPanId, bool aJoiner, DiscoverHandler aCallback,
void *aContext);
/**
* This method indicates whether or not an MLE Thread Discovery is currently in progress.