mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
allow bluedroid host to report adv_ind separately
This commit is contained in:
parent
45a2695b87
commit
a2dfa5c86b
@ -984,7 +984,7 @@ config BT_SMP_ENABLE
|
|||||||
|
|
||||||
config BT_BLE_ACT_SCAN_REP_ADV_SCAN
|
config BT_BLE_ACT_SCAN_REP_ADV_SCAN
|
||||||
bool "Report adv data and scan response individually when BLE active scan"
|
bool "Report adv data and scan response individually when BLE active scan"
|
||||||
depends on BT_BLUEDROID_ENABLED && (BTDM_CTRL_MODE_BTDM || BTDM_CTRL_MODE_BLE_ONLY)
|
depends on BT_BLUEDROID_ENABLED && BT_BLE_ENABLED
|
||||||
default n
|
default n
|
||||||
help
|
help
|
||||||
Originally, when doing BLE active scan, Bluedroid will not report adv to application layer
|
Originally, when doing BLE active scan, Bluedroid will not report adv to application layer
|
||||||
|
@ -3584,21 +3584,20 @@ static void btm_ble_process_adv_pkt_cont(BD_ADDR bda, UINT8 addr_type, UINT8 evt
|
|||||||
0x04 Scan Response (SCAN_RSP)
|
0x04 Scan Response (SCAN_RSP)
|
||||||
0x05-0xFF Reserved for future use
|
0x05-0xFF Reserved for future use
|
||||||
*/
|
*/
|
||||||
//if scan duplicate is enabled, the adv packet without scan response is allowed to report to higher layer
|
// The adv packet without scan response is allowed to report to higher layer
|
||||||
if(p_le_inq_cb->scan_duplicate_filter == BTM_BLE_SCAN_DUPLICATE_ENABLE) {
|
/*
|
||||||
/*
|
Bluedroid will put the advertising packet and scan response into a packet and send it to the higher layer.
|
||||||
Bluedroid will put the advertising packet and scan response into a packet and send it to the higher layer.
|
If two advertising packets are not with the same address, or can't be combined into a packet, then the first advertising
|
||||||
If two advertising packets are not with the same address, or can't be combined into a packet, then the first advertising
|
packet will be discarded. So we added the following judgment:
|
||||||
packet will be discarded. So we added the following judgment:
|
1. For different addresses, send the last advertising packet to higher layer
|
||||||
1. For different addresses, send the last advertising packet to higher layer
|
2. For same address and same advertising type (not scan response), send the last advertising packet to higher layer
|
||||||
2. For same address and same advertising type (not scan response), send the last advertising packet to higher layer
|
3. For same address and scan response, do nothing
|
||||||
3. For same address and scan response, do nothing
|
*/
|
||||||
*/
|
int same_addr = memcmp(bda, p_le_inq_cb->adv_addr, BD_ADDR_LEN);
|
||||||
int same_addr = memcmp(bda, p_le_inq_cb->adv_addr, BD_ADDR_LEN);
|
if (same_addr != 0 || (same_addr == 0 && evt_type != BTM_BLE_SCAN_RSP_EVT)) {
|
||||||
if (same_addr != 0 || (same_addr == 0 && evt_type != BTM_BLE_SCAN_RSP_EVT)) {
|
btm_ble_process_last_adv_pkt();
|
||||||
btm_ble_process_last_adv_pkt();
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
p_i = btm_inq_db_find (bda);
|
p_i = btm_inq_db_find (bda);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user