我想检测一下是否使用gatttool在我的SensorTag上推了一个botton,但是我无法做到这一点。
在指南 TI报告中,为了读取按下的按钮,您应该:
1)通过将值0x80写入AA62 (配置)属性来启用测试模式。
我的命令是这样的:
[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)启用简单键通知
看一下Server.pdf和蓝边库,似乎我必须在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值,但我仍然无法检测是否按下了键。
有什么建议吗?
发布于 2014-05-09 17:02:22
那份PDF文件可能过时了..。我刚刚尝试在我的SensorTag上使用gatttool,并使用以下命令获得按钮通知:char-write-req 0x6c 0100
我只会坚持使用用于SensorTag的TI wiki,因为它可能更有可能是最新的。wiki说,如果您想在按side按钮时获得通知,只需要执行“测试模式”步骤(因为通常情况下,它只会激活广告)。
另外,您可能需要弄清楚在您的特定设备上使用什么手柄,因为每个固件都会导致手柄移动。固件之间不应该改变的是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-000000000000ffe0是简单密钥服务的UUID (尽管wiki说它是f000ffe0,但它不是我的)。所以,所有要查看的句柄都是从0x69到0x6d。
char-read-uuid 0x2902 0x69 0x6d将在此范围内显示所有CCC (客户端特性配置):
handle: 0x006c value: 01 00 将该句柄设置为0100将打开该服务的通知。
https://stackoverflow.com/questions/23544799
复制相似问题