HTTP RPC Server mit vordefinierten Objekten

Dependencies:   EthernetInterface HttpServer Servo mbed-rtos mbed

Fork of RPCHTTPServerVariable by th.iotkit2.ch

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

Committer:
stefan1691
Date:
Sun Mar 20 07:39:09 2016 +0000
Revision:
17:752e17b9aab4
Parent:
16:0eadcfedd078
https statt http verhindert Fehler

Who changed what in which revision?

UserRevisionLine numberNew contents of line
marcel1691 13:596ff8317448 1 <!DOCTYPE html>
marcel1691 13:596ff8317448 2 <html>
marcel1691 13:596ff8317448 3 <head>
marcel1691 13:596ff8317448 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
marcel1691 13:596ff8317448 5 <meta name="viewport" content="width=device-width, initial-scale=1">
marcel1691 13:596ff8317448 6 <meta name="author" content="Marcel Bernet, Zuerich">
marcel1691 13:596ff8317448 7 <title>mbed Web-App</title>
stefan1691 17:752e17b9aab4 8 <link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.css" />
stefan1691 17:752e17b9aab4 9 <script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
stefan1691 17:752e17b9aab4 10 <script src="https://code.jquery.com/mobile/1.4.2/jquery.mobile-1.4.2.min.js"></script>
marcel1691 13:596ff8317448 11 </head>
marcel1691 13:596ff8317448 12 <body>
marcel1691 13:596ff8317448 13 <form>
marcel1691 13:596ff8317448 14 <div data-role="page" id="page-index" data-title="mbed App">
stefan1691 15:e28ddc86e599 15
marcel1691 13:596ff8317448 16 <div data-role="header" class="ui-header ui-bar-c">
marcel1691 13:596ff8317448 17 <a href="#left-panel" data-icon="bars" data-iconpos="notext" data-shadow="false" data-iconshadow="false">Menu</a>
marcel1691 13:596ff8317448 18 <h1>mbed Web-App</h1>
marcel1691 13:596ff8317448 19 <img src="./img/logo.png" width="30" class="ui-btn-right" />
marcel1691 13:596ff8317448 20 </div>
stefan1691 15:e28ddc86e599 21
marcel1691 13:596ff8317448 22 <div data-role="content">
stefan1691 15:e28ddc86e599 23
stefan1691 16:0eadcfedd078 24 <div class="ui-field-contain">
stefan1691 16:0eadcfedd078 25 <label for="addr">IP-Adresse</label>
stefan1691 16:0eadcfedd078 26 <input type="text" name="addr" id="addr" value="http://192.168.178.35/rpc/"></input>
stefan1691 16:0eadcfedd078 27 </div>
stefan1691 16:0eadcfedd078 28
marcel1691 13:596ff8317448 29 <div class="ui-field-contain">
marcel1691 13:596ff8317448 30 <label for="led-1">LED 1</label>
marcel1691 13:596ff8317448 31 <select name="led1" id="led1" data-role="slider">
marcel1691 13:596ff8317448 32 <option value="Off">Off</option>
marcel1691 13:596ff8317448 33 <option value="On">On</option>
marcel1691 13:596ff8317448 34 </select>
marcel1691 13:596ff8317448 35 </div>
marcel1691 13:596ff8317448 36 <div class="ui-field-contain">
marcel1691 13:596ff8317448 37 <label for="led-2">LED 2</label> <select name="led2" id="led2" data-role="slider">
marcel1691 13:596ff8317448 38 <option value="Off">Off</option>
marcel1691 13:596ff8317448 39 <option value="On">On</option>
marcel1691 13:596ff8317448 40 </select>
marcel1691 13:596ff8317448 41 </div>
marcel1691 13:596ff8317448 42 <div class="ui-field-contain" id="servo1f">
marcel1691 13:596ff8317448 43 <label for="servo-1">Servo 1:</label>
marcel1691 13:596ff8317448 44 <input name="servo1" id="servo1" type="range" min="0" max="100" value="50">
marcel1691 13:596ff8317448 45 </div>
marcel1691 13:596ff8317448 46 </div>
marcel1691 13:596ff8317448 47 </div>
marcel1691 13:596ff8317448 48 <script type="text/javascript">
marcel1691 13:596ff8317448 49 $('select#led1').change(function()
marcel1691 13:596ff8317448 50 {
stefan1691 16:0eadcfedd078 51 var server = document.getElementById("addr").value;
marcel1691 13:596ff8317448 52 var myswitch = $(this);
marcel1691 13:596ff8317448 53 var name = myswitch[0].name;
marcel1691 13:596ff8317448 54 var url = myswitch[0].selectedIndex == 1 ? server + name + '/write 1' : server + name + '/write 0';
marcel1691 13:596ff8317448 55 $.get( url );
marcel1691 13:596ff8317448 56 });
marcel1691 13:596ff8317448 57 $('select#led2').change(function()
marcel1691 13:596ff8317448 58 {
stefan1691 16:0eadcfedd078 59 var server = document.getElementById("addr").value;
marcel1691 13:596ff8317448 60 var myswitch = $(this);
marcel1691 13:596ff8317448 61 var name = myswitch[0].name;
marcel1691 13:596ff8317448 62 var url = myswitch[0].selectedIndex == 1 ? server + name + '/write 1' : server + name + '/write 0';
marcel1691 13:596ff8317448 63 $.get( url );
marcel1691 13:596ff8317448 64 });
marcel1691 13:596ff8317448 65 $("#servo1f").on("slidestop", "#servo1", function(event)
marcel1691 13:596ff8317448 66 {
stefan1691 16:0eadcfedd078 67 var server = document.getElementById("addr").value;
marcel1691 13:596ff8317448 68 var val = $(this).val() / 100.0;
marcel1691 13:596ff8317448 69 $.get( server + 'servo1/write ' + val );
marcel1691 13:596ff8317448 70 console.log( server + 'servo1/write ' + val );
marcel1691 13:596ff8317448 71 });
marcel1691 13:596ff8317448 72 </script>
marcel1691 13:596ff8317448 73 </form>
marcel1691 13:596ff8317448 74 </body>
marcel1691 13:596ff8317448 75 </html>