|
7 | 7 | #include <sys_dev_wifi_native.h> |
8 | 8 | #include <nf_rt_events_native.h> |
9 | 9 | #include <esp_wifi_types.h> |
| 10 | +#include <NF_ESP32_Network.h> |
10 | 11 |
|
11 | | -/////////////////////////////////////////////////////////////////////////////////////// |
| 12 | +//////////////////////////////////////////////////////////////////////////////////// |
12 | 13 | // !!! KEEP IN SYNC WITH System.Device.Wifi (in managed code) !!! // |
13 | 14 | /////////////////////////////////////////////////////////////////////////////////////// |
14 | 15 | struct ScanRecord |
@@ -180,17 +181,38 @@ HRESULT Library_sys_dev_wifi_native_System_Device_Wifi_WifiAdapter::NativeDiscon |
180 | 181 | HRESULT Library_sys_dev_wifi_native_System_Device_Wifi_WifiAdapter::NativeScanAsync___VOID(CLR_RT_StackFrame &stack) |
181 | 182 | { |
182 | 183 | NANOCLR_HEADER(); |
183 | | - { |
184 | | - int netIndex; |
185 | 184 |
|
186 | | - NANOCLR_CHECK_HRESULT(GetNetInterfaceIndex(stack, &netIndex)); |
| 185 | + int netIndex; |
| 186 | + int startScanResult; |
187 | 187 |
|
188 | | - // Start scan |
189 | | - if (Network_Interface_Start_Scan(netIndex) == false) |
190 | | - { |
| 188 | + NANOCLR_CHECK_HRESULT(GetNetInterfaceIndex(stack, &netIndex)); |
| 189 | + |
| 190 | + // Start scan |
| 191 | + startScanResult = Network_Interface_Start_Scan(netIndex); |
| 192 | + |
| 193 | + switch (startScanResult) |
| 194 | + { |
| 195 | + |
| 196 | + case StartScanOutcome_WrongInterfaceType: |
| 197 | + case StartScanOutcome_Esp32WifiNotInit: |
| 198 | + case StartScanOutcome_Esp32WifiNotStarted: |
191 | 199 | NANOCLR_SET_AND_LEAVE(CLR_E_INVALID_OPERATION); |
192 | | - } |
| 200 | + break; |
| 201 | + |
| 202 | + case StartScanOutcome_Esp32WifiState: |
| 203 | + NANOCLR_SET_AND_LEAVE(CLR_E_BUSY); |
| 204 | + break; |
| 205 | + |
| 206 | + case StartScanOutcome_Esp32WifiTimeout: |
| 207 | + NANOCLR_SET_AND_LEAVE(CLR_E_TIMEOUT); |
| 208 | + break; |
| 209 | + |
| 210 | + case StartScanOutcome_FailedToGetConfiguration: |
| 211 | + default: |
| 212 | + NANOCLR_SET_AND_LEAVE(CLR_E_FAIL); |
| 213 | + break; |
193 | 214 | } |
| 215 | + |
194 | 216 | NANOCLR_NOCLEANUP(); |
195 | 217 | } |
196 | 218 |
|
|
0 commit comments