Se puede aplicar conversión a los parámetros recibidos directamente del dispositivo. Para ello, hay que indicar la operación de conversión en el campo Parámetro de las propiedades del sensor. Los usos de esta operación se describen a continuación.
Control de parámetros bit a bit
El control bit a bit le permite controlar no todo el parámetro en general, sino un bit específico. Esta operación se utiliza si el dispositivo muestra diferentes datos en un parámetro: el primer bit puede corresponder al estado de alarma (encendido/apagado), el segundo al estado de la puerta del conductor (abierta/cerrada), el tercero al estado de los faros, etc.
En el sistema de rastreo, la numeración de bits empieza por 1. Para controlar, por ejemplo, el tercer bit del parámetro param199, después de su nombre hay que poner dos puntos y el número del bit:
param199:3
De esta manera, a base de un parámetro se puede crear varios sensores para controlar diferentes bits.
Los parámetros del tipo double durante el control bit a bit se convierten automáticamente al tipo int, después de lo cual se extrae el bit.
El control bit a bit puede ser aplicado a los valores de 64 bits de parámetros, pero tenga en cuenta la siguiente particularidad. Cuando se muestra un número con el bit 64 rellenado, este bit se interpreta como el signo menos para el número contenido en los demás 63 bits. De este modo, los valores del parámetro mayores de (2^63 - 1) = 9223372036854775807 se muestran como negativos.
Conversión de parámetros de texto
Se puede convertir los valores de parámetros textuales a numéricos. Por ejemplo, si para un sensor está indicado el parámetro en forma de expresión que contiene un parámetro textual, es necesario convertir el valor de texto a un entero decimal para obtener el resultado correcto. Para hacerlo, utilice el operador : (dos puntos) después del nombre del parámetro y especifique el sistema numérico del que se debe convertir el valor original a decimal. Se soporta la conversión de los sistemas binario, octal, decimal y hexadecimal.
Sistema numérico del valor original | Fórmula de conversión al sistema decimal | Explicación |
Binario |
| Utilice esta fórmula para tratar los valores de los parámetros de texto como binarios y convertirlos a decimales. Por ejemplo, si el valor original es 100, el valor final es 4. |
Octal |
| Utilice esta fórmula para tratar los valores de los parámetros de texto como octales y convertirlos a decimales. Por ejemplo, si el valor original es 100, el valor final es 64. |
Decimal |
| Utilice esta fórmula para que los valores de un parámetro de texto se traten como decimales y se muestren como tales. Por ejemplo, si el valor original es 100, el valor final también será 100. |
Hexadecimal |
| Utilice esta fórmula para tratar los valores de los parámetros de texto como hexadecimales y convertirlos a decimales. Por ejemplo, si el valor original es 100, el valor final es 256. |
Determinación del número del día en el año
Se puede convertir la hora UNIX del mensaje al número del día del año con relación al 1 de enero. Para hacerlo, hay que crear un sensor personalizado con el parámetro time:d.
Por ejemplo, para las 11:00:00 (UTC) del 28 de marzo de 2017, la hora UNIX es 1490698800. Por lo tanto,
time = 1490698800 time:d = 87
Conversión de parámetros de sensores de conductores, remolques y pasajeros
Para los sensores de los tipos Asignación de conductor, Asignación de remolque y Sensor de pasajeros está disponible la conversión de valores de parámetros, ya sean de texto o numéricos. Para llevar a cabo esta conversión, en el campo Parámetro de las propiedades del sensor, debe especificar una expresión que puede incluir funciones y operaciones matemáticas.
Las funciones solo pueden aplicarse a valores de texto, mientras que las operaciones matemáticas se aplican exclusivamente a valores numéricos.
Los valores convertidos se utilizan:
- al activar notificaciones de asignación de conductores, remolques y pasajeros;
- en la descripción emergente e información ampliada de la unidad;
- en mensajes de datos;
- en informes, por ejemplo, en la tabla Seguimiento del sensor en la columna Valor formateado.
Funciones
Las funciones solo se aplican a valores de texto de parámetros. La siguiente tabla las describe, donde param es el nombre del parámetro en el que el dispositivo envía el valor de texto.
Función | Descripción | Ejemplo del valor antes | Ejemplo del valor después |
---|---|---|---|
ltrim(param) o ltrim(param,'0') | Elimina todos los ceros a la izquierda. Por defecto, se elimina el ‘0’, pero también se puede aplicar a otros caracteres. El carácter se especifica entre comillas simples. | 0000A | A |
rtrim(param) o rtrim(param,'0') | Elimina todos los ceros a la derecha. Por defecto, se elimina el ‘0’, pero también se puede aplicar a otros caracteres. El carácter se especifica entre comillas simples. | A0000 | A |
lower(param) | Convierte los caracteres a minúsculas. | A | a |
upper(param) | Convierte los caracteres a mayúsculas. | a | A |
reverse(param) | Invierte el orden de los caracteres. | A1234 | 4321A |
reverseb(param) | Invierte el orden de los caracteres por dos. Si una cadena tiene un número impar de caracteres, primero se le agrega un cero al principio a la izquierda, y luego la cadena se invierte. | C1B2A | 2A1B0C |
lfill(param,5,'0') | Añade el carácter especificado (tercer parámetro de la función) a la izquierda hasta que la cadena contenga el número requerido de caracteres (segundo parámetro de la función). El carácter a añadir se especifica entre comillas simples. | A | 0000A |
rfill(param,5,'0') | Añade el carácter especificado (tercer parámetro de la función) a la derecha hasta que la cadena contenga el número requerido de caracteres (segundo parámetro de la función). El carácter a añadir se especifica entre comillas simples. | A | A0000 |
sequence(param,2,3,5,4,1,0,1414) | Cambia la secuencia de los caracteres. Los caracteres se organizan en el orden especificado después del nombre del parámetro. Si se especifica un índice (número ordinal) que no existe, se coloca 0 en lugar de ese carácter. Los índices se cuentan de izquierda a derecha, comenzando desde 0. | 0C1B2A | 1BA2C00 |
hex(param) | Convierte del sistema decimal al sistema hexadecimal. | 10 | a |
dec(param) | Convierte del sistema hexadecimal al sistema decimal. | 00A | 10 |
hextoascii(param) | Convierte del sistema hexadecimal a ASCII. | 3A29 | :) |
concat(param,substr(param,1,4),'00') | Une cadenas. Se pueden unir más de dos cadenas. En el ejemplo, se utiliza junto con la función substr (ver abajo), es decir, una parte (subcadena) extraída de la cadena del parámetro se une a la misma cadena del parámetro. También se agregan los caracteres '00'. Los caracteres se especifican entre comillas simples. | 0C1B2AD35E | 0C1B2AD35EC1B200 |
substr(param,1,4) | Extrae caracteres específicos del valor del parámetro. Los caracteres extraídos forman una subcadena. Hay 3 parámetros obligatorios para la función:
Los índices se cuentan de izquierda a derecha, comenzando desde 0. La subcadena extraída se puede combinar con otra cadena utilizando la función concat, como en el ejemplo anterior. | 0C1B2AD35E | C1B2 |
len(param) | Devuelve un número que especifica la cantidad de caracteres en la cadena. Se puede realizar operaciones matemáticas con el resultado porque es un número. Por ejemplo, la expresión substr(param, len(param)-4, 4) utiliza la expresión len(param)-4 como un índice. Significa que la subcadena se contará desde el cuarto carácter desde el final. | 0C1B2AD35E | 10 |
Operaciones matemáticas
Las operaciones matemáticas de suma (+) y resta (-) son posibles solo con valores numéricos. Con valores de texto, son posibles solo después de su conversión en valores numéricos (ver el ejemplo para la función len arriba).
Si uno de los elementos en una expresión con una operación matemática no es numérico, no se obtendrá resultado.