Simple RPC Test

Dependencies:   EthernetNetIf HTTPServer mbed

Fork of rpc_http_test by zeeshan anjum

Committer:
zeeshan0123
Date:
Sat Jun 06 08:28:43 2015 +0000
Revision:
0:d020b026a3f5
Child:
1:87cb8d495954
rpc_over_http

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zeeshan0123 0:d020b026a3f5 1 #include "mbed.h"
zeeshan0123 0:d020b026a3f5 2 #include "EthernetNetIf.h"
zeeshan0123 0:d020b026a3f5 3 #include "HTTPServer.h"
zeeshan0123 0:d020b026a3f5 4
zeeshan0123 0:d020b026a3f5 5 DigitalOut led1(LED1, "led1");
zeeshan0123 0:d020b026a3f5 6 DigitalOut led2(LED2, "led2");
zeeshan0123 0:d020b026a3f5 7 DigitalOut led3(LED3, "led3");
zeeshan0123 0:d020b026a3f5 8 PwmOut zoom(LED4, "zoomo");
zeeshan0123 0:d020b026a3f5 9 AnalogIn temperature(p20, "tempo");
zeeshan0123 0:d020b026a3f5 10
zeeshan0123 0:d020b026a3f5 11 LocalFileSystem fs("webfs");
zeeshan0123 0:d020b026a3f5 12
zeeshan0123 0:d020b026a3f5 13 EthernetNetIf eth;
zeeshan0123 0:d020b026a3f5 14 HTTPServer svr;
zeeshan0123 0:d020b026a3f5 15
zeeshan0123 0:d020b026a3f5 16 int main() {
zeeshan0123 0:d020b026a3f5 17 Base::add_rpc_class<AnalogIn>();
zeeshan0123 0:d020b026a3f5 18 Base::add_rpc_class<AnalogOut>();
zeeshan0123 0:d020b026a3f5 19 Base::add_rpc_class<DigitalIn>();
zeeshan0123 0:d020b026a3f5 20 Base::add_rpc_class<DigitalOut>();
zeeshan0123 0:d020b026a3f5 21 Base::add_rpc_class<PwmOut>();
zeeshan0123 0:d020b026a3f5 22 Base::add_rpc_class<Timer>();
zeeshan0123 0:d020b026a3f5 23 Base::add_rpc_class<BusOut>();
zeeshan0123 0:d020b026a3f5 24 Base::add_rpc_class<BusIn>();
zeeshan0123 0:d020b026a3f5 25
zeeshan0123 0:d020b026a3f5 26 printf("Setting up...\n");
zeeshan0123 0:d020b026a3f5 27 EthernetErr ethErr = eth.setup();
zeeshan0123 0:d020b026a3f5 28 if(ethErr)
zeeshan0123 0:d020b026a3f5 29 {
zeeshan0123 0:d020b026a3f5 30 printf("Error %d in setup.\n", ethErr);
zeeshan0123 0:d020b026a3f5 31 return -1;
zeeshan0123 0:d020b026a3f5 32 }
zeeshan0123 0:d020b026a3f5 33 printf("Setup OK\n");
zeeshan0123 0:d020b026a3f5 34
zeeshan0123 0:d020b026a3f5 35 FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
zeeshan0123 0:d020b026a3f5 36 FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
zeeshan0123 0:d020b026a3f5 37
zeeshan0123 0:d020b026a3f5 38 svr.addHandler<SimpleHandler>("/hello");
zeeshan0123 0:d020b026a3f5 39 svr.addHandler<RPCHandler>("/rpc");
zeeshan0123 0:d020b026a3f5 40 svr.addHandler<FSHandler>("/files");
zeeshan0123 0:d020b026a3f5 41 svr.addHandler<FSHandler>("/"); //Default handler
zeeshan0123 0:d020b026a3f5 42 //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
zeeshan0123 0:d020b026a3f5 43
zeeshan0123 0:d020b026a3f5 44 svr.bind(80);
zeeshan0123 0:d020b026a3f5 45
zeeshan0123 0:d020b026a3f5 46 printf("Listening...\n");
zeeshan0123 0:d020b026a3f5 47
zeeshan0123 0:d020b026a3f5 48 Timer tm;
zeeshan0123 0:d020b026a3f5 49 tm.start();
zeeshan0123 0:d020b026a3f5 50 //Listen indefinitely
zeeshan0123 0:d020b026a3f5 51 while(true)
zeeshan0123 0:d020b026a3f5 52 {
zeeshan0123 0:d020b026a3f5 53 Net::poll();
zeeshan0123 0:d020b026a3f5 54 if(tm.read()>.5)
zeeshan0123 0:d020b026a3f5 55 {
zeeshan0123 0:d020b026a3f5 56 led1=!led1; //Show that we are alive
zeeshan0123 0:d020b026a3f5 57 tm.start();
zeeshan0123 0:d020b026a3f5 58 }
zeeshan0123 0:d020b026a3f5 59 }
zeeshan0123 0:d020b026a3f5 60
zeeshan0123 0:d020b026a3f5 61 return 0;
zeeshan0123 0:d020b026a3f5 62
zeeshan0123 0:d020b026a3f5 63 }