Test u-blox C027, nodejs, socketio on heroku

Dependencies:   C027 EthernetInterface SocketIO WebSocketClient mbed-rtos mbed

Fork of C027_Socketio_Ethernet by Chau Vo

Revision:
4:0bdab35cb164
Parent:
3:259ac92c3ca8
Child:
6:4af1b4a1b875
Child:
8:958c0e7c9536
--- a/main.cpp	Wed Apr 09 20:14:57 2014 +0000
+++ b/main.cpp	Tue Apr 22 21:12:07 2014 +0000
@@ -2,52 +2,95 @@
 #include "C027.h"
 #include "EthernetInterface.h"
 #include "Websocket.h"
- 
- 
-void test(void const*)
+#include "SocketIO.h"
+
+
+//Debug is disabled by default
+#if 1
+//Enable debug
+#include <cstdio>
+#define DBG(x, ...) std::printf("[main : DBG]"x"\r\n", ##__VA_ARGS__); 
+#define WARN(x, ...) std::printf("[main : WARN]"x"\r\n", ##__VA_ARGS__); 
+#define ERR(x, ...) std::printf("[main : ERR]"x"\r\n", ##__VA_ARGS__); 
+
+#else
+//Disable debug
+#define DBG(x, ...) 
+#define WARN(x, ...)
+#define ERR(x, ...) 
+
+#endif
+
+
+void websocket_test(void const*)
 {
     char msg[512] = {0};
- 
+
     EthernetInterface eth;
     eth.init(); //Use DHCP
     eth.connect();
-    printf("IP Address is %s\n\r", eth.getIPAddress());
- 
+    DBG("IP Address is %s", eth.getIPAddress());
+
     Websocket ws("ws://sockets.mbed.org:443/ws/chauvo/wo");
     Timer t;
     t.start();
-    
+
     bool c = ws.connect();
-    printf("Connect result: %s\n", c?"OK":"Failed");
-    
-    for(int i = 0; i < 10000; i++) 
-    {
+    DBG("Connect result: %s", c?"OK":"Failed");
+
+    for(int i = 0; i < 10000; i++) {
         ws.connect();
         // create json string with acc/tmp data
         sprintf(msg, "Chau's demo loop: %d", i);
-        ws.send(msg);    
+        ws.send(msg);
         wait(0.5f);
         memset(msg, 0, 512);
-        
-        if (ws.read(msg))
-        {
-            printf("rcv: %s\r\n", msg);
-        }
-        else
-        {
-            printf("Loop %d ws.read() returns 0\n \t %s, line %d @ %6.2f seconds\n", i, __FILE__, __LINE__, t.read());
+
+        if (ws.read(msg)) {
+            DBG("rcv: %s\r\n", msg);
+        } else {
+            DBG("Loop %d ws.read() returns 0\n \t %s, line %d @ %6.2f seconds\n", i, __FILE__, __LINE__, t.read());
             wait(5.0f);
         }
         ws.close();
     }
-    
+
     while(1) {
     }
 }
 
+void socketio_test(void const*)
+{
+    char msg[512] = {0};
+
+    EthernetInterface eth;
+    eth.init(); //Use DHCP
+    eth.connect();
+    DBG("IP Address is %s", eth.getIPAddress());
+
+    SocketIO socketio("nne-server1.herokuapp.com");
+    //SocketIO socketio("websocketserver-tutorial11067089.rhcloud.com");
+    //SocketIO socketio("websocket-server.chau_vk.c9.io:8001");
+    //SocketIO socketio("websocket-server-c9-chau_vk.c9.io");
+    Timer t;
+    t.start();
+
+    bool c = socketio.connect(); // c is always false, (maybe because the connection is upgraded?)
+    DBG("Connect result: %s", c?"OK":"Failed");
+
+    while (1) {
+        int res = socketio.emit("mesage","[\"mbed SocketIO Hello World!\"]");
+        if (socketio.read(msg)) {
+            DBG("rcv: %s", msg);
+        }
+        wait(0.1);
+    }
+}
+
 int main()
 {
-    Thread testTask(test, NULL, osPriorityNormal, 1024 * 4);
+    //Thread testTask(websocket_test, NULL, osPriorityNormal, 1024 * 4);
+    Thread testTask(socketio_test, NULL, osPriorityNormal, 1024 * 4);
     DigitalOut led(LED); // on rev A you should reasign the signal to A0
     while(1) {
         led=!led;