diff --git a/samples/bluetooth/nrf_dm/src/main.c b/samples/bluetooth/nrf_dm/src/main.c index ccb650a8e9..67305d8c0e 100644 --- a/samples/bluetooth/nrf_dm/src/main.c +++ b/samples/bluetooth/nrf_dm/src/main.c @@ -32,6 +32,8 @@ #define SUPPORT_DM_CODE 0xFF55AA5A +#define SCAN_ENABLE 0 + struct adv_mfg_data { uint16_t company_code; /* Company Identifier Code. */ uint32_t support_dm_code; /* To identify the device that supports distance measurement. */ @@ -67,6 +69,7 @@ static const struct bt_data sd[] = { BT_DATA_BYTES(BT_DATA_UUID128_ALL, BT_UUID_DDFS_VAL), }; +#if SCAN_ENABLE static struct bt_le_scan_param scan_param = { .type = BT_LE_SCAN_TYPE_ACTIVE, .interval = BT_GAP_SCAN_FAST_INTERVAL, @@ -80,21 +83,24 @@ static struct bt_scan_init_param scan_init = { .scan_param = &scan_param, .conn_param = NULL }; +#endif -static uint32_t scanner_random_share; +//static uint32_t scanner_random_share; static struct bt_le_ext_adv *adv; static void adv_work_handle(struct k_work *item); static K_WORK_DEFINE(adv_work, adv_work_handle); static void adv_update_data(void); -static uint32_t scanner_addr_to_random_share(const bt_addr_t *p_scanner_addr); -static uint32_t get_id_addr_random_share(void); +//static uint32_t scanner_addr_to_random_share(const bt_addr_t *p_scanner_addr); +//static uint32_t get_id_addr_random_share(void); +#if SCAN_ENABLE static struct bt_scan_manufacturer_data scan_mfg_data = { .data = (unsigned char *)&mfg_data, .data_len = sizeof(mfg_data.company_code) + sizeof(mfg_data.support_dm_code), }; + static bool data_cb(struct bt_data *data, void *user_data) { struct adv_mfg_data *recv_mfg_data; @@ -119,7 +125,7 @@ static bool data_cb(struct bt_data *data, void *user_data) * value for the random seed. */ req.rng_seed = - sys_le32_to_cpu(recv_mfg_data->rng_seed) + scanner_random_share; + sys_le32_to_cpu(recv_mfg_data->rng_seed);// + scanner_random_share; req.start_delay_us = 0; req.extra_window_time_us = 0; @@ -130,7 +136,8 @@ static bool data_cb(struct bt_data *data, void *user_data) return true; } } - +#endif +#if 0 static uint32_t get_id_addr_random_share(void) { bt_addr_le_t addrs[CONFIG_BT_ID_MAX]; @@ -149,7 +156,9 @@ static uint32_t scanner_addr_to_random_share(const bt_addr_t *p_scanner_addr) p_scanner_addr->val[2] << 16 | p_scanner_addr->val[3] << 24) + (p_scanner_addr->val[4] | p_scanner_addr->val[5] << 8); } +#endif +#if SCAN_ENABLE static void scan_filter_match(struct bt_scan_device_info *device_info, struct bt_scan_filter_match *filter_match, bool connectable) @@ -162,13 +171,15 @@ static void scan_filter_match(struct bt_scan_device_info *device_info, } BT_SCAN_CB_INIT(scan_cb, scan_filter_match, NULL, NULL, NULL); +#endif static void adv_scanned_cb(struct bt_le_ext_adv *adv, struct bt_le_ext_adv_scanned_info *info) { struct dm_request req; - +#if SCAN_ENABLE if (peer_supported_test(info->addr)) { +#endif bt_addr_le_copy(&req.bt_addr, info->addr); req.role = DM_ROLE_REFLECTOR; req.ranging_mode = peer_ranging_mode_get(); @@ -183,13 +194,15 @@ static void adv_scanned_cb(struct bt_le_ext_adv *adv, * This means that the initiator and the reflector need to set the same value * for the random seed. */ - req.rng_seed = peer_rng_seed_get() + scanner_addr_to_random_share(&info->addr->a); + req.rng_seed = peer_rng_seed_get();// + scanner_addr_to_random_share(&info->addr->a); req.start_delay_us = 0; req.extra_window_time_us = 0; dm_request_add(&req); adv_update_data(); +#if SCAN_ENABLE } +#endif } const static struct bt_le_ext_adv_cb adv_cb = { @@ -249,6 +262,7 @@ static int adv_start(void) return err; } +#if SCAN_ENABLE static int scan_start(void) { int err; @@ -268,7 +282,7 @@ static int scan_start(void) return err; } - scanner_random_share = get_id_addr_random_share(); + //scanner_random_share = get_id_addr_random_share(); err = bt_scan_start(BT_SCAN_TYPE_SCAN_ACTIVE); if (err) { @@ -278,6 +292,7 @@ static int scan_start(void) return err; } +#endif static void adv_work_handle(struct k_work *item) { @@ -325,10 +340,12 @@ static int bt_sync_init(void) return err; } +#if SCAN_ENABLE err = scan_start(); if (err) { printk("Failed to start scanning (err %d)\n", err); } +#endif return err; }