Skip to content

Commit da4a5e4

Browse files
sandeepmistryyashaswini-hanji
authored andcommitted
Wait for scan response before reporting discovered peripheral
Only applies to connectable peripherals, non-connecatable will be reported immediately becase a scan response does not apply.
1 parent ca254ef commit da4a5e4

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

libraries/CurieBLE/src/internal/BLEDeviceManager.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ BLEDeviceManager::BLEDeviceManager():
8181
memset(_peer_adv_data, 0, sizeof(_peer_adv_data));
8282
memset(_peer_adv_data_len, 0, sizeof(_peer_adv_data_len));
8383
memset(_peer_scan_rsp_data, 0, sizeof(_peer_scan_rsp_data));
84-
memset(_peer_scan_rsp_data_len, 0, sizeof(_peer_scan_rsp_data_len));
84+
memset(_peer_scan_rsp_data_len, -1, sizeof(_peer_scan_rsp_data_len));
8585
memset(_peer_adv_rssi, 0, sizeof(_peer_adv_rssi));
8686

8787
memset(_peer_adv_connectable, 0, sizeof(_peer_adv_connectable));
@@ -1384,7 +1384,7 @@ BLEDevice BLEDeviceManager::available()
13841384
{
13851385
uint64_t timestamp_delta = timestamp - _peer_adv_mill[i];
13861386
temp = &_peer_adv_buffer[i];
1387-
if ((timestamp_delta <= 2000) && (max_delta < timestamp_delta))
1387+
if ((timestamp_delta <= 2000) && (max_delta < timestamp_delta) && (_peer_scan_rsp_data_len[i] >= 0 || !_peer_adv_connectable[i]))
13881388
{
13891389
// Eable the duplicate filter
13901390
if (_adv_duplicate_filter_enabled &&
@@ -1446,7 +1446,7 @@ bool BLEDeviceManager::setAdvertiseBuffer(const bt_addr_le_t* bt_addr,
14461446
if (max_delta > 2000) // expired
14471447
{
14481448
index = i;
1449-
_peer_scan_rsp_data_len[index] = 0; // Invalid the scan response
1449+
_peer_scan_rsp_data_len[index] = -1; // Invalid the scan response
14501450
}
14511451
}
14521452

libraries/CurieBLE/src/internal/BLEDeviceManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,7 @@ class BLEDeviceManager
392392
uint8_t _peer_adv_data[BLE_MAX_ADV_BUFFER_CFG][BLE_MAX_ADV_SIZE];
393393
uint8_t _peer_adv_data_len[BLE_MAX_ADV_BUFFER_CFG];
394394
uint8_t _peer_scan_rsp_data[BLE_MAX_ADV_BUFFER_CFG][BLE_MAX_ADV_SIZE];
395-
uint8_t _peer_scan_rsp_data_len[BLE_MAX_ADV_BUFFER_CFG];
395+
int8_t _peer_scan_rsp_data_len[BLE_MAX_ADV_BUFFER_CFG];
396396
int8_t _peer_adv_rssi[BLE_MAX_ADV_BUFFER_CFG];
397397
bool _peer_adv_connectable[BLE_MAX_ADV_BUFFER_CFG];
398398

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy