You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

USBHIDBootMouse.ino 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #include <hidboot.h>
  2. #include <usbhub.h>
  3. // Satisfy the IDE, which needs to see the include statment in the ino too.
  4. #ifdef dobogusinclude
  5. #include <spi4teensy3.h>
  6. #include <SPI.h>
  7. #endif
  8. class MouseRptParser : public MouseReportParser
  9. {
  10. protected:
  11. void OnMouseMove (MOUSEINFO *mi);
  12. void OnLeftButtonUp (MOUSEINFO *mi);
  13. void OnLeftButtonDown (MOUSEINFO *mi);
  14. void OnRightButtonUp (MOUSEINFO *mi);
  15. void OnRightButtonDown (MOUSEINFO *mi);
  16. void OnMiddleButtonUp (MOUSEINFO *mi);
  17. void OnMiddleButtonDown (MOUSEINFO *mi);
  18. };
  19. void MouseRptParser::OnMouseMove(MOUSEINFO *mi)
  20. {
  21. Serial.print("dx=");
  22. Serial.print(mi->dX, DEC);
  23. Serial.print(" dy=");
  24. Serial.println(mi->dY, DEC);
  25. };
  26. void MouseRptParser::OnLeftButtonUp (MOUSEINFO *mi)
  27. {
  28. Serial.println("L Butt Up");
  29. };
  30. void MouseRptParser::OnLeftButtonDown (MOUSEINFO *mi)
  31. {
  32. Serial.println("L Butt Dn");
  33. };
  34. void MouseRptParser::OnRightButtonUp (MOUSEINFO *mi)
  35. {
  36. Serial.println("R Butt Up");
  37. };
  38. void MouseRptParser::OnRightButtonDown (MOUSEINFO *mi)
  39. {
  40. Serial.println("R Butt Dn");
  41. };
  42. void MouseRptParser::OnMiddleButtonUp (MOUSEINFO *mi)
  43. {
  44. Serial.println("M Butt Up");
  45. };
  46. void MouseRptParser::OnMiddleButtonDown (MOUSEINFO *mi)
  47. {
  48. Serial.println("M Butt Dn");
  49. };
  50. USB Usb;
  51. USBHub Hub(&Usb);
  52. HIDBoot<HID_PROTOCOL_MOUSE> HidMouse(&Usb);
  53. uint32_t next_time;
  54. MouseRptParser Prs;
  55. void setup()
  56. {
  57. Serial.begin( 115200 );
  58. #if !defined(__MIPSEL__)
  59. while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
  60. #endif
  61. Serial.println("Start");
  62. if (Usb.Init() == -1)
  63. Serial.println("OSC did not start.");
  64. delay( 200 );
  65. next_time = millis() + 5000;
  66. HidMouse.SetReportParser(0,(HIDReportParser*)&Prs);
  67. }
  68. void loop()
  69. {
  70. Usb.Task();
  71. }