HTTP RPC Server mit vordefinierten Objekten
Dependencies: EthernetInterface HttpServer Servo mbed-rtos mbed
Fork of RPCHTTPServerVariable by
Mittels RPCVariable lassen sich lokale Variablen setzen. Diese Variablen können gesetzt write oder gelesen read werden.
Mittels Ticker u.ä. Varianten lassen sich damit auch Objektwerte setzen, welche von RPC nicht unterstützt werden, z.B. Servo's.
Client
Wert setzen: http://<IP-Adresse mbed>/rpc/servo2/write+0.5
main.cpp@14:3835863bc412, 2015-04-08 (annotated)
- Committer:
- stefan1691
- Date:
- Wed Apr 08 12:31:28 2015 +0000
- Revision:
- 14:3835863bc412
- Parent:
- 12:fc0fe305d4d3
Korrektur AnalogIn laut . https://developer.mbed.org/questions/3897/AnalogIn-not-working-in-rpc/
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marcel1691 | 12:fc0fe305d4d3 | 1 | /** HTTP RPC Server mit vordefinierten Objekten |
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 |
marcel1691 | 12:fc0fe305d4d3 | 13 | Servo servo1 ( D9 ); |
marcel1691 | 12:fc0fe305d4d3 | 14 | Servo servo2 ( D10 ); |
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 |
marcel1691 | 12:fc0fe305d4d3 | 41 | RPC::construct<RpcDigitalOut, PinName, const char*>(D11, "led1"); |
marcel1691 | 12:fc0fe305d4d3 | 42 | RPC::construct<RpcDigitalOut, PinName, const char*>(D12, "led2"); |
marcel1691 | 12:fc0fe305d4d3 | 43 | RPC::construct<RpcPwmOut, PinName, const char*>(D13, "led3"); |
stefan1691 | 14:3835863bc412 | 44 | RPC::construct<RpcAnalogIn, PinName, const char*>(A0, "poti"); |
stefan1691 | 14:3835863bc412 | 45 | RPC::construct<RpcAnalogIn, PinName, const char*>(A1, "light"); |
stefan1691 | 14:3835863bc412 | 46 | RPC::construct<RpcDigitalIn, PinName, const char*>(A2, "b1"); |
stefan1691 | 11:4f5efa32051c | 47 | RPCVariable<float> rpcVal1( &val1, "servo1" ); |
stefan1691 | 11:4f5efa32051c | 48 | RPCVariable<float> rpcVal2( &val2, "servo2" ); |
yueee_yt | 3:5758cfefe980 | 49 | |
stefan1691 | 9:66ff9ae5572e | 50 | // Handler |
yueee_yt | 3:5758cfefe980 | 51 | HTTPServerAddHandler<RPCHandler>("/rpc"); |
stefan1691 | 9:66ff9ae5572e | 52 | |
stefan1691 | 9:66ff9ae5572e | 53 | // Start HTTP Server auf Port 80 |
stefan1691 | 9:66ff9ae5572e | 54 | printf( "Starte Server\n" ); |
yueee_yt | 0:050a5d4ffd55 | 55 | HTTPServerStart(80); |
yueee_yt | 0:050a5d4ffd55 | 56 | } |
yueee_yt | 0:050a5d4ffd55 | 57 |