4D v16.3

RECEVOIR BUFFER

Accueil

 
4D v16.3
RECEVOIR BUFFER

RECEVOIR BUFFER 


 

RECEVOIR BUFFER ( varRéception ) 
Paramètre Type   Description
varRéception  Variable texte in Variable devant recevoir les données

La commande RECEVOIR BUFFER lit les données du port série préalablement ouvert par la commande REGLER SERIE. Le port série comporte un buffer qui se remplit de caractères jusqu'à ce qu'une commande les charge. RECEVOIR BUFFER récupère les caractères présents dans le buffer, les place dans la variable varRéception puis vide le buffer. S'il n'y a pas de caractères dans le buffer, la variable varRéception est vide.

Sous Windows
Le buffer du port série sous Windows a une capacité limitée à 10 Ko. Cela signifie que le buffer peut être saturé. Lorsqu'il est plein et que de nouveaux caractères sont reçus, ils remplacent les plus anciens caractères. Les anciens caractères sont perdus ; par conséquent, il est important que le buffer soit lu rapidement lorsque des nouvelles données sont reçues.

Sous Mac OS
Le buffer du port série sous Mac OS X a une capacité en principe illimitée (elle dépend de la mémoire disponible). Si le buffer est saturé et que de nouveaux caractères sont reçus, ils remplacent les plus anciens caractères. Les anciens caractères sont perdus ; par conséquent, il est important que le buffer soit lu rapidement lorsque des nouvelles données sont reçues.

La commande RECEVOIR BUFFER est différente de RECEVOIR PAQUET dans la mesure où elle récupère tout ce qui se trouve dans le buffer et le retourne immédiatement. RECEVOIR PAQUET, pour sa part, attend de récupérer un caractère spécifique ou un certain nombre de caractères.

Pendant l'exécution d'un RECEVOIR BUFFER, l'utilisateur peut interrompre l'opération en appuyant sur les touches Ctrl+Alt+Maj (sous Windows) ou Commande+Option+Maj (sous Mac OS). Cette interruption génère une erreur -9994 que vous pouvez intercepter à l'aide d'une méthode installée par la commande APPELER SUR ERREUR.

Exemple  

La méthode projet ECOUTER PORT SÉRIE utilise RECEVOIR BUFFER pour récupérer du texte depuis le port série et l'accumuler dans une variable interprocess :

  ` ECOUTER PORT SÉRIE
  ` Ouvrir le port série
 REGLER SERIE(201;Vitesse 9600+Bits de données 8+Bit de stop un+Pas de parité)
 ◊IP_Ecouter_Port_Série:=Vrai
 Tant que(◊IP_Ecouter_Port_Série)
    RECEVOIR BUFFER($vtBuffer)
    Si((Longueur($vtBuffer)+Longueur(◊vtBuffer))>MAXLARGTEXTE)
       ◊vtBuffer:=""
    Fin de si
    ◊vtBuffer:=◊vtBuffer+$Buffer
 Fin tant que

A ce stade, tout autre process peut lire la variable interprocess ◊vtBuffer pour exploiter les données en provenance du port série.

Pour cesser d'écouter le port série, exécutez simplement la méthode suivante :

  ` Fin de l'écoute du port série
 ◊IP_Ecouter_Port_Série:=Faux

Notez que l'accès à la variable interprocess ◊vtBuffer doit être protégé par un sémaphore, de manière à ce que les process n'entrent pas en conflit (reportez-vous à la description de la fonction Semaphore pour plus d'informations).



Voir aussi  

APPELER SUR ERREUR
RECEVOIR PAQUET
REGLER SERIE
Semaphore
UTILISER FILTRE
Variables

 
PROPRIÉTÉS 

Produit : 4D
Thème : Communications
Numéro : 172
Nom intl. : RECEIVE BUFFER

Cette commande modifie la variable système Error

 
HISTORIQUE 

Modifié : 4D v6.8.3

 
UTILISATION DE L'ARTICLE

4D - Langage ( 4D v16)
4D - Langage ( 4D v16.1)
4D - Langage ( 4D v16.2)
4D - Langage ( 4D v16.3)