version 6.8.3 (Modifiée)
RECEVOIR BUFFER (varRéception)
Paramètre | Type | Description | |
varRéception | Variable | Variable 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.