SensorTag,使用gatttool检测按下的按钮

时间:2014-05-08 14:31:12

标签: bluetooth bluetooth-lowenergy sensor texas-instruments

我想检测是否使用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.pdfbluepy 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,但我仍然无法做到 检测是否按下了某个键。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

该PDF文档可能已过期...我刚尝试在SensorTag上使用gatttool并使用以下命令获取按钮通知:char-write-req 0x6c 0100

我只是坚持使用TI wiki for the SensorTag,因为它可能更有可能保持最新状态。 wiki说你只需要这样做"测试模式"如果您想在按下侧面按钮时收到通知,请执行步骤(因为通常只会激活广告)。

此外,您可能必须弄清楚在特定设备上使用什么句柄,因为每个固件都会导致句柄移动。固件之间不应该改变的是UUID。尝试使用gatttool中的primarycharacteristics命令获取设备上服务的详细信息。

我的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将打开该服务的通知。