voltar aos projetos

Servidor LPR para controle de acesso veicular

em produção em 20+ condomínios · 2.000+ testes · 112 versões

Servidor .NET on-premise que integra câmeras de leitura de placas de vários fabricantes a um sistema de controle de acesso e decide a liberação em tempo real.

  • .NET 10
  • ASP.NET Core
  • Firebird
  • SQLite
  • MediatR
  • GitHub Actions

Desenvolvido para a Segmix, com autoria principal minha (619 dos 623 commits), e em produção em mais de 20 condomínios. Recebe as leituras de placa das câmeras, decide se o veículo pode entrar e responde ao display da câmera e à portaria na mesma hora.

O código é privado. As versões compiladas ficam num repositório público de releases, de onde a rotina de atualização automática de cada instalação baixa as novas versões.

Integrações

  • Cinco fabricantes, cada um com seu protocolo: Alphadigi (HTTP, TCP binário e JSON-RPC), Hikvision (eventos ANPR multipart), Motorola (long polling e FTP), Intelbras (RPC2) e antenas UHF Control iD.
  • O núcleo da aplicação não conhece nenhum protocolo de fabricante. Um teste de arquitetura impede esse acoplamento.

Decisão de acesso

  • Verifica cadastro, rota por câmera, limite de vagas por unidade e antipassback, e elimina leituras duplicadas.
  • Na dúvida, nega o acesso (fail-closed).
  • Dois modos de operação: no padrão, o banco do sistema legado (Firebird) é a fonte de verdade, com cache em memória. No modo novo, o servidor funciona sem o sistema legado e decide pelos direitos de acesso vindos da nova plataforma da empresa, com cada passagem guardada em disco até ser entregue. Um SQLite local acelera as consultas nos dois.
  • Contrato comum entre sistemas: tipos e regras compartilhados vêm de pacotes NuGet internos, nunca copiados à mão, e um teste de arquitetura garante isso.
  • Placas não cadastradas passam por uma correção pela posição dos caracteres (I/1, O/0), e uma leitura reenviada pela câmera nunca abre a cancela.
  • A lista de placas autorizadas também fica sincronizada em cada câmera, então a portaria continua funcionando se o servidor cair.

Operação

  • Monitora se cada câmera continua enviando eventos e reconfigura sozinha as que pararam.
  • Roda como serviço do Windows, com painéis web embutidos: registros, trajetos, saúde do sistema e gravações com buffer circular via ffmpeg.
  • Entrega contínua: a cada versão, o CI compila sem warnings, roda os testes e gera o binário self-contained e o instalador.
  • Atualização automática: um atualizador em cada instalação busca novas versões no repositório público de releases (com espelho em storage de objetos), instala numa janela de manutenção e faz rollback se a checagem de saúde falhar.

Números

  • Mais de 2.000 testes automatizados, incluindo testes de contrato contra um Firebird real em Docker.
  • 112 versões em 10 meses, publicadas com versionamento semântico.

// cv.pdf

Baixar currículo

Antes do download, me conta quem é você. Assim eu sei com quem retomar a conversa.

Seus dados não são compartilhados com ninguém e podem ser apagados quando você pedir.