Brandon Fictorie / Mbed 2 deprecated BF_Websocket

Dependencies:   mbed

Committer:
bfictorie
Date:
Sun Mar 25 17:26:30 2012 +0000
Revision:
0:8cdad1c73e8e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
bfictorie 0:8cdad1c73e8e 1 #include "mbed.h"
bfictorie 0:8cdad1c73e8e 2 #include "Websocket.h"
bfictorie 0:8cdad1c73e8e 3 #include "dnsresolve.h"
bfictorie 0:8cdad1c73e8e 4 #include "EthernetNetIf.h"
bfictorie 0:8cdad1c73e8e 5 #include "EE4040.h"
bfictorie 0:8cdad1c73e8e 6 #include "NTPClient.h"
bfictorie 0:8cdad1c73e8e 7 #include "Time.h"
bfictorie 0:8cdad1c73e8e 8
bfictorie 0:8cdad1c73e8e 9 //------------------Initialization----------------------//
bfictorie 0:8cdad1c73e8e 10
bfictorie 0:8cdad1c73e8e 11 Serial pc(USBTX, USBRX); // Initialize serial communication over USB
bfictorie 0:8cdad1c73e8e 12 Timer tmr; // Initialize a new Timer called tmr
bfictorie 0:8cdad1c73e8e 13 LocalFileSystem local("local"); // This is the directory where Halifax.csv vill be stored
bfictorie 0:8cdad1c73e8e 14
bfictorie 0:8cdad1c73e8e 15 // a method to update the time from a timeserver
bfictorie 0:8cdad1c73e8e 16 void updateTime() { // a function to update the time
bfictorie 0:8cdad1c73e8e 17 time_t ctTime; // ??
bfictorie 0:8cdad1c73e8e 18 time(&ctTime); // ??
bfictorie 0:8cdad1c73e8e 19 // printf("Current time is (UTC): %s\r\n", ctime(&ctTime));
bfictorie 0:8cdad1c73e8e 20
bfictorie 0:8cdad1c73e8e 21 NTPClient ntp;
bfictorie 0:8cdad1c73e8e 22 Host server(IpAddr(), 123, "0.de.pool.ntp.org"); // check that this Server is OK?
bfictorie 0:8cdad1c73e8e 23 ntp.setTime(server);
bfictorie 0:8cdad1c73e8e 24
bfictorie 0:8cdad1c73e8e 25 // printf("set time ok\r\n");
bfictorie 0:8cdad1c73e8e 26 time(&ctTime);
bfictorie 0:8cdad1c73e8e 27 // printf("Current time is (UTC): %s\r\n", ctime(&ctTime));
bfictorie 0:8cdad1c73e8e 28
bfictorie 0:8cdad1c73e8e 29 }
bfictorie 0:8cdad1c73e8e 30 //------------ Connect to Server -----------------------//
bfictorie 0:8cdad1c73e8e 31 Websocket ws("ws://131.202.94.104:4040"); // establish websocket connection to this server
bfictorie 0:8cdad1c73e8e 32
bfictorie 0:8cdad1c73e8e 33 int main() {
bfictorie 0:8cdad1c73e8e 34 void* p1=malloc(16000); // to ensure we have enough heap after NTP setup
bfictorie 0:8cdad1c73e8e 35 while (1) { // Infinite loop
bfictorie 0:8cdad1c73e8e 36
bfictorie 0:8cdad1c73e8e 37 if (!ws.connect()) { // loop here while the connection is not established
bfictorie 0:8cdad1c73e8e 38 pc.printf("Connection Failed - restart mbed\r\n");
bfictorie 0:8cdad1c73e8e 39 }
bfictorie 0:8cdad1c73e8e 40 // pc.printf("Successfully Connected!\r\n"); // Confirm connection
bfictorie 0:8cdad1c73e8e 41 tmr.start(); // start the Timer tmr
bfictorie 0:8cdad1c73e8e 42
bfictorie 0:8cdad1c73e8e 43 //----------------- DATA COLLECTION --------------------//
bfictorie 0:8cdad1c73e8e 44 // Data collected from the arduino/DSP
bfictorie 0:8cdad1c73e8e 45 // this is just dummy data, eventualy there will be function calls here that
bfictorie 0:8cdad1c73e8e 46 // will fetch the data from the DSP/arduino
bfictorie 0:8cdad1c73e8e 47 char b[8] = {'V','1','2','0','.','0','0',';'};
bfictorie 0:8cdad1c73e8e 48 char r[8] = {'I','0','2','0','.','0','0',';'};
bfictorie 0:8cdad1c73e8e 49 char a[8] = {'P','2','4','0','0','.','0',';'};
bfictorie 0:8cdad1c73e8e 50 char n[8] = {'p','0','0','0','0','0','0',';'};
bfictorie 0:8cdad1c73e8e 51 char d[8] = {'v','0','0','0','4','8','6',';'};
bfictorie 0:8cdad1c73e8e 52 char o[8] = {'I','1','2','0','.','0','0',';'};
bfictorie 0:8cdad1c73e8e 53 int w[1] = {'w'};
bfictorie 0:8cdad1c73e8e 54
bfictorie 0:8cdad1c73e8e 55 // getDataV(); // This will be the method call that updates the data from the DSP
bfictorie 0:8cdad1c73e8e 56
bfictorie 0:8cdad1c73e8e 57 // Pointers to measurements
bfictorie 0:8cdad1c73e8e 58 char V[9] = {*b,*(b+1),*(b+2),*(b+3),*(b+4),*(b+5),*(b+6),*(b+7),'\0'};
bfictorie 0:8cdad1c73e8e 59 char * ptr_V;
bfictorie 0:8cdad1c73e8e 60 ptr_V = V;
bfictorie 0:8cdad1c73e8e 61 char I[9] = {*r,*(r+1),*(r+2),*(r+3),*(r+4),*(r+5),*(r+6),*(r+7),'\0'};
bfictorie 0:8cdad1c73e8e 62 char * ptr_I;
bfictorie 0:8cdad1c73e8e 63 ptr_I = I;
bfictorie 0:8cdad1c73e8e 64 char P[9] = {*a,*(a+1),*(a+2),*(a+3),*(a+4),*(a+5),*(a+6),*(a+7),'\0'};
bfictorie 0:8cdad1c73e8e 65 char * ptr_P;
bfictorie 0:8cdad1c73e8e 66 ptr_P = P;
bfictorie 0:8cdad1c73e8e 67 char p[9] = {*n,*(n+1),*(n+2),*(n+3),*(n+4),*(n+5),*(n+6),*(n+7),'\0'};
bfictorie 0:8cdad1c73e8e 68 char * ptr_p;
bfictorie 0:8cdad1c73e8e 69 ptr_p = p;
bfictorie 0:8cdad1c73e8e 70 char v[9] = {*d,*(d+1),*(d+2),*(d+3),*(d+4),*(d+5),*(d+6),*(d+7),'\0'};
bfictorie 0:8cdad1c73e8e 71 char * ptr_v;
bfictorie 0:8cdad1c73e8e 72 ptr_v = v;
bfictorie 0:8cdad1c73e8e 73 char i[9] = {*o,*(o+1),*(o+2),*(o+3),*(o+4),*(o+5),*(o+6),*(o+7),'\0'};
bfictorie 0:8cdad1c73e8e 74 char * ptr_i;
bfictorie 0:8cdad1c73e8e 75 ptr_i = i;
bfictorie 0:8cdad1c73e8e 76 // char W[2] = {*w,'\0'};
bfictorie 0:8cdad1c73e8e 77 // char * ptr_W;
bfictorie 0:8cdad1c73e8e 78 // ptr_W = W; // Test value in the format of scotts data
bfictorie 0:8cdad1c73e8e 79
bfictorie 0:8cdad1c73e8e 80 // Pointer to all the measurements
bfictorie 0:8cdad1c73e8e 81 char data[49] = {*b,*(b+1),*(b+2),*(b+3),*(b+4),*(b+5),*(b+6),*(b+7),
bfictorie 0:8cdad1c73e8e 82 *r,*(r+1),*(r+2),*(r+3),*(r+4),*(r+5),*(r+6),*(r+7),
bfictorie 0:8cdad1c73e8e 83 *a,*(a+1),*(a+2),*(a+3),*(a+4),*(a+5),*(a+6),*(a+7),
bfictorie 0:8cdad1c73e8e 84 *n,*(n+1),*(n+2),*(n+3),*(n+4),*(n+5),*(n+6),*(n+7),
bfictorie 0:8cdad1c73e8e 85 *d,*(d+1),*(d+2),*(d+3),*(d+4),*(d+5),*(d+6),*(d+7),
bfictorie 0:8cdad1c73e8e 86 *o,*(o+1),*(o+2),*(o+3),*(o+4),*(o+5),*(o+6),*(o+7),'\0'
bfictorie 0:8cdad1c73e8e 87 };
bfictorie 0:8cdad1c73e8e 88 char * ptr_data; // Declare a new Pointer
bfictorie 0:8cdad1c73e8e 89 ptr_data = data; // make the new pointer point to the data
bfictorie 0:8cdad1c73e8e 90
bfictorie 0:8cdad1c73e8e 91
bfictorie 0:8cdad1c73e8e 92 //------------------ DATA PROCESSING -------------------//
bfictorie 0:8cdad1c73e8e 93 // Data appended with a timestamp, formatted, and sent to the server
bfictorie 0:8cdad1c73e8e 94
bfictorie 0:8cdad1c73e8e 95 // ws.send("\r\n");
bfictorie 0:8cdad1c73e8e 96 while (1) {
bfictorie 0:8cdad1c73e8e 97
bfictorie 0:8cdad1c73e8e 98 if (tmr.read() > 3) { // Wait 3 seconds -> Send Data Every 3 seconds
bfictorie 0:8cdad1c73e8e 99
bfictorie 0:8cdad1c73e8e 100 free(p1); // reclaim back memory
bfictorie 0:8cdad1c73e8e 101
bfictorie 0:8cdad1c73e8e 102 char *buf=new char[32];
bfictorie 0:8cdad1c73e8e 103
bfictorie 0:8cdad1c73e8e 104 Time *time=new Time();
bfictorie 0:8cdad1c73e8e 105 TimeStamp *timestamp=time->getTime();
bfictorie 0:8cdad1c73e8e 106
bfictorie 0:8cdad1c73e8e 107 snprintf(buf,32,"%.2d;%.2d;%.2d;%.2d;%.2d;%.2d",
bfictorie 0:8cdad1c73e8e 108 timestamp->getYear(),timestamp->getMonth()+1, timestamp->getDay(),
bfictorie 0:8cdad1c73e8e 109 timestamp->getHour()-3, timestamp->getMinute(), timestamp->getSecond());
bfictorie 0:8cdad1c73e8e 110 // printf("time=%s\r\n",buf);
bfictorie 0:8cdad1c73e8e 111
bfictorie 0:8cdad1c73e8e 112
bfictorie 0:8cdad1c73e8e 113 // pc.printf(ptr_data);
bfictorie 0:8cdad1c73e8e 114 // pc.printf("\r\n");
bfictorie 0:8cdad1c73e8e 115 ws.send("\r\n");
bfictorie 0:8cdad1c73e8e 116 ws.send(ptr_data);
bfictorie 0:8cdad1c73e8e 117 ws.send(buf);
bfictorie 0:8cdad1c73e8e 118 // getTime();
bfictorie 0:8cdad1c73e8e 119 tmr.start(); // restart the timer
bfictorie 0:8cdad1c73e8e 120 } // end if
bfictorie 0:8cdad1c73e8e 121 Net::poll();
bfictorie 0:8cdad1c73e8e 122 } // end while
bfictorie 0:8cdad1c73e8e 123
bfictorie 0:8cdad1c73e8e 124
bfictorie 0:8cdad1c73e8e 125 } // end while
bfictorie 0:8cdad1c73e8e 126 } // end main