android 如何实时查看蓝牙耳机传输数据速度 在哪看蓝牙传输记录

您所在的位置:网站首页 蓝牙传出去的记录到哪里看 android 如何实时查看蓝牙耳机传输数据速度 在哪看蓝牙传输记录

android 如何实时查看蓝牙耳机传输数据速度 在哪看蓝牙传输记录

2023-11-26 03:14| 来源: 网络整理| 查看: 265

最近一个月在搞nrf52832的蓝牙通信,期间一度失眠。现在终于调通了,总结一下。 回过头来看,就会发现其实所有的通信都是一个套路。通信传输的数据其实都是三部分组成: (1)数据标识(从哪来,到哪去,数据类型,数据长度,操作权限) (2)数据本身(有效负载) (3)数据校验

假设现在仅仅需要将蓝牙设备的电池电量98%发送到手机上,我们应该怎么做? 如果只有一个蓝牙设备和一个手机,那么最简单的方式是直接发送 98 到手机。 那么问题来了,现实中不可能只有一个蓝牙设备也不可能只有一个手机。现在有两个问题需要解决: (1)手机怎么知道这个98是蓝牙A的电量还是蓝牙B的电量呢? (2)手机怎么分辨这个98是发给自己的还是发给其他手机的? 这里就需要一个标识access address,解决数据从哪来到哪去的问题。

现在可以解决把蓝牙A的电量发给手机A了,但是我们不可能只发电量,假如有一个蓝牙温湿度计,那我们需要把温度、湿度和电量都发给手机,手机该如何辨别这个98是表示温度98℃还是湿度98%还是电量98%,这里就引入了characteristic来区分三个98分别是什么数据,同时在characteristic来还可以确定数值的单位,操作权限等

同时为了便于区分出我们实际收发数据,加入数据长度来获取实际负载; 为了防止传输过程中发生错误,引入校验。

上述是一条完整数据包中包含的内容,我们还需约定从设备什么时候发数据,主设备什么时候收数据,就好比我要去你家做客,咱两就得协商好我什么时候去,你什么时候在家,两人见面之后用什么语言交流,谈话的主题是什么等等。这些都是在广播阶段都要实现的。

其实通过上面将电量98发送到手机的过程,你一定会发现熟悉的通信协议都是这么一个套路。一定会有通信双方的地址,传输的是什么数据,传输了多少数据,数据的操作权限,为了防止出错,引入校验。不论是上边的应用层还是下边的数据链路层,只要是用来通信的一定是这么干的。不同就是在不同的通信中专有名称不一样。

推荐两遍深入浅出的蓝牙协议栈文章深入浅出低功耗蓝牙(BLE)协议栈低功耗蓝牙ATT/GATT/Profile/Service/Characteristic规格解读

还有一遍关于蓝牙吞吐量测试的文章手把手教你开发BLE数据透传应用程序



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3