21. Utilisation avec des langages non supportés
function
apiGetDeviceInfo(d:integer;
var
errmsgBuffer
:
array [0..256] of
dataBuffer
:
array [0..127] of
errmsg,data
: pansichar;
neededsize,i
: integer;
devinfos
: yDeviceSt;
begin
errmsg
:=
@errmsgBuffer;
// API
initialisation
if(yapiInitAPI(1,errmsg)<0) then
begin
writeln(errmsg);
halt;
end;
// forces a device inventory
if( yapiUpdateDeviceList(1,errmsg)<0) then
begin
writeln(errmsg);
halt;
end;
// loads all device handles into dataBuffer
if
yapiGetAllDevices(@dataBuffer,sizeof(dataBuffer),neededsize,errmsg)<0
begin
writeln(errmsg);
halt;
end;
// gets device info from each handle
for
i:=0
to
neededsize
begin
if
(apiGetDeviceInfo(dataBuffer[i], devinfos,
begin
writeln(errmsg);
halt;
end;
writeln(pansichar(@devinfos.serial)+'
end;
end.
VB6 et yapi.dll
Chaque point d'entrée de la DLL yapi.dll est disponible en deux versions, une classique C-decl, et un
seconde compatible avec Visual Basic 6 préfixée avec vb6_.
21.5. Port de la librairie haut niveau
Toutes les sources de l'API Yoctopuce étant fournies dans leur intégralité, vous pouvez parfaitement
entreprendre le port complet de l'API dans le langage de votre choix. Sachez cependant qu'une
grande partie du code source de l'API est généré automatiquement.
Ainsi, il n'est pas nécessaire de porter la totalité de l'API, il suffit de porter le fichier yocto_api et un
de ceux correspondant à une fonctionnalité, par exemple yocto_relay. Moyennant un peu de travail
supplémentaire, Yoctopuce sera alors en mesure de générer tous les autres fichiers. C'est pourquoi
il est fortement recommandé de contacter le support Yoctopuce avant d'entreprendre le port de la
librairie Yoctopuce dans un autre langage. Un travail collaboratif sera profitable aux deux parties.
170
var
neededsize:integer;
errmsg : pansichar):integer; cdecl;
external
'yapi.dll'
var
infos:yDeviceSt;
errmsg : pansichar):integer;
external
'yapi.dll'
ansichar;
integer;
// max of 128 USB devices
div
sizeof(integer)-1
('+pansichar(@devinfos.productname)+')');
name 'yapiGetAllDevices';
cdecl;
name 'yapiGetDeviceInfo';
do
errmsg)<0) then
then
www.yoctopuce.com