当前位置: 首页 > 面试题库 >

低功耗蓝牙:在Linux中监听通知/指示

夏才
2023-03-14
问题内容

我正在尝试通过Linux机器与BLE模块进行通信(该模块正在运行心率配置文件)。到目前为止,除了监听通知和指示(例如,监听心率测量通知)之外,我已经能够做所有需要的事情。我正在使用内核版本3.5和bluez-5.3。

到目前为止已成功使用的命令:

hcitool lescan
hcitool lecc
gatttool -b <Mac Address> --primary
gatttool -b <MAC Address> --characteristics
gatttool -b <MAC Address> --char-read
gatttool -b <MAC Address> --char-desc
gatttool -b <MAC Address> --interactive

失败的命令:

gatttool -b <MAC Address> --listen

任何帮助是极大的赞赏。


问题答案:

尝试这个…

gatttool -b <MAC Address> --interactive像以前一样运行。您将得到提示,然后键入connect。您应该CON在提示符中看到,表明您已连接到设备。然后输入char- read-uuid 2902。您应该获得设备上所有CCC(客户端特征配置)属性的列表。
您可以尝试将它们全部设置为0100以获取通知,将0200用于指示,将两者都设置为0300,或将0000全部关闭。
键入help以查看所有命令及其参数。

编辑:

使用--listen参数需要您将其与其他命令结合使用以打开通知和/或指示。因此,这是在Bluez 4.101中工作的示例

gatttool -b <MAC Address> --char-write-req --handle=0x0031 --value=0100 --listen

显然,您需要将句柄更改为要为其打开通知的CCC的句柄。但是,我仍然发现仅使用交互模式会更容易。



 类似资料:
  • jd.readBLECharacteristicValue(Object object) 读取低功耗蓝牙设备的特征值的二进制数据值。注意:必须设备的特征值支持 read 才可以成功调用。 参数名 类型 默认值 必填 说明 deviceId string 是 蓝牙设备 id serviceId string 是 蓝牙特征值对应服务的 uuid characteristicId string 是 蓝牙

  • ap.onBLEConnectionStateChanged(CALLBACK) 监听低功耗蓝牙连接的错误事件,包括设备丢失,连接异常断开等等。 CALLBACK 参数说明 名称 类型 描述 deviceId String 蓝牙设备 id,参考 device 对象 connected Boolean 连接目前的状态 代码示例 <script src="https://gw.alipayobject

  • 问题内容: 我正在与Linux一起使用低功耗蓝牙调制解调器。我为此使用命令行选项。我可以使用以下命令找到设备: 它对我来说很好用,也可以使用以下方式广播设备: 它也工作正常。但是我想向调制解调器设备添加可以被其他设备检测到的服务和特性。我已经尝试过了,但是对我不起作用。有谁知道如何使用ubuntu中的命令行工具向外围设备添加服务和特性? 编辑: 我的调制解调器正在广播,但无法探索其他BLE设备的服

  • ap.offBLEConnectionStateChanged(CALLBACK) 移除低功耗蓝牙连接的错误事件的监听。

  • ap.onBLECharacteristicValueChange(CALLBACK) 监听低功耗蓝牙设备的特征值变化的事件。 CALLBACK 参数说明 名称 类型 描述 deviceId String 蓝牙设备 id,参考 device 对象 serviceId String 特征值所属 service 的 uuid characteristicId String 特征值 uuid value

  • 问题内容: 我正在编写一个Android BLE应用程序,并且试图获得某个特性的权限。我已经设法通过character.getProperties()获取特征属性,并且它返回非零值,但是,即使我确定特征具有PERMISSION_WRITE_ENCRYPTED_MITM(0x00000040,当我使用getPermission()方法时,它也会返回0。 )。 这是一个代码片段 难道我做错了什么?是否