Embedded web server

Dependencies:   EthernetNetIf HTTPServer SDFileSystem mbed

Fork of webserver by Nobuki HIRAMINE

This web server serves pages from an SD card and supports RPC calls for the PWM and GPIO

Committer:
ajoliver
Date:
Sun Feb 17 19:27:05 2013 +0000
Revision:
2:1b0698a65c62
Parent:
1:73dceccbf2d8
Child:
3:15cd22045f66
pwm at 1 to 1 m2s and 10ms period

Who changed what in which revision?

UserRevisionLine numberNew 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 2:1b0698a65c62 14 PwmOut pwm4(LED4); // messing about with the pwm
ajoliver 2:1b0698a65c62 15 PwmOut pwm3(LED3);
ajoliver 1:73dceccbf2d8 16
nobuki 0:275cd7ae0902 17 int main(void)
nobuki 0:275cd7ae0902 18 {
ajoliver 2:1b0698a65c62 19 pwm4.period_ms(10.0f);
ajoliver 2:1b0698a65c62 20
ajoliver 2:1b0698a65c62 21 pwm4 = 0.5f;
ajoliver 2:1b0698a65c62 22 // pwm3 = 0.01f;
ajoliver 1:73dceccbf2d8 23
nobuki 0:275cd7ae0902 24 // EthernetNetIf setup
ajoliver 1:73dceccbf2d8 25 if( ethif.setup() ) {
nobuki 0:275cd7ae0902 26 return 1;
nobuki 0:275cd7ae0902 27 }
nobuki 0:275cd7ae0902 28
nobuki 0:275cd7ae0902 29 // Mount local file path on web root path
ajoliver 1:73dceccbf2d8 30 FSHandler::mount("/sd", "/");
nobuki 0:275cd7ae0902 31 // Set web root path handler
nobuki 0:275cd7ae0902 32 server.addHandler<FSHandler>("/");
ajoliver 1:73dceccbf2d8 33 server.addHandler<RPCHandler>("/rpc");
ajoliver 1:73dceccbf2d8 34
nobuki 0:275cd7ae0902 35 // Set http port
nobuki 0:275cd7ae0902 36 server.bind(80);
nobuki 0:275cd7ae0902 37
nobuki 0:275cd7ae0902 38 Timer tm;
nobuki 0:275cd7ae0902 39 tm.start();
ajoliver 1:73dceccbf2d8 40 while(1) {
nobuki 0:275cd7ae0902 41 Net::poll();
ajoliver 1:73dceccbf2d8 42 if( 1.0 < tm.read() ) {
nobuki 0:275cd7ae0902 43 led1 = !led1; // high->low, low->high
nobuki 0:275cd7ae0902 44 tm.start();
nobuki 0:275cd7ae0902 45 }
nobuki 0:275cd7ae0902 46 }
nobuki 0:275cd7ae0902 47 }