_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
--- /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();
+}
+
--- /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