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:
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?

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