Publicado: Jan 12, 2021

Agora, o AWS IoT SiteWise oferece suporte ao uso de métodos em expressões de fórmula por meio da Uniform Function Call Syntax (UFCS).

Antes, os usuários podiam definir expressões para transformações e métricas no AWS IoT SiteWise usando funções aninhadas. Porém, a partir de hoje, eles também podem fazer isso encadeando chamadas de métodos com o recurso UFCS. Essa sintaxe ajuda na legibilidade e rastreabilidade de fórmulas complexas para métricas e transformações no modelo de ativos do AWS IoT SiteWise. A UFCS pode ser usada com todos os tipos de função atuais com suporte no AWS IoT SiteWise: funções comuns, comparativas, condicionais, de string, agregação e temporais. A UFCS pode ser usada no console do AWS IoT SiteWise ou na Interface de Linhas de Comando (CLI). Para saber mais sobre a UFCS e tipos de função, visite Expressões de fórmula do AWS IoT SiteWise

O recurso UFCS permite que os usuários façam referência a qualquer função disponível no AWS IoT SiteWise hoje f(n) como n.f() usando chamadas de método. Mais geralmente, os usuários podem substituir funções f(a,b,c...) usando a sintaxe para encadeamento de métodos como a.f(b,c..) em que 'a' pode ser uma variável ou em si uma função a= f1(x). Como um exemplo de caso de uso do cliente, se um usuário quiser definir uma métrica que retorna o log de uma função de cosseno, log(cos(a)), ele agora pode expressá-la como cos(a).log() usando a UFCS. O AWS IoT SiteWise também oferece suporte ao encadeamento de funções if-else usando a UFCS, facilitando a definição e o rastreamento de vários níveis de lógica condicional aninhada. Como um formato genérico, uma instrução if aninhada anteriormente escrita como:

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

agora também pode ser escrita usando o aninhamento if-elif no formato UFCS como:

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

Por exemplo, se um operador de instalações de energia renovável quiser testar se a potência de um painel solar está dentro de um determinado intervalo (1 a 4 quilowatt), ele tem a flexibilidade para codificá-lo de duas maneiras: efficiency= if(power.lt(1000),0).elif(power.gt(4000),0,1) using UFCS or if(lt(power, 1000), 0, if(gt(power,4000), 0,1)) usando funções aninhadas. Além disso, a UFCS pode ser usada para encadeamento de métodos com operações de string. Por exemplo, um usuário pode detectar o status do equipamento em uma mensagem JSON como status= contains(lower(jp(message, ‘$.status’)),‘fail’) usando funções aninhadas ou status= message.jp(‘$.status’).lower().contains(‘fail’) usando a sintaxe UFCS. Isso permite melhor rastreabilidade e solução de problemas em cálculos com várias funções. 

O AWS IoT SiteWise é um serviço gerenciado para coletar, armazenar, organizar e monitorar dados de equipamentos industriais em grande escala. Para saber mais, visite o site do AWS IoT SiteWise ou o guia do desenvolvedor. Para obter uma lista das regiões compatíveis com o AWS IoT SiteWise, visite Regiões da AWS