Handle HTTP Post Method

Dependencies:   EthernetNetIf HTTPServer mbed

Committer:
nobuki
Date:
Sat Dec 01 15:10:39 2012 +0000
Revision:
0:5ec5448dc8c5
Version 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nobuki 0:5ec5448dc8c5 1 #include "mbed.h"
nobuki 0:5ec5448dc8c5 2 #include "EthernetNetIf.h"
nobuki 0:5ec5448dc8c5 3 #include "HTTPServer.h"
nobuki 0:5ec5448dc8c5 4
nobuki 0:5ec5448dc8c5 5 #include "PostHandler.h"
nobuki 0:5ec5448dc8c5 6
nobuki 0:5ec5448dc8c5 7 EthernetNetIf ethif( IpAddr(192,168,1,102), // IP
nobuki 0:5ec5448dc8c5 8 IpAddr(255,255,255,0), // Subnet mask
nobuki 0:5ec5448dc8c5 9 IpAddr(192,168,1,1), // Gateway
nobuki 0:5ec5448dc8c5 10 IpAddr(192,168,1,1) ); // DNS
nobuki 0:5ec5448dc8c5 11 HTTPServer server;
nobuki 0:5ec5448dc8c5 12 DigitalOut ledAliveCheck(LED1); // for alive check
nobuki 0:5ec5448dc8c5 13
nobuki 0:5ec5448dc8c5 14 DigitalOut led1(p21);
nobuki 0:5ec5448dc8c5 15 DigitalOut led2(p22);
nobuki 0:5ec5448dc8c5 16 DigitalOut led3(p23);
nobuki 0:5ec5448dc8c5 17
nobuki 0:5ec5448dc8c5 18 bool g_bLed1 = false;
nobuki 0:5ec5448dc8c5 19 bool g_bLed2 = false;
nobuki 0:5ec5448dc8c5 20 bool g_bLed3 = false;
nobuki 0:5ec5448dc8c5 21 int g_iSpeed = 5;
nobuki 0:5ec5448dc8c5 22 double g_dInterval = 0.5 + (g_iSpeed - 1) * (0.01 - 0.5) / (9 - 1);
nobuki 0:5ec5448dc8c5 23 bool g_bHighLow = false;
nobuki 0:5ec5448dc8c5 24
nobuki 0:5ec5448dc8c5 25 int main(void)
nobuki 0:5ec5448dc8c5 26 {
nobuki 0:5ec5448dc8c5 27 // EthernetNetIf setup
nobuki 0:5ec5448dc8c5 28 if( ethif.setup() )
nobuki 0:5ec5448dc8c5 29 {
nobuki 0:5ec5448dc8c5 30 return 1;
nobuki 0:5ec5448dc8c5 31 }
nobuki 0:5ec5448dc8c5 32
nobuki 0:5ec5448dc8c5 33 // Set web root path handler
nobuki 0:5ec5448dc8c5 34 server.addHandler<PostHandler>("/");
nobuki 0:5ec5448dc8c5 35
nobuki 0:5ec5448dc8c5 36 // Set http port
nobuki 0:5ec5448dc8c5 37 server.bind(80);
nobuki 0:5ec5448dc8c5 38
nobuki 0:5ec5448dc8c5 39
nobuki 0:5ec5448dc8c5 40 Timer tmAliveCheck;
nobuki 0:5ec5448dc8c5 41 Timer tmLed;
nobuki 0:5ec5448dc8c5 42 tmAliveCheck.start();
nobuki 0:5ec5448dc8c5 43 tmLed.start();
nobuki 0:5ec5448dc8c5 44
nobuki 0:5ec5448dc8c5 45 while(1)
nobuki 0:5ec5448dc8c5 46 {
nobuki 0:5ec5448dc8c5 47 Net::poll();
nobuki 0:5ec5448dc8c5 48 if( 1.0 < tmAliveCheck.read() )
nobuki 0:5ec5448dc8c5 49 {
nobuki 0:5ec5448dc8c5 50 ledAliveCheck = !ledAliveCheck; // high->low, low->high
nobuki 0:5ec5448dc8c5 51 tmAliveCheck.start();
nobuki 0:5ec5448dc8c5 52 }
nobuki 0:5ec5448dc8c5 53 if( g_dInterval < tmLed.read() )
nobuki 0:5ec5448dc8c5 54 {
nobuki 0:5ec5448dc8c5 55 g_bHighLow = !g_bHighLow;
nobuki 0:5ec5448dc8c5 56 if( g_bLed1 ){ led1 = g_bHighLow; } else { led1 = false; }
nobuki 0:5ec5448dc8c5 57 if( g_bLed2 ){ led2 = g_bHighLow; } else { led2 = false; }
nobuki 0:5ec5448dc8c5 58 if( g_bLed3 ){ led3 = g_bHighLow; } else { led3 = false; }
nobuki 0:5ec5448dc8c5 59 tmLed.start();
nobuki 0:5ec5448dc8c5 60 }
nobuki 0:5ec5448dc8c5 61 }
nobuki 0:5ec5448dc8c5 62 }