RECEVOIR BUFFER

4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant

version 6.8.3 (Modifiée)


RECEVOIR BUFFER (varRéception)

ParamètreTypeDescription
varRéceptionVariableVariable devant recevoir les données

Description

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 9.x a une capacité limitée à 10 Ko. Sous Mac OS X, sa capacité est 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.

Note : Il existe des plug-ins 4D qui vous permettent d'augmenter la capacité du port série.

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).

Référence

APPELER SUR ERREUR, RECEVOIR PAQUET, REGLER SERIE, Semaphore, Variables.


4D - Documentation   Français   English   German   Español   4D v11 SQL, Commandes par thèmes   4D v11 SQL, Liste alphabétique des commandes   4D v11 SQL, Constantes par thèmes   Retour   Précédent   Suivant