我有一个蓝牙键盘,有一个键,按下时会锁定你的iOS设备。我很想知道我是否可以复制这个功能。
我将键盘(Zagg Folio)连接到我的Mac并运行了一个蓝牙数据包记录器。当我按下键盘上的锁定键时,这就是我得到的:
...它只是一个鼠标BUTTON_1点击(向下/向上)事件,X:0和Y:0表示移动。十分简单。
现在我尝试使用Bluefruit EZ-Key HID芯片复制此事件。但是,我通过这样的方式发出鼠标点击(向下/向上)事件:
非常接近,除非它不被视为"鼠标"并且没有与之关联的位置点。 对于记录,如果我尝试发送位置更改数据,它从不在数据包记录器中存储。
我按照教程介绍了如何发送鼠标事件,这就是Lady Ada发送鼠标事件的原因:
void mouseCommand(uint8_t buttons, uint8_t x, uint8_t y) {
BT.write(0xFD);
BT.write((byte)0x00);
BT.write((byte)0x03);
BT.write(buttons);
BT.write(x);
BT.write(y);
BT.write((byte)0x00);
BT.write((byte)0x00);
BT.write((byte)0x00);
}
但是使用此代码时,鼠标事件显示为未知:
不理想。看起来我正在远离解决方案。
所以我在HID事件及其结构上找到了this manual here。我把我的代码更改为:
void mouseCommand(uint8_t buttons, uint8_t x, uint8_t y) {
BT.write(0xFD);
BT.write(0x05);
BT.write(0x02);
BT.write(buttons);
BT.write((byte)0x00);
BT.write((byte)0x00);
BT.write((byte)0x00);
BT.write((byte)0x00);
BT.write((byte)0x00);
}
我从上面链接中的HID手册中获得了鼠标事件的结构:
...我打电话给这样的方法:
mouseCommand(0x1, 0, 0);
mouseCommand(0x0, 0, 0);
应该是鼠标左键按下并释放。这只给了我上面第二个屏幕截图的输出。
我还尝试使用EZ-Key_Remapper重新映射Bluefruit芯片的引脚分布,但它仍然不起作用。如果有人可以告诉我,如果我的代码格式错误,或者可能是我做错了其他事情,那将非常有帮助。