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 08:56:35 2013 +0000
Revision:
1:73dceccbf2d8
Parent:
0:275cd7ae0902
Child:
2:1b0698a65c62
version 1.0

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 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 }