Les fonctions de l'API les plus utiles dans ce mode de fonctionnement sont:
• reset(), pour vider le tampon de lecture
• writeStxEtx(), pour envoyer une commande manuellement, y compris les marqueurs STX/
ETX
• get_lastMessage(), pour obtenir le dernier message (dernière mesure) transmise par
l'instrument
• queryMessage() pour envoyer une commande et attendre une réponse pour un temps
maximal prescrit
En mode STX/ETX, si on enregistre un callback de notification de valeur, il sera appelé à chaque
nouveau message envoyé ou reçu.
5.4. Protocole basé sur des trames binaires
Cette famille appelée en anglais Frame-based binary protocol dans l'interface de configuration
correspond à tous les protocoles propriétaires qui fonctionnent par échange de messages binaires
(non textuels). Le protocole MODBUS RTU en est un cas particulier qui est géré explicitement (voir
ci-dessous), mais n'importe quel autre variante d'échange de trames binaires peut être ici utilisée. Le
Yocto-Serial est capable de séparer les différents messages reçus grâce à la mesure du délai entre
la réception des octets successifs. Lorsque vous choisissez un protocole basé sur des trames
binaires, vous pouvez spécifier l'espacement délimitant la séparation entre deux trames.
Notez que les trames binaires sont limitées à 256 octets. Au delà de cette limite, une nouvelle trame
est créée pour la suite du message. L'horodatage de la trame permet d'identifier qu'il s'agit de la
continuation de la trame précédente.
Si votre protocole binaire ne spécifie aucune contrainte sur l'espacement entre les trames et
l'espacement entre les caractères d'une trame, utilisez plutôt la famille "Flux de données binaire" ci-
dessous.
Les fonctions de l'API les plus utiles dans ce mode de fonctionnement sont:
• reset(), pour vider le tampon de lecture
• get_lastMessage(), pour obtenir la représentation hexadécimale de la dernière trame reçue
• writeHex() pour envoyer une trame, donnée sous forme hexadécimale
• readMessages() pour chercher une trame correspondant à une expression régulière donnée
• readHex() pour lire un nombre spécifié d'octets sous forme hexadécimale (indépendamment
de la séparation en trames)
• queryHex() pour envoyer une trame binaire et attendre une réponse pour un temps maximal
prescrit
En mode trame binaire, si on enregistre un callback de notification de valeur, il sera appelé à chaque
nouvelle trame envoyée ou reçue.
5.5. Protocole MODBUS
Le protocole MODBUS est très utilisé dans le monde industriel et pour la surveillance des
infrastructures techniques des bâtiments. Il existe en deux variantes: le mode MODBUS ASCII, où
les messages sont échangés sous forme de lignes de codes hexadécimaux, et le mode MODBUS
RTU, où les messages sont échangés directement sous forme de trames binaires. Pour dialoguer
avec un équipement MODBUS, vous devez impérativement utiliser le même mode que configuré
dans l'équipement. En principe, tous les appareils conformes au standard doivent supporter le mode
MODBUS RTU.
www.yoctopuce.com
5. Le port série
21