Yoctopuce Yocto-I2C Mode D'emploi page 191

Table des Matières

Publicité

end.
Inventaire des modules
Pour procéder à l'inventaire des modules Yoctopuce, deux fonctions de la librairie dynamique sont
nécessaires
int yapiGetAllDevices(int *buffer,int maxsize,int *neededsize,char
int yapiGetDeviceInfo(int
La fonction yapiGetAllDevices permet d'obtenir la liste des modules connectés sous la forme d'une
liste de handles. buffer pointe sur un tableau d'entiers 32 bits qui contiendra les handles retournés.
Maxsize est la taille en bytes du buffer. neededsize contiendra au retour la taille nécessaire pour
stocker tous les handles. Cela permet d'en déduire le nombre de module connectés, ou si le buffer
passé en entrée est trop petit. Le paramètre errmsg devra pointer sur un buffer de 255 caractères
pour récupérer un éventuel message d'erreur. Ce pointeur peut aussi être à null. Cette fonction
retourne un entier négatif en cas d'erreur, ou zéro dans le cas contraire.
La fonction yapiGetDeviceInfo permet de récupérer les informations relatives à un module à partir de
son handle. devdesc est un entier 32bit qui représente le module, et qui a été obtenu grâce à
yapiGetAllDevices. infos pointe sur une structure de données dans laquelle sera stocké le résultat.
Le format de cette structure est le suivant:
Nom
vendorid
deviceid
devrelease
nbinbterfaces int
manufacturer char[]
productname char[]
serial
logicalname
firmware
beacon
Le paramètre errmsg devra pointer sur un buffer de 255 caractères pour récupérer un éventuel
message d'erreur.
Voici un programme d'exemple écrit en pascal qui utilise la DLL yapi.dll pour lister les modules
connectés.
// device description structure
type
yDeviceSt =
packed record
vendorid
deviceid
devrelease
nbinbterfaces
manufacturer
productname
serial
logicalname
firmware
beacon
end;
// Dll function import
function
yapiInitAPI(mode:integer;
function
yapiUpdateDeviceList(force:integer;errmsg : pansichar):integer;cdecl;
function
yapiGetAllDevices(
www.yoctopuce.com
devdesc,yDeviceSt *infos,
Taille
Type
Description
(bytes)
int
4
ID USB de Yoctopuce
int
4
ID USB du module
int
4
Version du module
4
Nombre d'interfaces USB utilisée par le module
20
Yoctopuce (null terminé)
28
Modèle (null terminé)
char[]
20
Numéro de série (null terminé)
char[]
20
Nom logique (null terminé)
char[]
22
Version du firmware (null terminé)
byte
1
Etat de la balise de localisation (0/1)
: word;
: word;
: word;
: word;
:
array [0..19] of
ansichar;
:
array [0..27] of
ansichar;
:
array [0..19] of
ansichar;
:
array [0..19] of
ansichar;
:
array [0..21] of
ansichar;
: byte;
errmsg : pansichar):integer;cdecl;
external
'yapi.dll'
external
'yapi.dll'
buffer:pointer;
maxsize:integer;
22. Utilisation avec des langages non supportés
char
*errmsg);
name 'yapiInitAPI';
name 'yapiUpdateDeviceList';
*errmsg);
183

Publicité

Table des Matières
loading

Table des Matières