1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #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();
- }
|