USB composite device example program, drag-and-drop flash writer.
Dependencies: SWD USBDevice mbed BaseDAP
Diff: tests/test_USBMSD2_HID.cpp
- Revision:
- 1:ea8e179320d7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test_USBMSD2_HID.cpp Sat Sep 28 03:21:14 2013 +0000 @@ -0,0 +1,107 @@ +// test_USBMSD2_HID.cpp 2013/9/28 +#if 0 +#include "mbed.h" +#include "USBMSD_Drop.h" +#include "BaseDAP.h" +#define MY_DEBUG 1 +#include "mydebug.h" +#include "mytest.h" + +Serial pc(USBTX, USBRX); + +#ifdef TARGET_LPC1768 +Serial target_uart(p9,p10); // RXD(dp15),TXD(dp16) +SWD swd(p21,p22,p17); // SWDIO(dp12),SWCLK(dp3),nReset(dp23) +DigitalOut connected(LED1); +DigitalOut running(LED2); +class myDAP : public BaseDAP { +public: + myDAP(SWD* swd):BaseDAP(swd){}; + virtual void infoLED(int select, int value) { + switch(select) { + case 0: connected = value; break; + case 1: running = value; break; + } + } +}; +#endif + +#ifdef TARGET_KL25Z +SWD swd(PTB8,PTB9,PTB10); // SWDIO(dp12),SWCLK(dp3),nReset(dp23) +DigitalOut connected(LED_GREEN); +DigitalOut running(LED_RED); +class myDAP : public BaseDAP { +public: + myDAP(SWD* swd):BaseDAP(swd){}; + virtual void infoLED(int select, int value) { + switch(select) { + case 0: + connected = value^1; + running = 1; + break; + case 1: + running = value^1; + connected = 1; + break; + } + } +}; +#endif + +class myUSBMSD_Drop : public USBMSD_Drop { +public: + virtual void Drop(const uint8_t* data, int len, int offset, int total) { + TEST_PRINT("offset=%d, total=%d", offset, total); + } +}; + +HID_REPORT send_report; +HID_REPORT recv_report; + +myDAP* dap; +myUSBMSD_Drop* hid; + +TEST(USBMSD2_HID,test1) { + dap = new myDAP(&swd); + hid = new myUSBMSD_Drop(); +} + +#if 0 +TEST(USBMSD2_HID,test2) { + while(1) { // forever + if(hid->readNB(&recv_report)) { + dap->Command(recv_report.data, send_report.data); + send_report.length = 64; + hid->send(&send_report); + } + } +} +#endif + +TEST(USBMSD2_HID,test3) { + while(1) { // forever + if(hid->readNB(&recv_report)) { + dap->Command(recv_report.data, send_report.data); + send_report.length = 64; + hid->send(&send_report); + } +#ifdef TARGET_LPC1768 + if (target_uart.readable()) { + hid->putc(target_uart.getc()); + } + if(hid->readable()) { + target_uart.putc(hid->getc()); + } +#endif + } +} + +int main() { + pc.baud(921600); + //pc.baud(9600); + DBG("%s", __FILE__); + + RUN_ALL_TESTS(); + exit(0); +} +#endif