My first attempt to play with the RPC commands and a Visual Basic 2008 program.
Dependencies: EthernetNetIf HTTPServer RPCInterface TextLCD mbed
Fork of RPC_HTTP by
HTTPServerExample.cpp@0:e30eeef17180, 2010-09-09 (annotated)
- Committer:
- MichaelW
- Date:
- Thu Sep 09 13:43:49 2010 +0000
- Revision:
- 0:e30eeef17180
- Child:
- 1:71b64a776133
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MichaelW | 0:e30eeef17180 | 1 | #include "mbed.h" |
MichaelW | 0:e30eeef17180 | 2 | #include "EthernetNetIf.h" |
MichaelW | 0:e30eeef17180 | 3 | #include "HTTPServer.h" |
MichaelW | 0:e30eeef17180 | 4 | |
MichaelW | 0:e30eeef17180 | 5 | DigitalOut led1(LED1, "led1"); |
MichaelW | 0:e30eeef17180 | 6 | DigitalOut led2(LED2, "led2"); |
MichaelW | 0:e30eeef17180 | 7 | DigitalOut led3(LED3, "led3"); |
MichaelW | 0:e30eeef17180 | 8 | DigitalOut led4(LED4, "led4"); |
MichaelW | 0:e30eeef17180 | 9 | |
MichaelW | 0:e30eeef17180 | 10 | LocalFileSystem fs("webfs"); |
MichaelW | 0:e30eeef17180 | 11 | |
MichaelW | 0:e30eeef17180 | 12 | EthernetNetIf eth; |
MichaelW | 0:e30eeef17180 | 13 | HTTPServer svr; |
MichaelW | 0:e30eeef17180 | 14 | |
MichaelW | 0:e30eeef17180 | 15 | int main() { |
MichaelW | 0:e30eeef17180 | 16 | Base::add_rpc_class<AnalogIn>(); |
MichaelW | 0:e30eeef17180 | 17 | Base::add_rpc_class<AnalogOut>(); |
MichaelW | 0:e30eeef17180 | 18 | Base::add_rpc_class<DigitalIn>(); |
MichaelW | 0:e30eeef17180 | 19 | Base::add_rpc_class<DigitalOut>(); |
MichaelW | 0:e30eeef17180 | 20 | Base::add_rpc_class<DigitalInOut>(); |
MichaelW | 0:e30eeef17180 | 21 | Base::add_rpc_class<PwmOut>(); |
MichaelW | 0:e30eeef17180 | 22 | Base::add_rpc_class<Timer>(); |
MichaelW | 0:e30eeef17180 | 23 | Base::add_rpc_class<BusOut>(); |
MichaelW | 0:e30eeef17180 | 24 | Base::add_rpc_class<BusIn>(); |
MichaelW | 0:e30eeef17180 | 25 | Base::add_rpc_class<BusInOut>(); |
MichaelW | 0:e30eeef17180 | 26 | Base::add_rpc_class<Serial>(); |
MichaelW | 0:e30eeef17180 | 27 | |
MichaelW | 0:e30eeef17180 | 28 | printf("Setting up...\n"); |
MichaelW | 0:e30eeef17180 | 29 | EthernetErr ethErr = eth.setup(); |
MichaelW | 0:e30eeef17180 | 30 | if(ethErr) |
MichaelW | 0:e30eeef17180 | 31 | { |
MichaelW | 0:e30eeef17180 | 32 | printf("Error %d in setup.\n", ethErr); |
MichaelW | 0:e30eeef17180 | 33 | return -1; |
MichaelW | 0:e30eeef17180 | 34 | } |
MichaelW | 0:e30eeef17180 | 35 | printf("Setup OK\n"); |
MichaelW | 0:e30eeef17180 | 36 | |
MichaelW | 0:e30eeef17180 | 37 | FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path |
MichaelW | 0:e30eeef17180 | 38 | FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path |
MichaelW | 0:e30eeef17180 | 39 | |
MichaelW | 0:e30eeef17180 | 40 | svr.addHandler<SimpleHandler>("/hello"); |
MichaelW | 0:e30eeef17180 | 41 | svr.addHandler<RPCHandler>("/rpc"); |
MichaelW | 0:e30eeef17180 | 42 | svr.addHandler<FSHandler>("/files"); |
MichaelW | 0:e30eeef17180 | 43 | svr.addHandler<FSHandler>("/"); //Default handler |
MichaelW | 0:e30eeef17180 | 44 | //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm |
MichaelW | 0:e30eeef17180 | 45 | |
MichaelW | 0:e30eeef17180 | 46 | svr.bind(80); |
MichaelW | 0:e30eeef17180 | 47 | |
MichaelW | 0:e30eeef17180 | 48 | printf("Listening...\n"); |
MichaelW | 0:e30eeef17180 | 49 | |
MichaelW | 0:e30eeef17180 | 50 | Timer tm; |
MichaelW | 0:e30eeef17180 | 51 | tm.start(); |
MichaelW | 0:e30eeef17180 | 52 | //Listen indefinitely |
MichaelW | 0:e30eeef17180 | 53 | while(true) |
MichaelW | 0:e30eeef17180 | 54 | { |
MichaelW | 0:e30eeef17180 | 55 | Net::poll(); |
MichaelW | 0:e30eeef17180 | 56 | if(tm.read()>.5) |
MichaelW | 0:e30eeef17180 | 57 | { |
MichaelW | 0:e30eeef17180 | 58 | led1=!led1; //Show that we are alive |
MichaelW | 0:e30eeef17180 | 59 | tm.start(); |
MichaelW | 0:e30eeef17180 | 60 | } |
MichaelW | 0:e30eeef17180 | 61 | } |
MichaelW | 0:e30eeef17180 | 62 | |
MichaelW | 0:e30eeef17180 | 63 | return 0; |
MichaelW | 0:e30eeef17180 | 64 | |
MichaelW | 0:e30eeef17180 | 65 | } |