调用ble_gap_disconnect()不起作用

⚠️
大家好. .谢谢你来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台,它将提供更好的功能,包含在主对话网站中。所有岗位和账户都已迁移。我们现在只接受新论坛的流量-请在上面发布任何新帖子//www.xmece.com/support.我们将在未来几天修复bug /优化搜索和标记。
5个职位/ 0个新
最后发表
Ulf Soderberg
离线
最后看到:5个月5天前
加入:2014-02-14二十16
调用ble_gap_disconnect()不起作用

我正在使用DA14681开发一个BLE外围设备的固件,并遇到了ble_gap_disconnect函数工作的问题。
固件是USB HID和BLE之间的桥梁,设备作为BLE外设工作。

固件的要求之一是,它应该能够断开连接的智能手机应用程序。

当我用当前连接的连接索引调用ble_gap_disconnect函数时,什么也不会发生。没有断开连接。

这怎么可能呢?

设备:
MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨Ulf Soderberg,

嗨Ulf Soderberg,

你能看到通过嗅探器从空中发送的指令吗?您是否能够获得声明断开过程完成的消息之一BLE_EVT_GAP_DISCONNECTED或BLE_EVT_GAP_DISCONNECT_FAILED ?

由于MT_dialog

Ulf Soderberg
离线
最后看到:5个月5天前
加入:2014-02-14二十16
我还没用过嗅探器

我还没用过嗅探器。
我没有看到BLE_EVT_GAP_DISCONNECTED被switch语句捕获,也没有BLE_EVT_GAP_DISCONNECT_FAILED事件的情况。
我在默认情况下添加了以下几行,通过设置一个断点,我可以看到BLE_EVT_GAP_DISCONNECT_FAILED事件到达。


默认值:
if (hdr->evt_code == BLE_EVT_GAP_DISCONNECT_FAILED) {
fff = 1;//上面定义的变量在这一行上设置了一个断点

ble_handle_event_default (hdr);
打破;

那么,BLE_EVT_GAP_DISCONNECT_FAILED是怎么回事呢?

Ulf Soderberg
离线
最后看到:5个月5天前
加入:2014-02-14二十16
在调试了一些后,我

经过更多的调试,我发现了问题。原来“reason”参数是错误的。

通过改变
ble_gap_disconnect (peer_conn_idx BLE_HCI_ERROR_CON_TERM_BY_LOCAL_HOST);

ble_gap_disconnect (peer_conn_idx BLE_HCI_ERROR_REMOTE_USER_TERM_CON);
它知道工作正常。

MT_dialog
离线
最后看到:三个月三个星期前
工作人员
加入:2015-06-08 34
嗨Ulf Soderberg,

嗨Ulf Soderberg,

谢谢你的暗示。

MT_dialog问好