@@ -1372,97 +1372,100 @@ STATIC mp_obj_t wlan_scan(mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *
1372
1372
mp_buffer_info_t bufinfo ;
1373
1373
mp_obj_t * stime ;
1374
1374
size_t stimelen ;
1375
- if (args [0 ].u_obj == mp_const_none && args [1 ].u_obj == mp_const_none && args [2 ].u_obj == mp_const_none && args [3 ].u_obj == mp_const_none && args [4 ].u_obj == mp_const_none && args [5 ].u_obj == mp_const_none )
1375
+
1376
+
1377
+ if (args [0 ].u_obj != mp_const_none )
1376
1378
{
1377
- ptr_config = NULL ;
1379
+ scan_config . ssid = ( uint8_t * ) mp_obj_str_get_str ( args [ 0 ]. u_obj ) ;
1378
1380
}
1379
- else
1381
+
1382
+ if (args [1 ].u_obj != mp_const_none )
1380
1383
{
1381
- if (args [0 ].u_obj != mp_const_none )
1384
+ if (MP_OBJ_IS_TYPE ( args [1 ].u_obj , & mp_type_bytes ) )
1382
1385
{
1383
- scan_config .ssid = (uint8_t * )mp_obj_str_get_str (args [0 ].u_obj );
1386
+ mp_get_buffer_raise (args [1 ].u_obj , & bufinfo , MP_BUFFER_READ );
1387
+ scan_config .bssid = bufinfo .buf ;
1384
1388
}
1385
-
1386
- if (args [1 ].u_obj != mp_const_none )
1389
+ else
1387
1390
{
1388
- if (MP_OBJ_IS_TYPE (args [1 ].u_obj , & mp_type_bytes ))
1389
- {
1390
- mp_get_buffer_raise (args [1 ].u_obj , & bufinfo , MP_BUFFER_READ );
1391
- scan_config .bssid = bufinfo .buf ;
1392
- }
1393
- else
1394
- {
1395
- nlr_raise (mp_obj_new_exception_msg (& mp_type_ValueError , "invalid bssid" ));
1396
- }
1391
+ nlr_raise (mp_obj_new_exception_msg (& mp_type_ValueError , "invalid bssid" ));
1397
1392
}
1393
+ }
1398
1394
1399
- if (args [2 ].u_obj != mp_const_none )
1400
- {
1401
- scan_config .channel = mp_obj_get_int (args [2 ].u_obj );
1402
- }
1395
+ if (args [2 ].u_obj != mp_const_none )
1396
+ {
1397
+ scan_config .channel = mp_obj_get_int (args [2 ].u_obj );
1398
+ }
1399
+
1400
+ if (args [3 ].u_obj != mp_const_none )
1401
+ {
1402
+ scan_config .show_hidden = mp_obj_get_int (args [3 ].u_obj ) >= 1 ;
1403
+ }
1403
1404
1404
- if (args [3 ].u_obj != mp_const_none )
1405
+ if (args [4 ].u_obj != mp_const_none )
1406
+ {
1407
+ if ((wifi_scan_type_t )(mp_obj_get_int (args [4 ].u_obj )) == WIFI_SCAN_TYPE_PASSIVE )
1405
1408
{
1406
- scan_config .show_hidden = mp_obj_get_int ( args [ 3 ]. u_obj ) >= 1 ;
1409
+ scan_config .scan_type = WIFI_SCAN_TYPE_PASSIVE ;
1407
1410
}
1408
-
1409
- if (args [4 ].u_obj != mp_const_none )
1411
+ else
1410
1412
{
1411
- if ((wifi_scan_type_t )(mp_obj_get_int (args [4 ].u_obj )) == WIFI_SCAN_TYPE_PASSIVE )
1412
- {
1413
- scan_config .scan_type = WIFI_SCAN_TYPE_PASSIVE ;
1414
- }
1415
- else
1416
- {
1417
- scan_config .scan_type = WIFI_SCAN_TYPE_ACTIVE ;
1418
- }
1413
+ scan_config .scan_type = WIFI_SCAN_TYPE_ACTIVE ;
1419
1414
}
1415
+ }
1416
+ else if (wlan_obj .mode == WIFI_MODE_STA && !wlan_obj .disconnected )
1417
+ {
1418
+ scan_config<
8000
/span>.scan_type = WIFI_SCAN_TYPE_PASSIVE ;
1419
+ }
1420
+ else
1421
+ {
1422
+ // Nothing
1423
+ }
1420
1424
1421
- if (args [5 ].u_obj != mp_const_none )
1425
+ if (args [5 ].u_obj != mp_const_none )
1426
+ {
1427
+ if (MP_OBJ_IS_TYPE (args [5 ].u_obj , & mp_type_tuple ) && scan_config .scan_type == WIFI_SCAN_TYPE_ACTIVE )
1422
1428
{
1423
- if (MP_OBJ_IS_TYPE (args [5 ].u_obj , & mp_type_tuple ) && scan_config .scan_type == WIFI_SCAN_TYPE_ACTIVE )
1424
- {
1425
- mp_obj_get_array (args [5 ].u_obj , & stimelen , & stime );
1429
+ mp_obj_get_array (args [5 ].u_obj , & stimelen , & stime );
1426
1430
1427
- if (stimelen != 0 && stimelen <= 2 )
1431
+ if (stimelen != 0 && stimelen <= 2 )
1432
+ {
1433
+ if (stimelen == 2 && scan_config .scan_type == WIFI_SCAN_TYPE_ACTIVE )
1428
1434
{
1429
- if (stimelen == 2 && scan_config .scan_type == WIFI_SCAN_TYPE_ACTIVE )
1430
- {
1431
- scan_config .scan_time .active .min = mp_obj_get_int (stime [0 ]);
1432
- scan_config .scan_time .active .max = mp_obj_get_int (stime [1 ]);
1433
- }
1434
- else
1435
- {
1436
- goto scan_time_err ;
1437
- }
1435
+ scan_config .scan_time .active .min = mp_obj_get_int (stime [0 ]);
1436
+ scan_config .scan_time .active .max = mp_obj_get_int (stime [1 ]);
1438
1437
}
1439
1438
else
1440
1439
{
1441
1440
goto scan_time_err ;
1442
1441
}
1443
1442
}
1444
- else if ( MP_OBJ_IS_INT ( args [ 5 ]. u_obj ) && scan_config . scan_type == WIFI_SCAN_TYPE_PASSIVE )
1443
+ else
1445
1444
{
1446
- uint32_t passive = mp_obj_get_int (args [5 ].u_obj );
1445
+ goto scan_time_err ;
1446
+ }
1447
+ }
1448
+ else if (MP_OBJ_IS_INT (args [5 ].u_obj ) && scan_config .scan_type == WIFI_SCAN_TYPE_PASSIVE )
1449
+ {
1450
+ uint32_t passive = mp_obj_get_int (args [5 ].u_obj );
1447
1451
1448
- if (passive >= 0 )
1449
- {
1450
- scan_config .scan_time .passive = mp_obj_get_int (args [5 ].u_obj );
1451
- }
1452
- else
1453
- {
1454
- goto scan_time_err ;
1455
- }
1452
+ if (passive >= 0 )
1453
+ {
1454
+ scan_config .scan_time .passive = mp_obj_get_int (args [5 ].u_obj );
1456
1455
}
1457
1456
else
1458
1457
{
1459
1458
goto scan_time_err ;
1460
1459
}
1461
1460
}
1462
-
1463
- ptr_config = & scan_config ;
1461
+ else
1462
+ {
1463
+ goto scan_time_err ;
1464
+ }
1464
1465
}
1465
1466
1467
+ ptr_config = & scan_config ;
1468
+
1466
1469
// check for the correct wlan mode
1467
1470
if (wlan_obj .mode == WIFI_MODE_AP ) {
1468
1471
nlr_raise (mp_obj_new_exception_msg (& mp_type_OSError , mpexception_os_request_not_possible ));
0 commit comments