GATT_Notification 在主机端的接收速率
两个板子,一主以从,。 用串口调试助手定时给从机发数据, 速率是 一秒发20次,每次小于20 字节。然后从机用GATT_Notification 给主机发数据 ,同时还把收到的数据发回串口显示出来。 主机收到GATT_Notification发送的数据,也是通过串口显示出来。
问题来了: 从机用GATT_Notification 发的数据 ,在主机不能全部收到, 是不是发的速率太块了。 如果是的话,主机能接受的熟虑是多少。? 或者说可以在主机的代码里面可以设置?
note:
串口调试助手定时发送熟虑为 50ms, 就是一秒钟发20 次。 停止定时发送后,主机收到的数据有部分会丢失而且会延迟。
YAN~~
Notify使用osal timer 的Event来排队发送,timeout可以设置为0。
速度与连接间隔设置有关,每个连接间隔可以发送4个数据包,传输量计算方法:
TI对TI是7.5ms:4*20Byte (连接间隔7.5ms,实现方法Gatt Send与Notify)
TI对Phone是20ms:4*20Byte (连接间隔20ms,实现方法Notify)
Phone对TI是20ms:4*18Byte (连接间隔20ms,实现方法Write Characteristic)
7.5ms?? 您的意思是 用GATT_Notification 以7.5ms 速度给主机发数据。 主机也是可以完整的收到数据是吧。?
如果是的话: 应该在主机用什么函数去设置什么宏呢 ?
如果不是的话: 那我的问题是,板子间的通讯(单向的就行),如果要进行传输的数据每一次的传输间隔很短(比如10ms),应该用GATT_Notification 还是 用GATT_Writecharvolue(), 这两个的效率哪个比较高。
note:我要实现的是这两个设备是一个板子 一个USBDongle,其他模块设备上电输出信息(比如设备信息。等等,大量的,速度很块!)。输出到板子,然后板子把这些消息发给USBdongle() 然后通过串口打印出来(已把usbdongle的USB转串口的代码一直好了。)。
希望能帮我解答~~
请先阅读协议栈中 软件开发文档 的 角色介绍一节,Notify是只能从机往主机发的,GATT_Write 是只能 主机往从机发的。