Skip to content

Conversión de parámetros

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.

{width="0.3333333333333333in" height="0.3333333333333333in"}

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.

{width="0.2916666666666667in" height="0.2916666666666667in"}

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 Fórmula de Explicación numérico del conversión al
valor original sistema decimal


Binario text_param:2 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 text_param:8 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 text_param:10 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 text_param:16 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.

{width="0.2916666666666667in" height="0.2916666666666667in"}

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 | Ejemplo del | | | | del valor | valor después | | | | antes | | +======================================+================================================================+============+==================+ | ltrim(param) o ltrim(param,'0') | Elimina todos los ceros a la izquierda. Por defecto, se | 0000A | A | | | elimina el '0', pero también se puede aplicar a otros | | | | | caracteres.\ | | | | | El carácter se especifica entre comillas simples. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+ | rtrim(param) o rtrim(param,'0') | Elimina todos los ceros a la derecha. Por defecto, se elimina | A0000 | A | | | el '0', pero también se puede aplicar a otros caracteres.\ | | | | | El carácter se especifica entre comillas simples. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+ | 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 | C1B2A | 2A1B0C | | | tiene un número impar de caracteres, primero se le agrega un | | | | | cero al principio a la izquierda, y luego la cadena se | | | | | invierte. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+ | lfill(param,5,'0') | Añade el carácter especificado (tercer parámetro de la | A | 0000A | | | 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. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+ | rfill(param,5,'0') | Añade el carácter especificado (tercer parámetro de la | A | A0000 | | | 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. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+ | sequence(param,2,3,5,4,1,0,1414) | Cambia la secuencia de los caracteres. Los caracteres se | 0C1B2A | 1BA2C00 | | | 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. | | | | | | | | | | {width="0.3333333333333333in" | | | | | height="0.3333333333333333in"}Los índices se cuentan de | | | | | izquierda a derecha, comenzando desde 0. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+ | 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.\ | 0C1B2AD35E | 0C1B2AD35EC1B200 | | | 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. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+ | substr(param,1,4) | Extrae caracteres específicos del valor del parámetro. Los | 0C1B2AD35E | C1B2 | | | caracteres extraídos forman una subcadena.\ | | | | | Hay 3 parámetros obligatorios para la función: | | | | | | | | | | - Cadena fuente. | | | | | | | | | | - Índice (número ordinal) desde el cual comienza la subcadena | | | | | buscada. | | | | | | | | | | - Longitud de la subcadena buscada, es decir, cuántos | | | | | caracteres se deben extraer. | | | | | | | | | | {width="0.3333333333333333in" | | | | | height="0.3333333333333333in"}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. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+ | len(param) | Devuelve un número que especifica la cantidad de caracteres en | 0C1B2AD35E | 10 | | | 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. | | | +--------------------------------------+----------------------------------------------------------------+------------+------------------+

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).

{width="0.2916666666666667in" height="0.2916666666666667in"}

Si uno de los elementos en una expresión con una operación matemática no es numérico, no se obtendrá resultado.