@@ -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));
@@ -1370,7 +1370,7 @@ BLEDevice BLEDeviceManager::available()
1370
1370
{
1371
1371
uint64_t timestamp_delta = timestamp - _peer_adv_mill[i];
1372
1372
temp = &_peer_adv_buffer[i];
1373
- if ((timestamp_delta <= 2000 ) && (max_delta < timestamp_delta))
1373
+ if ((timestamp_delta <= 2000 ) && (max_delta < timestamp_delta) && (_peer_scan_rsp_data_len[i] >= 0 || !_peer_adv_connectable[i]) )
1374
1374
{
1375
1375
// Eable the duplicate filter
1376
1376
if (_adv_duplicate_filter_enabled &&
@@ -1432,7 +1432,7 @@ bool BLEDeviceManager::setAdvertiseBuffer(const bt_addr_le_t* bt_addr,
1432
1432
if (max_delta > 2000 ) // expired
1433
1433
{
1434
1434
index = i;
1435
- _peer_scan_rsp_data_len[index ] = 0 ; // Invalid the scan response
1435
+ _peer_scan_rsp_data_len[index ] = - 1 ; // Invalid the scan response
1436
1436
}
1437
1437
}
1438
1438
0 commit comments