一、问题背景:
AR眼镜通过USB接口连接android设备或者Windous设备。AR眼镜通过HID协议上报imu、按键数据。由于imu数据频率比较高,发现会存在丢帧的问题,特别是按键等事件丢帧就比较严重了。尝试了调整现场的优先级、直接读hid节点、变换超时时间都没有用。使用Android USB标准API也是存在丢帧。
重点来了,最后通过多缓存的方式才解决了此问题。
二、问题解决
1. 废话不多说,直接上工程源码:
此工程代码可以直接编译运行,主要代码是C++,封装成了HidUsbModule类,很方便使用。
https://download.youkuaiyun.com/download/kai_zone/88946070
2. main调用:
#include "HidUsbModule.h"
int main()
{
HidUsbModule* mHidUsbModule = HidUsbModule::instance();
mHidUsbModule->hidInit();
mHidUsbModule->hidStart();
while(1){};
ret