Publicado en: Jan 12, 2021

Ahora, AWS IoT SiteWise es compatible con el uso de métodos en expresiones de fórmula a través de sintaxis de llamada de función uniforme (UFCS).

Anteriormente, los usuarios podían definir expresiones para transformaciones y métricas en AWS IoT SiteWise mediante funciones anidadas, pero, a partir de hoy, también pueden hacerlo al encadenar llamadas de método con la función UFCS. Esta sintaxis ayuda con la lectura y la trazabilidad de fórmulas complejas para métricas y transformaciones en el modelo de activos de AWS IoT SiteWise. UFCS puede utilizarse con todos los tipos de funciones actuales compatibles con AWS IoT SiteWise (funciones comunes, de comparación, condicionales, de cadenas, de agregación y temporales). Además, UFCS se puede usar con la interfaz de línea de comandos (CLI) o la consola de AWS IoT SiteWise. Para obtener más información sobre UFCS y los tipos de funciones, visite expresiones de fórmulas de AWS IoT SiteWise

La función UFCS permite a los usuarios referenciar cualquier función f(n) disponible actualmente en AWS IoT SiteWise como n.f() a través de llamadas de método. De manera más general, los usuarios pueden sustituir funciones f(a,b,c...) mediante la sintaxis para encadenamiento de métodos como a.f(b,c,...), donde “a” puede ser una variable o una función a=f1(x) en sí misma. Como un caso de uso de cliente simple, si un usuario quiere definir una métrica que devuelve el registro de una función coseno, log(cos(a)), ahora pueden expresarla como cos(a).log() mediante UFCS. AWS IoT SiteWise también es compatible con el encadenamiento de funciones if-else mediante UFCS, para facilitar la definición y seguimiento de varios niveles de lógico condicional anidada. Como formato genérico, una instrucción if anidada escrita anteriormente como:

if(condition1, on_true_1, if(condition2, on_true_2, on_false_2))

ahora también puede escribirse mediante anidamiento if-elif en formato UFCS de la siguiente manera:

if(condition1, on_true_1). elif(condition2, on_true_2, on_false_2)

Por ejemplo, si el operador de una instalación de energía renovable quería poner a prueba si la potencia de salida de un panel solar está dentro de un determinado rango (entre 1 y 4 kilovatios), dispone de flexibilidad para codificarlo de dos maneras: efficiency= if(power.lt(1000),0).elif(power.gt(4000),0,1) mediante UFCS o if(lt(power, 1000), 0, if(gt(power,4000), 0,1)) si prefiere utilizar funciones anidadas. Además, se puede utilizar UFCS para encadenamiento de métodos con operaciones de cadenas. Por ejemplo, un usuario puede detectar el estado del equipo en un mensaje de JSON como status= contains(lower(jp(message, ‘$.status’)),‘fail’) si utiliza funciones anidadas, o status= message.jp(‘$.status’).lower().contains(‘fail’) si prefiere usar la sintaxis UFCS. De este modo, logra una mejor trazabilidad y soluciona los problemas con más facilidad en cálculos con varias funciones. 

AWS IoT SiteWise es un servicio administrado para la recopilación, el almacenamiento, la organización y el monitoreo de los datos del equipo industrial a escala. Para obtener más información, visite la página web de AWS IoT SiteWise o la guía del desarrollador. Para consultar una lista de las regiones compatibles con AWS IoT SiteWise, visite Regiones de AWS