8.1 Kombiniert das Übung 6.1 Licht bei Dämmerung einschalten mit RPC Variable um die Sensordaten via Client abzufragen.

Dependencies:   EthernetInterface HttpServer mbed-rpc mbed-rtos mbed

Fork of RPCHTTPServerVariable by th.iotkit2.ch

Committer:
stefan1691
Date:
Wed Mar 11 19:11:18 2015 +0000
Revision:
11:4f5efa32051c
Parent:
10:f92d1e679fea
Child:
12:9281320e8687
Erweiterte Variante mit RCPVariable und Servo

Who changed what in which revision?

UserRevisionLine numberNew contents of line
stefan1691 9:66ff9ae5572e 1 /** Minimalistischer RCP HTTP Server
stefan1691 9:66ff9ae5572e 2 */
yueee_yt 0:050a5d4ffd55 3 #include "mbed.h"
yueee_yt 0:050a5d4ffd55 4 #include "rtos.h"
yueee_yt 0:050a5d4ffd55 5 #include "EthernetInterface.h"
yueee_yt 0:050a5d4ffd55 6 #include "HTTPServer.h"
yueee_yt 3:5758cfefe980 7 #include "mbed_rpc.h"
stefan1691 11:4f5efa32051c 8 #include "Servo.h"
yueee_yt 5:bfa9878aa274 9
yueee_yt 0:050a5d4ffd55 10 EthernetInterface eth;
yueee_yt 3:5758cfefe980 11
stefan1691 11:4f5efa32051c 12 // Servo + aktuelle Werte
stefan1691 11:4f5efa32051c 13 Servo servo1 ( A4 );
stefan1691 11:4f5efa32051c 14 Servo servo2 ( A5 );
stefan1691 11:4f5efa32051c 15 float val1, val2;
stefan1691 11:4f5efa32051c 16 Ticker servos;
stefan1691 11:4f5efa32051c 17
stefan1691 11:4f5efa32051c 18 // Update Servo Werte
stefan1691 11:4f5efa32051c 19 void updateServo()
stefan1691 11:4f5efa32051c 20 {
stefan1691 11:4f5efa32051c 21 servo1 = val1;
stefan1691 11:4f5efa32051c 22 servo2 = val2;
stefan1691 11:4f5efa32051c 23 }
stefan1691 11:4f5efa32051c 24
yueee_yt 0:050a5d4ffd55 25 int main()
yueee_yt 0:050a5d4ffd55 26 {
stefan1691 9:66ff9ae5572e 27 printf("RPC HTTP Server\n");
stefan1691 9:66ff9ae5572e 28 eth.init(); //Use DHCP
stefan1691 9:66ff9ae5572e 29 eth.connect();
stefan1691 9:66ff9ae5572e 30 printf("IP Address is %s\n\r", eth.getIPAddress());
stefan1691 11:4f5efa32051c 31
stefan1691 11:4f5efa32051c 32 servos.attach( &updateServo, 1.0 );
stefan1691 9:66ff9ae5572e 33
stefan1691 9:66ff9ae5572e 34 // Klassen
yueee_yt 3:5758cfefe980 35 RPC::add_rpc_class<RpcDigitalOut>();
stefan1691 10:f92d1e679fea 36 RPC::add_rpc_class<RpcDigitalIn>();
stefan1691 10:f92d1e679fea 37 //RPC::add_rpc_class<RpcAnalogIn>(); // bringt Link Fehler
stefan1691 10:f92d1e679fea 38 RPC::add_rpc_class<RpcPwmOut>();
marcel1691 7:8a319a112fba 39
stefan1691 9:66ff9ae5572e 40 // Objekte
stefan1691 9:66ff9ae5572e 41 RPC::construct<RpcDigitalOut, PinName, const char*>(D10, "led1");
stefan1691 9:66ff9ae5572e 42 RPC::construct<RpcDigitalOut, PinName, const char*>(D11, "led2");
stefan1691 10:f92d1e679fea 43 RPC::construct<RpcPwmOut, PinName, const char*>(D12, "led3");
stefan1691 10:f92d1e679fea 44 RPC::construct<RpcDigitalIn, PinName, const char*>(PTC9, "b1");
stefan1691 10:f92d1e679fea 45 //RPC::construct<RpcAnalogIn, PinName, const char*>(A0, "light");
stefan1691 11:4f5efa32051c 46 RPCVariable<float> rpcVal1( &val1, "servo1" );
stefan1691 11:4f5efa32051c 47 RPCVariable<float> rpcVal2( &val2, "servo2" );
yueee_yt 3:5758cfefe980 48
stefan1691 9:66ff9ae5572e 49 // Handler
yueee_yt 3:5758cfefe980 50 HTTPServerAddHandler<RPCHandler>("/rpc");
stefan1691 9:66ff9ae5572e 51
stefan1691 9:66ff9ae5572e 52 // Start HTTP Server auf Port 80
stefan1691 9:66ff9ae5572e 53 printf( "Starte Server\n" );
yueee_yt 0:050a5d4ffd55 54 HTTPServerStart(80);
yueee_yt 0:050a5d4ffd55 55 }
yueee_yt 0:050a5d4ffd55 56