Handle HTTP Post Method
Dependencies: EthernetNetIf HTTPServer mbed
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 }
Generated on Thu Jul 14 2022 01:16:29 by 1.7.2