USB CDC (serial) and USB MSC (strage) Composite Device. http://mbed.org/users/okini3939/notebook/USB_Device/

Dependencies:   ChaNFSSD mbed ChaNFS

Revision:
2:5db90410bb90
Parent:
1:bb08a84162b7
--- a/main.cpp	Fri Dec 23 15:39:13 2011 +0000
+++ b/main.cpp	Fri Dec 23 16:37:58 2011 +0000
@@ -3,6 +3,7 @@
 #include "SDFileSystem.h"
 #include <new>
 
+DigitalOut myled(LED1);
 Serial pc(USBTX, USBRX);
 SDFileSystem sd(p5, p6, p7, p8, "sd");
 USBCDCMSC cdcmsc(&sd);
@@ -75,27 +76,45 @@
 }
 
 int main() {
-    int c;
+    int c, u = 0;
+    Timer timer;
 
     set_new_handler(no_memory); // new handler function
 
     readfile("/sd/test.txt");
 
+    timer.start();
     while(1) {
-        if (cdcmsc.available()) {
+        if (timer.read_ms() > 500) {
+            myled = myled ? 0 : 1;
+            timer.reset();
+        }
+        
+        if (u != cdcmsc.configured()) {
+            u = cdcmsc.configured();
+            printf("configured %d\r\n", u);
+        }
+    
+        if (u && cdcmsc.available()) {
             // CDC -> pc serial
             c = cdcmsc.getc();
-            pc.putc(c);
             if (c == '?') {
                 listdir(&cdcmsc);
+            } else {
+                pc.putc(c);
             }
         }
         if (pc.readable()) {
             // PC serial -> CDC
             c = pc.getc();
-            cdcmsc.putc(c);
             if (c == '?') {
                 listdir(&pc);
+            } else {
+                if (u) {
+                    cdcmsc.putc(c);
+                } else {
+                    pc.putc(c);
+                }
             }
         }
     }