从Bluefruit EZ-Key发送鼠标点击

时间:2016-05-19 14:30:52

标签: c++ ios bluetooth hid

我有一个蓝牙键盘,有一个键,按下时会锁定你的iOS设备。我很想知道我是否可以复制这个功能。

我将键盘(Zagg Folio)连接到我的Mac并运行了一个蓝牙数据包记录器。当我按下键盘上的锁定键时,这就是我得到的:

enter image description here

...它只是一个鼠标BUTTON_1点击(向下/向上)事件,X:0和Y:0表示移动。十分简单。

现在我尝试使用Bluefruit EZ-Key HID芯片复制此事件。但是,我通过这样的方式发出鼠标点击(向下/向上)事件:

enter image description here

非常接近,除非它不被视为"鼠标"并且没有与之关联的位置点。 对于记录,如果我尝试发送位置更改数据,它从不在数据包记录器中存储。

我按照教程介绍了如何发送鼠标事件,这就是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);
}

但是使用此代码时,鼠标事件显示为未知:

enter image description here

不理想。看起来我正在远离解决方案。

所以我在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手册中获得了鼠标事件的结构:

enter image description here

...我打电话给这样的方法:

mouseCommand(0x1, 0, 0);
mouseCommand(0x0, 0, 0);

应该是鼠标左键按下并释放。这只给了我上面第二个屏幕截图的输出。

我还尝试使用EZ-Key_Remapper重新映射Bluefruit芯片的引脚分布,但它仍然不起作用。如果有人可以告诉我,如果我的代码格式错误,或者可能是我做错了其他事情,那将非常有帮助。

0 个答案:

没有答案