Handle HTTP Post Method
Dependencies: EthernetNetIf HTTPServer mbed
main.cpp@0:5ec5448dc8c5, 2012-12-01 (annotated)
- Committer:
- nobuki
- Date:
- Sat Dec 01 15:10:39 2012 +0000
- Revision:
- 0:5ec5448dc8c5
Version 1
Who changed what in which revision?
User | Revision | Line number | New 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 | } |