Fiera 27-29/10: demo TMF con calibro, attività e camera TC bench (misure, PM, DXF compare su Sider) #72

Closed
opened 2026-10-12 13:00:57 +00:00 by Adriano · 14 comments
Owner

ESITO: richiesta
RIF: gitea:Adriano/TieMeasureFlow (V3.0.0 82ad885); fiera con Ricerca e Misure (Menoncin) 27-29/10/2026
COSA: contenuto della demo in fiera deciso da Adriano il 12/10/2026.

HARDWARE DISPONIBILE: TC CORE BENCH 036 di Opto Engineering (camera integrata); una telecentrica con stativo.
SI ESPONE: TieMeasureFlow con

  1. calibro USB (emulatore di tastiera, già provato in TMF il 15/09; il calibro è di Menoncin, restituito il 15/09);
  2. gestione per attività (ricetta → task → misura guidata → esito OK/warning/fail → statistica);
  3. camera del TC bench collegata a TMF per: misure, pattern matching, DXF compare.
    CAMPIONI: profili Sider Engineering (5 disegni DWG+PDF in Shared/5_SIDER ENG/1_Materiale utile/).

STATO VERIFICATO:

  • TMF esegue qualunque ricetta VisionSuite v2 nel worker vision (#46 chiusa): misure, MatchPattern, CompareDxf, overlay salvato.
  • CompareDxf anchor="align" prende la posa dal localizzatore (visionsuite origin/main c84bfd4, packages/vs-tools/src/visionsuite/tools/dxf.py:15,136): PM + DXF compare componibili.
  • L'immagine entra in TMF solo da UPLOAD. La camera via agente di stazione (#3) NON esiste ed è attesa:cliente (decisioni Tràfilo).

MANCA PER LA FIERA (ordine di rischio):

  1. Acquisizione dalla camera del TC bench dentro il flusso operatore. Proposta minima, staccata da #3: processo locale sul PC demo (vs-camera, nativo, fuori Docker per la GigE) con GET /grab; nella schermata operatore un tasto «Acquisisci» lo chiama e passa il fotogramma alla stessa API dell'upload (/api/vision/execute). Niente station_devices, niente WebSocket. Da decidere: questa via o anticipare #3.
  2. Modello e SDK della camera del TC CORE BENCH 036 (Itala GenTL? OECS?) e prova di acquisizione con vs-camera.
  3. Calibrazione mm/px del bench (target o ingrandimento nominale della telecentrica) da mettere nella ricetta.
  4. Sider: DWG → DXF (5 profili), ricette MatchPattern (con rotazione: i profili arrivano orientati a caso) + CompareDxf + 2-3 quote; verificare risoluzione contro ±0,05 mm.
  5. PC della demo: installazione TMF offline (docker-compose.dev, Nginx HTTP, SESSION_COOKIE_SECURE=false), monitor touch, rete isolata.
  6. Ruolo della telecentrica con stativo: seconda postazione? (domanda ad Adriano)
  7. Bug gitea:Adriano/TieMeasureFlow#71 (migrazione 015): irrilevante su DB nuovo, rilevante se si clona un DB esistente.

APERTE: nome e sede della fiera; dove sta l'hardware e quando arriva a Tielogic; chi porta PC e monitor; data della prova generale (proposta: entro 22/10).
CRITERIO DI FATTO: sul PC della fiera, un pezzo Sider appoggiato sul bench → «Acquisisci» → esito PM + DXF compare + quote con tolleranze, salvato in statistica; un task col calibro nella stessa ricetta.

AGGIORNAMENTO 15/10/2026: fiera = A&T Vicenza (Automation & Testing), Fiera di Vicenza, 27-29/10. Perimetro esteso: assistente di ricetta LLM in vs-gui (gitea:Adriano/visionsuite#282) + test DXF compare su Sider. Dettaglio nel commento 13787.

ESITO: richiesta RIF: gitea:Adriano/TieMeasureFlow (V3.0.0 82ad885); fiera con Ricerca e Misure (Menoncin) 27-29/10/2026 COSA: contenuto della demo in fiera deciso da Adriano il 12/10/2026. HARDWARE DISPONIBILE: TC CORE BENCH 036 di Opto Engineering (camera integrata); una telecentrica con stativo. SI ESPONE: TieMeasureFlow con 1. calibro USB (emulatore di tastiera, già provato in TMF il 15/09; il calibro è di Menoncin, restituito il 15/09); 2. gestione per attività (ricetta → task → misura guidata → esito OK/warning/fail → statistica); 3. camera del TC bench collegata a TMF per: misure, pattern matching, DXF compare. CAMPIONI: profili Sider Engineering (5 disegni DWG+PDF in Shared/5_SIDER ENG/1_Materiale utile/). STATO VERIFICATO: - TMF esegue qualunque ricetta VisionSuite v2 nel worker `vision` (#46 chiusa): misure, MatchPattern, CompareDxf, overlay salvato. - CompareDxf `anchor="align"` prende la posa dal localizzatore (visionsuite origin/main c84bfd4, packages/vs-tools/src/visionsuite/tools/dxf.py:15,136): PM + DXF compare componibili. - L'immagine entra in TMF solo da UPLOAD. La camera via agente di stazione (#3) NON esiste ed è attesa:cliente (decisioni Tràfilo). MANCA PER LA FIERA (ordine di rischio): 1. Acquisizione dalla camera del TC bench dentro il flusso operatore. Proposta minima, staccata da #3: processo locale sul PC demo (vs-camera, nativo, fuori Docker per la GigE) con `GET /grab`; nella schermata operatore un tasto «Acquisisci» lo chiama e passa il fotogramma alla stessa API dell'upload (`/api/vision/execute`). Niente station_devices, niente WebSocket. Da decidere: questa via o anticipare #3. 2. Modello e SDK della camera del TC CORE BENCH 036 (Itala GenTL? OECS?) e prova di acquisizione con vs-camera. 3. Calibrazione mm/px del bench (target o ingrandimento nominale della telecentrica) da mettere nella ricetta. 4. Sider: DWG → DXF (5 profili), ricette MatchPattern (con rotazione: i profili arrivano orientati a caso) + CompareDxf + 2-3 quote; verificare risoluzione contro ±0,05 mm. 5. PC della demo: installazione TMF offline (docker-compose.dev, Nginx HTTP, SESSION_COOKIE_SECURE=false), monitor touch, rete isolata. 6. Ruolo della telecentrica con stativo: seconda postazione? (domanda ad Adriano) 7. Bug gitea:Adriano/TieMeasureFlow#71 (migrazione 015): irrilevante su DB nuovo, rilevante se si clona un DB esistente. APERTE: nome e sede della fiera; dove sta l'hardware e quando arriva a Tielogic; chi porta PC e monitor; data della prova generale (proposta: entro 22/10). CRITERIO DI FATTO: sul PC della fiera, un pezzo Sider appoggiato sul bench → «Acquisisci» → esito PM + DXF compare + quote con tolleranze, salvato in statistica; un task col calibro nella stessa ricetta. AGGIORNAMENTO 15/10/2026: fiera = A&T Vicenza (Automation & Testing), Fiera di Vicenza, 27-29/10. Perimetro esteso: assistente di ricetta LLM in vs-gui (gitea:Adriano/visionsuite#282) + test DXF compare su Sider. Dettaglio nel commento 13787.
Adriano added the sviluppo label 2026-10-12 13:00:57 +00:00
Author
Owner

ANALISI (passo 1, claude-opus-5-5) — acquisizione dalla camera, parte 1 di #72
RIF: gitea:Adriano/TieMeasureFlow#72, base V3.0.0 5bf374a
DECISIONI DI ADRIANO (15/10/2026): processo locale, non #3; bench TC CORE BENCH 036 sta da Menoncin; telecentrica con stativo = seconda postazione; PC e monitor della demo li porta Menoncin.

ARCHITETTURA: niente servizio nuovo. Sul PC della demo gira vs-gui (VisionSuite) nativo, che ha già POST /camera/grab {source, trigger, timeout_ms} → PNG (vendor/visionsuite/packages/vs-gui/src/visionsuite/gui/server.py:355), con GenTL Itala/Opto via harvesters e la sorgente finta camera:folder per provare senza ferro. Ogni stazione TMF dichiara URL del servizio e nome della sorgente. Il Flask fa da proxy (niente CORS, niente X-API-Key nel browser) e il fotogramma entra in acquire(blob) di vision_execute.js:27, cioè nella stessa API dell'upload.

CONTRATTO (identico per A e B):

  • stations.camera_url VARCHAR(500) NULL — stesso validatore di vision_worker_url (vuoto→None, http(s)://, senza / finale).
  • stations.camera_source VARCHAR(200) NULL — strip, vuoto→None. Es. camera:<seriale>, camera:folder.
  • StationCreate/StationUpdate/StationResponse portano i due campi.
  • NUOVO GET /api/stations/by-code/{code} → StationResponse; 404 se il codice non esiste; auth come GET /api/stations/{station_id}.
  • Flask POST /measure/api/vision/grab (login_required, role MeasurementTec), senza corpo: stazione = _current_station(); legge la stazione da /api/stations/by-code/{code}; senza camera_url o camera_source → 409 JSON {"error": "..."}; altrimenti POST {camera_url}/camera/grab json {"source": camera_source, "trigger": "continuo", "timeout_ms": 5000}, timeout 15 s; 200 → PNG così com'è (image/png); 404/503/504 del servizio → 502 JSON con il dettaglio; servizio irraggiungibile → 502 JSON.

PIANO A — backend (agente A, ramo lavoro/jeeg-tmf72-backend):
FILE: src/backend/migrations/versions/020_station_camera.py (nuova, down_revision 019_station_vision_worker, batch_alter_table, downgrade toglie le due colonne); src/backend/models/orm/station.py; src/backend/models/api/station.py; src/backend/services/station_service.py (create e update); src/backend/api/routers/stations.py (by-code, PRIMA di /{station_id} per l'ordine delle route).
TEST: test_migrations.py (020 su e giù, schema come 019); test_stations_api.py (crea/aggiorna/leggi i due campi, validazione URL, by-code 200 e 404).
NON TOCCARE: frontend, vision_service, migrazioni 000-019.

PIANO B — frontend (agente B, ramo lavoro/jeeg-tmf72-frontend):
FILE: src/frontend/flask_app/services/api_client.py (get_station_by_code); blueprints/measure.py (route grab; flag camera_enabled passato al template di task_execute, calcolato dalla stazione corrente, falso se la chiamata fallisce); templates/measure/task_execute.html (pulsante «Acquisisci dalla camera» accanto all'input file, solo con camera_enabled; grabUrl in window.__visionCfg); static/js/vision_execute.js (metodo grab(): fetch POST con X-CSRFToken → blob → this.acquire(blob); errore mostrato come oggi gli errori di execute; stato busy); templates/admin/stations.html (due campi, nei cinque punti JS dove compare vision_worker_url); translations it/en (+ compilazione .mo se il repo la versiona); docker-compose.dev.yml (client: extra_hosts "host.docker.internal:host-gateway", così da container si raggiunge vs-gui sull'host Linux).
TEST: src/frontend/flask_app/tests — route grab con api_client e requests finti: 409 senza camera, 200 PNG passato, 502 su 503 del servizio, 502 su ConnectionError; ruolo richiesto; admin stazioni con i campi nuovi.
NON TOCCARE: backend, vendor/visionsuite, vision_execute.acquire().

DOPO (Opus): merge dei due rami, suite intera, prova d'insieme in docker-compose.dev con vs-gui su jeeg e camera:folder sui BMP Sider.
PARTI SUCCESSIVE (non in questo giro): ricette Sider (servono i DXF: nessun convertitore DWG su jeeg), calibrazione mm/px per stazione, guida d'installazione sul PC di Menoncin.

ANALISI (passo 1, claude-opus-5-5) — acquisizione dalla camera, parte 1 di #72 RIF: gitea:Adriano/TieMeasureFlow#72, base V3.0.0 5bf374a DECISIONI DI ADRIANO (15/10/2026): processo locale, non #3; bench TC CORE BENCH 036 sta da Menoncin; telecentrica con stativo = seconda postazione; PC e monitor della demo li porta Menoncin. ARCHITETTURA: niente servizio nuovo. Sul PC della demo gira vs-gui (VisionSuite) nativo, che ha già `POST /camera/grab` {source, trigger, timeout_ms} → PNG (vendor/visionsuite/packages/vs-gui/src/visionsuite/gui/server.py:355), con GenTL Itala/Opto via harvesters e la sorgente finta `camera:folder` per provare senza ferro. Ogni stazione TMF dichiara URL del servizio e nome della sorgente. Il Flask fa da proxy (niente CORS, niente X-API-Key nel browser) e il fotogramma entra in `acquire(blob)` di vision_execute.js:27, cioè nella stessa API dell'upload. CONTRATTO (identico per A e B): - stations.camera_url VARCHAR(500) NULL — stesso validatore di vision_worker_url (vuoto→None, http(s)://, senza / finale). - stations.camera_source VARCHAR(200) NULL — strip, vuoto→None. Es. `camera:<seriale>`, `camera:folder`. - StationCreate/StationUpdate/StationResponse portano i due campi. - NUOVO `GET /api/stations/by-code/{code}` → StationResponse; 404 se il codice non esiste; auth come `GET /api/stations/{station_id}`. - Flask `POST /measure/api/vision/grab` (login_required, role MeasurementTec), senza corpo: stazione = `_current_station()`; legge la stazione da `/api/stations/by-code/{code}`; senza camera_url o camera_source → 409 JSON {"error": "..."}; altrimenti POST `{camera_url}/camera/grab` json {"source": camera_source, "trigger": "continuo", "timeout_ms": 5000}, timeout 15 s; 200 → PNG così com'è (image/png); 404/503/504 del servizio → 502 JSON con il dettaglio; servizio irraggiungibile → 502 JSON. PIANO A — backend (agente A, ramo lavoro/jeeg-tmf72-backend): FILE: src/backend/migrations/versions/020_station_camera.py (nuova, down_revision 019_station_vision_worker, batch_alter_table, downgrade toglie le due colonne); src/backend/models/orm/station.py; src/backend/models/api/station.py; src/backend/services/station_service.py (create e update); src/backend/api/routers/stations.py (by-code, PRIMA di `/{station_id}` per l'ordine delle route). TEST: test_migrations.py (020 su e giù, schema come 019); test_stations_api.py (crea/aggiorna/leggi i due campi, validazione URL, by-code 200 e 404). NON TOCCARE: frontend, vision_service, migrazioni 000-019. PIANO B — frontend (agente B, ramo lavoro/jeeg-tmf72-frontend): FILE: src/frontend/flask_app/services/api_client.py (get_station_by_code); blueprints/measure.py (route grab; flag `camera_enabled` passato al template di task_execute, calcolato dalla stazione corrente, falso se la chiamata fallisce); templates/measure/task_execute.html (pulsante «Acquisisci dalla camera» accanto all'input file, solo con camera_enabled; `grabUrl` in window.__visionCfg); static/js/vision_execute.js (metodo grab(): fetch POST con X-CSRFToken → blob → this.acquire(blob); errore mostrato come oggi gli errori di execute; stato busy); templates/admin/stations.html (due campi, nei cinque punti JS dove compare vision_worker_url); translations it/en (+ compilazione .mo se il repo la versiona); docker-compose.dev.yml (client: extra_hosts "host.docker.internal:host-gateway", così da container si raggiunge vs-gui sull'host Linux). TEST: src/frontend/flask_app/tests — route grab con api_client e requests finti: 409 senza camera, 200 PNG passato, 502 su 503 del servizio, 502 su ConnectionError; ruolo richiesto; admin stazioni con i campi nuovi. NON TOCCARE: backend, vendor/visionsuite, vision_execute.acquire(). DOPO (Opus): merge dei due rami, suite intera, prova d'insieme in docker-compose.dev con vs-gui su jeeg e `camera:folder` sui BMP Sider. PARTI SUCCESSIVE (non in questo giro): ricette Sider (servono i DXF: nessun convertitore DWG su jeeg), calibrazione mm/px per stazione, guida d'installazione sul PC di Menoncin.
Adriano added the assegnata:jeeg label 2026-10-15 07:44:45 +00:00
Author
Owner

⚡ jeeg — preso in carico 2026-10-15T07:44:46Z
ramo: lavoro/jeeg · capacità: docker, gpu, systemd

⚡ jeeg — **preso in carico** 2026-10-15T07:44:46Z ramo: `lavoro/jeeg` · capacità: docker, gpu, systemd
Author
Owner

ANALISI 2 (passo 1, claude-opus-5-5) — servizio camera minimo, parte 1b di #72
RIF: gitea:Adriano/TieMeasureFlow#72, ramo lavoro/jeeg-tmf72 (merge di backend 1453b31 e frontend 192d4b5; suite 545 + 342 passed)
PROBLEMA VERIFICATO: vs-gui ascolta solo su 127.0.0.1 per scelta (vendor/visionsuite/packages/vs-gui/src/visionsuite/gui/__main__.py, niente --host, niente auth). Dal container client il loopback dell'host non si raggiunge.
PROVA: vs-gui su jeeg, POST 127.0.0.1:8760/camera/grab {"source":"camera:folder"} → 200 PNG 2464x2056 (BMP Sider); dal container tmflow-client connect 172.17.0.1:8760 → ECONNREFUSED.
DECISIONE: vs-gui non si tocca. Si aggiunge a TMF un servizio camera minimo, solo grab, con lo stesso contratto HTTP di vs-gui, e host configurabile.

FILE: scripts/camera_service.py (nuovo). Avvio: vendor/visionsuite/.venv/bin/python scripts/camera_service.py [--host 127.0.0.1] [--port 8765] [--folder <cartella immagini>] (il venv di VisionSuite ha vs-camera, fastapi, uvicorn; uv sync --all-packages in vendor/visionsuite).

  • GET /camera/sources → {"sources":[{name,kind,label}]} da visionsuite.camera.sources.list_sources(None, cameras=True, config=cfg).
  • POST /camera/grab json {source, trigger="continuo", timeout_ms=5000} → PNG (cv2.imencode). Sorgenti aperte una volta e tenute in un dict con lock per nome (come vs-gui server.py:355-390). Errori: 400 source mancante; 404 SourceNotFound; 503 CameraError/CameraGrabError; 504 timeout.
  • --folder → config {"folder": {"folder": X, "loop": True}} così camera:folder gira in loop sulle immagini.
  • Default host 127.0.0.1; header del file: cosa fa, uso, dipendenze, ⚠️ nessuna autenticazione: --host diverso da loopback solo su rete isolata. Linux: --host 172.17.0.1 (gateway di docker0, raggiunto via host.docker.internal:host-gateway del compose dev). Windows Docker Desktop: PRESUNTO che host.docker.internal raggiunga 127.0.0.1, da provare sul PC di Menoncin.
  • Porta 8765, coerente col placeholder host:8765 della schermata Stazioni.
    TEST: src/backend/tests? no — test in scripts non esistono; aggiungere src/frontend/flask_app/tests/? no. Test con il venv di VisionSuite: scripts/tests/test_camera_service.py con FastAPI TestClient su una cartella di 2 PNG generati: sources contiene camera:folder; grab → 200 image/png e dimensioni giuste; source mancante → 400; sorgente inesistente → 404.
    DOC: README.md, sezione breve «Camera di stazione (demo fiera, #72)»: avvio del servizio, campi camera_url (http://host.docker.internal:8765) e camera_source (camera:<seriale> o camera:folder) nella schermata Stazioni, STATION_SWITCH_ENABLED per due postazioni sullo stesso PC.
    NON TOCCARE: vendor/visionsuite, src/backend, src/frontend.
ANALISI 2 (passo 1, claude-opus-5-5) — servizio camera minimo, parte 1b di #72 RIF: gitea:Adriano/TieMeasureFlow#72, ramo lavoro/jeeg-tmf72 (merge di backend 1453b31 e frontend 192d4b5; suite 545 + 342 passed) PROBLEMA VERIFICATO: vs-gui ascolta solo su 127.0.0.1 per scelta (vendor/visionsuite/packages/vs-gui/src/visionsuite/gui/__main__.py, niente --host, niente auth). Dal container client il loopback dell'host non si raggiunge. PROVA: vs-gui su jeeg, `POST 127.0.0.1:8760/camera/grab {"source":"camera:folder"}` → 200 PNG 2464x2056 (BMP Sider); dal container tmflow-client `connect 172.17.0.1:8760` → ECONNREFUSED. DECISIONE: vs-gui non si tocca. Si aggiunge a TMF un servizio camera minimo, solo grab, con lo stesso contratto HTTP di vs-gui, e host configurabile. FILE: scripts/camera_service.py (nuovo). Avvio: `vendor/visionsuite/.venv/bin/python scripts/camera_service.py [--host 127.0.0.1] [--port 8765] [--folder <cartella immagini>]` (il venv di VisionSuite ha vs-camera, fastapi, uvicorn; `uv sync --all-packages` in vendor/visionsuite). - `GET /camera/sources` → {"sources":[{name,kind,label}]} da `visionsuite.camera.sources.list_sources(None, cameras=True, config=cfg)`. - `POST /camera/grab` json {source, trigger="continuo", timeout_ms=5000} → PNG (cv2.imencode). Sorgenti aperte una volta e tenute in un dict con lock per nome (come vs-gui server.py:355-390). Errori: 400 source mancante; 404 SourceNotFound; 503 CameraError/CameraGrabError; 504 timeout. - `--folder` → config {"folder": {"folder": X, "loop": True}} così `camera:folder` gira in loop sulle immagini. - Default host 127.0.0.1; header del file: cosa fa, uso, dipendenze, ⚠️ nessuna autenticazione: --host diverso da loopback solo su rete isolata. Linux: `--host 172.17.0.1` (gateway di docker0, raggiunto via host.docker.internal:host-gateway del compose dev). Windows Docker Desktop: PRESUNTO che host.docker.internal raggiunga 127.0.0.1, da provare sul PC di Menoncin. - Porta 8765, coerente col placeholder `host:8765` della schermata Stazioni. TEST: src/backend/tests? no — test in scripts non esistono; aggiungere `src/frontend/flask_app/tests/`? no. Test con il venv di VisionSuite: `scripts/tests/test_camera_service.py` con FastAPI TestClient su una cartella di 2 PNG generati: sources contiene camera:folder; grab → 200 image/png e dimensioni giuste; source mancante → 400; sorgente inesistente → 404. DOC: README.md, sezione breve «Camera di stazione (demo fiera, #72)»: avvio del servizio, campi camera_url (`http://host.docker.internal:8765`) e camera_source (`camera:<seriale>` o `camera:folder`) nella schermata Stazioni, STATION_SWITCH_ENABLED per due postazioni sullo stesso PC. NON TOCCARE: vendor/visionsuite, src/backend, src/frontend.
Author
Owner

ESITO: fatto (parte 1: acquisizione dalla camera). Issue resta aperta per le parti 2-4.
RIF: gitea:Adriano/TieMeasureFlow#72; merge e5989c9 su V3.0.0 (backend 1453b31, frontend 192d4b5, servizio camera 0af6692)
COSA: stazione con camera_url + camera_source (migrazione 020); GET /api/stations/by-code/{code} (utente loggato); proxy Flask POST /measure/api/vision/grab; pulsante «Acquisisci dalla camera» in task_execute → acquire(blob) → /api/vision/execute; campi nella schermata Stazioni; scripts/camera_service.py (solo grab, contratto vs-gui, --host/--port/--folder); README «Camera di stazione».
PROVA:

  • pytest backend → 545 passed; frontend → 342 passed 2 skipped; scripts/tests/test_camera_service.py → 9 passed.
  • camera_service su 172.17.0.1:8765 con --folder BMP Sider: da container nella rete tiemeasureflow_tmflow-net con host-gateway, POST host.docker.internal:8765/camera/grab → PNG 2.392.301 byte.
  • route Flask reale (api_client finto) → servizio vero: 200 image/png 2.396.456 byte; camera:XYZ → 502 «nessuna camera con seriale «XYZ»».
    NON PROVATO: clic nel browser sullo stack docker completo (blob → execute → esito); host.docker.internal → loopback su Windows Docker Desktop (PRESUNTO); camera vera del TC bench.
    MANCA:
  1. Camera del TC CORE BENCH 036: modello/SDK (Itala GenTL?) e prova grab col servizio — serve il bench, sta da Menoncin.
  2. Calibrazione mm/px per stazione (bench e telecentrica diverse) nella ricetta.
  3. Ricette Sider: DXF ottenuti dai DWG R14 con LibreDWG 0.13.3 (dwg2dxf -m, letti con ezdxf; tutto su layer 0, cartiglio e asse da togliere). Copia su jeeg in AI-OS/data/tmp/sider/dxf/.
  4. Installazione sul PC di Menoncin (Windows?): docker-compose.dev, servizio camera, due stazioni con STATION_SWITCH_ENABLED.
ESITO: fatto (parte 1: acquisizione dalla camera). Issue resta aperta per le parti 2-4. RIF: gitea:Adriano/TieMeasureFlow#72; merge e5989c9 su V3.0.0 (backend 1453b31, frontend 192d4b5, servizio camera 0af6692) COSA: stazione con camera_url + camera_source (migrazione 020); GET /api/stations/by-code/{code} (utente loggato); proxy Flask POST /measure/api/vision/grab; pulsante «Acquisisci dalla camera» in task_execute → acquire(blob) → /api/vision/execute; campi nella schermata Stazioni; scripts/camera_service.py (solo grab, contratto vs-gui, --host/--port/--folder); README «Camera di stazione». PROVA: - pytest backend → 545 passed; frontend → 342 passed 2 skipped; scripts/tests/test_camera_service.py → 9 passed. - camera_service su 172.17.0.1:8765 con --folder BMP Sider: da container nella rete tiemeasureflow_tmflow-net con host-gateway, POST host.docker.internal:8765/camera/grab → PNG 2.392.301 byte. - route Flask reale (api_client finto) → servizio vero: 200 image/png 2.396.456 byte; camera:XYZ → 502 «nessuna camera con seriale «XYZ»». NON PROVATO: clic nel browser sullo stack docker completo (blob → execute → esito); host.docker.internal → loopback su Windows Docker Desktop (PRESUNTO); camera vera del TC bench. MANCA: 2. Camera del TC CORE BENCH 036: modello/SDK (Itala GenTL?) e prova grab col servizio — serve il bench, sta da Menoncin. 3. Calibrazione mm/px per stazione (bench e telecentrica diverse) nella ricetta. 4. Ricette Sider: DXF ottenuti dai DWG R14 con LibreDWG 0.13.3 (`dwg2dxf -m`, letti con ezdxf; tutto su layer 0, cartiglio e asse da togliere). Copia su jeeg in AI-OS/data/tmp/sider/dxf/. 5. Installazione sul PC di Menoncin (Windows?): docker-compose.dev, servizio camera, due stazioni con STATION_SWITCH_ENABLED.
Adriano removed the assegnata:jeeg label 2026-10-15 08:03:03 +00:00
Author
Owner

⚡ jeeg — rilasciata 2026-10-15T08:03:04Z

⚡ jeeg — **rilasciata** 2026-10-15T08:03:04Z
Author
Owner

ESITO: richiesta
RIF: gitea:Adriano/TieMeasureFlow#72
COSA: fiera identificata e perimetro esteso da Adriano (15/10/2026).

FIERA: A&T Vicenza (Automation & Testing), Fiera di Vicenza, 27-29/10/2026. Fonte: mail A&T Expo e mail Menoncin 29/09 «info software gestione CQ fiera A&T» (vicino di stand: es-tek.it, software gestione misure). Call Teams Menoncin «update progetti + fiera A&T» 16/10/2026 11:00.

PERIMETRO AGGIUNTO (Adriano, 15/10/2026): «mi sarebbe piaciuto portare la gestione della creazione ricette per gui di visionsuite tramite LLM e un paio di test di dxf compare».

  1. Assistente di ricetta = gitea:Adriano/visionsuite#282 (pacchetto packages/vs-assistant, schermata Assistente di vs-gui; ultima forma #319, sorgente condivisa #322, ROI allineate alla posa #323, origin/main 6191182).
    VERIFICATO: vendor/visionsuite di TMF V3.0.0 sta a cdc7a14, 20 commit dietro origin/main (git log HEAD..origin/main).
    BLOCCO: percorso API mai collaudato, gitea:Adriano/visionsuite#302 attesa:adriano (chiave API). Il backend abbonamento (#301) è solo sviluppo: login Max ammesso per uso individuale, demo a terzi → chiave API. Serve anche rete Internet allo stand.
    Bug aperto: gitea:Adriano/visionsuite#320 (testo ripetuto prima e dopo un tool).
  2. Test DXF compare sui campioni Sider: DXF in jeeg:/data/Sorgenti/AI-OS/data/tmp/sider/dxf/ (da DWG R14 con LibreDWG dwg2dxf -y -m), immagini 12 BMP 2464x2056 in jeeg:/data/Sorgenti/AI-OS/data/tmp/sider/. Tutto su layer 0: cartiglio e asse da togliere prima del compare (editor DXF con cancellina = gitea:Adriano/visionsuite#304, non fatto).
    PRESUNTO: le BMP sono riprese telecentriche dei profili nei DXF; scala mm/px non nota.

DA DECIDERE (Adriano): editor a nodi V2 in TMF (decisione 14/09) sostituito dall'assistente in vs-gui come «creazione ricette» della fiera, sì/no. Ricetta creata in vs-gui → eseguita in TMF (worker vision, #46): percorso da provare.
MANCA: chiave API (Adriano); aggiornamento vendor visionsuite in TMF; ricette Sider; calibrazione; installazione PC Menoncin.

ESITO: richiesta RIF: gitea:Adriano/TieMeasureFlow#72 COSA: fiera identificata e perimetro esteso da Adriano (15/10/2026). FIERA: A&T Vicenza (Automation & Testing), Fiera di Vicenza, 27-29/10/2026. Fonte: mail A&T Expo e mail Menoncin 29/09 «info software gestione CQ fiera A&T» (vicino di stand: es-tek.it, software gestione misure). Call Teams Menoncin «update progetti + fiera A&T» 16/10/2026 11:00. PERIMETRO AGGIUNTO (Adriano, 15/10/2026): «mi sarebbe piaciuto portare la gestione della creazione ricette per gui di visionsuite tramite LLM e un paio di test di dxf compare». 1. Assistente di ricetta = gitea:Adriano/visionsuite#282 (pacchetto packages/vs-assistant, schermata Assistente di vs-gui; ultima forma #319, sorgente condivisa #322, ROI allineate alla posa #323, origin/main 6191182). VERIFICATO: vendor/visionsuite di TMF V3.0.0 sta a cdc7a14, 20 commit dietro origin/main (git log HEAD..origin/main). BLOCCO: percorso API mai collaudato, gitea:Adriano/visionsuite#302 attesa:adriano (chiave API). Il backend `abbonamento` (#301) è solo sviluppo: login Max ammesso per uso individuale, demo a terzi → chiave API. Serve anche rete Internet allo stand. Bug aperto: gitea:Adriano/visionsuite#320 (testo ripetuto prima e dopo un tool). 2. Test DXF compare sui campioni Sider: DXF in jeeg:/data/Sorgenti/AI-OS/data/tmp/sider/dxf/ (da DWG R14 con LibreDWG `dwg2dxf -y -m`), immagini 12 BMP 2464x2056 in jeeg:/data/Sorgenti/AI-OS/data/tmp/sider/. Tutto su layer 0: cartiglio e asse da togliere prima del compare (editor DXF con cancellina = gitea:Adriano/visionsuite#304, non fatto). PRESUNTO: le BMP sono riprese telecentriche dei profili nei DXF; scala mm/px non nota. DA DECIDERE (Adriano): editor a nodi V2 in TMF (decisione 14/09) sostituito dall'assistente in vs-gui come «creazione ricette» della fiera, sì/no. Ricetta creata in vs-gui → eseguita in TMF (worker vision, #46): percorso da provare. MANCA: chiave API (Adriano); aggiornamento vendor visionsuite in TMF; ricette Sider; calibrazione; installazione PC Menoncin.
Author
Owner

ESITO: fatto (parziale: prove su immagini esistenti, non sul bench)
RIF: gitea:Adriano/TieMeasureFlow#72
COSA: prove DXF compare sui 4 profili Sider con vs-assistant; riepilogo per Menoncin
FILE: wasabi:adp-work/output/2026-10-15_riepilogo-prove-sider.pdf (e .md) — ricette jeeg:/data/Sorgenti/AI-OS/data/tmp/sider/fiera/ricette/sider{A_fomir,B_pr165,C_quadro,E_mevis}.json con meta.dxf {path,sha256}
PROVA: vs-gui (worktree ~/lavoro/visionsuite-fiera, origin/main 6191182, backend abbonamento) → pezzo trovato e orientato su tutte le immagini; quote principali entro pochi centesimi dal calibro
ESITI: MEVIS 12,309/5,082 (img 10), raggi inf 1,31-1,37 vs R1; PR165 h 5,235-5,239, piede dx R0,85 vs 0,50, teste R0,33-0,37 (15,03 vs 15,37), DXF compare non valido (#327); Quadro 7,137 vs 7,036 stesso pezzo (Δ0,10 fra foto); FOMIR piano sup 3,07 vs 3,30-3,40, DXF a 3,50
LIMITI: scala stimata 53,5 px/mm non calibrata; luce frontale; pezzi a contatto con le piastre; 1-3 foto per pezzo
DIFETTI APERTI: gitea:Adriano/visionsuite#324 #325 #326 #327
NOTA: patch locale NON committata in ~/lavoro/visionsuite-fiera/packages/vs-assistant/src/visionsuite/assistant/abbonamento.py (max_buffer_size=32MiB); fix vero = visionsuite#326
MANCA: foto controluce dal TC bench, ripetibilità, target di calibrazione, DXF Doppia T (Menoncin); chiave API per la fiera (visionsuite#302, Adriano)
PROSSIMO: call Menoncin 16/10 11:00, poi ritaratura ricette sulle foto del bench

ESITO: fatto (parziale: prove su immagini esistenti, non sul bench) RIF: gitea:Adriano/TieMeasureFlow#72 COSA: prove DXF compare sui 4 profili Sider con vs-assistant; riepilogo per Menoncin FILE: wasabi:adp-work/_output/2026-10-15_riepilogo-prove-sider.pdf (e .md) — ricette jeeg:/data/Sorgenti/AI-OS/data/tmp/sider/fiera/ricette/sider_{A_fomir,B_pr165,C_quadro,E_mevis}.json con meta.dxf {path,sha256} PROVA: vs-gui (worktree ~/lavoro/visionsuite-fiera, origin/main 6191182, backend abbonamento) → pezzo trovato e orientato su tutte le immagini; quote principali entro pochi centesimi dal calibro ESITI: MEVIS 12,309/5,082 (img 10), raggi inf 1,31-1,37 vs R1; PR165 h 5,235-5,239, piede dx R0,85 vs 0,50, teste R0,33-0,37 (15,03 vs 15,37), DXF compare non valido (#327); Quadro 7,137 vs 7,036 stesso pezzo (Δ0,10 fra foto); FOMIR piano sup 3,07 vs 3,30-3,40, DXF a 3,50 LIMITI: scala stimata 53,5 px/mm non calibrata; luce frontale; pezzi a contatto con le piastre; 1-3 foto per pezzo DIFETTI APERTI: gitea:Adriano/visionsuite#324 #325 #326 #327 NOTA: patch locale NON committata in ~/lavoro/visionsuite-fiera/packages/vs-assistant/src/visionsuite/assistant/abbonamento.py (max_buffer_size=32MiB); fix vero = visionsuite#326 MANCA: foto controluce dal TC bench, ripetibilità, target di calibrazione, DXF Doppia T (Menoncin); chiave API per la fiera (visionsuite#302, Adriano) PROSSIMO: call Menoncin 16/10 11:00, poi ritaratura ricette sulle foto del bench
Author
Owner

ESITO: fatto
RIF: gitea:Adriano/TieMeasureFlow#72, #74
COSA: rami lavoro/jeeg-tmf72, -backend, -frontend portati a V3.0.0 6bc6c0c (fast-forward: erano già tutti contenuti in V3.0.0); submodule vendor/visionsuite su TieVision-Core 4c178cf.
PROVA: git merge --ff-only origin/V3.0.0 + submodule sync/update nei worktree jeeg:~/lavoro/TieMeasureFlow{,-72backend,-72frontend} → HEAD 6bc6c0c, sub 4c178cf, working tree pulito, pushati; test visione 29 passed.

ESITO: fatto RIF: gitea:Adriano/TieMeasureFlow#72, #74 COSA: rami lavoro/jeeg-tmf72, -backend, -frontend portati a V3.0.0 6bc6c0c (fast-forward: erano già tutti contenuti in V3.0.0); submodule vendor/visionsuite su TieVision-Core 4c178cf. PROVA: git merge --ff-only origin/V3.0.0 + submodule sync/update nei worktree jeeg:~/lavoro/TieMeasureFlow{,-72backend,-72frontend} → HEAD 6bc6c0c, sub 4c178cf, working tree pulito, pushati; test visione 29 passed.
Author
Owner

ESITO: richiesta
RIF: gitea:Adriano/TieMeasureFlow#72
COSA: stato fiera A&T Vicenza 27-29/10 al 2026-10-19 17:15 UTC, da giornale TMF e issue aperte (goldrake). Nessuna prova sul ferro.
FATTO: setup Windows offline v3.0.0-rc2 (#76-#81); TieVision Studio installato su DESKTOP-FVJB02N, licenza a 15/11 (AI-OS#383); assistente rivisto (TieVision-Assistant main b8c07de, Studio ba2afa6); acquisizione camera in TMF (e5989c9).
MANCA:

  1. PC TMF del 19/10: impronta, licenza di produzione, prova a rete staccata. PRESUNTO: PC non ancora in mano.
  2. Camera GigE del TC CORE BENCH 036: mai provata (17/10 porta Ethernet 3 scollegata).
  3. Calibrazione mm/px per stazione; ricette Sider rifatte su foto controluce del bench; DXF Doppia T (Menoncin).
  4. Assistente: chiave API (gitea:Adriano/TieVision-Core#302, attesa:adriano) e Internet allo stand, ma lo stand è senza Internet: decisione di Adriano (hotspot o demo senza assistente).
  5. Pin assistente in TMF non salito; aggiornare TieVision Studio sul PC fiera.
  6. Tempi del matching senza numba nel pacchetto.
    BUG APERTI: TieVision-Studio#60, TieVision-Core#336 #320, TieVision-Assistant#11.
    PROSSIMO: Adriano decide punto 4; punti 1-2 col PC e il bench in mano.
ESITO: richiesta RIF: gitea:Adriano/TieMeasureFlow#72 COSA: stato fiera A&T Vicenza 27-29/10 al 2026-10-19 17:15 UTC, da giornale TMF e issue aperte (goldrake). Nessuna prova sul ferro. FATTO: setup Windows offline v3.0.0-rc2 (#76-#81); TieVision Studio installato su DESKTOP-FVJB02N, licenza a 15/11 (AI-OS#383); assistente rivisto (TieVision-Assistant main b8c07de, Studio ba2afa6); acquisizione camera in TMF (e5989c9). MANCA: 1. PC TMF del 19/10: impronta, licenza di produzione, prova a rete staccata. PRESUNTO: PC non ancora in mano. 2. Camera GigE del TC CORE BENCH 036: mai provata (17/10 porta Ethernet 3 scollegata). 3. Calibrazione mm/px per stazione; ricette Sider rifatte su foto controluce del bench; DXF Doppia T (Menoncin). 4. Assistente: chiave API (gitea:Adriano/TieVision-Core#302, attesa:adriano) e Internet allo stand, ma lo stand è senza Internet: decisione di Adriano (hotspot o demo senza assistente). 5. Pin assistente in TMF non salito; aggiornare TieVision Studio sul PC fiera. 6. Tempi del matching senza numba nel pacchetto. BUG APERTI: TieVision-Studio#60, TieVision-Core#336 #320, TieVision-Assistant#11. PROSSIMO: Adriano decide punto 4; punti 1-2 col PC e il bench in mano.
Author
Owner

ESITO: fatto (controllo, sola lettura)
RIF: gitea:Adriano/TieMeasureFlow#72
COSA: PC fiera REM DESKTOP-FVJB02N controllato via ssh da daitarn, 22/10/2026 23:53.
PROVA:

  • VERIFICATO: TieVision Studio 0.1.2 installato (19/10), licenza C:\ProgramData\Tielogic\licenze\tievision-studio.json (17/10); Studio non in esecuzione; C:\ProgramData\Tielogic\TieVisionStudio vuota (nessuna ricetta).
  • VERIFICATO: Ethernet 3 (192.168.1.50) Disconnected; Ethernet 2 (I219-LM, 1 Gbps, jumbo 9014) con vicino link-local 169.254.193.240, MAC 88-5F-E8-20-08-18, risponde al ping.
  • PRESUNTO: 169.254.193.240 = camera Itala del TC CORE BENCH 036, su Ethernet 2 e non su Ethernet 3. Non verificato con GenTL/ItalaView.
  • VERIFICATO: Itala SDK 2025.09.26 (ItalaGenTL.cti in GENICAM_GENTL64_PATH), mvGenTL-Acquire 2.37.1, OEVIS 2.3/2.4, HALCON 13; TieMeasureFlow non installato; C: 92 GB liberi; acceso dal 13/10.
    MANCA: identificare la camera (ItalaView o enumerazione GenTL), prova di acquisizione da Studio, ricette Sider sul PC; PC TieMeasureFlow (punto 1 del 19/10).
ESITO: fatto (controllo, sola lettura) RIF: gitea:Adriano/TieMeasureFlow#72 COSA: PC fiera REM DESKTOP-FVJB02N controllato via ssh da daitarn, 22/10/2026 23:53. PROVA: - VERIFICATO: TieVision Studio 0.1.2 installato (19/10), licenza C:\ProgramData\Tielogic\licenze\tievision-studio.json (17/10); Studio non in esecuzione; C:\ProgramData\Tielogic\TieVisionStudio vuota (nessuna ricetta). - VERIFICATO: Ethernet 3 (192.168.1.50) Disconnected; Ethernet 2 (I219-LM, 1 Gbps, jumbo 9014) con vicino link-local 169.254.193.240, MAC 88-5F-E8-20-08-18, risponde al ping. - PRESUNTO: 169.254.193.240 = camera Itala del TC CORE BENCH 036, su Ethernet 2 e non su Ethernet 3. Non verificato con GenTL/ItalaView. - VERIFICATO: Itala SDK 2025.09.26 (ItalaGenTL.cti in GENICAM_GENTL64_PATH), mvGenTL-Acquire 2.37.1, OEVIS 2.3/2.4, HALCON 13; TieMeasureFlow non installato; C: 92 GB liberi; acceso dal 13/10. MANCA: identificare la camera (ItalaView o enumerazione GenTL), prova di acquisizione da Studio, ricette Sider sul PC; PC TieMeasureFlow (punto 1 del 19/10).
Author
Owner

ESITO: bloccato
RIF: gitea:Adriano/TieMeasureFlow#72
COSA: PC fiera REM (DESKTOP-FVJB02N): camera identificata da TieVision Studio 0.1.2, grab fallito perché ItalaView tiene la camera.
PROVA: Studio avviato da ssh, GET /camera/sources → camera:601654 «GenTL Opto Engineering ITA50-GM-10C (601654)», ItalaGenTL.cti, Ethernet 2, risposta in 6 s.
PROVA: POST /camera/grab {source: camera:601654} → 503 «apertura fallita … GenTL exception: Communication error … Insufficient privileges to access the resource (ID: -1010)».
VERIFICATO: tasklist → ItalaView.exe pid 22236, sessione Console di HOFME, 18 h di CPU: controllo esclusivo GigE della camera.
VERIFICATO: C:\ProgramData\Tielogic\TieVisionStudio\ricette vuota. Correzione al commento del 22/10: la cartella base contiene immagini/, log/, ricette/; nessuna ricetta.
NOTA: il primo tentativo («Studio non risponde») era il timeout del client a 5 s; studio.log mostra /camera/sources 200 in 6-30 s.
MANCA: ItalaView non chiuso (qualcuno potrebbe usarlo, scelta di Adriano). Chi è sul posto chiude ItalaView, poi si rifà il grab da Studio. Ricette Sider sul PC ancora da caricare.
PROSSIMO: chiusura di ItalaView sul PC REM → rilanciare il grab da Studio.

ESITO: bloccato RIF: gitea:Adriano/TieMeasureFlow#72 COSA: PC fiera REM (DESKTOP-FVJB02N): camera identificata da TieVision Studio 0.1.2, grab fallito perché ItalaView tiene la camera. PROVA: Studio avviato da ssh, GET /camera/sources → `camera:601654` «GenTL Opto Engineering ITA50-GM-10C (601654)», ItalaGenTL.cti, Ethernet 2, risposta in 6 s. PROVA: POST /camera/grab {source: camera:601654} → 503 «apertura fallita … GenTL exception: Communication error … Insufficient privileges to access the resource (ID: -1010)». VERIFICATO: tasklist → `ItalaView.exe` pid 22236, sessione Console di HOFME, 18 h di CPU: controllo esclusivo GigE della camera. VERIFICATO: C:\ProgramData\Tielogic\TieVisionStudio\ricette vuota. Correzione al commento del 22/10: la cartella base contiene immagini/, log/, ricette/; nessuna ricetta. NOTA: il primo tentativo («Studio non risponde») era il timeout del client a 5 s; studio.log mostra /camera/sources 200 in 6-30 s. MANCA: ItalaView non chiuso (qualcuno potrebbe usarlo, scelta di Adriano). Chi è sul posto chiude ItalaView, poi si rifà il grab da Studio. Ricette Sider sul PC ancora da caricare. PROSSIMO: chiusura di ItalaView sul PC REM → rilanciare il grab da Studio.
Author
Owner

ESITO: fatto (script pronto, non ancora eseguito)
RIF: gitea:Adriano/TieMeasureFlow#72
COSA: nuovo PC fiera per TMF (Adriano lo prepara 23/10/2026); installazione e configurazione da remoto da daitarn via ZeroTier Ricerca_Misure 37354b864742e173.
FILE: wasabi:adp-work/_output/2026-10-23_tmf-fiera-chiavetta.zip (primo-accesso.cmd + OpenSSH-Win64-v10.0.0.0.msi sha256 ddec9c53… + ZeroTier One.msi sha256 42514072…, firma ZeroTier Inc. valida); locale daitarn D:\Sorgenti\AI-OS\data\tmp\tmf-fiera-chiavettaCOSA FA LO SCRIPT: utente locale admin adriano (password che non scade), ZeroTier install + join, OpenSSH Server da MSI, chiave adriano@dev con from=10.5.0.45, PasswordAuthentication no, DefaultShell powershell, firewall 22+ping solo da 10.5.0.45, niente standby a corrente; stampa nodo ZT e impronta host.
PROVA: parse PowerShell della parte #PS# → 0 errori; file ASCII CRLF. Non eseguito su PC reale.
PROSSIMO: Adriano lancia primo-accesso.cmd → autorizzare il nodo sul controller goldrake (rete 37354b864742e173, IP fisso proposto 10.5.0.11), alias ssh TMF-FIERA su daitarn, poi installazione TieMeasureFlow-setup 3.0.0-rc3 + licenza sull'impronta.

ESITO: fatto (script pronto, non ancora eseguito) RIF: gitea:Adriano/TieMeasureFlow#72 COSA: nuovo PC fiera per TMF (Adriano lo prepara 23/10/2026); installazione e configurazione da remoto da daitarn via ZeroTier Ricerca_Misure 37354b864742e173. FILE: wasabi:adp-work/_output/2026-10-23_tmf-fiera-chiavetta.zip (primo-accesso.cmd + OpenSSH-Win64-v10.0.0.0.msi sha256 ddec9c53… + ZeroTier One.msi sha256 42514072…, firma ZeroTier Inc. valida); locale daitarn D:\Sorgenti\AI-OS\data\tmp\tmf-fiera-chiavettaCOSA FA LO SCRIPT: utente locale admin adriano (password che non scade), ZeroTier install + join, OpenSSH Server da MSI, chiave adriano@dev con from=10.5.0.45, PasswordAuthentication no, DefaultShell powershell, firewall 22+ping solo da 10.5.0.45, niente standby a corrente; stampa nodo ZT e impronta host. PROVA: parse PowerShell della parte #PS# → 0 errori; file ASCII CRLF. Non eseguito su PC reale. PROSSIMO: Adriano lancia primo-accesso.cmd → autorizzare il nodo sul controller goldrake (rete 37354b864742e173, IP fisso proposto 10.5.0.11), alias ssh TMF-FIERA su daitarn, poi installazione TieMeasureFlow-setup 3.0.0-rc3 + licenza sull'impronta.
Author
Owner

ESITO: fatto
RIF: gitea:Adriano/TieMeasureFlow#72, gitea:Adriano/TieMeasureFlow#109
COSA: 28/10 10:10-10:18, PC fiera DESKTOP-RABEHJJ via ZeroTier (hotspot telefono): Prova del wizard sbloccata, TMF riavviato.
FILE: C:\Tielogic\TieMeasureFlow-src\vision-engine-version.txt — creato, 06b549a25d0bff7504a0e8bbbd233fd5fc05652a (difetto del repo in #109).
TRAPPOLA: appena il PC è andato online, Smart App Control è passato da valutazione ad attivo (VerifiedAndReputablePolicyState=1) e ha bloccato build\venv313\Scripts\python.exe (CodeIntegrity 3033/3077): TMF non ripartiva. Spento con l'ok di Adriano: VerifiedAndReputablePolicyState=0 + CiTool --refresh, senza riavvio; irreversibile senza reinstallare Windows. Ogni PC Windows 11 nuovo che fa girare python da venv o exe Nuitka non firmati: SAC va spento prima della consegna.
PROVA: task tielogic-avvia-tmf → 4 porte su in 37 s, python in sessione 1 (Fiera); GET :8100/health → engine_version 06b549a…; GET :8780/ → 200.
MANCA: Prova del wizard cliccata davanti al PC (Adriano).

ESITO: fatto RIF: gitea:Adriano/TieMeasureFlow#72, gitea:Adriano/TieMeasureFlow#109 COSA: 28/10 10:10-10:18, PC fiera DESKTOP-RABEHJJ via ZeroTier (hotspot telefono): Prova del wizard sbloccata, TMF riavviato. FILE: C:\Tielogic\TieMeasureFlow-src\vision-engine-version.txt — creato, 06b549a25d0bff7504a0e8bbbd233fd5fc05652a (difetto del repo in #109). TRAPPOLA: appena il PC è andato online, Smart App Control è passato da valutazione ad attivo (VerifiedAndReputablePolicyState=1) e ha bloccato build\venv313\Scripts\python.exe (CodeIntegrity 3033/3077): TMF non ripartiva. Spento con l'ok di Adriano: VerifiedAndReputablePolicyState=0 + CiTool --refresh, senza riavvio; irreversibile senza reinstallare Windows. Ogni PC Windows 11 nuovo che fa girare python da venv o exe Nuitka non firmati: SAC va spento prima della consegna. PROVA: task tielogic-avvia-tmf → 4 porte su in 37 s, python in sessione 1 (Fiera); GET :8100/health → engine_version 06b549a…; GET :8780/ → 200. MANCA: Prova del wizard cliccata davanti al PC (Adriano).
Author
Owner

Soluzione

ESITO: fatto (fiera svolta; chiusa su richiesta di Adriano del 06/11/2026: «chiudi quelle della fiera»)
RIF: gitea:Adriano/TieMeasureFlow#72; scheda AI-OS projects/azienda/clienti/Ricerca_e_Misure/TieMeasureFlow/progetto.md, voci 24/10-04/11
COSA: demo TMF alla fiera A&T Vicenza 27-29/10/2026 sul PC DESKTOP-RABEHJJ, TMF da sorgente con camera ITALA sul bench telecentrico, calibrazione a scacchiera densa, ricette da DXF e calibro.
FATTO:

  • acquisizione dalla camera: scripts/camera_service.py (acquisitore esterno, rotte /camera/*), senza agente di stazione #3;
  • ricetta DXF compare creata in TMF da camera (#83) e calibrazione da una foto di scacchiera densa (#84);
  • dati dimostrativi: scripts/seed_fiera.py (#85), utenti e ricette FIERA-* caricati il 24/10;
  • 28/10: Prova del wizard sbloccata scrivendo vision-engine-version.txt (difetto del repo in #109); ricetta FIERA-DXF-COPIA-2 verificata con /api/vision/check: 100 % dei punti in banda sull'immagine di riferimento, scarto corretto su un pezzo diverso;
  • 29/10: pannello visione e visore unico installati in fiera (#118-#125).
    VERIFICATO: origin/V3.0.0 8c361c1 contiene scripts/camera_service.py, scripts/calibrazione.py (calibra_scacchiera_densa:377), scripts/seed_fiera.py, src/vision/costruttori.py, POST /recipes/dxf-compare (src/vision_worker/main.py:242); 8c361c1 gira sulla demo tieflow.tielogic.xyz dal 06/11 (#126).
    PRESUNTO: il criterio completo (pezzo Sider → Acquisisci → PM + DXF + quote in statistica + calibro nella stessa ricetta) non risulta registrato come prova unica: in vision_results della ricetta DXF non c'erano righe il 28/10.
    DOPO: 04/11 il PC fiera è diventato Sacet001 (SACET); dati in wasabi://AI-OS/projects/azienda/clienti/Ricerca_e_Misure/TieMeasureFlow/fiera-vicenza/.
    APERTE ALTROVE: #109 (archivio da sorgente), #3 (agente di stazione, attesa:cliente).
**Soluzione** ESITO: fatto (fiera svolta; chiusa su richiesta di Adriano del 06/11/2026: «chiudi quelle della fiera») RIF: gitea:Adriano/TieMeasureFlow#72; scheda AI-OS projects/azienda/clienti/Ricerca_e_Misure/TieMeasureFlow/progetto.md, voci 24/10-04/11 COSA: demo TMF alla fiera A&T Vicenza 27-29/10/2026 sul PC DESKTOP-RABEHJJ, TMF da sorgente con camera ITALA sul bench telecentrico, calibrazione a scacchiera densa, ricette da DXF e calibro. FATTO: - acquisizione dalla camera: scripts/camera_service.py (acquisitore esterno, rotte /camera/*), senza agente di stazione #3; - ricetta DXF compare creata in TMF da camera (#83) e calibrazione da una foto di scacchiera densa (#84); - dati dimostrativi: scripts/seed_fiera.py (#85), utenti e ricette FIERA-* caricati il 24/10; - 28/10: Prova del wizard sbloccata scrivendo vision-engine-version.txt (difetto del repo in #109); ricetta FIERA-DXF-COPIA-2 verificata con /api/vision/check: 100 % dei punti in banda sull'immagine di riferimento, scarto corretto su un pezzo diverso; - 29/10: pannello visione e visore unico installati in fiera (#118-#125). VERIFICATO: origin/V3.0.0 8c361c1 contiene scripts/camera_service.py, scripts/calibrazione.py (calibra_scacchiera_densa:377), scripts/seed_fiera.py, src/vision/costruttori.py, POST /recipes/dxf-compare (src/vision_worker/main.py:242); 8c361c1 gira sulla demo tieflow.tielogic.xyz dal 06/11 (#126). PRESUNTO: il criterio completo (pezzo Sider → Acquisisci → PM + DXF + quote in statistica + calibro nella stessa ricetta) non risulta registrato come prova unica: in vision_results della ricetta DXF non c'erano righe il 28/10. DOPO: 04/11 il PC fiera è diventato Sacet001 (SACET); dati in wasabi://AI-OS/projects/azienda/clienti/Ricerca_e_Misure/TieMeasureFlow/fiera-vicenza/. APERTE ALTROVE: #109 (archivio da sorgente), #3 (agente di stazione, attesa:cliente).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Adriano/TieMeasureFlow#72