> 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/alarmes/7-receber-foto-amt-8000.md).

# 7 Receber foto AMT 8000

## AMT 8000

### Definições gerais

* Para receber as fotos associadas a um evento da AMT 8000, envie os comandos descritos nas seções [Autenticar](#autenticar), [Solicitar foto para a AMT 8000](#solicitar-foto-para-a-amt-8000) e [Desconectar](#desconectar) em sequência.
* Ao receber um evento como foto associada (comando `0xB5`), é necessário se autenticar utilizando o comando `F0F0` descrito na seção [Autenticar](#autenticar).
* Após autenticar, envie o comando `0BB0` descrito na seção [Solicitar foto para a AMT 8000](#solicitar-foto-para-a-amt-8000), informando o índice recebido no evento, e solicite os fragmentos da foto.
* Ao finalizar o recebimento de todos os fragmentos, desconecte da central usando o comando `F0F1` descrito na seção [Desconectar](#desconectar).
* Quando o sensor dispara, a foto ainda não está disponível na central. Leva em torno de 15 segundos para cada foto ser enviada para a central.

{% hint style="warning" %}
Ao tentar ler a foto da central durante este processo, será respondido o comando de NACK `0xF0FD` com erro `0x28`: `ERRO_GRAVANDO_FOTO`.

Neste caso, é necessário aguardar 10 segundos e enviar o comando novamente.
{% endhint %}

* Uma lista com todos os erros possíveis (NACK) está descrita na seção [NACK error answer](#nack-error-answer).

## Recebimento de fotos

{% stepper %}
{% step %}

## Autenticar

**Comando:** `F0 F0`\
**Nome:** `AUTENTICA_CONEXAO_REMOTA`

**Descrição:** Antes de enviar outros comandos, é necessário se autenticar na central de alarme utilizando uma senha de usuário válida.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Comando** | **Dados** | **ChkSum** |
| -- | ---------- | ---------- | -------------- | ----------- | --------- | ---------- |
| Tx | 00 00      | 00 00      | 00 0B          | F0 F0       | 9 Bytes   | XX         |
| Rx | 00 00      | 00 00      | 00 03          | F0 F0       | 1 Byte    | XX         |

### Bytes do campo Dados TX

| Byte 1       | Byte 2 to byte 7 | Byte 8 and byte 9 |
| ------------ | ---------------- | ----------------- |
| `<Tipo APP>` | `<Senha>`        | `<Uso futuro>`    |

### Descrição detalhada TX

`<Tipo APP>`

* `00` = N/A
* `01` = Software programação
* `02` = Software de monitoramento
* `03` = APP mobile

`<Senha>` — Com 4 ou 6 dígitos dependendo da configuração da central de alarme. O dígito `0x0` deve ser enviado como `0xA` e, para senhas de 4 dígitos, é necessário completar as duas últimas posições com o valor `0x0`.

`<Uso futuro>` — Sempre `00 00`.

### Bytes do campo Dados RX

| Byte 1       |
| ------------ |
| `<Resposta>` |

### Descrição detalhada RX

`<Resposta>`

* `00` = Conexão aceita
* `01` = Senha incorreta

### Obs.

**Exemplo 1:** O software de programção envia a senha `123456` e recebe como resposta que a senha está incorreta.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Command** | **Data**                   | **ChkSum** |
| -- | ---------- | ---------- | -------------- | ----------- | -------------------------- | ---------- |
| Tx | 00 00      | 00 00      | 00 0B          | F0 F0       | 01 01 02 03 04 05 06 00 00 | F2         |
| Rx | 00 00      | 00 00      | 00 03          | F0 F0       | 01                         | FD         |

**Pacote transmitido e recebido real**

| Requisição software | 00 00 00 00 00 0B F0 F0 01 01 02 03 04 05 06 00 00 F2 |
| ------------------- | ----------------------------------------------------- |
| Resposta central    | 00 00 00 00 00 03 F0 F0 01 FD                         |

**Exemplo 2:** O software de programção envia a senha `0236` e recebe como resposta que a conexão foi aceita.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Command** | **Data**                   | **ChkSum** |
| -- | ---------- | ---------- | -------------- | ----------- | -------------------------- | ---------- |
| Tx | 00 00      | 00 00      | 00 0B          | F0 F0       | 01 0A 02 03 06 00 00 00 00 | F8         |
| Rx | 00 00      | 00 00      | 00 03          | F0 F0       | 00                         | FC         |

**Pacote transmitido e recebido real**

| Requisição software | 00 00 00 00 00 0B F0 F0 01 0A 02 03 06 00 00 00 00 F8 |
| ------------------- | ----------------------------------------------------- |
| Resposta central    | 00 00 00 00 00 03 F0 F0 00 FC                         |
| {% endstep %}       |                                                       |

{% step %}

## Solicitar foto para a AMT 8000

**Comando:** `0B B0`\
**Nome:** `CAMERA_ENVIA_FOTO`

**Descrição:** Solicita a foto para a central de alarme informando o índice do evento. Cada evento possui duas fotos associadas.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Command** | **Data**       | **ChkSum** |
| -- | ---------- | ---------- | -------------- | ----------- | -------------- | ---------- |
| Tx | 00 00      | 00 00      | 00 06          | 0B B0       | 4 bytes        | XX         |
| Rx | 00 00      | 00 00      | XX XX          | 0B B0       | 9 a 1000 bytes | XX         |

### Bytes do campo Dados TX

| Byte 1 a 2        | Byte 3          | Byte 4               |
| ----------------- | --------------- | -------------------- |
| `<Índice evento>` | `<Índice foto>` | `<Índice fragmento>` |

### Descrição detalhada TX

`<Índice evento>` — Índice do evento que possui uma foto associada. Essa informação é recebida juntamente com o evento.

(ver Aba "2-Receber eventos" item 1.2.3 "Comando B5 - Evento com foto associada")

`<Índice foto>` — Cada evento possui duas fotos associadas com índice `00` e `01`.

`<Índice fragmento>` — A foto será enviada em pequenos fragementos. O índice inicial é `0x01`.

### Bytes do campo Dados RX

| Byte 1 and 2      | Byte 3          | Byte 4        | Byte 5               | Byte 6             | Byte 7 to XXX  |
| ----------------- | --------------- | ------------- | -------------------- | ------------------ | -------------- |
| `<Índice evento>` | `<Índice foto>` | `<Num fotos>` | `<Índice fragmento>` | `<Num fragmentos>` | `<Dados foto>` |

### Descrição detalhada RX

`<Índice evento>` — Índice do evento associado a foto.

`<Índice foto>` — Cada evento possui duas fotos associadas com índice `00` ou `01`.

`<Num fotos>` — Número de fotos associadas ao evento. Sempre `0x02`.

`<Índice fragmento>` — A foto será enviada em pequenos fragementos.

`<Num fragmentos>` — Total number of pictures taken by camera sensor.

`<Dados foto>` — Dados da fotos. O tamanho do fragmento recebido deve ser calculado com base no campo "Num. Bytes" - 6.

### Obs.

* A foto é nop formato JPG com resolução `320x200` e tem tamanho médio de `8kB`, mas pode alcançar até `16kB`.
* As fotos são enviadas em fragmentos de aproximandamente `200 bytes` para a AMT 8000 ou `1000 bytes` para AMT 8000 LITE e PRO.
* O fragmento `0x01` é o primeiro a ser solicitado. Ao receber a resposta, verifique o campo "Num fragmentos" para saber quantas vezes o comando deverá ser enviado.
* A cada solicitação enviada, o índice do fragmento deve ser incrementado até chegar ao último fragmento.
* Caso ocorra falha no recebimento de algum dos fragmentos, é só repetir a solicitação.
* O último fragmento tem tamanho variável de acordo com o tamanho total da foto.
* Se receber como resposta `00 00 00 00 00 03 F0 FD 23 D2`, a central ainda não terminou de receber a foto e será necessário repetir a solicitação depois de 10 segundos.

**Exemplo 1:** Requisitar o primeiro fragmento da primeira foto do evento com índice `0100` e recebe como resposta que a foto possui 20 fragmentos.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Comando** | **Data**         | **Chk Sum**      |
| -- | ---------- | ---------- | -------------- | ----------- | ---------------- | ---------------- |
|    |            |            |                |             | Índice evento    | Índice foto      |
| Tx | 00 00      | 00 00      | 00 06          | 0B B0       | 01 00            | 00               |
|    |            |            |                |             | Índice fragmento |                  |
|    |            |            |                |             | 01               | 42               |
|    |            |            |                |             | Índice evento    | Índice foto      |
| Rx | 00 00      | 00 00      | 03 E8          | 0B B0       | 01 00            | 00               |
|    |            |            |                |             | Num fotos        | Índice fragmento |
|    |            |            |                |             | 02               | 01               |
|    |            |            |                |             | Num fragmentos   | Dados foto       |
|    |            |            |                |             | 14               | FRAG. FOTO XX    |

**Pacote transmitido e recebido real**

| Requisição software | 00 00 00 00 00 06 0B B0 01 00 00 01 42                  |
| ------------------- | ------------------------------------------------------- |
| Resposta central    | 00 00 00 00 03 E8 0B B0 01 00 00 02 01 14 FRAG. FOTO XX |
| {% endstep %}       |                                                         |

{% step %}

## Desconectar

**Comando:** `F0 F1`\
**Nome:** `DESCONECTAR_DISPOSITIVO_REMOTO`

**Descrição:** Finaliza a conexão para download da foto.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Comando** | **Dados** | **ChkSum** |
| -- | ---------- | ---------- | -------------- | ----------- | --------- | ---------- |
| Tx | 00 00      | 00 00      | 00 02          | F0 F1       | -         | XX         |
| Rx | 00 00      | 00 00      | 00 02          | F0 FE       | -         | XX         |

### Bytes do campo Dados TX

### Descrição detalhada TX

### Obs.

**Exemplo 1:** O software de programção envia a senha `123456` e recebe como resposta que a senha está incorreta.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Command** | **Data** | **ChkSum** |
| -- | ---------- | ---------- | -------------- | ----------- | -------- | ---------- |
| Tx | 00 00      | 00 00      | 00 02          | F0 F1       | -        | FC         |
| Rx | 00 00      | 00 00      | 00 02          | F0 FE       | -        | F3         |

**Pacote transmitido e recebido real**

| Requisição software | 00 00 00 00 00 02 F0 F1 FC |
| ------------------- | -------------------------- |
| Resposta central    | 00 00 00 00 00 02 F0 FE F3 |
| {% endstep %}       |                            |
| {% endstepper %}    |                            |

## NACK error answer

**Comando:** `F0 FD`\
**Nome:** `NACK`

**Descrição:** Inform that commands was not accepted and the error reason.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Command** | **Data** | **ChkSum** |
| -- | ---------- | ---------- | -------------- | ----------- | -------- | ---------- |
| Tx | 00 00      | 00 00      | 00 02          | F0 FD       | 1 byte   | XX         |

### Bytes do campo Dados RX

| Byte 1   |
| -------- |
| `<Erro>` |

### Descrição detalhada RX

| ERRO                                        | Código | Descrição erro                                                      |
| ------------------------------------------- | ------ | ------------------------------------------------------------------- |
| ERRO\_CHECKSUM                              | 01     |                                                                     |
| ERRO\_NUMERO\_BYTES\_MENSAGEM               | 02     |                                                                     |
| ERRO\_NUMERO\_BYTES\_PARAMETRO              | 03     |                                                                     |
| ERRO\_PARAMETRO\_INEXISTENTE                | 04     |                                                                     |
| ERRO\_INDICE\_PARAMETRO                     | 05     |                                                                     |
| ERRO\_VALOR\_MAXIMO                         | 06     |                                                                     |
| ERRO\_VALOR\_MINIMO                         | 07     |                                                                     |
| ERRO\_QUANTIDADE\_CAMPOS                    | 08     |                                                                     |
| ERRO\_NIBBLE\_0\_9                          | 09     |                                                                     |
| ERRO\_NIBBLE\_1\_A                          | 0A     |                                                                     |
| ERRO\_NIBBLE\_0\_F                          | 0B     |                                                                     |
| ERRO\_NIBBLE\_1\_F\_EX\_B\_C                | 0C     |                                                                     |
| ERRO\_ASCII                                 | 0D     |                                                                     |
| ERRO\_29\_FEVEREIRO                         | 0E     |                                                                     |
| ERRO\_DIA\_INVALIDO                         | 0F     |                                                                     |
| ERRO\_MES\_INVALIDO                         | 10     |                                                                     |
| ERRO\_ANO\_INVALIDO                         | 11     |                                                                     |
| ERRO\_HORA\_INVALIDA                        | 12     |                                                                     |
| ERRO\_MINUTO\_INVALIDO                      | 13     |                                                                     |
| ERRO\_SEGUNDO\_INVALIDO                     | 14     |                                                                     |
| ERRO\_TIPO\_DE\_COMANDO\_INVALIDO           | 15     |                                                                     |
| ERRO\_TECLA\_ESPECIAL                       | 16     |                                                                     |
| ERRO\_NUMERO\_DIGITOS                       | 17     |                                                                     |
| ERRO\_NUMERO\_DIGITOS\_SENHA                | 18     |                                                                     |
| ERRO\_SENHA\_INCORRETA                      | 19     |                                                                     |
| ERRO\_PARTICAO\_INEXISTENTE                 | 1A     |                                                                     |
| ERRO\_USUARIO\_SEM\_PERMISSAO\_NA\_PARTICAO | 1B     |                                                                     |
| ERRO\_SEM\_PERMISSAO\_PROGRAMAR             | 1C     |                                                                     |
| ERRO\_BUFFER\_RECEPCAO\_CHEIO               | 1D     |                                                                     |
| ERRO\_SEM\_PERMISSAO\_DESARMAR              | 1E     |                                                                     |
| ERRO\_NECESSARIA\_AUTENTICACAO              | 1F     |                                                                     |
| ERRO\_PARTICAO\_SEM\_ZONAS\_HABILITADAS     | 20     |                                                                     |
| ERRO\_SEM\_PERMISSAO\_PARA\_O\_COMANDO      | 21     |                                                                     |
| ERRO\_USUARIO\_SEM\_PARTICOES\_DEFINIDAS    | 22     |                                                                     |
| ERRO\_EVENTO\_SEM\_FOTO\_ASSOCIADA          | 23     |                                                                     |
| ERRO\_INDICE\_FOTO\_INVALIDO                | 24     |                                                                     |
| ERRO\_FRAGMENTO\_FOTO\_INVALIDO             | 25     |                                                                     |
| ERRO\_SISTEMA\_NAO\_PARTICIONADO            | 26     |                                                                     |
| ERRO\_ZONAS\_ABERTAS                        | 27     |                                                                     |
| ERRO\_GRAVANDO\_FOTO                        | 28     | Indica que a central ainda não terminou de receber a foto do sensor |
| ERRO\_ACESSO\_MOBILE\_DESABILITADO          | 29     |                                                                     |
| ERRO\_OPERACAO\_NAO\_PERMITIDA              | 2A     |                                                                     |
| ERRO\_MEM\_RF\_VAZIA                        | 2B     |                                                                     |
| ERRO\_MEM\_RF\_OCUPADA                      | 2C     |                                                                     |
| ERRO\_SENHA\_REPETIDA                       | 2D     |                                                                     |
| ERRO\_FALHA\_ATIVACAO\_DESATIVACAO          | 2E     |                                                                     |
| ERRO\_SEM\_PERMISSAO\_ARME\_STAY            | 2F     |                                                                     |
| ERRO\_DESATIVE\_A\_CENTRAL                  | 30     |                                                                     |
| ERRO\_RESET\_BLOQUEADO                      | 31     |                                                                     |
| ERRO\_TECLADO\_BLOQUEADO                    | 32     |                                                                     |
| ERRO\_RECEBIMENTO\_FOTO\_FALHOU             | 33     |                                                                     |
| ERRO\_NAO\_CONECTADO\_AO\_SERVIDOR          | 34     |                                                                     |
| ERRO\_TECLADO\_SEM\_PERMISSAO               | 35     |                                                                     |
| ERRO\_PARTICAO\_SEM\_ZONAS\_STAY            | 36     |                                                                     |
| ERRO\_SEM\_PERNISSAO\_BYPASS                | 37     |                                                                     |
| ERRO\_FIRMWARE\_CORROMPIDO                  | 38     |                                                                     |
| ERRO\_FALHA\_DOWNLOAD\_FIRMWARE             | 39     |                                                                     |
| ERRO\_FIRMWARE\_ATUALIZADO                  | 3A     |                                                                     |
| ERRO\_ETH\_WIFI\_NAO\_CONECTADO             | 3B     |                                                                     |
| SUCESSO\_NO\_DOWNLOAD                       | 3C     |                                                                     |
| OPERACAO\_CANCELADA                         | 3D     |                                                                     |
| MSG\_ERRO\_COMANDO\_INVALIDO                | 3E     |                                                                     |
| ERRO\_CENTRAL\_SEM\_ZONAS\_HABILITADAS      | 3F     |                                                                     |
| ERRO\_FECHADURA\_NAO\_CADASTRADA            | 40     |                                                                     |
| ERRO\_EXP\_PGM\_NAO\_CADASTRADO             | 41     |                                                                     |
| ERRO\_DOWNLOAD\_EM\_ANDAMENTO               | 42     |                                                                     |
| ERRO\_DOWNLOAD\_NAO\_INICIADO               | 43     |                                                                     |
| ERRO\_PGM\_NAO\_ACESSIVEL                   | 44     |                                                                     |
| ERRO\_NUVEM\_2018\_NAO\_PERMITIDA           | 45     |                                                                     |
| ERRO\_ERRO\_DISP\_SEM\_TAMPER\_DIGITAL      | 46     |                                                                     |
| ERRO\_DISP\_NAO\_SUPORTA\_BUSCA\_ROTA       | 47     |                                                                     |
| ERRO\_COMANDO\_INVALIDO = 0xFE              | FE     |                                                                     |

### Notes

**Exemplo 1:** Enviar a solicitação do fragmento 1 da foto 0 associada ao evento `0100` e recebe como resposta que o evento não possui foto associada.

|    | **DST ID** | **SRC ID** | **Num. Bytes** | **Command** | **Data**    | **ChkSum** |
| -- | ---------- | ---------- | -------------- | ----------- | ----------- | ---------- |
| Tx | 00 00      | 00 00      | 00 06          | 0B B0       | 01 00 00 01 | 42         |
| Rx | 00 00      | 00 00      | 00 03          | F0 FD       | 23          | D2         |

**Pacote transmitido e recebido real**

| Requisição software | 00 00 00 00 00 06 0B B0 01 00 00 01 42 |
| ------------------- | -------------------------------------- |
| Resposta central    | 00 00 00 00 00 03 F0 FD 23 D2          |


---

# 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/alarmes/7-receber-foto-amt-8000.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.
