@@ -81,7 +81,7 @@ BLEDeviceManager::BLEDeviceManager():
81
81
memset (_peer_adv_data, 0 , sizeof (_peer_adv_data));
82
82
memset (_peer_adv_data_len, 0 , sizeof (_peer_adv_data_len));
83
83
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));
85
85
memset (_peer_adv_rssi, 0 , sizeof (_peer_adv_rssi));
86
86
87
87
memset (_peer_adv_connectable, 0 , sizeof (_peer_adv_connectable));
@@ -1384,7 +1384,7 @@ BLEDevice BLEDeviceManager::available()
1384
1384
{
1385
1385
uint64_t timestamp_delta = timestamp - _peer_adv_mill[i];
1386
1386
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]) )
1388
1388
{
1389
1389
// Eable the duplicate filter
1390
1390
if (_adv_duplicate_filter_enabled &&
@@ -1446,7 +1446,7 @@ bool BLEDeviceManager::setAdvertiseBuffer(const bt_addr_le_t* bt_addr,
1446
1446
if (max_delta > 2000 ) // expired
1447
1447
{
1448
1448
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
1450
1450
}
1451
1451
}
1452
1452
0 commit comments