Reconnaissance de commande

Les valeurs peuvent être lues dans un texte avec ce bloc. Le modèle de recherche correspondant est défini dans les propriétés.

Table des matières


Entrées

Abréviation Résumé Description
T Text Input Commande texte.




Sorties

Abréviation Résumé Description Valeurs
Lv Last extracted value Dernière valeur extraite




Propriétés

Résumé Description Valeur défaut
Détection de commande Caractère pour lire une valeur :
\v = Valeur
\1 = byte de la valeur 1 (le moins significatif), \2 = byte de la valeur 2, \3 = byte de la valeur 3, \4 = byte de la valeur 4
\h = Valeur interprétée comme un nombre hexadécimal

Caractère pour naviguer dans le texte :
\. = N'importe quel caractère,
\w = N'importe quel mot,
\# = N'importe quel nombre,
\d = Chiffre 0-9,
\m = Caractère A-Z/a-z/0-9,
\a = Caractère A-Z/a-z,
\s12 = Ignorer 12 caractères,
\iTexte\i = ignorer jusqu'à 'Texte'

Autre caractères :
\x = Hexadécimale (ex. : \x09)
\\ = Slash
\t = Tab (0x09),
\b = Espace (0x20), ou Tab (0x09),
\r = Retour (0x0d),
\n = Nouvelle ligne (0x0a)
-
Interprétation de la valeur avec le signe Si cette case est cochée, les valeurs \1, \2, \3, etc. sont utilisées avec le signe algébrique dans la reconnaissance des commandes (Signed Integer). -




Exemple de programmation

La reconnaissance des commandes peut être utilisée pour naviguer dans un texte ou un texte source et pour récupérer des valeurs.

Caractères utilisés pour extraire une valeur :

\v = valeur numérique

\1 = valeur de l'octet interprété comme 1er octet de la sortie (\2, \3, ...)

- Si les données reçues sont interprétées en hexadécimal (par exemple, "\x0A"), l'équivalent décimal (10 dans cet exemple) est obtenu. Cette méthode fonctionne également pour plusieurs octets hexadécimaux (par exemple, "\x0A\x0B"). Une fois combinés, ces octets forment l'entier 32 bits 0x0A0B, et \2\1 renvoie 2571 en décimal. La même valeur, lorsqu'elle est extraite avec \1, donne 10 en décimal.

- Si les données reçues sont interprétées comme du texte, chaque octet représente un caractère ASCII. Par exemple, "Loxone" correspond au caractère Line Feed avec un code ASCII de 76.

- Les données peuvent être utilisées comme un entier signé en tenant compte de l'ordre correct des octets et en appliquant l'extension de signe si nécessaire.

\h = valeur interprétée comme un nombre hexadécimal

- Si les données reçues sont une chaîne hexagonale représentée sous forme de texte (par exemple, "0A"), elles peuvent être converties en leur équivalent décimal (10 dans cet exemple).

- Cette méthode fonctionne également pour les données hexagonales multiples (par exemple, "0A0B"). Une fois converti de l'hexagone en décimal, "0A0B" correspond à 2571.

Caractères pour naviguer dans le texte :

\. = tout caractère

\w = n'importe quel mot

\# = n'importe quel nombre

\d = chiffres 0-9

\m = caractère A-Z/a-z/0-9

\a = caractère A-Z/a-z

\s12 = sauter 12 caractères
- Par exemple, \s12 saute 12 caractères lorsque les données reçues sont des chaînes de texte.

- Si les données reçues sont une chaîne hexagonale représentée par des séquences d'échappement (par exemple, \xFE\xFF\x12\xA0\xB0\xC1\xD2\xE3\xF4\x11\x16\x17), alors \s12 sautera 12 octets hexagonaux. Dans ce cas, il passera derrière \x16, sautant ainsi un total de 48 caractères de texte (puisque chaque octet hexadécimal est représenté par quatre caractères de texte).

\iText\i = sauter derrière le "Texte"

Caractères spéciaux :

\x = Nombre hexadécimal (par exemple 0x09)

\\ = Slash

\t = Tab (0x09)

\b = Espace (0x02) ou Tab (0x09)

<b>\r</b> = Retour (0x0d)

<b>\n</b> = Nouvelle ligne (0x0a)

Dans l'exemple suivant, nous voulons extraire le prix actuel du gaz naturel :

Comme le texte "Natural Gas" est constant, nous pouvons passer à cette position dans le texte. Pour extraire le prix actuel, nous devons sauter l'indication de temps. Il existe plusieurs options pour ce faire :

Variant 1 via \d\a
Avec \d un chiffre et avec \a les caractères isolés peuvent être ignorés :

Variant 2 via \#\w
Avec \# un nombre et avec \w n'importe quel mot peut être ignoré :

Variant 3 via \s8
Puisque dans cet exemple l'heure aura toujours le même nombre de chiffres et de caractères, ils peuvent être ignorés avec \s8: