cloud (servidor)
cloud
Função global utilizada para realizar comunicação com o servidor IoT.
As tags de telemetria são definidas de forma numérica, temos 4096 endereços para enviar telemetria personalizadas via mhoJS. Essa quantidade não inclui outras tags de telemetria padronizadas no equipamento, por exemplo: DIs, DOs, AIs, MBs, MIs, pulsos, etc. Essa quantidade abrange apenas as tags de telemetria definidas no mhoJS.
Como o dado chega ao servidor
Dentro da função deve ser definida qual a memória de telemetria a ser utilizada, sendo esse valor de 1 a 4096. O equipamento enviará para o servidor a tag CTX, onde X é o número da memória de telemetria utilizada e CT é a categoria de telemetria utilizada que significa Custom Telemetry.
Exemplo: Enviando uma telemetria utilizando a memória 1, o servidor irá receber uma tag de telemetria CT1.
Formas de Envio
Existem duas maneiras de enviar dados, uma associando a um uma 'tag' binária para controle de envios e outra disparando imediatamente a telemetria quando a função for chamada.
A tag binária de controle não está disponível para as funções cloud.send_srt e ìnsight. O disparo imediato não está disponível para a função insight.
Tag binária de controle
Quando o envio acontecer utilizando a tag binária de controle, para o envio acontecer novamente o usuário deve chamar a função que limpa a tag binária de controle cloud.clear(key);. Dessa forma, a telemetria pode ser chamada repetidamente no loop sem problemas, já que o valor será enviado novamente somente quando acontecer a limpeza da tag binária. *Durante a documentação a seguir a tag binária de controle será indicada nos argumentos das funções como controlBin e por padrão tem seu valor como false (quando não inserido).
Disparo imediato
Quando o envio acontecer utilizando o disparo automático, o programa deve ser feito de forma que envios repetidos não aconteçam, seja por estratégias de lógica ou temporizadores. Caso a função seja chamada repetidamente no loop a telemetria será enviada repetidamente, ocasionando em um alto consumo de banco de dados e dados trafegados.
Status
cloud.connected
Retorna se o equipamento está conectado ao servidor IoT.
cloud.connected();
Resposta: true se o equipamento estiver conectado e false se o equipamento estiver desconectado.
cloud.remotecontrol
Retorna se o equipamento está com o modo remoto ativo (variável padrão).
cloud.remotecontrol();
Resposta: true se o equipamento estiver no modo remoto e false se o equipamento estiver no modo local.
cloud.setremotecontrol
Seta valor da variável de controle remoto/local.
cloud.setremotecontrol(status);
true para ativar modo remoto e false para ativar modo local.
Telemetria
cloud.send_int
Envia um valor inteiro (de 32 bits: de −2147483648 até 2147483647) como telemetria para o servidor IoT.
cloud.send_int(key, value, ts=now, controlBin=false);
Resposta: true se o dado foi enviado/armazenado com sucesso ou false se o envio falhou.
Exemplo
Enviar uma telemetria de um numero inteiro na memória 1 CT1 para identificar a etapa de um processo utilizado na lógica de programação. O timestamp deve ser o momento atual.
cloud.send_int(1, 5);
Resposta: true se o dado foi enviado com sucesso ou false se o envio falhou.
Agora nessa mesma situação deve ser enviado um timestamp antigo salvo na memoria...
cloud.send_int(1, 5, 1673032387);
Resposta: true se o dado foi enviado/armazenado com sucesso ou false se o envio falhou.
cloud.send_uint
Envia um valor inteiro positivo (de 32 bits: de 0 a 4294967295) como telemetria para o servidor IoT.
cloud.send_uint(key, value, ts=now, controlBin=false);
Resposta: true se o dado foi enviado/armazenado com sucesso ou false se o envio falhou.
Exemplo
Enviar uma telemetria de um numero inteiro na memória 2 CT2 para identificar a etapa de um processo utilizado na lógica de programação. O timestamp deve ser o momento atual.
cloud.send_uint(2, 5);
Resposta: true se o dado foi enviado/armazenado com sucesso ou false se o envio falhou.
Agora nessa mesma situação deve ser enviado um timestamp antigo salvo na memoria...
cloud.send_uint(2, 5, 1673032387);
Resposta: true se o dado foi enviado/armazenado com sucesso ou false se o envio falhou.
cloud.send_double
Envia um valor de precisão (de 64 bits: de -7.2E+75 a 7.2E+75) como telemetria para o servidor IoT.
Por padrão a memória retentiva do JS vem configurada para valores de até 32 bits, caso precise salvar esse valor na memória retentiva em eventos de desconexão é necessário definir a memória JS para 64 bits, veja a função setTelemetrySize.
cloud.send_double(key, value, ts=now, controlBin=false);
Resposta: true se o dado foi enviado/armazenado com sucesso ou false se o envio falhou.
Exemplo
Enviar uma telemetria de um numero double na memória 3 CT3 para identificar a etapa de um processo utilizado na lógica de programação. O timestamp deve ser o momento atual.
cloud.send_double(3, 5.21);
Resposta: true se o dado foi enviado/armazenado com sucesso ou false se o envio falhou.
Agora nessa mesma situação deve ser enviado um timestamp antigo salvo na memoria...
cloud.send_double(3, 5.21, 1673032387);
Resposta: true se o dado foi enviado/armazenado com sucesso ou false se o envio falhou.
cloud.send_bin
Envia um valor binário (true ou false) como telemetria para o servidor IoT.
cloud.send_bin(key, value, ts=now, controlBin=false);