Ilya I / Mbed 2 deprecated iva2k_NetHttpServerTcpSockets

Dependencies:   mbed

Committer:
iva2k
Date:
Mon Jun 14 03:24:33 2010 +0000
Revision:
1:3ee499525aa5
Parent:
0:e614f7875b60

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iva2k 0:e614f7875b60 1 #define MY_DEBUG_LEVEL 2
iva2k 0:e614f7875b60 2 #define MBED_BOB2 1
iva2k 0:e614f7875b60 3 #define USE_SD 0
iva2k 0:e614f7875b60 4
iva2k 0:e614f7875b60 5 #include "mbed.h"
iva2k 0:e614f7875b60 6 #include "EthernetNetIf.h"
iva2k 0:e614f7875b60 7 #include "HTTPServer.h"
iva2k 0:e614f7875b60 8 #include "StreamServer.h"
iva2k 0:e614f7875b60 9
iva2k 0:e614f7875b60 10 #if USE_SD
iva2k 0:e614f7875b60 11 #include "SDFileSystem.h"
iva2k 0:e614f7875b60 12 #endif
iva2k 0:e614f7875b60 13
iva2k 0:e614f7875b60 14 DigitalOut led1(LED1, "led1");
iva2k 0:e614f7875b60 15 DigitalOut led2(LED2, "led2");
iva2k 0:e614f7875b60 16 DigitalOut led3(LED3, "led3");
iva2k 0:e614f7875b60 17 DigitalOut led4(LED4, "led4");
iva2k 0:e614f7875b60 18
iva2k 0:e614f7875b60 19 //LocalFileSystem fs("webfs");
iva2k 0:e614f7875b60 20 LocalFileSystem local("webfs");
iva2k 0:e614f7875b60 21 #if USE_SD
iva2k 0:e614f7875b60 22 SDFileSystem sd(p5, p6, p7, p8, "sd"); // MBED-BoB2
iva2k 0:e614f7875b60 23 #endif
iva2k 0:e614f7875b60 24
iva2k 0:e614f7875b60 25 EthernetNetIf eth;
iva2k 0:e614f7875b60 26 //#if 0 // Fixed address
iva2k 0:e614f7875b60 27 //EthernetNetIf eth(
iva2k 0:e614f7875b60 28 // IpAddr(192,168,0,101), //IP Address
iva2k 0:e614f7875b60 29 // IpAddr(255,255,255,0), //Network Mask
iva2k 0:e614f7875b60 30 // IpAddr(192,168,0,1), //Gateway
iva2k 0:e614f7875b60 31 // IpAddr(192,168,0,1) //DNS
iva2k 0:e614f7875b60 32 //);
iva2k 0:e614f7875b60 33 //#endif
iva2k 0:e614f7875b60 34 HTTPServer svr;
iva2k 0:e614f7875b60 35 StreamServer stream;
iva2k 1:3ee499525aa5 36 Serial pc(USBTX, USBRX);
iva2k 0:e614f7875b60 37
iva2k 0:e614f7875b60 38 int gDebug=MY_DEBUG_LEVEL;
iva2k 0:e614f7875b60 39 float gWait = 0.005; // Main loop wait timeout
iva2k 0:e614f7875b60 40
iva2k 0:e614f7875b60 41 int main() {
iva2k 0:e614f7875b60 42 bool use_sd = false;
iva2k 0:e614f7875b60 43 unsigned int cnt = 0;
iva2k 0:e614f7875b60 44
iva2k 1:3ee499525aa5 45 pc.baud(115200);
iva2k 0:e614f7875b60 46 Base::add_rpc_class<DigitalOut>();
iva2k 0:e614f7875b60 47
iva2k 0:e614f7875b60 48 printf("\r\nSetting up...\r\n");
iva2k 0:e614f7875b60 49 EthernetErr ethErr = eth.setup();
iva2k 0:e614f7875b60 50 if(ethErr)
iva2k 0:e614f7875b60 51 {
iva2k 0:e614f7875b60 52 printf("Error %d in setup.\n", ethErr);
iva2k 0:e614f7875b60 53 return -1;
iva2k 0:e614f7875b60 54 }
iva2k 0:e614f7875b60 55 printf("\r\nSetup OK\r\n");
iva2k 0:e614f7875b60 56
iva2k 0:e614f7875b60 57 #if USE_SD
iva2k 0:e614f7875b60 58 // Check if we can use SD card for the web server
iva2k 0:e614f7875b60 59 FILE *fp = fopen("/sd/index.htm", "r");
iva2k 0:e614f7875b60 60 if (fp == NULL) {
iva2k 0:e614f7875b60 61 if (gDebug) printf("DEBUG: No SD card found or no index.htm file - using LocalFilesystem for WebServer.\r\n");
iva2k 0:e614f7875b60 62 } else {
iva2k 0:e614f7875b60 63 use_sd = true;
iva2k 0:e614f7875b60 64 fclose(fp);
iva2k 0:e614f7875b60 65 if (gDebug) printf("DEBUG: Found SD card with index.htm file - using SD for WebServer.\r\n");
iva2k 0:e614f7875b60 66 }
iva2k 0:e614f7875b60 67 #endif
iva2k 0:e614f7875b60 68
iva2k 0:e614f7875b60 69 svr.addHandler<SimpleHandler>("/hello");
iva2k 0:e614f7875b60 70 svr.addHandler<RPCHandler>("/rpc");
iva2k 0:e614f7875b60 71 svr.addHandler<FSHandler>(""); //Default handler
iva2k 0:e614f7875b60 72 //FIXME: can't use this: , use_sd ? "/sd/" : "/local/");
iva2k 0:e614f7875b60 73 //Example : Access to mbed.htm : http://a.b.c.d/webfs/mbed.htm
iva2k 0:e614f7875b60 74
iva2k 0:e614f7875b60 75 svr.bind(80);
iva2k 0:e614f7875b60 76
iva2k 0:e614f7875b60 77 printf("\r\nHTTP Listening...\r\n");
iva2k 0:e614f7875b60 78
iva2k 0:e614f7875b60 79 //#### STREAM SOCKETS
iva2k 0:e614f7875b60 80 stream.bind(123);
iva2k 0:e614f7875b60 81
iva2k 0:e614f7875b60 82 Timer tm;
iva2k 0:e614f7875b60 83 tm.start();
iva2k 0:e614f7875b60 84 //Listen indefinitely
iva2k 0:e614f7875b60 85 while(true)
iva2k 0:e614f7875b60 86 {
iva2k 0:e614f7875b60 87 Net::poll();
iva2k 0:e614f7875b60 88 if(tm.read()>.5)
iva2k 0:e614f7875b60 89 {
iva2k 0:e614f7875b60 90 led1=!led1; //Show that we are alive
iva2k 0:e614f7875b60 91 if ((cnt % 4) == 0) {
iva2k 0:e614f7875b60 92 char buf[100];
iva2k 0:e614f7875b60 93 int len = sprintf(buf, ".tick.%d======================================================================\r\n", cnt);
iva2k 0:e614f7875b60 94 stream.sendToAll(buf, len);
iva2k 1:3ee499525aa5 95 printf("%s - %d clients\r\n", buf, stream.countClients());
iva2k 1:3ee499525aa5 96 // printf(".tick.%d - %d clients\r\n", cnt, stream.countClients());
iva2k 0:e614f7875b60 97 }
iva2k 0:e614f7875b60 98 tm.start();
iva2k 0:e614f7875b60 99 cnt++;
iva2k 0:e614f7875b60 100 }
iva2k 1:3ee499525aa5 101 // wait(gWait);
iva2k 0:e614f7875b60 102 }
iva2k 0:e614f7875b60 103
iva2k 0:e614f7875b60 104 return 0;
iva2k 0:e614f7875b60 105
iva2k 0:e614f7875b60 106 }