コード例 #1
0
ファイル: gap.c プロジェクト: 01org/corelibs-arduino101
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;
}
コード例 #2
0
ファイル: gap.c プロジェクト: 32bitmicro/zephyr
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;
}