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 Fernando Machado

Committer:
harish_i
Date:
Fri Jan 24 05:04:59 2014 +0000
Revision:
5:d93d164e1a11
Parent:
4:bf7431934cf5
Ethernet controlled DAC0808

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MichaelW 1:71b64a776133 1 #include "mbed.h"
MichaelW 1:71b64a776133 2 #include "EthernetNetIf.h"
MichaelW 1:71b64a776133 3 #include "HTTPServer.h"
fernandomachado 2:15c92a540ad2 4 #include "RPCVariable.h"
fernandomachado 2:15c92a540ad2 5 #include "RPCFunction.h"
MichaelW 1:71b64a776133 6
harish_i 5:d93d164e1a11 7 BusOut dac(p21,p22,p23,p24,p25,p26,p27,p28);
fernandomachado 4:bf7431934cf5 8 //Create the variables
harish_i 5:d93d164e1a11 9 int i=10;
harish_i 5:d93d164e1a11 10 RPCVariable<int> rpc_i(&i, "i");
harish_i 5:d93d164e1a11 11 //Define the LED´s
MichaelW 1:71b64a776133 12 DigitalOut led1(LED1, "led1");
MichaelW 1:71b64a776133 13 DigitalOut led2(LED2, "led2");
MichaelW 1:71b64a776133 14 DigitalOut led3(LED3, "led3");
MichaelW 1:71b64a776133 15 LocalFileSystem fs("webfs");
MichaelW 1:71b64a776133 16
harish_i 5:d93d164e1a11 17 EthernetNetIf eth(IpAddr(192,168,1,20),IpAddr(255,255,255,0),IpAddr(192,168,1,1),IpAddr(192,168,1,1));
MichaelW 1:71b64a776133 18 HTTPServer svr;
MichaelW 1:71b64a776133 19
fernandomachado 2:15c92a540ad2 20 int main()
fernandomachado 2:15c92a540ad2 21 {
MichaelW 1:71b64a776133 22 Base::add_rpc_class<AnalogIn>();
MichaelW 1:71b64a776133 23 Base::add_rpc_class<AnalogOut>();
MichaelW 1:71b64a776133 24 Base::add_rpc_class<DigitalIn>();
MichaelW 1:71b64a776133 25 Base::add_rpc_class<DigitalOut>();
MichaelW 1:71b64a776133 26 Base::add_rpc_class<DigitalInOut>();
MichaelW 1:71b64a776133 27 Base::add_rpc_class<PwmOut>();
MichaelW 1:71b64a776133 28 Base::add_rpc_class<Timer>();
MichaelW 1:71b64a776133 29 Base::add_rpc_class<BusOut>();
MichaelW 1:71b64a776133 30 Base::add_rpc_class<BusIn>();
MichaelW 1:71b64a776133 31 Base::add_rpc_class<BusInOut>();
MichaelW 1:71b64a776133 32 Base::add_rpc_class<Serial>();
MichaelW 1:71b64a776133 33
fernandomachado 2:15c92a540ad2 34
fernandomachado 2:15c92a540ad2 35 printf("Setting up...\n\r");
fernandomachado 2:15c92a540ad2 36 EthernetErr ethErr = eth.setup();
fernandomachado 2:15c92a540ad2 37 if(ethErr) {
fernandomachado 2:15c92a540ad2 38 printf("Error %d in setup.\n\r", ethErr);
fernandomachado 2:15c92a540ad2 39 return -1;
MichaelW 1:71b64a776133 40 }
fernandomachado 2:15c92a540ad2 41 printf("Setup OK\n\r");
fernandomachado 2:15c92a540ad2 42
fernandomachado 2:15c92a540ad2 43 FSHandler::mount("/webfs", "/files"); //Mount /webfs path on /files web path
fernandomachado 2:15c92a540ad2 44 FSHandler::mount("/webfs", "/"); //Mount /webfs path on web root path
fernandomachado 2:15c92a540ad2 45
fernandomachado 2:15c92a540ad2 46 svr.addHandler<SimpleHandler>("/hello");
fernandomachado 2:15c92a540ad2 47 svr.addHandler<RPCHandler>("/rpc");
fernandomachado 2:15c92a540ad2 48 svr.addHandler<FSHandler>("/files");
fernandomachado 2:15c92a540ad2 49 svr.addHandler<FSHandler>("/"); //Default handler
fernandomachado 2:15c92a540ad2 50 //Example : Access to mbed.htm : http://a.b.c.d/mbed.htm or http://a.b.c.d/files/mbed.htm
fernandomachado 2:15c92a540ad2 51
fernandomachado 2:15c92a540ad2 52 svr.bind(80);
fernandomachado 2:15c92a540ad2 53
fernandomachado 2:15c92a540ad2 54 printf("Listening...\n\r");
MichaelW 1:71b64a776133 55
fernandomachado 2:15c92a540ad2 56 Timer tm;
fernandomachado 2:15c92a540ad2 57 tm.start();
fernandomachado 2:15c92a540ad2 58 //Listen indefinitely
fernandomachado 2:15c92a540ad2 59 while(true) {
fernandomachado 2:15c92a540ad2 60 Net::poll();
fernandomachado 2:15c92a540ad2 61 if(tm.read()>.1) {
harish_i 5:d93d164e1a11 62 led1=!led1; //Show that we are alive
fernandomachado 4:bf7431934cf5 63 printf("Working...\n\r");
harish_i 5:d93d164e1a11 64 dac = i;
fernandomachado 2:15c92a540ad2 65
harish_i 5:d93d164e1a11 66 printf("i=%d",i); //c = 'a';
harish_i 5:d93d164e1a11 67
fernandomachado 2:15c92a540ad2 68 tm.start();
fernandomachado 2:15c92a540ad2 69 }
fernandomachado 2:15c92a540ad2 70 }
MichaelW 1:71b64a776133 71 }