Page 1 of 1

SPP 发送数据丢包问题

Posted: Tue Jul 12, 2022 12:34 am
by yzjgod
模块:ESP32-WROOM-32E
ESP-IDF:4.4.1
IDE:eclipse
OS:Windows 11 pro

基于bt_spp_initiator和bt_spp_acceptor修改的程序,实现实际串口通过spp进行无线延长,在数据单向连续发送的测试过程中,发现数据有丢失的现象,开始以为是ESP_SPP_WRITE_EVT 和 ESP_SPP_CONG_EVT导致的阻塞,在严格按照逻辑进行修改后,同时也尝试了VFS模式,仍然有数据的丢失。
根据测试现象和monitor的调试信息,发现每次出现问题时,调试信息都有ESP_BT_GAP_MODE_CHG_EVT mode:0动作出现,空闲时或停止数据通信时,会切换到ESP_BT_GAP_MODE_CHG_EVT mode:2。
请问如何保持设备的状态一直在ESP_BT_PM_MD_ACTIVE,或者如何避免在ESP_BT_PM_MD_SNIFF切换到ESP_BT_PM_MD_ACTIVE时的数据丢失问题。

Re: SPP 发送数据丢包问题

Posted: Wed Jul 13, 2022 1:19 am
by yzjgod
components/bt/host/bluedroid/stack/include/stack/hcidefs.h
#define HCI_FEATURE_SNIFF_MODE_OFF 1

修改后有效果,但是采用默认设置为什么会丢数?