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@3:15cd22045f66, 2013-03-12 (annotated)
- Committer:
- ajoliver
- Date:
- Tue Mar 12 10:02:43 2013 +0000
- Revision:
- 3:15cd22045f66
- Parent:
- 2:1b0698a65c62
- Child:
- 4:c5b42552ba4a
Testing the RPC extension
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 | |
ajoliver | 3:15cd22045f66 | 13 | DigitalOut led1(LED1); // for alive check |
ajoliver | 3:15cd22045f66 | 14 | DigitalOut led2(LED2); |
ajoliver | 3:15cd22045f66 | 15 | DigitalOut led3(LED3); |
ajoliver | 3:15cd22045f66 | 16 | DigitalOut led4(LED4); |
ajoliver | 3:15cd22045f66 | 17 | |
ajoliver | 3:15cd22045f66 | 18 | // PwmOut pwm4(LED4); // messing about with the pwm |
ajoliver | 1:73dceccbf2d8 | 19 | |
nobuki | 0:275cd7ae0902 | 20 | int main(void) |
nobuki | 0:275cd7ae0902 | 21 | { |
ajoliver | 3:15cd22045f66 | 22 | Base::add_rpc_class<DigitalOut>(); |
ajoliver | 3:15cd22045f66 | 23 | // pwm4.period_ms(10.0f); |
ajoliver | 2:1b0698a65c62 | 24 | |
ajoliver | 3:15cd22045f66 | 25 | // pwm4 = 0.5f; |
ajoliver | 2:1b0698a65c62 | 26 | // pwm3 = 0.01f; |
ajoliver | 1:73dceccbf2d8 | 27 | |
nobuki | 0:275cd7ae0902 | 28 | // EthernetNetIf setup |
ajoliver | 1:73dceccbf2d8 | 29 | if( ethif.setup() ) { |
nobuki | 0:275cd7ae0902 | 30 | return 1; |
nobuki | 0:275cd7ae0902 | 31 | } |
nobuki | 0:275cd7ae0902 | 32 | |
nobuki | 0:275cd7ae0902 | 33 | // Mount local file path on web root path |
ajoliver | 1:73dceccbf2d8 | 34 | FSHandler::mount("/sd", "/"); |
nobuki | 0:275cd7ae0902 | 35 | // Set web root path handler |
nobuki | 0:275cd7ae0902 | 36 | server.addHandler<FSHandler>("/"); |
ajoliver | 1:73dceccbf2d8 | 37 | server.addHandler<RPCHandler>("/rpc"); |
ajoliver | 1:73dceccbf2d8 | 38 | |
nobuki | 0:275cd7ae0902 | 39 | // Set http port |
nobuki | 0:275cd7ae0902 | 40 | server.bind(80); |
nobuki | 0:275cd7ae0902 | 41 | |
nobuki | 0:275cd7ae0902 | 42 | Timer tm; |
nobuki | 0:275cd7ae0902 | 43 | tm.start(); |
ajoliver | 1:73dceccbf2d8 | 44 | while(1) { |
nobuki | 0:275cd7ae0902 | 45 | Net::poll(); |
ajoliver | 1:73dceccbf2d8 | 46 | if( 1.0 < tm.read() ) { |
nobuki | 0:275cd7ae0902 | 47 | led1 = !led1; // high->low, low->high |
nobuki | 0:275cd7ae0902 | 48 | tm.start(); |
nobuki | 0:275cd7ae0902 | 49 | } |
nobuki | 0:275cd7ae0902 | 50 | } |
nobuki | 0:275cd7ae0902 | 51 | } |