test for RPC Function connect Eathernet and type URL following: http://mbedIP/rpc/led2/write 1 http://mbedIP/rpc/LedWink/run
Dependencies: EthernetNetIf mbed HTTPServer
main.cpp@0:10339dff440b, 2011-06-08 (annotated)
- Committer:
- mitsu6488
- Date:
- Wed Jun 08 14:00:37 2011 +0000
- Revision:
- 0:10339dff440b
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
mitsu6488 | 0:10339dff440b | 1 | #include "mbed.h" |
mitsu6488 | 0:10339dff440b | 2 | #include "EthernetNetIf.h" |
mitsu6488 | 0:10339dff440b | 3 | #include "HTTPServer.h" |
mitsu6488 | 0:10339dff440b | 4 | #include "HTTPClient.h" |
mitsu6488 | 0:10339dff440b | 5 | #include "RPCFunction.h" |
mitsu6488 | 0:10339dff440b | 6 | |
mitsu6488 | 0:10339dff440b | 7 | DigitalOut led1(LED1,"led1"); |
mitsu6488 | 0:10339dff440b | 8 | DigitalOut led2(LED2,"led2"); |
mitsu6488 | 0:10339dff440b | 9 | DigitalOut led3(LED3,"led3"); |
mitsu6488 | 0:10339dff440b | 10 | DigitalOut led4(LED4,"led4"); |
mitsu6488 | 0:10339dff440b | 11 | |
mitsu6488 | 0:10339dff440b | 12 | |
mitsu6488 | 0:10339dff440b | 13 | #if 1 |
mitsu6488 | 0:10339dff440b | 14 | /* |
mitsu6488 | 0:10339dff440b | 15 | * Use DHCP |
mitsu6488 | 0:10339dff440b | 16 | */ |
mitsu6488 | 0:10339dff440b | 17 | EthernetNetIf ethif; |
mitsu6488 | 0:10339dff440b | 18 | #else |
mitsu6488 | 0:10339dff440b | 19 | /* |
mitsu6488 | 0:10339dff440b | 20 | * Use "static IP address" (Parameters:IP, Subnet mask, Gateway, DNS) |
mitsu6488 | 0:10339dff440b | 21 | */ |
mitsu6488 | 0:10339dff440b | 22 | EthernetNetIf ethif(IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx)); |
mitsu6488 | 0:10339dff440b | 23 | #endif |
mitsu6488 | 0:10339dff440b | 24 | |
mitsu6488 | 0:10339dff440b | 25 | HTTPServer server; |
mitsu6488 | 0:10339dff440b | 26 | LocalFileSystem local("local"); |
mitsu6488 | 0:10339dff440b | 27 | |
mitsu6488 | 0:10339dff440b | 28 | void LedWink(char *input,char *output); |
mitsu6488 | 0:10339dff440b | 29 | RPCFunction rpcFunc(&LedWink, "LedWink"); |
mitsu6488 | 0:10339dff440b | 30 | |
mitsu6488 | 0:10339dff440b | 31 | |
mitsu6488 | 0:10339dff440b | 32 | int main(void) { |
mitsu6488 | 0:10339dff440b | 33 | |
mitsu6488 | 0:10339dff440b | 34 | Base::add_rpc_class<DigitalOut>(); |
mitsu6488 | 0:10339dff440b | 35 | |
mitsu6488 | 0:10339dff440b | 36 | if (ethif.setup()) { |
mitsu6488 | 0:10339dff440b | 37 | error("Ethernet setup failed."); |
mitsu6488 | 0:10339dff440b | 38 | return 1; |
mitsu6488 | 0:10339dff440b | 39 | } |
mitsu6488 | 0:10339dff440b | 40 | IpAddr ethIp=ethif.getIp(); |
mitsu6488 | 0:10339dff440b | 41 | |
mitsu6488 | 0:10339dff440b | 42 | led1=1; //confirm Eathernet working |
mitsu6488 | 0:10339dff440b | 43 | server.addHandler<RPCHandler>("/rpc"); |
mitsu6488 | 0:10339dff440b | 44 | FSHandler::mount("/local", "/"); |
mitsu6488 | 0:10339dff440b | 45 | server.addHandler<FSHandler>("/"); |
mitsu6488 | 0:10339dff440b | 46 | server.bind(80); |
mitsu6488 | 0:10339dff440b | 47 | |
mitsu6488 | 0:10339dff440b | 48 | while (1) { |
mitsu6488 | 0:10339dff440b | 49 | Net::poll(); |
mitsu6488 | 0:10339dff440b | 50 | } |
mitsu6488 | 0:10339dff440b | 51 | return 0; |
mitsu6488 | 0:10339dff440b | 52 | } |
mitsu6488 | 0:10339dff440b | 53 | |
mitsu6488 | 0:10339dff440b | 54 | void LedWink(char *input, char *output){ |
mitsu6488 | 0:10339dff440b | 55 | int i; |
mitsu6488 | 0:10339dff440b | 56 | for(i=0;i<8;i++){ |
mitsu6488 | 0:10339dff440b | 57 | led4=!led4; |
mitsu6488 | 0:10339dff440b | 58 | wait(0.2); |
mitsu6488 | 0:10339dff440b | 59 | } |
mitsu6488 | 0:10339dff440b | 60 | return; |
mitsu6488 | 0:10339dff440b | 61 | } |