Exemple
BufferResp . BufferSize = xx ;
BufferResp . ReqSize = 0 ;
do { error = Uniti (port[i], &BufferResp);
} while (error == NO_MESSAGE);
10.3.1.6
Exemple d'utilisation des primitives UNI-TE dans une application
{ /* déclaration des variables */
USHORT
error = 0;
UCHAR
port[16];
#define NO_MESSAGE
typedef struct { USHORT BufferSize;
USHORT ReqSize;
UCHAR RequestCode;
UCHAR CategoryCode;
UCHAR Segment;
UCHAR Specific;
USHORT ObjectAdress;
USHORT Quantity;
} Buf_req_client;
typedef struct { USHORT BufferSize;
USHORT ReqSize;
UCHAR ResponseCode;
UCHAR Specific;
UCHAR Data [126];
} Buf_resp_client;
Buf_req_client
BufferReq;
Buf_resp_client
BufferResp;
...
...
/* accès unite */
if { (error = Open_Unite ())
printf ("\n erreur ouverture unite %d", error);}
...
/* ouverture des 16 portes */
for (i = 0 ; i < 15 ; i++)
{ if ( (error = Get_Port (&port[i])) != 0)
{ printf ("\n erreur %d ouverture port[%d]", error, i); }
else
{ printf ("\n OK port[%d] = %x", i, port[i]); }
}
...
/* émission d'une requête */
BufferReq . ReqSize = yy ; /* taille en octets de la requête */
BufferReq . RequestCode = 0xnn ; /* Code requête */
BufferReq . CategoryCode = mm ; /* code catégorie */
BufferReq . Segment = (UCHAR) Segment ;
BufferReq . Specific = (UCHAR) Specific ;
BufferReq . ObjectAdress = ObjectAdress ;
BufferReq . Quantity = Quantity ;
error = Unito (port[i], &BufferReq);
0x08;
Module PC
39
fr-938928/2