Hodnoty lze s tímto blokem přečíst z textu. Ve vlastnostech je definován odpovídající vyhledávací vzor.
Obsah
Vstupy↑
Zkratka | Krátký popis | Popis |
---|---|---|
T | Text Input | Text příkazu. |
Výstupy↑
Zkratka | Krátký popis | Popis | Rozsah hodnot |
---|---|---|---|
Lv | Last extracted value | Poslední získaná hodnota | ∞ |
Vlastnosti↑
Krátký popis | Popis | Výchozí hodnota |
---|---|---|
Rozeznání příkazu | Příznaky pro čtení hodnot: \v = Hodnota, \1 = Byte interpretovaný jako 1. byte výstupní hodnoty (\2, \3, ...), \h = Hodnota interpretovaná hexadecimálně Příznaky pro procházení textu: \. = Libovolný znak, \w = Libovolné slovo, \# = Libovolné číslo, \d = Číslice od 0 do 9., \m = Znak A-Z/a-z/0-9, \a = Znak A-Z/a-z, \s12 = Přeskočit 12 znaků, \iText\i = Přeskoč za 'Text' Zvláštní znaky: \x = Hexadecimální číslo (např. 0x09), \\ = Lomítko, \t = Tab (0x09), \b = Mezera (0x02) nebo Tab (0x09), \r = Return/Návrat (0x0d), \n = Nový řádek (0x0a) Příklad: Pro vyčtení hodnoty 15 ze zprávy temp:'15' použijte příkaz temp:'\v |
- |
Signed integer | Pokud je zaškrtnuto, budou při rozpoznávání příkazů hodnoty \1, \2, \3, atd. použity se znaménky (Signed Integer) | - |
Příklad programování↑
Rozeznání příkazů lze použít k navigaci v textu nebo zdrojovém textu a k načítání hodnot.
Znaky použité k extrakci hodnoty:

\v = číselná hodnota

\1 = hodnota byte interpretovaná jako 1. byte výstupu (\2, \3, ...)

- Pokud jsou přijatá data interpretována jako hexadecimální (např. „\x0A“), získá se jejich desítkový ekvivalent (v tomto příkladu 10). Tato metoda funguje také pro více hexadecimálních bytů (např. „\x0A\x0B“). Po spojení těchto bytů vznikne 32bitové celé číslo 0x0A0B a \2\1 vrátí 2571 v desítkové soustavě. Stejná hodnota, extrahovaná pomocí \1, dává v desítkové soustavě hodnotu 10.

- Pokud jsou přijatá data interpretována jako text, představuje každý byte jeden znak ASCII. Například „Loxone“ odpovídá znaku Line Feed s kódem ASCII 76.

- The data can be used as a signed integer by considering the correct byte order and applying sign extension if necessary.

\h = hodnota interpretována jako hexadecimální číslo

- Pokud jsou přijatá data hexadecimálním řetězcem reprezentovaným jako text (např. „0A“), lze je převést na jejich desítkový ekvivalent (v tomto příkladu 10).

- Tato metoda funguje i pro vícenásobná hexadecimální data (např. „0A0B“). Při převodu z hexadecimálního na desítkový systém odpovídá „0A0B“ hodnotě 2571.



Znaky pro navigaci v textu:

\. = jakýkoli znak

\w = jakékoliv slovo

\# = jakékoliv číslo

\d = číslice 0-9

\m = znak A-Z/a-z/0-9

\a = znak A-Z/a-z

\s12 = přeskočit 12 znaků

- Například \s12 přeskočí 12 znaků, pokud jsou přijatá data textovým řetězcem.

- Pokud jsou přijatá data hexadecimálním řetězcem reprezentovaným escape sekvencemi (např. \xFE\xFF\x00\x12\xA0\xB0\xC1\xD2\xE3\xF4\x11\x16\x17), pak \s12 přeskočí 12 hexadecimálních bytů. V tomto případě se přeskočí za \x16, čímž se vynechá celkem 48 textových znaků (protože každý hexabyte je reprezentován čtyřmi textovými znaky).

\iText\i = skok za „Text“



Speciální znaky:

\x = Hexadecimální číslo (např. 0x09)

\\ = Lomítko

\t = Tab (0x09)

\b = Mezera(0x02) nebo Tab (0x09)

\r = Return (0x0d)

\n = Newline (0x0a)
V následujícím příkladu chceme vždy získat aktuální cenu zemního plynu:
Protože označení "Natural Gas" je vždy stejné, přejdeme v textu na tuto pozici. Chcete-li přeskočit časovou indikaci, aby se načetla cena, existují různé možnosti:
Varianta 1 přes \d\a
S \d jednotlivými číslicemi a s \a jednotlivými znaky lze přeskočit:
Varianta 2 přes \#\w
Pomocí \# lze vynechat číslo a pomocí \w libovolné slovo:
Varianta 3 pomocí \s8
Protože v tomto příkladu bude mít čas vždy stejný počet číslic a znaků, lze je pomocí \s8 vynechat: