Aplicação python ‐ Vaisala - tecnologiadB/MonitoramentoRuidoWiki GitHub Wiki
VaisalaConfigure (Python)
Utilitário responsável pela configuração padronizada dos sensores Vaisala, garantindo calibração, sincronização e operação consistente entre os dispositivos e o restante da solução.
Arquitetura de pastas
vaisala_service/
├─ app/
│ ├─ __init__.py
│ ├─ main.py # bootstrap (uvicorn/worker CLI)
│ ├─ settings.py # Pydantic Settings (carrega INI/env)
│ ├─ orchestrators/
│ │ ├─ scheduler.py # Agenda coletas (vento/PTU/chuva)
│ │ └─ pipeline.py # Ingestão → validação → enrich → persistir/publicar
│ ├─ domain/
│ │ ├─ models.py # dataclasses/pydantic (Vento, PTU, Chuva, NivelRuido, Periodo)
│ │ ├─ policies.py # limites, tonal/impulsivo (Strategy)
│ │ └─ periods.py # mapa de períodos (diurno/vespertino/noturno)
│ ├─ infra/
│ │ ├─ serial_gateway.py # Adapter Vaisala (pyserial-asyncio)
│ │ ├─ sonometro_gateway.py # Adapter (TCP/IP)
│ │ ├─ storage.py # Persistência (CSV/DB/Blob)
│ │ ├─ streaming.py # MQTT/HTTP/gRPC (opcional)
│ │ └─ observability.py # logging estruturado + metrics
│ └─ web/
│ └─ api.py # FastAPI (health/metrics/opcional)
├─ tests/ # pytest (mocks, loopback serial)
├─ pyproject.toml # ruff/black/mypy/uvicorn deps
└─ README.md
🎯 Objetivo
Realizar a configuração automatizada dos sensores Vaisala, assegurando que todos os parâmetros operacionais estejam devidamente ajustados e armazenados para uso contínuo pelos outros componentes do sistema.
⚙️ Comportamento
- Execução sob demanda via LabVIEW ou manualmente pelo operador;
- Detecção automática de portas serial/USB disponíveis;
- Envio de comandos de configuração e calibração diretamente para o sensor;
- Gravação de parâmetros atualizados em
config.inipara uso pelos demais componentes.
🔄 Fluxo de Execução — VaisalaConfigure
flowchart TD
A[Inicio - Chamado pelo LabVIEW ou operador] --> B[Carregar parametros desejados para o sensor]
B --> C[Identificar portas seriais ou USB disponiveis]
C --> D{Porta encontrada?}
D -- Nao --> E[Registrar erro de comunicacao e encerrar] --> Z[Fim]
D -- Sim --> F[Estabelecer comunicacao com sensor Vaisala]
F --> G[Enviar comandos de configuracao e calibracao]
G --> H[Receber respostas do sensor]
H --> I{Configuracao aplicada com sucesso?}
I -- Nao --> J[Registrar erro em log] --> Z[Fim]
I -- Sim --> K[Atualizar arquivos de configuracao locais]
K --> Z[Fim]