测试例程sle_multi_conn为什么服务端使用sle_multi_conn_server_send_notify_indicate发送数据到不了客户端sle_multi_conn_notification_cb中?

Viewed 29

一、描述你遇到的问题

测试例程sle_multi_conn为什么服务端使用sle_multi_conn_server_send_notify_indicate发送数据到不了客户端sle_multi_conn_notification_cb中?
还需要其他配置修改吗?

二、你具体做的所有步骤结果截图

请插入图片

三、当前开发板状态全景照片

请插入图片

四、开发板串口所有日志

1 Answers

1. 看一下特征符是否正确配置:

这是最常见的原因。服务端的属性(property)必须允许通知(notify)或指示(indicate),并且客户端需要成功写入CCCD值来使能接收。

2. MTU或数据长度问题:

检查MTU:确保服务端和客户端协商的MTU足够大。可以在连接前通过 ssaps_set_info 设置MTU。

3. 连接和句柄(handle)正确性

确保发送数据时使用的连接ID(conn_id)和属性句柄(handle)是正确的,并且对应客户端已发现并订阅的那个特征

4. 发送接口选择

确认服务端使用的是 ssaps_notify_indicate 还是 ssaps_notify_indicate_by_uuid,并确保参数格式正确。

从上面几个方面看一下

当前descriptor.operate_indication设置的是SSAP_OPERATE_INDICATION_BIT_READ_WRITE也就是#define SSAP_OPERATE_INDICATION_BIT_READ_WRITE (SSAP_OPERATE_INDICATION_BIT_READ | SSAP_OPERATE_INDICATION_BIT_WRITE)

是需要将descriptor.operate_indication设置为SSAP_OPERATE_INDICATION_BIT_NOTIFY这个吗?客户端需要成功写入CCCD值我不太理解是哪个参数