Skip to content

Commit d410487

Browse files
committed
feat(scan): Allow setting scan timeout in milliseconds
1 parent c16a325 commit d410487

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

Diff for: libraries/WiFi/src/WiFiScan.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,14 @@ extern "C" {
4444

4545
bool WiFiScanClass::_scanAsync = false;
4646
uint32_t WiFiScanClass::_scanStarted = 0;
47-
uint32_t WiFiScanClass::_scanTimeout = 10000;
47+
uint32_t WiFiScanClass::_scanTimeout = 60000;
4848
uint16_t WiFiScanClass::_scanCount = 0;
4949
void *WiFiScanClass::_scanResult = 0;
5050

51+
void WiFiScanClass::setScanTimeout(uint32_t ms) {
52+
WiFiScanClass::_scanTimeout = ms;
53+
}
54+
5155
/**
5256
* Start scan WiFi networks available
5357
* @param async run in async mode
@@ -60,7 +64,6 @@ int16_t
6064
return WIFI_SCAN_RUNNING;
6165
}
6266

63-
WiFiScanClass::_scanTimeout = max_ms_per_chan * 20;
6467
WiFiScanClass::_scanAsync = async;
6568

6669
WiFi.enableSTA(true);
@@ -92,7 +95,7 @@ int16_t
9295
if (WiFiScanClass::_scanAsync) {
9396
return WIFI_SCAN_RUNNING;
9497
}
95-
if (WiFiGenericClass::waitStatusBits(WIFI_SCAN_DONE_BIT, 10000)) {
98+
if (WiFiGenericClass::waitStatusBits(WIFI_SCAN_DONE_BIT, _scanTimeout)) {
9699
return (int16_t)WiFiScanClass::_scanCount;
97100
}
98101
}

Diff for: libraries/WiFi/src/WiFiScan.h

+2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@
3131
class WiFiScanClass {
3232

3333
public:
34+
void setScanTimeout(uint32_t ms);
35+
3436
int16_t scanNetworks(
3537
bool async = false, bool show_hidden = false, bool passive = false, uint32_t max_ms_per_chan = 300, uint8_t channel = 0, const char *ssid = nullptr,
3638
const uint8_t *bssid = nullptr

0 commit comments

Comments
 (0)