Ergänzt das jQueryMobile Beispiel um die Fehlenden Aktoren wie LED 3 und Servo 2.
Fork of RPCHTTPServerVariable by
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 |