Ergänzt das jQueryMobile Beispiel um die Fehlenden Aktoren wie LED 3 und Servo 2.

Fork of RPCHTTPServerVariable by smd.iotkit2.ch

main.cpp

Committer:
marcel1691
Date:
2015-03-24
Revision:
12:fc0fe305d4d3
Parent:
11:4f5efa32051c
Child:
14:3835863bc412

File content as of revision 12:fc0fe305d4d3:

/** HTTP RPC Server mit vordefinierten Objekten
*/
#include "mbed.h"
#include "rtos.h"
#include "EthernetInterface.h"
#include "HTTPServer.h"
#include "mbed_rpc.h"
#include "Servo.h"

EthernetInterface eth;

// Servo + aktuelle Werte
Servo servo1 ( D9 );
Servo servo2 ( D10 );
float val1, val2;
Ticker servos;

// Update Servo Werte
void updateServo()
{
    servo1 = val1;
    servo2 = val2;
}

int main()
{
    printf("RPC HTTP Server\n");
    eth.init(); //Use DHCP
    eth.connect();
    printf("IP Address is %s\n\r", eth.getIPAddress());
    
    servos.attach( &updateServo, 1.0 );
        
    // Klassen
    RPC::add_rpc_class<RpcDigitalOut>();
    RPC::add_rpc_class<RpcDigitalIn>();
    //RPC::add_rpc_class<RpcAnalogIn>(); // bringt Link Fehler     
    RPC::add_rpc_class<RpcPwmOut>();    
    
    // Objekte
    RPC::construct<RpcDigitalOut, PinName, const char*>(D11, "led1");
    RPC::construct<RpcDigitalOut, PinName, const char*>(D12, "led2");
    RPC::construct<RpcPwmOut, PinName, const char*>(D13, "led3");
    RPC::construct<RpcDigitalIn, PinName, const char*>(A1, "b1");
    //RPC::construct<RpcAnalogIn, PinName, const char*>(A0, "light");
    RPCVariable<float> rpcVal1( &val1, "servo1" );
    RPCVariable<float> rpcVal2( &val2, "servo2" );

    // Handler
    HTTPServerAddHandler<RPCHandler>("/rpc");
    
    // Start HTTP Server auf Port 80
    printf( "Starte Server\n" );
    HTTPServerStart(80);
}