Los valores se pueden leer de un texto con este bloque. El patrón de búsqueda correspondiente se define en las propiedades.
Contenido
Entradas↑
Abreviatura | Resumen | Descripción |
---|---|---|
T | Text Input | Comando de texto. |
Salidas↑
Abreviatura | Resumen | Descripción | Rango de valores |
---|---|---|---|
Lv | Last extracted value | Último valor extraído | ∞ |
Propiedades↑
Resumen | Descripción | Valor por defecto |
---|---|---|
Detección de comando | Carácter para extraer un valor: \v = Valor, \1 = Byte interpretado como 1er byte del valor de salida (\2, \3, ...), \h = Valor interpretado como número hexadecimal Carácter para navegar por el texto: \. = Cualquier signo, \w = Cualquier palabra, \# = Cualquier número, \d = Dígito 0-9, \m = Caracteres A-Z/a-z/0-9, \a = Caracteres A-Z/a-z, \s12 = Saltar 12 caracteres, \iTexto\i = Saltar a 'Texto' Caracteres especiales: \x = Número hexadecimal (por ejemplo, 0x09), \\ = Barra oblicua, \t = Tabulador (0x09), \b = Espacio (0x02) o Tabulador (0x09), \r = Retorno de carro (0x0d), \n = Retorno de línea (0x0a) |
- |
Interpretación de los valores con signo | Si esta activado, los valores \1, \2, \3, etc. se utilizan con signo algebraico en el reconocimiento de comandos (Entero con Signo). | - |
Ejemplo de programación↑
El reconocimiento de comandos puede utilizarse para navegar en un texto o texto fuente y para recuperar valores.
Caracteres utilizados para extraer un valor:
\v = valor numérico
\1 = valor del byte interpretado como el primer byte de la salida (\2, \3, ...)
- Si los datos recibidos se interpretan como hexadecimal (por ejemplo, "\x0A"), se obtiene el equivalente decimal (10 en este ejemplo). Este método también funciona para múltiples bytes hexadecimales (por ejemplo, "\x0A\x0B"). Cuando se combinan, estos bytes forman el entero de 32 bits 0x0A0B, y \2\1 devuelve 2571 en decimal. El mismo valor, cuando se extrae con \1, resulta en 10 en decimal.
- Si los datos recibidos se interpretan como texto, cada byte representa un carácter ASCII. Por ejemplo, "Loxone" corresponde al carácter de avance de línea con un código ASCII de 76.
- Los datos pueden utilizarse como un entero con signo considerando el orden correcto de bytes y aplicando la extensión de signo si es necesario.
\h = valor interpretado como número hexadecimal
- Si los datos recibidos son una cadena hexadecimal representada como texto (por ejemplo, "0A"), se puede convertir a su equivalente decimal (10 en este ejemplo).
- Este método también funciona para múltiples datos hexadecimales (por ejemplo, "0A0B"). Cuando se convierte de hexadecimal a decimal, "0A0B" corresponde a 2571.
Caracteres para navegar a través del texto:
\. = cualquier carácter
\w = cualquier palabra
\# = cualquier número
\d = dígitos 0-9
\m = carácter A-Z/a-z/0-9
\a = carácter A-Z/a-z
\s12 = omitir 12 caracteres
- Por ejemplo, \s12 omite 12 caracteres cuando los datos recibidos son una cadena de texto.
- Si los datos recibidos son una cadena hexadecimal representada con secuencias de escape (por ejemplo, \xFE\xFF\x00\x12\xA0\xB0\xC1\xD2\xE3\xF4\x11\x16\x17), entonces \s12 omitirá 12 bytes hexadecimales. En este caso, saltará detrás de \x16, omitiendo efectivamente un total de 48 caracteres de texto (ya que cada byte hexadecimal está representado por cuatro caracteres de texto).
\iTexto\i = salto detrás de "Texto"
Caracteres especiales:
\x = Número hexadecimal (por ejemplo, 0x09)
\ = Barra
\t = Tabulador (0x09)
\b = Espacio (0x02) o Tabulación (0x09)
<b>\r</b> = Retorno (0x0d)
<b>\n</b> = Nueva línea (0x0a)
En el siguiente ejemplo, siempre queremos extraer el precio actual del gas natural:
Dado que el texto "Gas Natural" es constante, podemos saltar a esta posición en el texto. Para extraer el precio actual, tenemos que omitir la indicación de tiempo. Hay varias opciones para hacerlo:
Variante 1 via \d\a
Con \d dígitos individuales y con \a caracteres individuales se pueden omitir:
Variante 2 a través de \#\w
Con \# un número y con \w se puede omitir cualquier palabra:
Variante 3 vía \s8
Dado que en este ejemplo la hora siempre tendrá la misma cantidad de dígitos y caracteres, se pueden omitir con \s8: