let io: YDigitalIO;
let outputdata: number;
async function startDemo(): Promise<void>
{
await YAPI.LogUnhandledPromiseRejections();
// Setup the API to use the VirtualHub on local machine
let errmsg:
YErrorMsg
if(await YAPI.RegisterHub('127.0.0.1', errmsg) != YAPI.SUCCESS) {
console.log('Cannot contact VirtualHub on 127.0.0.1:
return;
}
// Select specified device, or use first available one
let serial:
string
if (serial[8] != '-') {
// by default use any connected module suitable for the demo
let
anysensor
if (anysensor) {
let module:
serial
} else {
console.log('No matching sensor connected, check cable
await YAPI.FreeAPI();
return;
}
}
console.log('Using device '
io
=
YDigitalIO.FindDigitalIO(serial
// lets configure the channels direction
// bits 0..1 as output
// bits 2..3 as input
await io.set_portDirection(0x03);
await io.set_portPolarity(0);
await io.set_portOpenDrain(0);
console.log("Channels 0..1 are configured as outputs and channels
console.log("are configred as inputs, you can connect some inputs
console.log("ouputs and see what
outputdata
= 0;
refresh();
}
async function refresh(): Promise<void>
{
if (await io.isOnline()) {
// cycle ouput 0..3
outputdata
// We could have used set_bitState as well
await io.set_portState(outputdata);
// read port values
let inputdata:
console.log("port value = "
} else {
console.log('Module not
}
setTimeout(refresh, 1000);
}
startDemo();
Comme décrit au début de ce chapitre, vous devez avoir installé le complateur TypeScript sur votre
machine pour essayer ces exemples, et installé les dépendances de la librairie TypeScript. Si vous
l'avez fait, vous pouvez maintenant taper la commande suivantes dans le répertoire de l'exemple lui-
même, pour finaliser la résolution de ses dépendances:
npm install
Vous êtes maintenant prêt pour lancer le code d'exemple dans Node.js. La manière la plus simple de
le faire est d'utiliser la commande suivante, en remplaçant les [...] par les arguments que vous voulez
passer au programme:
www.yoctopuce.com
= new YErrorMsg();
= process.argv[process.argv.length-1];
= YDigitalIO.FirstDigitalIO();
YModule
= await anysensor.get_module();
= await module.get_serialNumber();
+ serial);
// polarity set to regular
// No open drain
happens");
=
(outputdata
+ 1) % 4;
number
= await io.get_portState();
+ inputdata.toString(2));
connected');
'+errmsg.msg);
+ '.digitalIO');
13. Utilisation du Yocto-IO en TypeScript
!');
2..3");
to");
95