7. Utilisation du Yocto-4-20mA-Tx en JavaScript / EcmaScript
// Setup the API to use the VirtualHub on local machine
let errmsg = new YErrorMsg();
if(await YAPI.RegisterHub('127.0.0.1', errmsg) != YAPI.SUCCESS) {
alert('Cannot contact VirtualHub on 127.0.0.1: '+errmsg.msg);
}
refresh();
}
async function refresh()
{
let loop, serial = document.getElementById('serial').value;
if(serial == '') {
// by default use any connected module suitable for the demo
loop = YCurrentLoopOutput.FirstCurrentLoopOutput();
if(loop) {
let module = await loop.module();
serial = await module.get_serialNumber();
document.getElementById('serial').value = serial;
}
}
loop = YCurrentLoopOutput.FindCurrentLoopOutput(serial + ".currentLoopOutput");
if (await loop.isOnline()) {
document.getElementById('msg').innerHTML = '';
var pwrState = '';
switch (await loop.get_loopPower()) {
case YCurrentLoopOutput.LOOPPOWER_POWEROK:
pwrState = 'Loop is powered';
break;
case YCurrentLoopOutput.LOOPPOWER_LOWPWR :
pwrState = 'Insufficient loop Voltage';
break;
default :
pwrState = 'Loop is not powered';
break;
}
document.getElementById('loopPwr').innerHTML=pwrState;
var input = document.getElementById('current');
if (document.activeElement == input) {
await loop.set_current(parseFloat(input.value));
} else {
input.value = await loop.get_current();
}
} else {
document.getElementById('msg').value = 'Module not connected';
}
setTimeout(refresh, 500);
}
startDemo();
</script>
</head>
<body>
Module to use:
Loop power state:
Loop current:
<span
id='msg'></span><br>
</body>
</html>
Aucune installation n'est nécessaire pout utiliser cet exemple, il suffit d'ouvrir la page HTML avec un
navigateur web.
7.4. Contrôle de la partie module
Chaque module peut-être contrôlé d'une manière similaire, vous trouverez ci dessous un simple
programme d'exemple affichant les principaux paramètres d'un module et permettant d'activer la
balise de localisation.
"use
strict";
require('yoctolib-es2017/yocto_api.js');
38
<input
id='serial'><br>
<span
id='loopPwr'></span><br>
<input
id='current'>mA<br>
www.yoctopuce.com