> For the complete documentation index, see [llms.txt](https://portal-integracao.intelbras.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://portal-integracao.intelbras.com.br/mip-1000-ip/comandos/boas-praticas.md).

# Boas práticas

Toda comunicação é iniciada a partir do MIP, onde é enviado um comando de “ENQUIRY” (EN) verificando se o dispositivo possui alguma requisição a ser feita ao MIP. O valor para identificar o comando “ENQUIRY” é 0xA0. No exemplo a seguir o comando “ENQUIRY” está sendo enviado do MIP para o PC, onde o PC possui o endereço 0 e o MIP o endereço 1.

Por definição, o MIP sempre será o endereço UM e o PC (ou qualquer dispositivo ligado a porta USB) será sempre o endereço ZERO.

<table><thead><tr><th width="206.1666259765625" align="center">Campo</th><th width="535.33349609375" align="center">Valor do campo start</th></tr></thead><tbody><tr><td align="center"><sub>Start</sub></td><td align="center"><sub>0xA4</sub></td></tr><tr><td align="center"><sub>Versão</sub></td><td align="center"><sub>0x01</sub></td></tr><tr><td align="center"><sub>End. de origem</sub></td><td align="center"><sub>0x01</sub></td></tr><tr><td align="center"><sub>End. de destino</sub></td><td align="center"><sub>0x00</sub></td></tr><tr><td align="center"><sub>Comando</sub></td><td align="center"><sub>0xA0</sub></td></tr><tr><td align="center"><sub>Flag</sub></td><td align="center"><sub>0x01</sub></td></tr><tr><td align="center"><sub>ID do usuário logado</sub></td><td align="center"><sub>0x00000000 (todos os comandos devem ter aqui o id do usuário)</sub></td></tr><tr><td align="center"><sub>Senha do usuário logado</sub></td><td align="center"><sub>0x000000(todos os comandos devem ter aqui a senha do usuário)</sub></td></tr><tr><td align="center"><sub>ID do MIP</sub></td><td align="center"><sub>0x00</sub></td></tr><tr><td align="center"><sub>Quantidade de frames</sub></td><td align="center"><sub>0x0000</sub></td></tr><tr><td align="center"><sub>Frame atual</sub></td><td align="center"><sub>0x0000</sub></td></tr><tr><td align="center"><sub>Tamanho do campo dados</sub></td><td align="center"><sub>0x0000</sub></td></tr><tr><td align="center"><sub>Reservado</sub></td><td align="center"><sub>0x0000</sub></td></tr><tr><td align="center"><sub>CHKS</sub></td><td align="center"><sub>Resultado da somatória de todos os bytes desde o campo start até o campo Reservado.</sub></td></tr></tbody></table>

Toda vez que um dispositivo for questionado se há uma solicitação, ele deve responder com a solicitação pendente ou com o comando ENQUIRY (EN) sinalizando no campo “flag” a flag “sem solicitação” (SS) que possui o valor 0x19. No exemplo a seguir o flag “sem solicitação” está sendo enviado do PC para o MIP, onde o PC possui o endereço 0 e o MIP o endereço 1.

<table><thead><tr><th width="206.1666259765625" align="center">Campo</th><th width="535.33349609375" align="center">Valor do campo start</th></tr></thead><tbody><tr><td align="center"><sub>Start</sub></td><td align="center"><sub>0xA6</sub></td></tr><tr><td align="center"><sub>Versão</sub></td><td align="center"><sub>0x01</sub></td></tr><tr><td align="center"><sub>End. de origem</sub></td><td align="center"><sub>0x00</sub></td></tr><tr><td align="center"><sub>End. de destino</sub></td><td align="center"><sub>0x01</sub></td></tr><tr><td align="center"><sub>Comando</sub></td><td align="center"><sub>0xA0</sub></td></tr><tr><td align="center"><sub>Flag</sub></td><td align="center"><sub>0x19</sub></td></tr><tr><td align="center"><sub>ID do usuário logado</sub></td><td align="center"><sub>0x00000000</sub> </td></tr><tr><td align="center"><sub>Senha do usuário logado</sub></td><td align="center"><sub>0x000000</sub></td></tr><tr><td align="center"><sub>ID do MIP</sub></td><td align="center"><sub>0x00</sub></td></tr><tr><td align="center"><sub>Muid do MIP</sub></td><td align="center"><sub>0xZZXXYYWW</sub></td></tr><tr><td align="center"><sub>Tamanho do campo dados</sub></td><td align="center"><sub>0x0000</sub></td></tr><tr><td align="center"><sub>Reservado</sub></td><td align="center"><sub>0x0000</sub></td></tr><tr><td align="center"><sub>CHKS</sub></td><td align="center"><sub>Resultado da somatória de todos os bytes desde o campo start até o campo Reservado.</sub></td></tr></tbody></table>

Nos comandos que serão listados, temos duas formas distintas de comunicação com o MIP 1000 IP: Com polling e sem polling.

O polling, que é o envio constante e periódico de comandos pelo MIP, é usado para comunicação entre o MIP e os dispositivos (como o XLT 1000 ID por exemplo) onde é necessário atualizar em tempo real o status da comunicação para detecção de alertas, por exemplo. Neste documento temos a descrição destes comandos, mas os mesmos devem ser usados EXCLUSIVAMENTE pelo MIP.

Já na comunicação entre o MIP e qualquer outro equipamento através da interface de rede, não há necessidade de polling e, portanto, os comandos podem ser enviados sempre que é necessário efetuar qualquer processo de inclusão/busca/edição ou exclusão. Sendo que alguns comandos permitem todos os processos e outros não. A capacidade de cada comando será discutida dentro de cada um deles.

Outra particularidade é que, diferente da comunicação com os dispositivos, para se comunicar com o MIP 1000 IP, os campos ID do usuário logado e senha do usuário logado devem ser preenchidos. Dessa forma, se queremos enviar um comando para o MIP como o usuário admin e senha 123456, os campos mencionados acima devem ser:

* ID do usuário logado: 0 (sempre usado pelo admin ou maior que zero se for um usuário cadastrado);
* Senha do usuário logado: 123456

Outro ponto é que a comunicação através da rede IP possui algumas particularidades que não existem na comunicação com os dispositivos como:

* Se a conexão com o MIP ficar ociosa por mais que 1 minuto e 30 segundos, o MIP desconecta a sessão;
* Se for enviado mais que três quadros com montagem fora do padrão descrito aqui, com algum tipo de erro, o MIP desconecta a sessão;
* Se for enviado três quadros com a senha e/ou id invalido, o MIP desconecta a sessão;
* Se houver o acumulo de três insucessos em menos de 60 segundos (timeout, senha invalida ou quadro invalido) o sistema coloca o endereço que tentou o acesso em quarentena de 10 minutos, recusando qualquer tentativa de conexão deste IP imediatamente.

Lembrando que o tamanho dos campos é fixo e por isso deve ser preenchido com zero sempre que o tamanho do campo não for alcançado. Exemplo: Se o tamanho do campo tem quatro bytes mas o valor a ser colocado é de um byte, os demais três bytes devem ser zero.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://portal-integracao.intelbras.com.br/mip-1000-ip/comandos/boas-praticas.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
