Handle HTTP Post Method

Dependencies:   EthernetNetIf HTTPServer mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "EthernetNetIf.h"
00003 #include "HTTPServer.h"
00004 
00005 #include "PostHandler.h"
00006 
00007 EthernetNetIf ethif( IpAddr(192,168,1,102), // IP
00008                      IpAddr(255,255,255,0), // Subnet mask
00009                      IpAddr(192,168,1,1),   // Gateway
00010                      IpAddr(192,168,1,1) ); // DNS
00011 HTTPServer server;
00012 DigitalOut ledAliveCheck(LED1);  // for alive check
00013 
00014 DigitalOut led1(p21);
00015 DigitalOut led2(p22);
00016 DigitalOut led3(p23);
00017 
00018 bool g_bLed1 = false;
00019 bool g_bLed2 = false;
00020 bool g_bLed3 = false;
00021 int g_iSpeed = 5;
00022 double g_dInterval = 0.5 + (g_iSpeed - 1) * (0.01 - 0.5) / (9 - 1);
00023 bool g_bHighLow = false;
00024 
00025 int main(void)
00026 {
00027     // EthernetNetIf setup
00028     if( ethif.setup() )
00029     {
00030         return 1;
00031     }
00032 
00033     // Set web root path handler
00034     server.addHandler<PostHandler>("/");
00035     
00036     // Set http port
00037     server.bind(80);
00038     
00039 
00040     Timer tmAliveCheck;
00041     Timer tmLed;
00042     tmAliveCheck.start();
00043     tmLed.start();
00044     
00045     while(1)
00046     {
00047         Net::poll();
00048         if( 1.0 < tmAliveCheck.read() )
00049         {
00050             ledAliveCheck = !ledAliveCheck;   // high->low, low->high
00051             tmAliveCheck.start();
00052         }
00053         if( g_dInterval < tmLed.read() )
00054         {
00055             g_bHighLow = !g_bHighLow;
00056             if( g_bLed1 ){ led1 = g_bHighLow; } else { led1 = false; }
00057             if( g_bLed2 ){ led2 = g_bHighLow; } else { led2 = false; }
00058             if( g_bLed3 ){ led3 = g_bHighLow; } else { led3 = false; }
00059             tmLed.start();
00060         }
00061     }
00062 }