@@ -1221,6 +1221,7 @@ ble_error_t Gap::reset()
12211221#endif // BLE_FEATURE_PRIVACY
12221222
12231223#if BLE_ROLE_OBSERVER
1224+ _scan_parameters_set = false ;
12241225 _scan_timeout.detach ();
12251226#endif
12261227
@@ -3562,6 +3563,8 @@ ble_error_t Gap::setScanParameters(const ScanParameters ¶ms)
35623563 params.getCodedPhyConfiguration ().getWindow ().value ()
35633564 };
35643565
3566+ _scan_parameters_set = true ;
3567+
35653568 return _pal_gap.set_extended_scan_parameters (
35663569 params.getOwnAddressType (),
35673570 params.getFilter (),
@@ -3581,6 +3584,8 @@ ble_error_t Gap::setScanParameters(const ScanParameters ¶ms)
35813584 ScanParameters::phy_configuration_t legacy_configuration =
35823585 params.get1mPhyConfiguration ();
35833586
3587+ _scan_parameters_set = true ;
3588+
35843589 return _pal_gap.set_scan_parameters (
35853590 legacy_configuration.isActiveScanningSet (),
35863591 legacy_configuration.getInterval ().value (),
@@ -3613,6 +3618,11 @@ ble_error_t Gap::startScan(
36133618 return BLE_STACK_BUSY;
36143619 }
36153620
3621+ if (!_scan_parameters_set) {
3622+ tr_error (" Scan parameters not set." );
3623+ return BLE_ERROR_OPERATION_NOT_PERMITTED;
3624+ }
3625+
36163626 _scan_requested_duration = duration;
36173627 _scan_requested_filtering = filtering;
36183628 _scan_requested_period = period;
0 commit comments