USB-UART bridge for XBee with XCTU.

Dependencies:   USBDevice mbed

USB to UART bridge for XBee with XCTU.
320 350
Windows serial driver:
https://developer.mbed.org/handbook/USBSerial
https://developer.mbed.org/media/uploads/samux/serial.zip

Revision:
0:9b1aa393acb3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon May 12 15:53:39 2014 +0000
@@ -0,0 +1,64 @@
+#include "BaseUsbUartBridge.h"
+DigitalOut led_xbee(LED1),led_usb(LED2),led_reset(LED3),led_heartbeat(LED4);
+RawSerial pc(MBED_UARTUSB);
+#if defined(TARGET_LPC4088)
+#define XBEE_UART P4_22,P4_23
+DigitalOut xbee_rts(P4_21);
+DigitalOut xbee_dtr(P4_19);
+DigitalOut xbee_reset(P4_17);
+DigitalIn reset_sw(P2_10);
+#define SW_MODE PullUp
+#elif defined(TARGET_LPC1768)
+#define XBEE_UART p9,p10
+DigitalOut xbee_rts(p21);
+DigitalOut xbee_dtr(p22);
+DigitalOut xbee_reset(p30);
+DigitalIn reset_sw(p14);
+#define SW_MODE PullDown
+#else
+#error "target error"
+#endif
+
+class USB_XBee : public BaseUsbUartBridge {
+public:
+    USB_XBee(PinName tx, PinName rx) : BaseUsbUartBridge(tx, rx) {}
+    virtual void controlLineStateChanged(int rts, int dtr){
+        xbee_rts = rts ^ 1;
+        xbee_dtr = dtr ^ 1;
+    }
+    virtual void monitor(src_t src, uint8_t c) {
+        switch(src) {
+            case _UART: led_xbee = !led_xbee; break;
+            case _USB: led_usb = !led_usb; break;
+        }
+        //pc.putc(c);// debug
+    }
+};
+
+USB_XBee usb_xbee(XBEE_UART);
+
+int main() {
+    pc.baud(115200);
+
+    xbee_rts = 0;
+    xbee_dtr = 0;
+    xbee_reset = 1;
+    reset_sw.mode(SW_MODE);
+    int prev_sw = 1;
+
+    Timer heartbeat_t;
+    heartbeat_t.reset();
+    heartbeat_t.start();
+    while(1) {
+        if (reset_sw ^ prev_sw) {
+            prev_sw = reset_sw;
+            xbee_reset = prev_sw ^ (SW_MODE == PullDown ? 1 : 0);
+            led_reset = xbee_reset;
+        }
+        if (heartbeat_t.read_ms() > 500) {
+            heartbeat_t.reset();
+            led_heartbeat = !led_heartbeat;
+        }
+        usb_xbee.poll();
+    }
+}