63 lines
2.1 KiB
Markdown
63 lines
2.1 KiB
Markdown
# Aggiornamento 2026-05-16 12:04
|
|
|
|
## Milestone prima implementazione OCR lato WMS server
|
|
|
|
## Obiettivo
|
|
|
|
Evolvere `flywms_wms_server.py` da server demo ACK/NACK a server WMS demo con pipeline remota:
|
|
|
|
1. riceve crop etichetta e metadati dal client navigazione;
|
|
2. mostra l'immagine ricevuta in una finestra server;
|
|
3. esegue OCR sul crop etichetta;
|
|
4. prepara payload WMS finale;
|
|
5. salva payload WMS su disco;
|
|
6. simula verifica WMS con risposta `ACK`/`NACK`;
|
|
7. risponde realmente al client.
|
|
|
|
## Decisioni concordate
|
|
|
|
- Il codice OCR deve idealmente essere il codice numerico reale sull'etichetta.
|
|
- Se OCR reale non e' disponibile o non legge nulla, usare fallback demo configurabile.
|
|
- Il server deve rispondere realmente al client.
|
|
- Il client, per ora, continua a mostrare la risposta ma mantiene la logica di attesa demo gia' configurata.
|
|
- In futuro il tempo di attesa verra' spostato completamente lato server e il client si adeguera' alla risposta.
|
|
- La finestra payload server mostra solo l'ultimo gaylord ricevuto.
|
|
- Il server salva anche il payload WMS finale in JSON, oltre al metadata originale.
|
|
- L'esito `ACK/NACK` resta governato da `wms_fake_ack_mode`.
|
|
|
|
## Finestre server previste
|
|
|
|
- `wms immagine ricevuta`: crop etichetta ricevuto dal client.
|
|
- `wms payload`: ultimo payload WMS con informazioni utili:
|
|
- request id;
|
|
- client id / drone;
|
|
- snapshot id;
|
|
- posizione;
|
|
- codice OCR;
|
|
- esito WMS;
|
|
- data/ora ricezione;
|
|
- track id;
|
|
- bbox etichetta;
|
|
- vettore movimento.
|
|
|
|
## Configurazione prevista
|
|
|
|
Da aggiungere in `flywms_navigation.ini`:
|
|
|
|
```ini
|
|
wms_ui_enabled = true
|
|
wms_ocr_enabled = true
|
|
wms_ocr_mode = auto
|
|
wms_fake_ocr_prefix = UDC
|
|
wms_fake_ocr_delay_sec = 0.2
|
|
wms_fake_wms_delay_sec = 1.0
|
|
wms_operator = udrone
|
|
wms_site = demo-magazzino
|
|
```
|
|
|
|
## Note tecniche
|
|
|
|
La GUI OpenCV del server non deve essere aggiornata direttamente dall'handler HTTP. L'handler aggiorna stato condiviso thread-safe; un thread UI separato aggiorna le finestre OpenCV.
|
|
|
|
L'OCR reale verra' implementato cercando prima le opzioni gia' disponibili nell'ambiente/progetto. Se non disponibili, il server resta funzionante con fallback demo e lo segnala nel payload.
|