我使用bluetoothctl(bluez v5.64)添加了服务和特性。我有一些问题:
我只能写一个字节。尝试写入“0x11 0x22”会导致 “无法写入本地属性/org/bluez/app/service0/chrc0”。见下文。
我在 gatt-api 中看到我可以在执行读/写时设置 mtu,该选项可以通过 bluetoothctl 使用吗?
不知道为什么属性信息不被尊重。知道为什么吗?
谢谢!
#list-attributes 本地
主要服务(句柄0x0029) /org/bluez/app/service0 00071100-f0d4-469d-afd3-605a6ebbdb13 供应商特定 特征(句柄0x002b) /org/bluez/app/service0/chrc0 0d271100-1111-469d-afd3-605a6ebbdb13 供应商特定
[/org/bluez/app/service0/chrc0]# 选择属性 0d271100-1111-469d-afd3-605a6ebbdb13 [/org/bluez/app/service0/chrc0]# 写入“0x1 0x2” 无法写入本地属性 /org/bluez/app/service0/chrc0 [/org/bluez/app/service0/chrc0]# 写入“0x3” [CHG] 属性 /org/bluez/app/service0/chrc0 (特定于供应商)已写入
属性信息0d271100-1111-469d-afd3-605a6ebbdb13 属性 0d271100-1111-469d-afd3-605a6ebbdb13 不可用
好吧,查看了bluetoothctl代码。似乎在创建特征(寄存器特征)时输入值设置了最大特征长度..
例如。
[蓝牙]#寄存器特性0xff12读、写、通知
[新]特征(句柄0x0000)
/org/bluez/app/service0/chrc0
0xff12
未知
[/org/bluez/app/service0/chrc0] 输入值:0x11 0x22 0x33 0x44 0x55
..
[/org/bluez/app/service0/chrc0]# 写入“0x3 0x6”
[CHG] 属性 /org/bluez/app/service0/chrc0(未知)已写入