Yoctopuce Yocto-I2C Mode D'emploi page 39

Table des Matières

Publicité

Les codes de conditions I2C et les codes Hexadécimaux sont envoyés tels quels sur le bus I2C. Les
codes suivants sont reconnus:
• {S} et {P} pour envoyer des conditions Start / Stop
• {R} pour envoyer une condition Restart
• xx pour lire un byte
• {A} et {N} pour confirmer une réception avec un ACK ou on NACK
Quand le format brut est utilisé, les bytes d'adresse doivent contenir le bit de lecture/écriture. Le
Yocto-I2C est capable de corriger automatiquement certaines incohérences dans les transition d'état
afin de pouvoir envoyer des trames I2C valides.
EXPECT
La commande expect attend que des données correspondant à un certain pattern apparaissent sur
la ligne I2C, elle prend en argument une chaîne de caractères. Certaines expressions régulières sont
supportées:
• . (point) correspond à n'importe quel caractère
• [] définit une union, par exemple [123a-z] correspond à n'importe quel caractère parmis 1...
3,a...z
• [^] définit une exclusion, par exemple [^,] correspond à n'importe quel caractère sauf la
virgule
• * permet de répéter la dernière correspondance zéro, une ou plusieurs fois: .* correspond à
tous les caractères jusqu'à la fin de la ligne
• + permet de répéter la dernière correspondance une ou plusieurs fois. Par exemple, [0-9]+
correspond à un chiffre ou plus
Des expressions spéciales permettent d'effectuer des décodages et d'affecter la valeur lue à l'un des
genericSensor du module ou à une variable qui pourra être réutilisée par suite.
• ($x:INT) permet de reconnaître une valeur entière (en base 10) qui sera affectée à la fonction
genericSensorX. Par exemple, {$3:INT} permet de reconnaître un nombre entier et l'affecter à
la fonction genericSensor3 alors que {$v:INT} permet de reconnaître un nombre entier et
l'affecter à la variable v.
• ($x:FLOAT) permet de reconnaître une valeur décimale (nombre à virgule), qui sera affectée
à la fonction genericSensorX. La notation scientifique (par ex. 1.25e-1) est reconnue.
• ($x:DDM) permet de reconnaître une valeur décimale en degrés-minutes-décimales telle
qu'utilisée dans le standard NMEA.
• ($x:BYTE) permet de reconnaître une valeur entière entre 0 et 255 codée en hexadécimal
(comme c'est le cas pour les protocoles en mode binaire). Si la valeur est dans la plage
-128...127, on utilisera ($x:SBYTE) à la place (signed byte). La valeur décodée sera affectée
à la fonction genericSensorX
• ($x:WORD) ou ($x:SWORD) permet de la même manière de décoder une valeur en
hexadécimal sur 16 bits, respectivement non signée ou signée, qui sera affectée à la fonction
genericSensorX. On suppose alors que les octets sont dans l'ordre d'écriture usuel, soit l'octet
de poids fort en premier (big-endian), comme par exemple 0104 pour représenter la valeur
260.
• ($x:WORDL) ou ($x:SWORDL) ont le même effet que les deux précédentes, mais supposent
que les octets sont d'en l'ordre little-endian, c'est-à-dire l'octet de poids faible en premier (par
exemple 0401 pour représenter la valeur 260).
• ($x:DWORD) ou ($x:SDWORD) permettent de la même manière de décoder un nombre sur
32 bit en big-endian (non-signé ou signé).
• ($x:DWORDL) ou ($x:SDWORDL) permettent de la même manière de décoder un nombre
sur 32 bit en little-endian (non-signé ou signé).
• ($x:DWORDX) ou ($x:SDWORDX) permettent de la même manière de décoder un nombre
sur 32 bit en mixed-endian, soit deux mots de 16 bits chacun représenté en big-endian, mais
le mot de poids faible en premier et celui de poids fort ensuite.
• ($x:HEX) permet de reconnaître une valeur en hexadécimal de longueur indéfinie (1 à 4
octets), qui sera affectée à la fonction genericSensorX.
www.yoctopuce.com
6. Mesures automatiques
31

Publicité

Table des Matières
loading

Table des Matières