_Very_ simple wrapper to a WiFly module connected via serial port.

Files at this revision

API Documentation at this revision

Comitter:
tylerwilson
Date:
Thu Jun 16 22:05:55 2011 +0000
Commit message:

Changed in this revision

wifly.cpp Show annotated file Show diff for this revision Revisions of this file
wifly.h Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r b5ee41a1ca65 wifly.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wifly.cpp	Thu Jun 16 22:05:55 2011 +0000
@@ -0,0 +1,78 @@
+//
+// Wrapper for the WiFly module, using the serial port
+//
+// Copyright 2010 Pulse-Robotics, Inc.
+// John Sosoka, Tyler Wilson
+//
+
+#include "wifly.h"
+
+
+WiFly::WiFly(PinName tx, PinName rx)
+    : port(0)
+{
+    port = new Serial(tx, rx);
+    
+    if (port)
+    {
+        port->baud(9600);
+    }
+}
+
+void WiFly::commandMode() const
+{
+    if (port)
+    {
+        port->printf("$$$");
+        // wait for 250ms
+                
+        char result[4];
+        port->scanf("%c%c%c", result[0], result[1], result[2]);
+        result[3] = 0;
+        
+        if (strcmp(result, "CMD") != 0)
+        {
+            // not the expected reply
+        }
+    }
+}
+
+void WiFly::dataMode() const
+{
+    if (port)
+    {
+        port->printf("exit\r");
+
+        char result[5];
+        port->scanf("%c%c%c%c", result[0], result[1], result[2], result[3]);
+        result[4] = 0;
+        
+        if (strcmp(result, "EXIT") != 0)
+        {
+            // not the expected reply
+        }
+    }
+}
+
+
+// Serial methods
+void WiFly::baud(int baudrate)
+{
+    port->baud(baudrate);
+}
+
+int WiFly::getc()
+{
+    return port->getc();
+}
+
+void WiFly::putc(int c)
+{
+    port->putc(c);
+}
+
+int WiFly::readable()
+{
+    return port->readable();
+}
+
diff -r 000000000000 -r b5ee41a1ca65 wifly.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wifly.h	Thu Jun 16 22:05:55 2011 +0000
@@ -0,0 +1,38 @@
+/**
+ * Wrapper for the WiFly module, using the serial port.
+ *
+ * Copyright 2010 Pulse-Robotics, Inc.
+ * John Sosoka, Tyler Wilson
+ */
+
+#ifndef __wifly_h__
+#define __wifly_h__
+
+#include "mbed.h"
+
+
+class WiFly {
+
+public:
+    /** Create a WiFly object connected to the specified serial pins
+     *
+     * @param tx TX pin of the Serial port
+     * @param rx RX pin of the Serial port 
+     */
+    WiFly(PinName tx, PinName rx);
+
+    void commandMode() const;
+    void dataMode() const;
+    
+    // Serial methods. Could also derive from Serial...
+    void baud(int baudrate=9600);
+    int getc();
+    void putc(int c);
+    int readable();
+    
+private:
+    Serial* port;
+};
+
+
+#endif /* __wifly_h__ */
\ No newline at end of file