嗨,对话,
我遇到了一个问题,想提出一些建议
我正在给安卓手机发送一些数据,但是我发现有些手机无法接收整个100Hz的数据(华为P20),结果即使有BT4.2也只有80Hz左右。
我使用一个BLE嗅探器工具来嗅探电话和DA14681之间的通信,只发送一个计数数字来检查不连续性。
我注意到这并不是因为手机没有收到数据包,而是DA14681没有连续发送数据包,DA14681会发送1、2、4、5、7、8、9等计数数字,但是这种效果不会发生在其他能够接收到100Hz的Android手机上。
因为我对BLE协议还不是很熟悉,有什么办法可以解决这个问题或者最小化这个影响吗?谢谢:)
设备:
您好,M2013,
你能试着用“100Hz的数据”来描述一下你的意思吗?对不起,我不能理解你的问题,请你澄清一下好吗?
谢谢,下午好
你好,
我正在用notify以100Hz的频率向手机发送一些数据,这意味着每秒100个数据包,或者每秒100个notify
您好,M2013,
这取决于应用程序的实现。你能告诉我你使用的是哪一个SDK的例子,并提供更多关于你的应用程序的细节吗?
谢谢,下午好
你好,
我用pxp\u reporter的例子开始,我用i2C总线读取一个IMU数据,然后把acc,gyro读数和一些元数据一起发送给手机,总共约18个字节由100Hz的notify提供,100Hz是由timer run senddata()函数提供的。
元数据将包括向上计数的每个数据包的序列号。
而问题是一些华为手机总是漏掉一些数据包,使用BLE数据包嗅探器检查后,DA14681只漏掉了一些数据包就消失了,
感觉手机的ACK不够快,所以DA14681可以连续发送数据包,然后跳过一些数据包,因为定时器一直在推动数据包发送出去,但我不确定notify是否有ACK?所以我想对这个问题有所了解,谢谢。
您好,M2013,
如果数据包丢失,您将得到一个无效的crc,然后丢失的数据包将被重新传输。从你的描述中我可以理解,这个问题可能是电话那边的问题。你试过用另一部手机吗?
谢谢,下午好