Reconocer Comando

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 Interpretación de los valores con signo (comprobado cuando el valor de \1,\2,\3, es usado con signo [entero con signo]). -




Ejemplo de programación

El reconocimiento de comandos se puede utilizar 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 1er byte de la salida (\2, \3, ...)
-- Si los datos recibidos se interpretan como hexadecimales (por ejemplo, "\x0A"), se obtiene el equivalente decimal (10 en este ejemplo). Este método también funciona para bytes hexadecimales múltiples (por ejemplo, "\x0A\x0B"). Cuando se combinan, estos bytes forman el entero de 32 bits 0x0A0B, y \2\1devuelve 2571 en decimal. El mismo valor, cuando se extrae con \1,da como resultado 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 teniendo en cuenta el orden correcto de los 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"), puede convertirse a su equivalente decimal (10 en este ejemplo).
- Este método también funciona para datos hexadecimales múltiples (por ejemplo, "0A0B"). Convertido de hexadecimal a decimal, "0A0B" corresponde a 2571.

Caracteres para navegar por el texto:
\. = any character
\w = any word
\# = cualquier número
\d = dígitos 0-9
\m = caracteres A-Z/a-z/0-9
\a = caracteres A-Z/a-z
\s12 = saltar 12 caracteres
- Por ejemplo, \s12 salta 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 = saltar a "Texto"

Caracteres especiales:
\x = número hexadecimal (por ejemplo, 0x09))
\r = Retorno (0x0d)
\n = Nueva línea (0x0a)

En el siguiente ejemplo, siempre queremos extraer el precio actual del gas natural:

Dado que la indicación "Gas Natural" es siempre la misma, saltamos a esta posición en el texto. Para omitir la indicación de la hora para recuperar el precio, hay varias posibilidades:

Variant 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: