Comando UV — Disparadores de Usuário
Cria disparadores personalizados que monitoram qualquer variável interna do dispositivo e geram eventos quando condições específicas são atendidas.
Para que serve?
| Caso de uso | Descrição |
|---|---|
| 🎯 Monitoramento de variáveis | Supervisiona qualquer parâmetro interno do dispositivo |
| ⚡ Detecção de mudanças | Dispara eventos quando valores entram/saem de faixas |
| 📈 Modo delta | Detecta mudanças bruscas em velocidade, combustível, etc. |
| 🔗 Integração com regras | Sinais UV00-UV47 disponíveis para motor de eventos |
| 🔧 Parsing de respostas | Extrai campos específicos com delimitadores |
Suporta 32 disparadores (índices 00-31), expansíveis até 47 em alguns firmwares.
Sintaxe
| Ação | Comando | Descrição |
|---|---|---|
| Consultar | QUVnn | Consulta configuração do disparador nn |
| Configurar | SUVnnabb.bb,cc,dd,ee,ff | Configura disparador completo |
| Apagar um | SUVnn* | Elimina disparador nn |
| Apagar todos | SUV*55AA | Elimina todos os disparadores |
| Reset sinal | SUVnnR | Coloca em 0 o sinal UVnn |
Parâmetros
| Param | Descrição | Valores |
|---|---|---|
nn | Índice do disparador | 00 a 31 (ou 47) |
a | Tipo de conversão | Ver tabela abaixo |
bb.bb | Comando interno a monitorar | Ex: QIO, QVR |
cc | Índice do primeiro caractere | Posição na resposta |
dd | Quantidade de caracteres | Tamanho do dado |
ee..ee | Valor mínimo (≥) ou tempo delta | Depende do tipo |
ff..ff | Valor máximo (<) ou delta | Depende do tipo |
Tipos de Conversão
| Tipo | Descrição | Faixa |
|---|---|---|
/ S | Decimal com sinal | -2147483648 a +2147483647 |
U | Decimal sem sinal | 0 a 4294967295 |
F | Ponto flutuante | Decimais |
H | Hexadecimal Big Endian | 0x00 a 0xFFFFFFFF |
h | Hexadecimal Little Endian | 0x00 a 0xFFFFFFFF |
A | Cadeia ASCII | Texto |
X | Delta (mudança brusca) | Desde v1.08.07 |
Modo Delta (X) - Detalhe
O modo delta acumula as mudanças do valor monitorado durante uma janela de tempo e dispara se a variação acumulada superar o limite configurado.
Parâmetros no modo X:
| Param | Função |
|---|---|
ee | Janela de tempo em segundos |
ff | Limite delta (ver modos abaixo) |
Modos de comparação:
Formato de ff | Comportamento | Dispara quando |
|---|---|---|
ff positivo (ex: 20) | Apenas incrementos | Se delta acumulado ≥ ff |
ff negativo (ex: -20) | Apenas decrementos | Se delta acumulado ≤ ff |
*ff (ex: *20) | Valor absoluto | Se |delta acumulado| ≥ |ff| |
Funcionamento interno:
- No início de cada janela, salva o valor atual e reseta o acumulador
- Em cada avaliação, soma a diferença:
delta += valor_atual - valor_anterior - Ao cumprir o tempo
ee, compara o delta acumulado com o limiteff - Se a condição for cumprida, dispara o sinal UV correspondente
- Reinicia a janela de tempo e o acumulador
O valor de ff (delta) não pode ser zero. Se delta = 0 for configurado, o disparador não será processado.
Campo Split (Opcional)
Formato: \XXnn onde:
XX= Caractere delimitador em hexadecimal (ex:3B=;)nn= Número do campo a extrair
// Exemplo: \3B1 separa por ";" e pega o campo 1Sinais Associados
| Propriedade | Valor |
|---|---|
| Sinal | UV |
| Índice | 00 - 47 |
| Uso condicional | ✅ Sim |
| Flancos | + positivo, - negativo, * qualquer |
Exemplos Práticos
Exemplo 1: Monitoramento de Ignição
Captura o estado de IGN do comando QIO:
>SUV00UQIO,7,1,1,2< // Sem sinal, posição 7, 1 caractere, faixa 1-2Criar regras para detectar mudanças de ignição:
>SRL00E;TRG=UV00+;ACC={STX UV00+ ;@TRM}< // Disparo positivo (IGN ON)
>SRL01E;TRG=UV00-;ACC={STX UV00- ;@TRM}< // Disparo negativo (IGN OFF)Exemplo 2: Estado de Antena GPS
Detectar se a antena GPS está conectada, aberta ou em curto:
// Configurar buffer de consulta
>SCXXB04G0000000,STATUS=,\2A,A<
// Criar disparadores para cada estado
>SUV00AQXB04,5,2,OK,< // GPS Antena OK
>SUV01AQXB04,5,4,OPEN,< // GPS Antena aberta
>SUV02AQXB04,5,5,SHORT,< // GPS Antena em curto
// Regras para reportar estado
>SRL90E;TRG=UV00+;ACC={STX ANTENA GPS CONECTADA;@TRM}<
>SRL91E;TRG=UV01+;ACC={STX ANTENA GPS ABERTA;@TRM}<
>SRL92E;TRG=UV02+;ACC={STX ANTENA GPS EM CURTO;@TRM}<Resultado esperado:
>RTX ANTENA GPS CONECTADA;ID=039129;*5B<
>RTX ANTENA GPS ABERTA;ID=039129;*47<
>RTX ANTENA GPS EM CURTO;ID=039129;*61<Exemplo 3: Uso de Delimitador (Split)
Extrair IGN de resposta delimitada por ;:
>SUV04FQIO,\3B1,3,1,1,2< // Delimitador ; (0x3B), campo 1Resposta de QIO:
RIO;IGN1;IN1111111;XP000;V000;VBU464
↑
Campo 1, posição 3, 1 caractere = "1"Consulte o valor do disparador UV com: >QSSUV04<