B. H. / Mbed 2 deprecated trolololol

Dependencies:   mbed

Revision:
0:505207de8566
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/USBDevice/USBSERIAL/.svn/text-base/USBSerial.h.svn-base	Tue Nov 29 21:26:20 2011 +0000
@@ -0,0 +1,76 @@
+/* USBSerial.h */
+/* USB device example: virtual serial port */
+/* Copyright (c) 2011 ARM Limited. All rights reserved. */
+
+#ifndef USBSERIAL_H
+#define USBSERIAL_H
+
+#include "USBCDC.h"
+#include "Stream.h"
+
+class USBSerial: public USBCDC, public Stream {
+public:
+
+    /**
+    *   Constructor
+    *
+    * @param vendor_id Your vendor_id (default: 0x1234)
+    * @param product_id Your product_id (default: 0x0001)
+    * @param product_release Your preoduct_release (default: 0x0001)
+    *
+    */
+    USBSerial(uint16_t vendor_id = 0x1FC9, uint16_t product_id = 0x2002, uint16_t product_release = 0x0001): USBCDC(vendor_id, product_id, product_release) {
+    	handler = false;
+    	proc = false;
+    };
+
+
+    /**
+    * Send a character. You can use puts, printf.
+    *
+    * @param c character to be sent
+    * @returns true if there is no error, false otherwise
+    */
+    virtual int _putc(int c);
+    
+    /**
+    * Read a character. You can use scanf.
+    *
+    * @returns character read
+    */
+    virtual int _getc();
+
+    /**
+     *  Attach a member function to call when a character is received
+     *
+     *  @param tptr pointer to the object to call the member function on
+     *  @param mptr pointer to the member function to be called
+     */
+    template<typename T>
+    void attach(T* tptr, void (T::*mptr)(void)) {
+        if((mptr != NULL) && (tptr != NULL)) {
+        	proc = false;
+        	handler = true;
+            rx.attach(tptr, mptr);
+        }
+    }
+
+    /**
+     * Attach a callback for when a character is received
+     *
+     * @param fptr function pointer
+     */
+    void attach(void (*fn)(void));
+
+
+protected:
+    virtual bool EPBULK_OUT_callback();
+
+private:
+    FunctionPointer rx;
+    void (*fn)(void);
+    bool handler;
+    bool proc;
+};
+
+#endif