@@ -518,7 +518,7 @@ ble_error_t Gap::stopScan()
518
518
if (err) {
519
519
return err;
520
520
}
521
- _scan_state = ScanState::pending_stop_scan;
521
+ set_scan_state ( ScanState::pending_stop_scan) ;
522
522
}
523
523
524
524
_scan_timeout.detach ();
@@ -1209,7 +1209,7 @@ ble_error_t Gap::reset()
1209
1209
1210
1210
_event_handler = nullptr ;
1211
1211
_initiating = false ;
1212
- _scan_state = ScanState::idle;
1212
+ set_scan_state ( ScanState::idle) ;
1213
1213
_scan_requested = false ;
1214
1214
#if BLE_FEATURE_PRIVACY
1215
1215
_privacy_initialization_pending = false ;
@@ -1295,13 +1295,28 @@ void Gap::on_scan_started(bool success)
1295
1295
MBED_ASSERT (_scan_state == ScanState::pending_scan);
1296
1296
1297
1297
if (success) {
1298
- _scan_state = ScanState::scan;
1298
+ set_scan_state ( ScanState::scan) ;
1299
1299
/* if no longer want the scan */
1300
1300
if (!_scan_requested) {
1301
1301
stopScan ();
1302
1302
}
1303
1303
} else {
1304
- _scan_state = ScanState::idle;
1304
+ set_scan_state (ScanState::idle);
1305
+ }
1306
+ }
1307
+
1308
+ void Gap::set_scan_state (ScanState state)
1309
+ {
1310
+ _scan_state = state;
1311
+
1312
+ if (state == ScanState::idle) {
1313
+ tr_info (" Scan state: idle" );
1314
+ } else if (state == ScanState::pending_scan) {
1315
+ tr_info (" Scan state: pending_scan" );
1316
+ } else if (state == ScanState::pending_stop_scan) {
1317
+ tr_info (" Scan state: pending_stop_scan" );
1318
+ } else if (state == ScanState::scan) {
1319
+ tr_info (" Scan state: scan" );
1305
1320
}
1306
1321
}
1307
1322
@@ -1313,7 +1328,7 @@ void Gap::on_scan_stopped(bool success)
1313
1328
return ;
1314
1329
}
1315
1330
1316
- _scan_state = ScanState::idle;
1331
+ set_scan_state ( ScanState::idle) ;
1317
1332
1318
1333
#if BLE_ROLE_BROADCASTER
1319
1334
/* with legacy advertising we might need to wait for scanning and advertising to both stop */
@@ -1388,7 +1403,7 @@ void Gap::on_scan_timeout()
1388
1403
return ;
1389
1404
}
1390
1405
1391
- _scan_state = ScanState::idle;
1406
+ set_scan_state ( ScanState::idle) ;
1392
1407
_scan_requested = false ;
1393
1408
1394
1409
if (_event_handler) {
@@ -3608,6 +3623,8 @@ ble_error_t Gap::startScan(
3608
3623
if (ret != BLE_ERROR_NONE) {
3609
3624
return ret;
3610
3625
}
3626
+ } else {
3627
+ tr_warning (" Cannot start scan immediately as not idle" );
3611
3628
}
3612
3629
3613
3630
_scan_requested = true ;
@@ -3673,7 +3690,7 @@ ble_error_t Gap::initiate_scan()
3673
3690
}
3674
3691
}
3675
3692
3676
- _scan_state = ScanState::pending_scan;
3693
+ set_scan_state ( ScanState::pending_scan) ;
3677
3694
3678
3695
return BLE_ERROR_NONE;
3679
3696
}
0 commit comments