2.6 KiB
Aggiornamento 2026-05-16 11:04
Milestone prima implementazione comunicazione WMS
Questa milestone documenta la specifica concordata prima di completare la parte client-server reale tra flywms_navigation.py e un server WMS demo.
Obiettivo
Implementare una comunicazione reale, asincrona e configurabile tra:
- client navigazione:
flywms_navigation.py; - server WMS demo: nuovo script FastAPI.
Il client deve inviare il crop etichetta e i metadati dello snapshot. Il server deve ricevere, salvare i payload per debug, simulare OCR/WMS e rispondere ACK o NACK.
Decisioni concordate
- Server demo basato su FastAPI.
- Dipendenze installate:
fastapi;uvicorn;python-multipart.
- Il server deve salvare fisicamente le immagini ricevute in una cartella di debug.
- Modalita' risposta configurabili:
always-ack;always-nack;alternate;random.
- Il client deve poter inviare a un server su altro computer tramite IP/porta configurabili.
- Il loop video/navigazione non deve fare la POST direttamente: invio tramite worker asincrono.
- La sequenza logica rimane:
- stop;
- scatta etichetta;
- invia WMS;
- attende risposta o timeout;
- riparte.
- L'attesa della risposta deve essere gestita senza congelare brutalmente il rendering.
Configurazione prevista lato navigazione
Da aggiungere/validare in flywms_navigation.ini:
wms_enabled = false
wms_server_url = http://127.0.0.1:8088/api/v1/navigation-snapshot
wms_client_id = flywms-demo-01
wms_timeout_sec = 2.0
wms_queue_max_size = 8
wms_send_gaylord_debug = true
Per server remoto:
wms_server_url = http://192.168.1.50:8088/api/v1/navigation-snapshot
Configurazione prevista lato server
Da implementare in flywms_wms_server.py:
host = 0.0.0.0
port = 8088
fake_ack_mode = always-ack
fake_processing_sec = 0.5
received_dir = wms_received
Protocollo previsto
Endpoint:
POST /api/v1/navigation-snapshot
Payload multipart:
metadata: JSON;label_image: JPEG crop etichetta;gaylord_image: JPEG opzionale/debug.
Risposta:
{
"status": "ACK",
"request_id": "...",
"message": "codice valido su WMS",
"fake_ocr_text": "DEMO-0001",
"processing_ms": 120
}
Oppure:
{
"status": "NACK",
"request_id": "...",
"message": "codice non riconosciuto",
"fake_ocr_text": "",
"processing_ms": 120
}
Nota operativa
Al momento della creazione di questa milestone erano gia' stati installati i pacchetti FastAPI e iniziati i primi campi/config del client WMS. La milestone serve a fissare la specifica prima di proseguire con il completamento.