Exemple
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);
10.3.1.5
Réception d'une réponse : fonction Uniti()
Syntaxe
porte :
numéro de la porte source (0x70 à 0x7F)
&adr_buf :
adresse du buffer qui va recevoir la réponse
Description
Cette primitive permet de recevoir une réponse à une requête émise sur la même porte source.
Tant que le code 0x08 est retourné (traitement de la requête par le serveur non achevé), la fonction doit être
périodiquement relancée jusqu'à obtention de la réponse.
Code retourné
Code Signification
0
lecture correcte
4
mauvais numéro de porte ou non propriétaire
6
erreur d'accès au système 1060
Structure du buffer de réception
@ Début de buffer
38
fr-938928/2
UCHAR Uniti (UCHAR porte, void *adr_buf)
Taille du buffer
(1 mot, taille de la réponse + 2)
Taille de la réponse
(1 mot, valeur maximum 128)
Réponse
(128 octets maximum)
1 mot
Code
Signification
7
buffer trop petit pour stocker la réponse
8
pas de message à ce numéro de porte
Ecrit par le programme
utilisateur
Ecrit par le
logiciel NUM