Un exemple concret, en Node.js
Ouvrez une fenêtre de commande (un terminal, un shell...) et allez dans le répertoire
example_nodejs/Doc-GettingStarted-Yocto-I2C de la librairie Yoctopuce pour TypeScript. Vous y
trouverez un fichier nommé
expliquées précédemment, mais cette fois utilisées avec le décorum nécessaire à en faire un petit
programme d'exemple concret.
Si le Yocto-I2C n'est pas branché sur la machine où fonctionne le navigateur internet, remplacez
dans l'exemple l'adresse
où vous avez lancé le VirtualHub.
import { YAPI, YErrorMsg,
import {
YI2cPort
async function startDemo(args: string[]): 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 the I2C interface to use
let target: string;
if(args[1] == "any") {
let
anyI2c
if
(anyI2c
console.log("No module connected (check USB
process.exit(1);
}
let module:
target
= await module.get_serialNumber();
} else {
target
= args[1];
}
let
i2cPort
= YI2cPort.FindI2cPort(target+'.i2cPort');
if(await i2cPort.isOnline()) {
// sample code reading MCP9804 temperature sensor
await i2cPort.set_i2cMode("400kbps");
await i2cPort.set_i2cVoltageLevel(YI2cPort.I2CVOLTAGELEVEL_3V3);
await i2cPort.reset();
// do not forget to configure the powerOutput of the Yocto-I2C
// (for MCP9804 powerOutput need to be set at 3.3V)
console.log("****************************");
console.log("* make sure voltage levels
console.log("* are properly configured
console.log("****************************");
let toSend: number[] = [0x05];
let received: number[] = await i2cPort.i2cSendAndReceiveArray(0x1f, toSend, 2);
let tempReg:
if(tempReg
tempReg
} else {
tempReg
}
console.log("Ambiant temperature: "
} else {
console.log("Module not connected (check identification and USB
}
await YAPI.FreeAPI();
}
if(process.argv.length
console.log("usage: node demo.js
console.log("
console.log("
} else {
startDemo(process.argv.slice(process.argv.length
www.yoctopuce.com
avec le code d'exemple ci-dessous, qui reprend les fonctions
demo.ts
par l'adresse IP de la machine où est branché le Yocto-I2C et
127.0.0.1
YModule
} from 'yoctolib-cjs/yocto_api_nodejs.js';
} from
'yoctolib-cjs/yocto_i2cport.js'
= new YErrorMsg();
= YI2cPort.FirstI2cPort();
== null) {
YModule
= await anyI2c.get_module();
number
= (received[0] << 8) + received[1];
& 0x1000) {
-= 0x2000;
// perform sign extension
&= 0x0fff;
// clear status bits
< 3) {
<serial_number>");
node demo.js
<logical_name>");
node demo.js any
15. Utilisation du Yocto-I2C en TypeScript
'+errmsg.msg);
cable)\n");
*");
*");
+
(tempReg
/ 16.0).toString());
(use any discovered
- 2));
cable)\n");
device)");
117