@@ -1221,6 +1221,7 @@ ble_error_t Gap::reset()
1221
1221
#endif // BLE_FEATURE_PRIVACY
1222
1222
1223
1223
#if BLE_ROLE_OBSERVER
1224
+ _scan_parameters_set = false ;
1224
1225
_scan_timeout.detach ();
1225
1226
#endif
1226
1227
@@ -3562,6 +3563,8 @@ ble_error_t Gap::setScanParameters(const ScanParameters ¶ms)
3562
3563
params.getCodedPhyConfiguration ().getWindow ().value ()
3563
3564
};
3564
3565
3566
+ _scan_parameters_set = true ;
3567
+
3565
3568
return _pal_gap.set_extended_scan_parameters (
3566
3569
params.getOwnAddressType (),
3567
3570
params.getFilter (),
@@ -3581,6 +3584,8 @@ ble_error_t Gap::setScanParameters(const ScanParameters ¶ms)
3581
3584
ScanParameters::phy_configuration_t legacy_configuration =
3582
3585
params.get1mPhyConfiguration ();
3583
3586
3587
+ _scan_parameters_set = true ;
3588
+
3584
3589
return _pal_gap.set_scan_parameters (
3585
3590
legacy_configuration.isActiveScanningSet (),
3586
3591
legacy_configuration.getInterval ().value (),
@@ -3613,6 +3618,11 @@ ble_error_t Gap::startScan(
3613
3618
return BLE_STACK_BUSY;
3614
3619
}
3615
3620
3621
+ if (!_scan_parameters_set) {
3622
+ tr_error (" Scan parameters not set." );
3623
+ return BLE_ERROR_OPERATION_NOT_PERMITTED;
3624
+ }
3625
+
3616
3626
_scan_requested_duration = duration;
3617
3627
_scan_requested_filtering = filtering;
3618
3628
_scan_requested_period = period;
0 commit comments