龙空技术网

软件(4) - 协议(示例:BLE协议栈与获取)

D探长看世界 303

前言:

如今朋友们对“蓝牙数据包日志需要打开吗”大体比较关切,我们都想要知道一些“蓝牙数据包日志需要打开吗”的相关内容。那么小编同时在网络上收集了一些关于“蓝牙数据包日志需要打开吗””的相关内容,希望小伙伴们能喜欢,同学们一起来了解一下吧!

本章以生活中常见的蓝牙4.0协议为例,讲解一下如何获取一个蓝牙硬件相关的连接信息,使得D探长APP可以连接硬件。

如果我们获得一个开源蓝牙设备,可以找到对应的资料,那么我们可以很容易获取蓝牙的连接信息。

主要有蓝牙名称、 Service UUID(蓝牙发现服务)、Notify\Write UUID( 通知\写入属性)、Write UUID(写入属性)

在文档中找到这些数据后,使用D探长这款APP,在“连接蓝牙设备”-“自定义蓝牙设备”-“添加设备”的功能项中按照对应内容添加连接项,搜索到蓝牙硬件后,选择名称、选择对应的UUID、填入蓝牙的指令(可以填写字符串或数组),就可以远程或通过AI控制硬件了。

如果我们不知道蓝牙硬件的相关数据和指令怎么办呢? 也有方法解决,需要借助一台旧的安卓手机,最好是5.0、6.0版本的安卓手机,其他版本可能被屏蔽了相关功能,以及电脑上的Wireshark软件。首先手机进入开发者模式,将打开蓝牙数据包日志、打开蓝牙调试日志这2个功能启用。此时用蓝牙硬件的配套软件连接并控制一遍,我们可以得到一个btsnoop_hci.log文件,这个文件里面就记录了配套软件连接硬件的蓝牙数据,里面有我们需要的信息。

将btsnoop_hci.log文件拷贝到电脑上,用Wireshark软件打开。在手机上操作过硬件的指令,所以我们直接看发送给硬件数据及接收数据的相关信息。

Rcvd Write Response是从硬件接收到数据的内容,在这里可以找到设备名称、Service UUID(蓝牙发现服务)、Notify UUID( 通知属性)

Sent Write Request是由手机发送指令给硬件,这里面可以找到Write UUID(写入属性)及实际写入的数据,但实际写入的数据我们需要转换一下,Value字段里面的值实际是16进制的数组["aa","08","01","01","05","ff","ff","02","0d","55"], 我们在网上找个16进制转10进制的工具,把里面的值换成10进制数组[170, 08, 1, 1, 05, 255, 255, 02, 13, 85], 这样我们就有了完整的数据。在D探长APP内选择或填入对应的数据即可控制硬件。

标签: #蓝牙数据包日志需要打开吗