central接收到之前配對過的設(shè)備發(fā)送的ADV_DIRECT_IND(定向廣播),為什么不會觸發(fā)GAP_DIRECT_DEVICE_INFO_EVENT?

central接收到之前配對過的設(shè)備發(fā)送的ADV_DIRECT_IND(定向廣播),為什么不會觸發(fā)GAP_DIRECT_DEVICE_INFO_EVENT?
百度相關(guān)資料,有提到可能與Scanning Filter Policy有關(guān),但CH582沒有找到設(shè)置Scanning Filter Policy的API,但其它的廠家好象是可以設(shè)置的,比如TI,NRF。


我的目的是根據(jù)ADV_DIRECT_IND的MAC地址信息,快遞重連上從設(shè)備,而且不需要再次獲取從設(shè)備的服務(wù)等,卻可以直接發(fā)送數(shù)據(jù)給從設(shè)備。

類似這種:

3.1 配置掃描參數(shù)

esp_ble_gap_set_scan_params() 使用 esp_ble_scan_params_t 結(jié)構(gòu)體進行設(shè)置

static?esp_ble_scan_params_t?ble_scan_params?=?{
????.scan_type??????????????=?BLE_SCAN_TYPE_ACTIVE,??//掃描類型
????.own_addr_type??????????=?BLE_ADDR_TYPE_PUBLIC,??//擁有者的藍牙設(shè)備地址類型
????.scan_filter_policy?????=?BLE_SCAN_FILTER_ALLOW_ALL,//掃描過濾器設(shè)置
????.scan_interval??????????=?0x50,??//掃描間隔
????.scan_window????????????=?0x30,??//掃描窗口
????.scan_duplicate?????????=?BLE_SCAN_DUPLICATE_DISABLE??//掃描重復(fù)類型};




您好,第一種情況需要快速回連,可以通過設(shè)置direct adv進行處理,也可以直接減小廣播間隔到最小,同時將超時時間給到最小,回連的速度也會很快,對于用戶的感知基本沒有區(qū)別的。

通過綁定的方式,下一次連接可以不需要重新枚舉的。


關(guān)鍵是我發(fā)現(xiàn),咱們現(xiàn)在的程序在接收到ADV_DIRECT_IND后,不會觸發(fā)GAP_DIRECT_DEVICE_INFO_EVENT,從而導(dǎo)致下面程序不能運行,所以發(fā)起重連總是出錯。

????case?GAP_DIRECT_DEVICE_INFO_EVENT:
????????{
????????????//?Display?device?addr
????????????PRINT("Recv?direct?adv?\n");
????????????//?Add?device?to?list
????????????centralAddDeviceInfo(pEvent->deviceDirectInfo.addr,?pEvent->deviceDirectInfo.addrType);
????????}
????????break;


目前正在檢查,如解決第一時間在該貼回復(fù)。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频