8003A使用0.4.19版本SDK依旧存在8003A作为蓝牙主机收不到从机的通知数据包的问题



  • 在我们项目中8003A的蓝牙配置为主从一体,当8003A作为服务端被客户端连接上后,其客户端才会去主动连接其它蓝牙服务。
    在我们测试过程中有两种类型的从机:
    第一类是需要向从机的写特征去发送对应的指令,其通知特征会返回一包数据;
    第二类是只需要使能通知特征后,就会一直收到通知数据包;

    之前8003A在使用0.4.15版本SDK的时候就已经存在无法获取到从机的通知数据包的情况,主要是第一类从机,没有收到对应的通知事件,此时第二类从机还是可以正常通信的。
    之后我们想解决第一类从机的问题,就去gitee拉去了最新的0.4.19版本的最新的SDK,替换掉了原本项目中的SDK。
    然后我们又重新做了测试,发现此时第一类从机可以正常通信了,但第二类从机又不行了,也是一样的现象,没有收到通知事件。

    整个过程中只替换了SDK,项目中的其它代码均无改动。而且并不是所有满足这两类从机特征的都会遇到问题,都算是个例,但是问题存在。



  • 1、你发送的哪个通道的特征值在对端是否存在,对端的处理是否回回复给你
    2、你主机使能通知从机的通知从机这边默认就写好回复的如下图:
    0_1764038885289_7fe49f23-73a6-4b24-a0fa-7ed1f8459953-image.png

    3、主从机通讯的流程参考如下图:
    0_1764038455182_3f44ae18-9a9e-4ec3-bf7d-51aba54edf91-image.png



  • @mars 1、所有类型的从机,特征值都是存在的,是已知对端所有服务和特征的情况下去适配的代码
    2、所有从机都使用手机蓝牙模拟整个过程的通信,均是正常的,所以出问题只能是在8003A主机端
    3、以上描述的两类从机,在0.4.15版本SDK是一类从机无法通信,二类从机正常,在0.4.19版本SDK是一类从机正常,二类从机无法正常通信,说明我们在代码上对通信的处理是没问题的。