我想检测是否使用gatttool在我的SensorTag上推了一个按钮,但是我无法做到这一点。
在http://processors.wiki.ti.com/index.php/SensorTag_User_Guide TI报告中,为了阅读按下的按钮,您应该:
1)通过将值0x80写入AA62(CONFIGURATION)属性来启用测试模式。
我用命令做到了:
[CON][BC:6A:29:AE:CD:E5][LE]> char-write-req 0x67 80
[CON][BC:6A:29:AE:CD:E5][LE]> Characteristic value was written successfully
现在我应该处于测试模式,并且:
2)启用简单密钥通知
查看http://processors.wiki.ti.com/index.php/File:BLE_SensorTag_GATT_Server.pdf 在bluepy lib似乎我在0x60中写0100来做到这一点。但
[CON][BC:6A:29:AE:CD:E5][LE]> char-write-req 0x60 0100
[CON][BC:6A:29:AE:CD:E5][LE]> Characteristic Write Request failed: Attribute can't be written
我观察到0x61是可写的并接受值0100,但我仍然无法做到 检测是否按下了某个键。
有什么建议吗?
答案 0 :(得分:3)
该PDF文档可能已过期...我刚尝试在SensorTag上使用gatttool并使用以下命令获取按钮通知:char-write-req 0x6c 0100
我只是坚持使用TI wiki for the SensorTag,因为它可能更有可能保持最新状态。 wiki说你只需要这样做"测试模式"如果您想在按下侧面按钮时收到通知,请执行步骤(因为通常只会激活广告)。
此外,您可能必须弄清楚在特定设备上使用什么句柄,因为每个固件都会导致句柄移动。固件之间不应该改变的是UUID。尝试使用gatttool中的primary
和characteristics
命令获取设备上服务的详细信息。
我的primary
显示了这一点:
attr handle: 0x005e, end grp handle: 0x0068 uuid: f000aa50-0451-4000-b000-000000000000
attr handle: 0x0069, end grp handle: 0x006d uuid: 0000ffe0-0000-1000-8000-00805f9b34fb
attr handle: 0x006e, end grp handle: 0x0074 uuid: f000aa60-0451-4000-b000-000000000000
ffe0
是简单密钥服务的UUID(虽然wiki说它是f000ffe0,但它不在我的身上)。因此,您要查看的所有句柄都是从0x69到0x6d
char-read-uuid 0x2902 0x69 0x6d
将显示该范围内的所有CCC(客户端特征配置):
handle: 0x006c value: 01 00
将该句柄设置为0100将打开该服务的通知。