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

Committer:
mitsu6488
Date:
2011-06-08
Revision:
0:10339dff440b

File content as of revision 0:10339dff440b:

#include "mbed.h"
#include "EthernetNetIf.h"
#include "HTTPServer.h"
#include "HTTPClient.h"
#include "RPCFunction.h" 

DigitalOut led1(LED1,"led1");
DigitalOut led2(LED2,"led2");
DigitalOut led3(LED3,"led3");
DigitalOut led4(LED4,"led4");


#if 1
/*
 * Use DHCP
 */
        EthernetNetIf ethif;
#else
/*
 * Use "static IP address" (Parameters:IP, Subnet mask, Gateway, DNS)
 */
        EthernetNetIf ethif(IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx), IpAddr(xxx,xxx,xxx,xxx));
#endif
    
    HTTPServer server;
    LocalFileSystem local("local");

    void LedWink(char *input,char *output);
    RPCFunction rpcFunc(&LedWink, "LedWink");


int main(void) {

    Base::add_rpc_class<DigitalOut>();

    if (ethif.setup()) {
        error("Ethernet setup failed.");
        return 1;
    }
    IpAddr ethIp=ethif.getIp();
    
    led1=1; //confirm Eathernet working
    server.addHandler<RPCHandler>("/rpc");
    FSHandler::mount("/local", "/");
    server.addHandler<FSHandler>("/");
    server.bind(80);
    
    while (1) {
        Net::poll();
    }
    return 0;
}

void LedWink(char *input, char *output){
    int i;
    for(i=0;i<8;i++){
        led4=!led4;
        wait(0.2);
    }
    return;   
}