From 044828c43097362973c82088a7afee760eab06ec Mon Sep 17 00:00:00 2001 From: fulup Date: Fri, 21 Jul 2017 23:46:49 +0200 Subject: Added HAL selection in HTML page Started SetCtl implementation WIP Only --- htdocs/AudioBinding.js | 75 ++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 58 insertions(+), 17 deletions(-) (limited to 'htdocs/AudioBinding.js') diff --git a/htdocs/AudioBinding.js b/htdocs/AudioBinding.js index 9771726..7105b20 100644 --- a/htdocs/AudioBinding.js +++ b/htdocs/AudioBinding.js @@ -1,5 +1,6 @@ var afb = new AFB("api", "mysecret"); var ws; + var halapi="HALNotSelected"; var evtidx=0; function getParameterByName(name, url) { @@ -26,25 +27,31 @@ var quiet=getParameterByName("quiet"); if (!quiet) quiet="99"; - - function init() { - ws = new afb.ws(onopen, onabort); - } - function onopen() { - document.getElementById("main").style.visibility = "visible"; - document.getElementById("connected").innerHTML = "Binder WS Active"; - document.getElementById("connected").style.background = "lightgreen"; - ws.onevent("*", gotevent); - } + - function onabort() { - document.getElementById("main").style.visibility = "hidden"; - document.getElementById("connected").innerHTML = "Connected Closed"; - document.getElementById("connected").style.background = "red"; + function init(elemid, api, verb, query) { + + function onopen() { + // check for active HALs + probeActiveHal (elemid, api, verb, query); + + document.getElementById("main").style.visibility = "visible"; + document.getElementById("connected").innerHTML = "Binder WS Active"; + document.getElementById("connected").style.background = "lightgreen"; + ws.onevent("*", gotevent); + } + function onabort() { + document.getElementById("main").style.visibility = "hidden"; + document.getElementById("connected").innerHTML = "Connected Closed"; + document.getElementById("connected").style.background = "red"; + + } + + ws = new afb.ws(onopen, onabort); } - + function replyok(obj) { console.log("replyok:" + JSON.stringify(obj)); document.getElementById("output").innerHTML = "OK: "+JSON.stringify(obj); @@ -67,9 +74,43 @@ ws.call(api+"/"+verb, {data:message}).then(replyok, replyerr); } - + + // On button click from HTML page function callbinder(api, verb, query) { console.log ("subscribe api="+api+" verb="+verb+" query=" +query); document.getElementById("question").innerHTML = "apicall: " + api+"/"+verb +" ("+ JSON.stringify(query)+")"; ws.call(api+"/"+verb, query).then(replyok, replyerr); - } \ No newline at end of file + } + + + // Retrieve the list of active HAL + function probeActiveHal (elemid, api, verb, query) { + var selectobj = document.getElementById(elemid); + + // onlick update selected HAL api + selectobj.onclick=function(){ + halapi= this.value; + console.log ("New Default HAL=" + halapi); + }; + + function gotit (result) { + + // display response as for normal onclick action + replyok(result); + var response=result.response; + + // fulfill select with avaliable active HAL + for (idx=0; idx