Embedded web server
Dependencies: EthernetNetIf HTTPServer SDFileSystem mbed
Fork of webserver by
This web server serves pages from an SD card and supports RPC calls for the PWM and GPIO
main.cpp@1:73dceccbf2d8, 2013-02-17 (annotated)
- Committer:
- ajoliver
- Date:
- Sun Feb 17 08:56:35 2013 +0000
- Revision:
- 1:73dceccbf2d8
- Parent:
- 0:275cd7ae0902
- Child:
- 2:1b0698a65c62
version 1.0
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
nobuki | 0:275cd7ae0902 | 1 | #include "mbed.h" |
ajoliver | 1:73dceccbf2d8 | 2 | #include "SDFileSystem.h" |
nobuki | 0:275cd7ae0902 | 3 | #include "EthernetNetIf.h" |
nobuki | 0:275cd7ae0902 | 4 | #include "HTTPServer.h" |
nobuki | 0:275cd7ae0902 | 5 | |
ajoliver | 1:73dceccbf2d8 | 6 | EthernetNetIf ethif( IpAddr(10,0,0,200), // IP |
nobuki | 0:275cd7ae0902 | 7 | IpAddr(255,255,255,0), // Subnet mask |
ajoliver | 1:73dceccbf2d8 | 8 | IpAddr(10,0,0,1), // Gateway |
ajoliver | 1:73dceccbf2d8 | 9 | IpAddr(8,8,8,8) ); // DNS |
nobuki | 0:275cd7ae0902 | 10 | HTTPServer server; |
ajoliver | 1:73dceccbf2d8 | 11 | SDFileSystem sd(p5, p6, p7, p8, "sd"); // Define local file mount point |
nobuki | 0:275cd7ae0902 | 12 | DigitalOut led1(LED1); // for alive check |
nobuki | 0:275cd7ae0902 | 13 | |
ajoliver | 1:73dceccbf2d8 | 14 | PwmOut pwm(LED4); // messing about with the pwm |
ajoliver | 1:73dceccbf2d8 | 15 | |
nobuki | 0:275cd7ae0902 | 16 | int main(void) |
nobuki | 0:275cd7ae0902 | 17 | { |
ajoliver | 1:73dceccbf2d8 | 18 | pwm = 0.5; |
ajoliver | 1:73dceccbf2d8 | 19 | |
nobuki | 0:275cd7ae0902 | 20 | // EthernetNetIf setup |
ajoliver | 1:73dceccbf2d8 | 21 | if( ethif.setup() ) { |
nobuki | 0:275cd7ae0902 | 22 | return 1; |
nobuki | 0:275cd7ae0902 | 23 | } |
nobuki | 0:275cd7ae0902 | 24 | |
nobuki | 0:275cd7ae0902 | 25 | // Mount local file path on web root path |
ajoliver | 1:73dceccbf2d8 | 26 | FSHandler::mount("/sd", "/"); |
nobuki | 0:275cd7ae0902 | 27 | // Set web root path handler |
nobuki | 0:275cd7ae0902 | 28 | server.addHandler<FSHandler>("/"); |
ajoliver | 1:73dceccbf2d8 | 29 | server.addHandler<RPCHandler>("/rpc"); |
ajoliver | 1:73dceccbf2d8 | 30 | |
nobuki | 0:275cd7ae0902 | 31 | // Set http port |
nobuki | 0:275cd7ae0902 | 32 | server.bind(80); |
nobuki | 0:275cd7ae0902 | 33 | |
nobuki | 0:275cd7ae0902 | 34 | Timer tm; |
nobuki | 0:275cd7ae0902 | 35 | tm.start(); |
ajoliver | 1:73dceccbf2d8 | 36 | while(1) { |
nobuki | 0:275cd7ae0902 | 37 | Net::poll(); |
ajoliver | 1:73dceccbf2d8 | 38 | if( 1.0 < tm.read() ) { |
nobuki | 0:275cd7ae0902 | 39 | led1 = !led1; // high->low, low->high |
nobuki | 0:275cd7ae0902 | 40 | tm.start(); |
nobuki | 0:275cd7ae0902 | 41 | } |
nobuki | 0:275cd7ae0902 | 42 | } |
nobuki | 0:275cd7ae0902 | 43 | } |