Combinar variables personalizadas y scripting de mapeador de dispositivos
En esta guía, queremos demostrar un uso real de variables personalizadas y scripting del mapeador de dispositivos. El scripting del mapeador de dispositivos puede resolver problemas del tipo "Tengo una o más señales de entrada de mi rastreador GPS y quiero decidir qué hacer en la salida usando diferentes fórmulas." Los Campos Personalizados nos permiten asignar propiedades no estándar a nuestros activos/unidades como número de registro, tamaño del tanque de combustible, color del activo, etc.
Un caso práctico usando ambas soluciones sería, por ejemplo, si tenemos diferentes tanques de combustible en diferentes activos (activos del mismo tipo pueden tener diferentes tamaños de tanque de combustible). Puedes adaptar las señales de nivel de combustible para mostrar los valores correctos (litros, por ejemplo) para tu flota. La diferencia entre mapeo no lineal es que en este caso usaremos una propiedad del activo y una entrada GPS para generar la salida correcta.
Pasos
- Habilitar las propiedades requeridas para tus aplicaciones
- Ingresar las variables personalizadas
- Asignar la variable personalizada al valor de tu activo
- Ingresar tu script en tu mapeador de dispositivos
- Probar el script
- Resultado
Habilitar las propiedades requeridas para tus aplicaciones
Lee cómo acceder a los privilegios y características de una aplicación y habilita los siguientes dos roles:
_EditDeviceMapperScript
_EditCustomField
Ingresar las Variables Personalizadas
1. Para agregar una Variable Personalizada, necesitamos ir a Activo > Gestionar Campos Personalizados
2. Agrega una nueva variable del tipo Lista llamada Tanques_de_Combustible y agrega los tres diferentes tipos y sus valores:
Nota: Para agregar más elementos a la lista, simplemente presiona enter después del último campo.
3. Refresca el navegador para que los cambios se apliquen
Asignar la variable personalizada a tus activos
1. Para agregar la nueva propiedad a nuestros activos, necesitamos editar el Tipo de Usuario para agregar el campo personalizado:
La nueva propiedad se encuentra bajo Detalles de las propiedades del usuario.
2. Marca ambas casillas para establecer este parámetro como obligatorio para futuras nuevas unidades.
3. Define el valor para cada activo editando el activo.
Ingresar tu script en tu mapeador de dispositivos
1. Ve a Menú Principal > Admin > Mapeador de Dispositivos y selecciona el rastreador correcto para tus activos. La señal de entrada que queremos modificar con nuestro script necesita ser mapeada aquí.
En el ejemplo, la señal de entrada será el nivel de combustible que da el número de voltios (reflejando la capacidad del tanque para el activo dado).
2. Lea la Guía de Script del Mapeador de Dispositivos para habilitar el script del mapeador de dispositivos
3. Seleccione la Señal de salida (en este caso, es la misma que la entrada porque necesitamos transformar los voltios a litros dependiendo del tipo de tanque).
3. Presione en Abrir Editor de Scripts
Algunos consejos útiles para tu código Javascript:
- Para obtener una variable del Mapeador de Dispositivos use fields.get(‘device_mapper_variableName’, default_value)
- Para obtener una variable de los Campos Personalizados use user.getCustomFieldValue(‘custom_field_label’)
- Para registrar entradas que te permitan depurar tus códigos use log(‘variable_name’)
El siguiente script es Javascript y es solo un ejemplo de la transformación que puedes hacer a tu entrada. Necesitas tener algún conocimiento de Javascript o programación para crear tu script.
var Fuel_level_voltage = fields.get( 'Fuel level' , 0);
var Tank_type = usuario .getCustomFieldValue( 'Fuel_Tanks' );
var tank_liters = 0; log( 'fuel level voltage: ' + Fuel_level_voltage);
log( 'tank type: ' + Tank_type);
if (Fuel_level_voltage == 1.424 ){ tank_liters = 0;
log( 'first IF' );
return tank_liters;
} else if (Fuel_level_voltage > 1.424 && Fuel_level_voltage < 6.192){
if(Tank_type == 30){
log( 'second IF type 30 liters' );
tank_liters = Fuel_level_voltage * 30;
return tank_liters;
} else if (Tank_type == 50){
log( 'second IF type 50' );
tank_liters = Fuel_level_voltage * 50;
return tank_liters;
} else if (Tank_type == 100){
log( 'second IF type 100' );
tank_liters = Fuel_level_voltage * 100;
return tank_liters;
} else return tank_liters; // default for second if
} else return null ; // default
|
Probando el script
Tienes algunas herramientas en el editor de scripts para probar tus scripts. Puedes modificar los valores de las variables del Device Mapper y usar los registros en el código para verificar si el resultado es correcto
Resultado
Finalmente puedes ver los cambios en tus puntos de seguimiento para un activo dado cuando se recibe el nivel de combustible de la señal. Y con la creación de scripts del device mapper, puedes tener estos valores convertidos, por ejemplo, a litros (usando el tipo de tanque definido en las propiedades del activo).
Siempre puedes hacer tus pruebas dentro del Editor de Scripts o si deseas enviar señales a la plataforma para ver la respuesta, también puedes usar el simulador de activos.