部分源码:
、1. buf[0] = buttons; // 鼠标左右键
2. buf[1] = 0; // X 轴偏移量
3. buf[2] = 0; // Y 轴偏移量
4. buf[3] = 0; // Wheel 滑轮变化量
5. buf[4] = 0; // AC Pan 不符合 HIDAdvRemoteDongle 注释掉
if ( events & START_DEVICE_EVT )
2. {
3. //5s 启动 XY 轴周期报告发送
4. osal_start_timerEx( hidEmuKbdTaskId, MOUSE_X_EVT, 5000 );
5. osal_start_timerEx( hidEmuKbdTaskId, MOUSE_Y_EVT, 5000 );
6.
7. return ( events ^ START_DEVICE_EVT );
8. }
1. if ( events & MOUSE_X_EVT ) //鼠标 X 轴周期检测事件
2. {
3. uint8 buf[2];
4. int x;
5. int8 mouse_y;
6.
7. //X
8. buf[0] = HalI2CReadReg(0x01);
9. buf[1] = HalI2CReadReg(0x02);
10. x=(buf[0]<<8)|buf[1];
11. x>>=4;
12. if(x>600)mouse_y = 10;
13. else if(x<-600)mouse_y = -10;
14. else mouse_y = 0;
15.
16. if(mouse_y!=0)hidEmuKbdSendMouseReport(Mousebutton,0,mouse_y);
17.
18. if(Mousetime)osal_start_timerEx( hidEmuKbdTaskId, MOUSE_X_EVT,
Mousetime );
19. return ( events ^ MOUSE_X_EVT );
20. }
|