http://mbed.org/users/okini3939/notebook/comet_websocket/

Dependencies:   EthernetNetIf mbed RingBuffer MbedJSONValue

Committer:
okini3939
Date:
Sat Nov 19 16:19:50 2011 +0000
Revision:
0:632cb8c03ca3

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:632cb8c03ca3 1 #include "mbed.h"
okini3939 0:632cb8c03ca3 2 #include "EthernetNetIf.h"
okini3939 0:632cb8c03ca3 3 #include "TCPSocket.h"
okini3939 0:632cb8c03ca3 4 #include "CometClient.h"
okini3939 0:632cb8c03ca3 5 #include <new>
okini3939 0:632cb8c03ca3 6
okini3939 0:632cb8c03ca3 7 DigitalOut myled(LED1);
okini3939 0:632cb8c03ca3 8 Serial pc(USBTX, USBRX);
okini3939 0:632cb8c03ca3 9 EthernetNetIf eth;
okini3939 0:632cb8c03ca3 10
okini3939 0:632cb8c03ca3 11 void HardFault_Handler() {
okini3939 0:632cb8c03ca3 12 printf("Hard Fault!\n");
okini3939 0:632cb8c03ca3 13 exit(-1);
okini3939 0:632cb8c03ca3 14 }
okini3939 0:632cb8c03ca3 15
okini3939 0:632cb8c03ca3 16 void no_memory () {
okini3939 0:632cb8c03ca3 17 printf("panic: can't allocate to memory!\r\n");
okini3939 0:632cb8c03ca3 18 exit(-1);
okini3939 0:632cb8c03ca3 19 }
okini3939 0:632cb8c03ca3 20
okini3939 0:632cb8c03ca3 21 int main () {
okini3939 0:632cb8c03ca3 22 EthernetErr ethErr;
okini3939 0:632cb8c03ca3 23 Host host;
okini3939 0:632cb8c03ca3 24 int i, r;
okini3939 0:632cb8c03ca3 25 char buf[100];
okini3939 0:632cb8c03ca3 26
okini3939 0:632cb8c03ca3 27 pc.baud(115200);
okini3939 0:632cb8c03ca3 28 myled = 1;
okini3939 0:632cb8c03ca3 29
okini3939 0:632cb8c03ca3 30 set_new_handler(no_memory); // new handler function
okini3939 0:632cb8c03ca3 31
okini3939 0:632cb8c03ca3 32 ethErr = eth.setup();
okini3939 0:632cb8c03ca3 33 if(ethErr) {
okini3939 0:632cb8c03ca3 34 return -1;
okini3939 0:632cb8c03ca3 35 }
okini3939 0:632cb8c03ca3 36
okini3939 0:632cb8c03ca3 37 host.setIp(IpAddr(49, 212, 96, 62));
okini3939 0:632cb8c03ca3 38 r = openComet(&host, "/stream.php", NULL, "data=hello");
okini3939 0:632cb8c03ca3 39 printf("status %d\r\n", r);
okini3939 0:632cb8c03ca3 40
okini3939 0:632cb8c03ca3 41 while (1) {
okini3939 0:632cb8c03ca3 42 myled = 1;
okini3939 0:632cb8c03ca3 43 pollComet();
okini3939 0:632cb8c03ca3 44 myled = 0;
okini3939 0:632cb8c03ca3 45
okini3939 0:632cb8c03ca3 46 i = recvComet(buf, 1000);
okini3939 0:632cb8c03ca3 47 if (i) {
okini3939 0:632cb8c03ca3 48 buf[i] = 0;
okini3939 0:632cb8c03ca3 49 printf("RECV: %s\r\n", buf);
okini3939 0:632cb8c03ca3 50 }
okini3939 0:632cb8c03ca3 51
okini3939 0:632cb8c03ca3 52 if (pc.readable()) {
okini3939 0:632cb8c03ca3 53 strcpy(buf, "data= ");
okini3939 0:632cb8c03ca3 54 buf[5] = pc.getc();
okini3939 0:632cb8c03ca3 55 printf("SEND: %s\r\n", buf);
okini3939 0:632cb8c03ca3 56 sendComet(buf);
okini3939 0:632cb8c03ca3 57 }
okini3939 0:632cb8c03ca3 58 }
okini3939 0:632cb8c03ca3 59
okini3939 0:632cb8c03ca3 60 return 0;
okini3939 0:632cb8c03ca3 61 }