| 部分源码: 、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. }
 |