# 8. Pacotes de Registro e Heartbeat

# 8.1. Pacotes de Registro

O pacote de registro e o pacote de heartbeat são adequados para a comunicação entre o dispositivo e o software em nuvem. A definição do pacote de registro é que quando o software de computador e a interface estabelece uma conexão TCP, o módulo enviará primeiramente uma sequência de códigos para o software, para que o software possa reconhecer com qual interface está se comunicando. Essa sequência de códigos é o pacote de registro. O pacote de registro é muito adequado para monitorar dispositivos IoT (Internet das Coisas), pois o software em nuvem geralmente é executado no servidor de rede pública da Internet e as interfaces são distribuídas em diversos pontos de coleta e monitoramento. É fundamental reconhecer
a interface para que o software em nuvem identifique e realize a comunicação com o dispositivo IoT. 

A interface fornece os seguintes métodos de pacote de múltiplos registros.
<br>
</br>

##### 8.1.1. ENVIO ENDEREÇO MAC NA CONEXÃO


Envio fo endereço MAC na conexão: Este método envia o endereço mac da interface para a nuvem quando a interface está conectado à nuvem. Como o endereço MAC é único, a aplicação pode identificar o dispositivo correspondente. Este método é simples e não requer escrever um pacote de registro para cada dispositivo, por isso é simples e eficaz. Como usar: 

Clique em **More Advanced Settings...** na janela ***Device Settings***, habilite a função **Send MAC when TCP establish** na seção **Function Selection**, clique em OK, em seguida, retorne a janela anteior e clique em **Modify Settings**.
<br>
</br>

[![](https://wiki.electools.com.br/uploads/images/gallery/2022-10/scaled-1680-/image-1666738674370.png)](https://wiki.electools.com.br/uploads/images/gallery/2022-10/image-1666738674370.png)
<br>
</br>

##### 8.1.2. PROTOCOLO REALCOM

O protocolo Realcom é um protocolo que contém um pacote de registro e um pacote de heartbeat, adequado para o vinculo de múltiplas portas seriais virtuais. Os usuários podem utilizar este protocolo para realizar as funções de registro de pacote e heartbeat. O método para habilitar o protocolo Realcom é: na jantela ***Device Settings***, selecione em **Tranfer Protocol** a opção **REAL_COM Protocol**.
<br>
</br>

[![](https://wiki.electools.com.br/uploads/images/gallery/2022-10/scaled-1680-/image-1666738757797.png)](https://wiki.electools.com.br/uploads/images/gallery/2022-10/image-1666738757797.png)
<br>
</br>


O protocolo Realcom possui as seguintes características:

1. Depois que o dispositivo estabelece uma conexão TCP com a nuvem, o dispositivo automaticamente envia um pacote de registro hexadecimal FA 07 13 02 FA 02 MAC[5] MAC[4] MAC[3] MAC[2] MAC[1] MAC[0] FA FF. Entre eles, MAC[5]~MAC[0] é o endereço MAC do dispositivo. 

2. Quando o dispositivo envia dados para a rede, ele adiciona automaticamente o prefixo decabeçalho de 3 bytes FA 01 01. 

3. A cada intervalo de tempo de atividade **Keep Alive Time**, o dispositivo envia um pacote de heartbeat 00 de 1 byte para o programa. O protocolo Realcom pode ser usado como registro de pacote dos dispositivos porque contém o endereço MAC no registro de pacote. No entanto, devido ao seu formato fixo, apenas o software em nuvem pode projetar o protocolo Realcom para ser compatível com este método.
<br>
</br>

##### 8.1.3. REGISTRO DE PACOTE CUSTOMIZADO

O método de registro de pacote personalizado o usuário pode preencher um formato de registro de pacoter arbitrário. O método é: na interface de configuração do dispositivo, a configuração é a seguinte:
<br>
</br>

[![](https://wiki.electools.com.br/uploads/images/gallery/2022-10/scaled-1680-/image-1666739076773.png)](https://wiki.electools.com.br/uploads/images/gallery/2022-10/image-1666739076773.png)
<br>
</br>

A diferença com o protocolo Realcom é que o pacote de registro é habilitado aqui e as informações do pacote de registro, como 31 32 33 34, são preenchidas. Observe que o formato é hexadecimal, ou seja, os dados reais enviados são a string 1234. Se precisar exibir uma string, clique em
a opção "ASCII" ao lado. Quando o dispositivo está conectado ao software em nuvem, ele pode enviar automaticamente o pacote de registro hexadecimal de 31 32 33 34. Este método de pacote de registro é mais flexível, permitindo que o dispositivo se adapte ao formato de pacote de registro em nuvem existente; no entanto, não há caracter curinga como MAC no registro de pacote e diferentes registro de pacote precisam ser configurados separadamente para cada dispositivo, o que é mais complicado. Os dois métodos acima de envio de endereço MAC e Relcom têm a mesma configuração para cada dispositivo, mas o pacote de registro é naturalmente diferente devido a diferentes MACs. O comprimento do registro de pacote mais longo é de 33 bytes. Este método suporta registro de pacotes e heartbeat no modo UDP.
<br>
</br>

##### 8.1.4. ARQUIVO DE CONFIGURAÇÃO

A interface suporta escrever um arquivo de configuração, de modo a realizar o pacote de registro definido pelo usuário, e pode usar caracter curinga de endereço MAC, o que pode resolver o problema de escrever personalizado pacote de registro para cada dispositivo, e não há limite para a duração do pacote de registro.

# 8.2. Pacotes de Heartbeat

O pacote de heartbeat é utilizado principalmente para detectar se o link de comunicação está desconectado. O método de implementação é que o dispositivo envia um pacote de dados de heartbeat para o software do servidor em intervalos regulares. Esses dados serão excluídos após serem recebidos pelo servidor e não serão considerados como dados de comunicação válida. O pacote de heartbeat tem duas funções principais: Primeiro, ele pode permitir que o software do computador host saiba que o dispositivo está ativo; em segundo lugar, se o dispositivo não enviar o heartbeat, o dispositivo irá restabelecer automaticamente a conexão TCP, então é um meio de rede de recuperação da rede.

<br>

[![](https://wiki.electools.com.br/uploads/images/gallery/2022-10/scaled-1680-/image-1666739348317.png)](https://wiki.electools.com.br/uploads/images/gallery/2022-10/image-1666739348317.png)

<br>

Conforme mostrado na figura acima, o tempo de envio do pacote de heartbeat é definido pelo **Keep Alive
Time**.

<br>

##### 8.2.1. PROTOCOLO REALCOM

Conforme descrito em[ 8.1.2 Protocolo Realcom](https://wiki.electools.com.br/books/eic-eth485/page/81-pacotes-de-registro#bkmrk-8.1.2.-protocolo-rea), o protocolo Realcom pode enviar os dados 00 de 1byte a cada **Keep Alive Time**. Esses dados são o pacote de heartbeat do protocolo Realcom.

<br>

##### 8.2.2. PACOTES DE HEARTBEAT CUSTOMIZADOS

Adicione o pacote de hearbeat customizado da seguinte forma: Clique no botão **More Advanced Settigns...** na janela ***Device Settigns***, escreva o pacote de hearbeat em formato hexadecimal na segunda linha da opção **Multi Dest-IP And Port** e altere a opção à direita para **Param. Dest**. Clique em seguida no botão OK.

<br>

<center>

[![](https://wiki.electools.com.br/uploads/images/gallery/2022-10/scaled-1680-/image-1666981800933.png)](https://wiki.electools.com.br/uploads/images/gallery/2022-10/image-1666981800933.png) 

</center>

<br>

<p class="callout info"> <b>Nota!</b> Observe que a soma do registro de pacote e do pacote de heartbeat deve ser menor que 33 bytes. A primeira linha é na verdade o registro de pacote.</p>