Yoctopuce Yocto-PowerRelay-V2 Mode D'emploi page 160

Table des Matières

Publicité

20. Utilisation avec des langages non supportés
sera affecté à la taille effective de la réponse. 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.
Le format des requêtes est le même que celui décrit dans la section Virtual Hub et HTTP GET.
Toutes les chaînes de caractères utilisées par l'API sont des chaînes constituées de caractères 8
bits: l'Unicode et l'UTF8 ne sont pas supportés.
Le résultat retourné dans la variable buffer respecte le protocole HTTP, il inclut donc un header
HTTP . Ce header se termine par deux lignes vides, c'est-à-dire une séquence de quatre caractères
ASCII 13, 10, 13, 10.
Voici un programme d'exemple écrit en pascal qui utilise la DLL yapi.dll pour lire puis changer la
luminosité d'un module.
// Dll functions import
function
yapiInitAPI(mode:integer;
function
yapiUpdateDeviceList(force:integer;errmsg : pansichar):integer;cdecl;
function
yapiHTTPRequest(device:pansichar;url:pansichar; buffer:pansichar;
var
errmsgBuffer
:
array [0..256] of
dataBuffer
:
array [0..1024] of
errmsg,data
: pansichar;
fullsize,p
: integer;
const
serial
= 'RELAYHI2-12345';
getValue =
'GET /api/module/luminosity
setValue =
'GET /api/module?luminosity=100
begin
errmsg
:=
@errmsgBuffer;
data
:=
@dataBuffer;
// API
initialization
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;
// requests the
if (yapiHTTPRequest(serial,getValue,data,sizeof(dataBuffer),fullsize,errmsg)<0) then
begin
writeln(errmsg);
halt;
end;
// searches for the HTTP header end
p := pos(#13#10#13#10,data);
// displays the response minus the HTTP header
writeln(copy(data,p+4,length(data)-p-3));
// change the luminosity
if (yapiHTTPRequest(serial,setValue,data,sizeof(dataBuffer),fullsize,errmsg)<0) then
begin
writeln(errmsg);
halt;
end;
154
errmsg : pansichar):integer;cdecl;
external
'yapi.dll'
external
'yapi.dll'
buffsize:integer;var
errmsg : pansichar):integer;cdecl;
external
'yapi.dll'
ansichar;
ansichar;
module luminosity
name 'yapiInitAPI';
name 'yapiUpdateDeviceList';
fullsize:integer;
name 'yapiHTTPRequest';
HTTP/1.1'#13#10#13#10;
HTTP/1.1'#13#10#13#10;
www.yoctopuce.com

Publicité

Table des Matières
loading

Table des Matières