Monitor RFID

Simulador de leituras · Cervejaria

Monitor RFID · Cervejaria
conectando…

Emissão via socket

Locais
Antenas
IPs

Só é enviada pelo socket a leitura que passar nos três filtros. O histórico guarda todas as leituras.

Disparo manual

Fluxo do processo

Docas são portais: a tag que passa é lida em todas as antenas, em sequência. Pontos esmaecidos estão fora do filtro de emissão.

Leituras recebidas 0

HoraLocalAntenaIPCódigo alfaEPC

Último payload

aguardando leitura…
Data/horaLocalAntenaIPCódigo alfaEPC

Clique num código alfa em qualquer tabela ou informe uma tag acima.

Autenticação

Todas as rotas (menos o login) exigem o cabeçalho Authorization: Bearer <token>. O token vale 24 horas.

POST /api/auth/login
Content-Type: application/json

{ "usuario": "admin", "senha": "admin123" }

→ { "token": "eyJ...", "tipo": "Bearer", "expiraEm": "2026-10-31T12:00:00.000Z", "usuario": {...} }

Formato da leitura

{
  "epc": "32334B374D323533353430373036324D",
  "codigoalfa": "23K7M2535407062M",
  "datetime": "2026-10-30T12:51:53.052Z",
  "local": "doca1",
  "antenna": 1,
  "ip": "192.168.0.120"
}

epc é o codigoalfa em ASCII convertido para hexadecimal, byte a byte: 2→32, 3→33, K→4B… datetime é sempre UTC (ISO 8601).

Tempo real — Socket.IO

import { io } from "socket.io-client";

const socket = io("", {
  auth: { token: "SEU_TOKEN" },
  query: { local: "doca1,doca2" }          // filtro opcional: local, antenna, ip
});

socket.on("leitura", (leitura) => console.log(leitura));

// trocar o filtro sem reconectar
socket.emit("filtro", { local: ["doca1"], antenna: [1, 2, 3] });

Tempo real — WebSocket puro

Para integrar sem a biblioteca do Socket.IO. Cada mensagem recebida é uma leitura em JSON.

/ws?token=SEU_TOKEN&local=doca1&antenna=1,2,3

// trocar o filtro: envie
{ "filtro": { "local": ["expedicao"] } }

Rotas REST

MétodoRotaDescrição
POST/api/auth/loginGera o token (24h)
GET/api/auth/meDados do token atual
GET/api/leiturasLeituras retroativas. Parâmetros: inicio, fim (ISO 8601), local, antenna, ip, epc, codigoalfa (aceitam vários separados por vírgula), pagina, limite (máx. 1000), ordem (asc|desc)
GET/api/leituras/resumoTotais por local e antena (mesmos filtros)
GET/api/tags/:codigoRastreio da tag pelo processo (código alfa ou EPC)
GET/api/locaisPontos de leitura: local, IP, antenas, tipo e destino
GET/api/conversao?codigoalfa=... ou ?epc=...
GET / PUT/api/configConfiguração de emissão (ativo, intervaloMs, filtros)
POST/api/simulador/disparar{ "local": "doca1", "codigoalfa"?: "...", "seguirFluxo"?: true }
GET/api/statusSimulador, clientes conectados e contadores

Exemplo: GET /api/leituras?inicio=2026-10-30T00:00:00-03:00&local=doca1&antenna=2&limite=50