A demonstration program for R/C servo I/F board. ( http://mbed.org/users/shintamainjp/notebook/starboard-orange_rcservo-ifbrd_en/ )

Dependencies:   mbed TextLCD_SR4 NetServicesSource

Committer:
shintamainjp
Date:
Tue Oct 26 14:41:57 2010 +0000
Revision:
0:55733c65ccca
First version.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shintamainjp 0:55733c65ccca 1
shintamainjp 0:55733c65ccca 2 #include "mbed.h"
shintamainjp 0:55733c65ccca 3 #include "EthernetNetIf.h"
shintamainjp 0:55733c65ccca 4 #include "HTTPServer.h"
shintamainjp 0:55733c65ccca 5 #include "TextLCD_SR4.h"
shintamainjp 0:55733c65ccca 6
shintamainjp 0:55733c65ccca 7 LocalFileSystem fs_local("local");
shintamainjp 0:55733c65ccca 8 TextLCD_SR4 lcd(p29, p30, p28, p27);
shintamainjp 0:55733c65ccca 9 EthernetNetIf eth;
shintamainjp 0:55733c65ccca 10 HTTPServer svr;
shintamainjp 0:55733c65ccca 11
shintamainjp 0:55733c65ccca 12 int main() {
shintamainjp 0:55733c65ccca 13 Base::add_rpc_class<AnalogIn>();
shintamainjp 0:55733c65ccca 14 Base::add_rpc_class<AnalogOut>();
shintamainjp 0:55733c65ccca 15 Base::add_rpc_class<DigitalIn>();
shintamainjp 0:55733c65ccca 16 Base::add_rpc_class<DigitalOut>();
shintamainjp 0:55733c65ccca 17 Base::add_rpc_class<DigitalInOut>();
shintamainjp 0:55733c65ccca 18 Base::add_rpc_class<PwmOut>();
shintamainjp 0:55733c65ccca 19 Base::add_rpc_class<Timer>();
shintamainjp 0:55733c65ccca 20 Base::add_rpc_class<BusOut>();
shintamainjp 0:55733c65ccca 21 Base::add_rpc_class<BusIn>();
shintamainjp 0:55733c65ccca 22 Base::add_rpc_class<BusInOut>();
shintamainjp 0:55733c65ccca 23 Base::add_rpc_class<Serial>();
shintamainjp 0:55733c65ccca 24
shintamainjp 0:55733c65ccca 25 lcd.cls();
shintamainjp 0:55733c65ccca 26 lcd.printf("Setting up...");
shintamainjp 0:55733c65ccca 27 EthernetErr ethErr = eth.setup();
shintamainjp 0:55733c65ccca 28 if (ethErr) {
shintamainjp 0:55733c65ccca 29 lcd.cls();
shintamainjp 0:55733c65ccca 30 lcd.printf("Error (%d)", ethErr);
shintamainjp 0:55733c65ccca 31 error("Error %d in setup.\n", ethErr);
shintamainjp 0:55733c65ccca 32 return -1;
shintamainjp 0:55733c65ccca 33 } else {
shintamainjp 0:55733c65ccca 34 IpAddr addr = eth.getIp();
shintamainjp 0:55733c65ccca 35 lcd.cls();
shintamainjp 0:55733c65ccca 36 lcd.printf("Network address");
shintamainjp 0:55733c65ccca 37 lcd.locate(0, 1);
shintamainjp 0:55733c65ccca 38 lcd.printf("%3d.%3d.%3d.%3d", addr[0], addr[1], addr[2], addr[3]);
shintamainjp 0:55733c65ccca 39 }
shintamainjp 0:55733c65ccca 40
shintamainjp 0:55733c65ccca 41 FSHandler::mount("/local", "/"); //Mount /local path on web root path
shintamainjp 0:55733c65ccca 42 svr.addHandler<FSHandler>("/"); //Default handler
shintamainjp 0:55733c65ccca 43 svr.addHandler<RPCHandler>("/rpc");
shintamainjp 0:55733c65ccca 44 svr.bind(80);
shintamainjp 0:55733c65ccca 45
shintamainjp 0:55733c65ccca 46 while (true) {
shintamainjp 0:55733c65ccca 47 Net::poll();
shintamainjp 0:55733c65ccca 48 wait_ms(1);
shintamainjp 0:55733c65ccca 49 }
shintamainjp 0:55733c65ccca 50
shintamainjp 0:55733c65ccca 51 return 0;
shintamainjp 0:55733c65ccca 52 }