Skip to content

Commit 4ab0d89

Browse files
committed
[nrf noup] [nfconnet] Wi-FI directed scan implementation
This patch implements directed scanning and single ssid scanning during commissioning. Signed-off-by: Marcin Kajor <marcin.kajor@nordicsemi.no>
1 parent 49b5f80 commit 4ab0d89

File tree

2 files changed

+19
-2
lines changed

2 files changed

+19
-2
lines changed

src/platform/nrfconnect/wifi/WiFiManager.cpp

+16-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,22 @@ CHIP_ERROR WiFiManager::Scan(const ByteSpan & ssid, ScanResultCallback resultCal
188188
mWiFiState = WIFI_STATE_SCANNING;
189189
mSsidFound = false;
190190

191-
if (0 != net_mgmt(NET_REQUEST_WIFI_SCAN, mNetIf, NULL, 0))
191+
wifi_scan_params * scanParams{ nullptr };
192+
size_t scanParamsSize{ 0 };
193+
194+
if (!ssid.empty())
195+
{
196+
/* We must assume that the ssid is handled as a NULL-terminated string.
197+
Note that the mScanSsidBuffer is initialized with zeros. */
198+
VerifyOrReturnError(ssid.size() < sizeof(mScanParams), CHIP_ERROR_INVALID_ARGUMENT);
199+
memcpy(mScanSsidBuffer, ssid.data(), ssid.size());
200+
mScanSsidBuffer[ssid.size()] = 0; // indicate the end of ssid string
201+
mScanParams.ssids[0] = mScanSsidBuffer;
202+
mScanParams.ssids[1] = nullptr; // indicate the end of ssids list
203+
scanParams = &mScanParams;
204+
scanParamsSize = sizeof(*scanParams);
205+
}
206+
if (0 != net_mgmt(NET_REQUEST_WIFI_SCAN, mNetIf, scanParams, scanParamsSize))
192207
{
193208
ChipLogError(DeviceLayer, "Scan request failed");
194209
return CHIP_ERROR_INTERNAL;

src/platform/nrfconnect/wifi/WiFiManager.h

+3-1
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,9 @@ class WiFiManager
220220

221221
net_if * mNetIf{ nullptr };
222222
ConnectionParams mWiFiParams{};
223-
ConnectionHandling mHandling;
223+
ConnectionHandling mHandling{};
224+
wifi_scan_params mScanParams{};
225+
char mScanSsidBuffer[DeviceLayer::Internal::kMaxWiFiSSIDLength + 1] = { 0 };
224226
wifi_iface_state mWiFiState;
225227
wifi_iface_state mCachedWiFiState;
226228
net_mgmt_event_callback mWiFiMgmtClbk{};

0 commit comments

Comments
 (0)