summaryrefslogtreecommitdiff
path: root/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHID_desc/USBHID_desc.ino
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHID_desc/USBHID_desc.ino')
-rw-r--r--tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHID_desc/USBHID_desc.ino77
1 files changed, 77 insertions, 0 deletions
diff --git a/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHID_desc/USBHID_desc.ino b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHID_desc/USBHID_desc.ino
new file mode 100644
index 0000000000..85cfc19a2e
--- /dev/null
+++ b/tmk_core/protocol/usb_hid/USB_Host_Shield_2.0/examples/HID/USBHID_desc/USBHID_desc.ino
@@ -0,0 +1,77 @@
+#include <hid.h>
+#include <hiduniversal.h>
+#include <hidescriptorparser.h>
+#include <usbhub.h>
+#include "pgmstrings.h"
+
+// Satisfy the IDE, which needs to see the include statment in the ino too.
+#ifdef dobogusinclude
+#include <spi4teensy3.h>
+#include <SPI.h>
+#endif
+
+class HIDUniversal2 : public HIDUniversal
+{
+public:
+ HIDUniversal2(USB *usb) : HIDUniversal(usb) {};
+
+protected:
+ uint8_t OnInitSuccessful();
+};
+
+uint8_t HIDUniversal2::OnInitSuccessful()
+{
+ uint8_t rcode;
+
+ HexDumper<USBReadParser, uint16_t, uint16_t> Hex;
+ ReportDescParser Rpt;
+
+ if ((rcode = GetReportDescr(0, &Hex)))
+ goto FailGetReportDescr1;
+
+ if ((rcode = GetReportDescr(0, &Rpt)))
+ goto FailGetReportDescr2;
+
+ return 0;
+
+FailGetReportDescr1:
+ USBTRACE("GetReportDescr1:");
+ goto Fail;
+
+FailGetReportDescr2:
+ USBTRACE("GetReportDescr2:");
+ goto Fail;
+
+Fail:
+ Serial.println(rcode, HEX);
+ Release();
+ return rcode;
+}
+
+USB Usb;
+//USBHub Hub(&Usb);
+HIDUniversal2 Hid(&Usb);
+UniversalReportParser Uni;
+
+void setup()
+{
+ Serial.begin( 115200 );
+#if !defined(__MIPSEL__)
+ while (!Serial); // Wait for serial port to connect - used on Leonardo, Teensy and other boards with built-in USB CDC serial connection
+#endif
+ Serial.println("Start");
+
+ if (Usb.Init() == -1)
+ Serial.println("OSC did not start.");
+
+ delay( 200 );
+
+ if (!Hid.SetReportParser(0, &Uni))
+ ErrorMessage<uint8_t>(PSTR("SetReportParser"), 1 );
+}
+
+void loop()
+{
+ Usb.Task();
+}
+