我想通过写入特征值的方式,实现主机和从机的通讯,主机通过从机特征值的UUID向从机响应的特征写入值,触发从机的回调函数,从机通过Getparameter的API将特征值取出。现在的问题是,我设置相应的从机特征值长度为20个字节,如果主机写入的数据恰好为20个字节,没有问题,但是如果主机写入的数据不足20个字节,我还是Getparameter取出20个字节的数据,然而取出的数据中空字节就被补成了0,没有办法判断有效数据的长度,该怎么去判断有效字节长度呢?
因为我这个蓝牙在这里主要做传输,收到数据后接着要通过串口发给MCU去处理,所以不能把非有效数据传下去。同时也不能保证蓝牙传下来的数据中没有0存在,所以也没法通过判断0或非0来判断数据有效字节。另外MCU的程序无法修改。
该怎样判断特征值中的有效字节呢?有没有API可以用?
甜甜的大香瓜:
这是双方通信协议没有制定好导致的。
如果数据中包含了数据长度,也就解决了你的问题。
MCU的程序为何无法修改?