Conversión de parámetros con signos
Se supone, que los datos recibidos por Wialon en el formato de números enteros de 2 y 4 bytes son sin signos (unsigned). En otras palabras, todos los valores entrantes (ambos positivos y negativos) se muestran como sin signos, es decir, positivos.
En caso si su dispositivo envía valores con signos (signed) en algún parámetro (puede ser, por ejemplo, el parámetro de temperatura), hay que crear un sensor a base de este parámetro y configurar la tabla de cálculo debidamente.
Análisis del parámetro
Abre la pestaña Mensajes y solicite mensajes por un intervalo. Active la opción Mostrar parámetros como datos sin procesar. Encuentre en la columna Parámetros el que le interesa y analice los datos que vienen en este parámetro. En nuestro caso será el parámetro de temperatura param24.
Se ve, que cuando la temperatura disminuye y cruce el límite de 0 grados, aparecen cifras inverosímilmente grandes en vez de negativas.
Determinación del valor máximo
Primeramente hay que determinar el límite máximo de estos números. Para hacerlo, tome cualquier número inverosímilmente grande de los valores del parámetro e introdúzcalo en la calculadora en el modo decimal (Dec). Luego cambie por el modo hexadecimal (Hex).
Cuente la cantidad de dígitos en el número aparecido. Los valores posibles son 2, 4, 8. Si hay menos, se redondean hacia el valor mayor (por ejemplo, 5 se redondea hasta 8). En nuestro caso obtenemos 8 dígitos.
Ahora hay que introducir en el modo Hex de la calculadora la letra F tantas veces, cuantos dígitos hemos obtenido (después de haber redondeado). Cambie el modo por Dec. El resultado es el valor máximo posible. Hay que recordar o apuntarlo.
Tabla de cálculo del sensor
Abra el diálogo de propiedades de unidad y crea un sensor a base de este parámetro. Ahora hay que crear una tabla de cálculo para este sensor. Para hacerlo, abra la pestaña Tabla de cálculo de las propiedades del sensor.
Hemos aclarado que el intervalo de los valores posibles es de 0 a 4294967295. De estos valores de 0 a la mitad del número máximo son valores positivos y de la mitad al final — valores negativos (donde el número máximo es el dígito menor negativo). Dividimos el valor máximo en 2: 4294967295 : 2 = 2147483647,5. Esto quiere decir que los valores positivos van a ser de 0 a 2147483647, y los negativos — de 2147483648 a 4294967295.
En la tabla de cálculo Х es el valor sin procesar que se envía por el parámetro, a es el coeficiente, b es la corrección necesaria. Todo esto se necesita para obtener un Y, o sea, el valor real de temperatura.
Puede enterarse de si se utiliza un coeficiente (a) para dado parámetro de la guía del usuario del dispositivo. En nuestro caso el coeficiente es 0.1, es decir, si el dispositivo envía un valor del parámetro 6, la temperatura real será 0.6 grados.
Para el primer segmento no se necesita una corrección por b (0) pero se necesita para el segundo, dado que los valores van a la inversa (el número máximo corresponde al valor mínimo del módulo de temperatura). Para calcular una desviación por b hay que agregar al número máximo 1 (puesto que ya tenemos 0) y multiplicarlo por el coeficiente. Obtenemos: (4294967295+1)х0.1 = 429496729.6. Habrá que restar el valor obtenido, por esto se pone en la tabla como un número negativo.
Ahora se puede introducir ambos intervalos (para números positivos y negativos) en la tabla de cálculo.
Se puede realizar los cálculos en el modo Hex. Para esto la letra F se introduce tantas veces, cuantos dígitos hemos recibido (8 en nuestro caso) y se divide en 2. Después el modo se cambia por el decimal, Dec y se recuerda o se guarda el valor obtenido. Será el valor máximo positivo.
Análisis del resultado
Se puede analizar la tabla obtenida por medio de abrir la pestaña Tabla de cálculo y apretar el botón Actualizar.
Además, se puede apreciar la configuración del sensor en la pestaña Mensajes. Solicite mensajes por el mismo intervalo temporal y escoja esta vez Mostrar parámetros como valores de sensores.