HTTP (RPC) Server mit UI

Dependencies:   EthernetInterface mbed-rpc mbed-rtos mbed

Fork of IoTKit_RPC-Server by th.iotkit.ch

HTTP (RPC) Server mit eigener UI Oberfläche.

Board mit dem Ethernet verbinden. Console starten und angezeigte IP-Adresse notieren und in Browser öffnen.

Create Object

Type: DigitalOut Name: led1 arg(optional): PTB22

und Create Button drücken.

Call a function

Command: /led1/write 1

eingeben und Send drücken. Das rote LED auf dem Board geht aus. Mittels /led1/write 0 wird es wieder eingeschaltet.

Für die komplette Dokumentation siehe /users/feb11/code/HTTP-Server/

main.cpp

Committer:
feb11
Date:
2013-07-17
Revision:
3:fb0a778f2480
Parent:
0:9e4bcb10b3e3
Child:
9:a9bf63017854

File content as of revision 3:fb0a778f2480:

#include "mbed.h"
#include "EthernetInterface.h"
#include "mbed_rpc.h"
#include "RPCCommand.h"
#include "HTTPServer.h"
#include "Formatter.h"
#include "RequestHandler.h"
#include "RPCType.h"

#define SERVER_PORT 80

HTTPServer create_simple_server()
{    
    HTTPServer srv;
    srv.add_request_handler("DELETE", new DeleteRequestHandler());
    srv.add_request_handler("GET", new GetRequestHandler());
    srv.add_request_handler("PUT", new PutRequestHandler());
    return srv;
}

HTTPServer create_interactive_server()
{
    HTTPServer srv(new InteractiveHTMLFormatter());
    srv.add_request_handler("GET", new ComplexRequestHandler());
    return srv;
}

int main(void)
{
    RPCType::instance().register_types();    

    EthernetInterface eth;
    eth.init();
    eth.connect();
    printf("IP Address is %s\n", eth.getIPAddress());
    
    HTTPServer srv = create_interactive_server();

    if(!srv.init(SERVER_PORT))
    {
        printf("Error while initializing the server\n");
        eth.disconnect();
        return -1;
    }

    srv.run();

    return 0;
}