Code to demonstrate how to map 2 RPC functions to command 2 servo motors via REST HTTP Get request. Pretty useful to control a webcam PAN and TILT position when using Servos in this support: http://www.coolcomponents.co.uk/catalog/product_info.php?products_id=470&osCsid=j90j5kqfegquksdbumahtmuqg5 There is also a servo.html file to test some HTML5 slider RANGE object to set the Servo position and make the Http Get request via AJAX (asynchronous JavaScript call) Note: Demo program to be used on the GeekSessionLab Talk (November 2011). http://devrendezvous.com/?lang=en

Dependencies:   EthernetNetIf mbed HTTPServer Servo

servo.htm.cpp

Committer:
botdream
Date:
2011-10-27
Revision:
0:fd56ae0fc8ea

File content as of revision 0:fd56ae0fc8ea:

/*
<html>
<head>
<script type="text/javascript">

var global_flag = 0;

function sendrequest(request_uri)
{
  var xmlhttp;
  if(window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  }
  else
  {// code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function()
  {
    if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
      document.getElementById("debugtxt").innerHTML=xmlhttp.responseText;
      global_flag = 0;
    }
  }
  console.log(request_uri);
  xmlhttp.open("GET",request_uri,true);
  xmlhttp.send();
}


function setValue(event) {

  if(global_flag != 0)
    return; // work in progress

  global_flag = 1; // initialize request
  document.getElementById("debugtxt").innerHTML="...";

  if(event.target.id == 'servo1')
    sendrequest('./rpc/servocmd1/run%20'+event.target.value);
  else if(event.target.id == 'servo2')
    sendrequest('./rpc/servocmd2/run%20'+event.target.value);
}

</script>
</head>
<body>

<h2>Testing WebCam PAN & TILT Servos via HTTP REST (RPC) interface.</h2>

<input id="servo1" type="range" min="0" max="100" step="5" oninput="setValue(event)" />
<input id="servo2" type="range" min="0" max="100" step="5" oninput="setValue(event)" />

<!--
<button type="button" onclick="sendrequest('./rpc/servocmd2/run%200')">Manual Test 0</button>
<button type="button" onclick="sendrequest('./rpc/servocmd2/run%2050')">Manual Test 50</button>
<button type="button" onclick="sendrequest('./rpc/servocmd2/run%20100')">Manual Test 100</button>
-->

<div id="debugtxt"></div>

</body>
</html>
*/