int bt_le_scan_start(const struct bt_le_scan_param *param, bt_le_scan_cb_t cb) { int err; /* Check that the parameters have valid values */ if (!valid_le_scan_param(param)) { return -EINVAL; } #if NOT_USED_FOR_NOW /* Return if active scan is already enabled */ if (atomic_test_and_set_bit(bt_dev.flags, BT_DEV_EXPLICIT_SCAN)) { return -EALREADY; } if (atomic_test_bit(bt_dev.flags, BT_DEV_SCANNING)) { err = bt_hci_stop_scanning(); if (err) { atomic_clear_bit(bt_dev.flags, BT_DEV_EXPLICIT_SCAN); return err; } } #endif err = start_le_scan(param->type, param->interval, param->window, param->filter_dup); if (err) { #if NOT_USED_FOR_NOW atomic_clear_bit(bt_dev.flags, BT_DEV_EXPLICIT_SCAN); #endif return err; } scan_dev_found_cb = cb; return 0; }
int bt_le_scan_start(const struct bt_le_scan_param *param, bt_le_scan_cb_t cb) { struct nble_gap_start_scan_req nble_params; BT_DBG(""); /* Check that the parameters have valid values */ if (!valid_le_scan_param(param)) { return -EINVAL; } nble_params.scan_params.interval = param->interval; nble_params.scan_params.window = param->window; nble_params.scan_params.scan_type = param->type; nble_params.scan_params.use_whitelist = 0; /* Check is scan already enabled */ scan_dev_found_cb = cb; nble_gap_start_scan_req(&nble_params); return 0; }