Merge branch 'refs/heads/free_fall'

This commit is contained in:
ST-TEN-11 2025-10-20 10:10:24 +02:00
commit b766e2d5f0
14 changed files with 616 additions and 29 deletions

View File

@ -0,0 +1,198 @@
prova_pervieta_abilitata,pressione_pre_riempimento_2,stampa_etichetta_abilitata,pressione_max_free_fall,pressione_pre_riempimento,prova_tenuta_abilitata_2,codice_ricetta,verifica_codice_a_barre_abilitata,tempo_di_test,part_number,cliente,pressione_di_test,pressione_min_free_fall,pid_pressure_correction,pressione_riempimento_free_fall,tempo_pre_riempimento,tempo_riempimento_free_fall,tempo_pre_riempimento_2,tempo_di_test_2,riempimento_continuo_free_fall,codice_a_barre,pressione_di_test_2,prova_tenuta_abilitata,modello_etichetta
,1000,x,,0,x,PY83-6B747-BA,x,30,PY83-6B747-BA,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,PY83-6B748-BA,x,30,PY83-6B748-BA,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16FC246CP REV1,x,20,16FC246CP REV1,MCLAREN,1000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,MY83-6L694-AB,x,30,MY83-6L694-AB,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16FC250CP REV02,x,20,16FC250CP REV02,MCLAREN,200,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970064 REV2,x,20,5801970064 REV2,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970067 REV1,x,20,5801970067 REV1,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801384839 REV1,x,20,5801384839 REV1,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801384838 REV1,x,20,5801384838 REV1,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801384842 REV01,x,20,5801384842 REV01,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970063 REV2,x,20,5801970063 REV2,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16L0059CP REV03,x,30,16L0059CP REV03,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA259CP REV03,x,30,16LA259CP REV03,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA336CP REV02,x,30,16LA336CP REV02,MCLAREN,3000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA490CP REV02,x,30,16LA490CP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA579CP REV01,x,30,16LA579CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA615CP REV01,x,30,16LA615CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA642CP REV01,x,20,16LA642CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA643CP REV01,x,30,16LA643CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970066 REV01,x,20,5801970066 REV01,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970021 REV01,x,20,5801970021 REV01,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970065 REV01,x,20,5801970065 REV01,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,MY83-6B748-BA,x,30,MY83-6B748-BA,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA459CP REV02,x,30,16LA459CP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,MY83-6B747-BA,x,30,MY83-6B747-BA,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA459CP REV1,x,30,16LA459CP REV1,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA735CP REV01,x,20,16LA735CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5802915822,x,10,5802915822,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5802889710 REV3,x,20,5802889710 REV3,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801384838,x,20,5801384838,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803103147 REV0,x,20,5803103147 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803103150 REV0,x,20,5803103150 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970063 REV0,x,30,5801970063 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801384842 REV0,x,20,5801384842 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970066 REV0,x,20,5801970066 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970064 REV0,x,30,5801970064 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,60192056 REV1,x,20,60192056 REV1,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801970065 REV0,x,30,5801970065 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801384839 REV0,x,20,5801384839 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803018239,x,10,5803018239,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803018238,x,10,5803018238,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803018244,x,10,5803018244,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803018243,x,10,5803018243,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,NESSUN NOME,x,1,NESSUN NOME,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5802991065,x,10,5802991065,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,TENUTA 20 bar,x,10,TENUTA 20 bar,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA353CP REV02,x,10,16LA353CP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,504321531,x,30,504321531,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16L0046CP REV03,x,20,16L0046CP REV03,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA397CP REV02,x,30,16LA397CP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA573CP REV01,x,30,16LA573CP REV01,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,5801616061,x,30,5801616061,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA449CP REV02,x,30,16LA449CP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA773CP REV01,x,30,16LA773CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA461CP REV02,x,20,16LA461CP REV02,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,200116-09-1320,x,10,200116-09-1320,MULTIMATIC,3000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,0,x,5803112815,x,10,5803112815,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803112815 REV01,x,10,5803112815 REV01,IVECO,5000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803112816,x,10,5803112816,IVECO,5000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803112816 REV01,x,10,5803112816 REV01,IVECO,5000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA584CP REV01,x,30,16LA584CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0058CP REV02,x,30,16L0058CP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA027SP REV02,x,30,16LA027SP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0043CP REV02,x,30,16L0043CP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,5802729983 REV0,x,10,5802729983 REV0,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5802980014 REV0,x,25,5802980014 REV0,IVECO,7000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA586CP REV01,x,20,16LA586CP REV01,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA695CP REV02,x,30,16LA695CP REV02,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA765CP REV01,x,20,16LA765CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0045CP REV02,x,30,16L0045CP REV02,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,5801862227 REV0,x,20,5801862227 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801862227 REV00,x,20,5801862227 REV00,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16FA026SP REV1,x,20,16FA026SP REV1,MCLAREN,200,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16FA026SP,x,30,16FA026SP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801384841 REV0,x,20,5801384841 REV0,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5801384841 REV01,x,20,5801384841 REV01,IVECO,8000,,100,,0,,0,10,,,15000,x,ETA30x16.prn
,1000,x,,0,x,5801384840 REV01,x,20,5801384840 REV01,IVECO,8000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,12970-13-2388,x,20,12970-13-2388,specificare cliente,7000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,12970-13-2386,x,20,12970-13-2386,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,12970-13-2384,x,20,12970-13-2384,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,12970-13-2382,x,20,12970-13-2382,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,1000,x,112247,x,10,112247,specificare cliente,7000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,1000,x,055045415,x,30,055045415,Ferrari,2100,,100,,0,,0,10,,,15000,x,ferrari_flag_qr_only.prn
,1000,x,,0,x,98FB342CP,x,20,98FB342CP,MCLAREN,200,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA680CP REV01,x,30,16LA680CP REV01,MCLAREN,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,1000,x,000991211,x,30,000991211,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,0,x,5802170779 REV0,x,20,5802170779 REV0,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,MY83-6L701-AB,x,30,MY83-6L701-AB,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,1000,x,000990701,x,30,000990701,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,055019161,x,20,055019161,FERRARI F250,1500,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,0,x,16FA026SP REV01,x,20,16FA026SP REV01,MCLAREN,200,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16FC056CX REV01,x,20,16FC056CX REV01,MCLAREN,1000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16FC201CX REV01,x,20,16FC201CX REV01,MCLAREN,300,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16FC446CP REV01,x,20,16FC446CP REV01,MCLAREN ,200,,100,,0,,0,10,,,1000,x,Mclaren_barcode.prn
,1000,x,,0,x,16FC541CT REV01,x,20,16FC541CT REV01,MCLAREN,200,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16L0145CP REV03,x,30,16L0145CP REV03,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0154CP REV03,x,30,16L0154CP REV03,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0161CP REV04,x,30,16L0161CP REV04,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0164CP REV02,x,30,16L0164CP REV02,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0167CP REV02,x,30,16L0167CP REV02,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0170CP REV03,x,30,16L0170CP REV03,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0174CP REV02,x,30,16L0174CP REV02,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16L0177CP REV03,x,30,16L0177CP REV03,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0180CP REV04,x,30,16L0180CP REV04,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA372CP REV01,x,30,16LA372CP REV01,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA452CP REV01,x,30,16LA452CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA515CP REV01,x,30,16LA515CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,3500,x,98FA644CP,x,20,98FA644CP,RICARDO,2000,,100,,5,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,000990708,x,30,000990708,FERRARI,5000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,0,x,5802889709 REV3,x,20,5802889709 REV3,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16LA648CP REV01,x,30,16LA648CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,TEST FUGA 7 BAR,x,5,TEST FUGA 7 BAR,specificare cliente,7000,,100,,0,,0,10,,,15000,x,ETA30x16.prn
,1000,x,,1000,x,dev test,x,10,dev test,specificare cliente,7000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16FB157CP REV03,x,20,16FB157CP REV03,MCLAREN,1000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16FB394CP REV04,x,20,16FB394CP REV04,RICARDO,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16FC069CP REV01,x,20,16FC069CP REV01,RICARDO,1000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16FC084CP REV02,x,20,16FC084CP REV02,RICARDO,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0002CP REV03,x,30,16L0002CP REV03,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,16L0007CP REV03,x,30,16L0007CP REV03,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA661CP REV01,x,20,16LA661CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16FA849CP REV05,x,20,16FA849CP REV05,MCLAREN,1000,,100,,0,,0,10,,,15000,x,Mclaren_barcode.prn
,1000,x,,0,x,5802953113 REV.,x,20,5802953113 REV.,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5802980014 REV.,x,20,5802980014 REV.,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5802981174 REV.,x,60,5802981174 REV.,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803112815 R.1,x,10,5803112815 R.1,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,5803112816 R.1,x,10,5803112816 R.1,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,1000,x,590.2.418.1A,x,5,590.2.418.1A,DUCATI,1000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,0,x,16FC469CP REV01,x,20,16FC469CP REV01,MCLAREN,200,,100,,0,,0,10,,,15000,x,Mclaren_barcode.prn
,1000,x,,1000,x,98FA186CP,x,20,98FA186CP,RICARDO,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,5802170804 REV0,x,20,5802170804 REV0,IVECO,8000,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,98FB080CP,x,20,98FB080CP,MCLAREN,200,,100,,0,,0,10,,98FB080CP-20B{N11},15000,x,MCLAREN_353.prn
,1000,x,,0,x,98FB080CP-20B,x,10,98FB080CP-20B,MCLAREN,3000,,100,,0,,0,10,,,15000,x,label_interoperazione.prn
,1000,x,,0,x,98FB081CP,x,20,98FB081CP,MCLAREN,200,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,500,x,16JA605CP,x,10,16JA605CP,MCLAREN,0,,100,,10,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,0,x,16FC256CP REV01,x,20,16FC256CP REV01,MCLAREN,1000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,055055934,x,20,055055934,FERRARI,6800,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,1000,x,055038417,x,20,055038417,FERRARI,2000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,1000,x,055038405,x,20,055038405,FERRARI,2000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,0,x,16LA668CP REV01,x,30,16LA668CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA617CP REV01,x,30,16LA617CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16L0075CP REV03,x,30,16L0075CP REV03,MCLAREN,3500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,60175799 REV0,x,20,60175799 REV0,specificare cliente,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,000746453,x,30,000746453,MCLAREN,0,,100,,0,,0,10,,,15000,x,ERRECINQUE_flag_qr_only.prn
,1000,x,,1000,x,000904357,x,20,000904357,FERRARI,4100,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,1000,x,000952005,x,20,000952005,FERRARI F250,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000952022,x,20,000952022,FERRARI F250,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,0,x,000960275,x,30,000960275,Ferrari,2500,,100,,0,,0,10,,,15000,x,ERRECINQUE_flag_qr_only.prn
,1000,x,,0,x,000960281,x,30,000960281,Ferrari,2500,,100,,0,,0,10,,,15000,x,ERRECINQUE_flag_qr_only.prn
,1000,x,,0,x,000960322,x,30,000960322,Ferrari,2500,,100,,0,,0,10,,,15000,x,ERRECINQUE_flag_qr_only.prn
,1000,x,,0,x,000987571,x,0,000987571,ferrari,0,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,0,x,000987572,x,0,000987572,ferrari,0,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,0,x,,0,x,000987923,x,10,000987923,FERRARI,2100,,100,,0,,0,10,,,0,x,ferrari_30x16_203.prn
,0,x,,0,x,000987924,x,10,000987924,FERRARI,2100,,100,,0,,0,10,,,0,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990679,x,30,000990679,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990680,x,30,000990680,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990681,x,30,000990681,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990684,x,30,000990684,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990685,x,30,000990685,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990686,x,30,000990686,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990687,x,30,000990687,FERRARI,5000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990688,x,30,000990688,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990690,x,30,000990690,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990691,x,30,000990691,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990692,x,30,000990692,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990696,x,30,000990696,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,000990700,x,30,000990700,FERRARI,2000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,18FA535CP,x,20,18FA535CP,MCLAREN,500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,SY9Y-2976-AB,x,10,SY9Y-2976-AB,ASTON MARTIN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,SY9Y-2976-AC,x,30,SY9Y-2976-AC,ASTON MARTIN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,SY9Y-2976-BB,x,30,SY9Y-2976-BB,ASTON MARTIN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,SY9Y-2976-BC,x,30,SY9Y-2976-BC,ASTON MARTIN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,SY9Y-9S331-AB,x,30,SY9Y-9S331-AB,ASTON MARTIN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,SY9Y-9S331-BB,x,30,SY9Y-9S331-BB,ASTON MARTIN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA518CP REV02,x,20,16LA518CP REV02,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA718CP REV02,x,30,16LA718CP REV02,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,18JB918CP,x,30,18JB918CP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,18JB923CP,x,30,18JB923CP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,18JB921CP,x,30,18JB921CP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,18JB916CP,x,30,18JB916CP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,18JB927CP,x,30,18JB927CP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,0,x,16L0151CP REV03,x,30,16L0151CP REV03,MCLAREN,3000,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,0,x,16LA451CP REV01,x,30,16LA451CP REV01,MCLAREN,3500,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,1000,x,18JB951CP,x,30,18JB951CP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,1000,x,18JB925CP,x,30,18JB925CP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,0,x,18FA126CP,x,20,18FA126CP,MCLAREN,500,,100,,0,,0,10,,,15000,x,MCLAREN_353.prn
,1000,x,,1000,x,18JB926CP,x,30,18JB926CP,MCLAREN,3000,,100,,0,,0,10,,,15000,x,ferrari_30x16_203.prn
,1000,x,,3000,x,000960324,x,30,000960324,Ferrari,2500,,100,,10,,0,10,,,15000,x,ERRECINQUE_flag_qr_only.prn
,1000,x,,0,x,5803217628 REV.,x,20,5803217628 REV.,IVECO,0,,100,,0,,0,10,,,15000,x,EtichettaR5_Montaggio_1prova.prn
,1000,x,,0,x,07N131597A,x,30,07N131597A,LAMBORGHINI,1000,,100,,0,,0,10,,,15000,x,Lamborghini_30x16.prn
,1000,x,,0,x,07N131628A,x,10,07N131628A,LAMBORGHINI,200,,100,,0,,0,10,,,15000,x,Lamborghini_30x16.prn
,1000,x,35,1000,x,18JA708CP,x,30,18JA708CP,AVL,3000,5,100,1000,0,10,0,10,x,,15000,x,Bugatti_proto_template.prn
,1000,x,,1000,x,18JA709CP,x,30,18JA709CP,AVL,3000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,1000,x,18JA710CP,x,30,18JA710CP,AVL,3000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,1000,x,18JA712CP,x,30,18JA712CP,AVL,3000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,1000,x,18JA713CP,x,30,18JA713CP,AVL,3000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,1000,x,18JA750CP,x,30,18JA750CP,AVL,3000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
,1000,x,,1000,x,18JA757CP,x,30,18JA757CP,AVL,3000,,100,,0,,0,10,,,15000,x,ETA30x16_203dpi.prn
1 prova_pervieta_abilitata pressione_pre_riempimento_2 stampa_etichetta_abilitata pressione_max_free_fall pressione_pre_riempimento prova_tenuta_abilitata_2 codice_ricetta verifica_codice_a_barre_abilitata tempo_di_test part_number cliente pressione_di_test pressione_min_free_fall pid_pressure_correction pressione_riempimento_free_fall tempo_pre_riempimento tempo_riempimento_free_fall tempo_pre_riempimento_2 tempo_di_test_2 riempimento_continuo_free_fall codice_a_barre pressione_di_test_2 prova_tenuta_abilitata modello_etichetta
2 1000 x 0 x PY83-6B747-BA x 30 PY83-6B747-BA specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
3 1000 x 0 x PY83-6B748-BA x 30 PY83-6B748-BA specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
4 1000 x 0 x 16FC246CP REV1 x 20 16FC246CP REV1 MCLAREN 1000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
5 1000 x 0 x MY83-6L694-AB x 30 MY83-6L694-AB specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
6 1000 x 0 x 16FC250CP REV02 x 20 16FC250CP REV02 MCLAREN 200 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
7 1000 x 0 x 5801970064 REV2 x 20 5801970064 REV2 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
8 1000 x 0 x 5801970067 REV1 x 20 5801970067 REV1 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
9 1000 x 0 x 5801384839 REV1 x 20 5801384839 REV1 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
10 1000 x 0 x 5801384838 REV1 x 20 5801384838 REV1 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
11 1000 x 0 x 5801384842 REV01 x 20 5801384842 REV01 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
12 1000 x 0 x 5801970063 REV2 x 20 5801970063 REV2 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
13 1000 x 0 x 16L0059CP REV03 x 30 16L0059CP REV03 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
14 1000 x 0 x 16LA259CP REV03 x 30 16LA259CP REV03 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
15 1000 x 0 x 16LA336CP REV02 x 30 16LA336CP REV02 MCLAREN 3000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
16 1000 x 0 x 16LA490CP REV02 x 30 16LA490CP REV02 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
17 1000 x 0 x 16LA579CP REV01 x 30 16LA579CP REV01 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
18 1000 x 0 x 16LA615CP REV01 x 30 16LA615CP REV01 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
19 1000 x 0 x 16LA642CP REV01 x 20 16LA642CP REV01 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
20 1000 x 0 x 16LA643CP REV01 x 30 16LA643CP REV01 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
21 1000 x 0 x 5801970066 REV01 x 20 5801970066 REV01 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
22 1000 x 0 x 5801970021 REV01 x 20 5801970021 REV01 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
23 1000 x 0 x 5801970065 REV01 x 20 5801970065 REV01 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
24 1000 x 0 x MY83-6B748-BA x 30 MY83-6B748-BA specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
25 1000 x 0 x 16LA459CP REV02 x 30 16LA459CP REV02 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
26 1000 x 0 x MY83-6B747-BA x 30 MY83-6B747-BA specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
27 1000 x 0 x 16LA459CP REV1 x 30 16LA459CP REV1 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
28 1000 x 0 x 16LA735CP REV01 x 20 16LA735CP REV01 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
29 1000 x 0 x 5802915822 x 10 5802915822 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
30 1000 x 0 x 5802889710 REV3 x 20 5802889710 REV3 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
31 1000 x 0 x 5801384838 x 20 5801384838 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
32 1000 x 0 x 5803103147 REV0 x 20 5803103147 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
33 1000 x 0 x 5803103150 REV0 x 20 5803103150 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
34 1000 x 0 x 5801970063 REV0 x 30 5801970063 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
35 1000 x 0 x 5801384842 REV0 x 20 5801384842 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
36 1000 x 0 x 5801970066 REV0 x 20 5801970066 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
37 1000 x 0 x 5801970064 REV0 x 30 5801970064 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
38 1000 x 0 x 60192056 REV1 x 20 60192056 REV1 specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
39 1000 x 0 x 5801970065 REV0 x 30 5801970065 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
40 1000 x 0 x 5801384839 REV0 x 20 5801384839 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
41 1000 x 0 x 5803018239 x 10 5803018239 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
42 1000 x 0 x 5803018238 x 10 5803018238 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
43 1000 x 0 x 5803018244 x 10 5803018244 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
44 1000 x 0 x 5803018243 x 10 5803018243 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
45 1000 x 0 x NESSUN NOME x 1 NESSUN NOME specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
46 1000 x 0 x 5802991065 x 10 5802991065 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
47 1000 x 0 x TENUTA 20 bar x 10 TENUTA 20 bar specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
48 1000 x 0 x 16LA353CP REV02 x 10 16LA353CP REV02 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
49 1000 x 0 x 504321531 x 30 504321531 specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
50 1000 x 0 x 16L0046CP REV03 x 20 16L0046CP REV03 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
51 1000 x 0 x 16LA397CP REV02 x 30 16LA397CP REV02 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
52 1000 x 0 x 16LA573CP REV01 x 30 16LA573CP REV01 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
53 1000 x 0 x 5801616061 x 30 5801616061 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
54 1000 x 0 x 16LA449CP REV02 x 30 16LA449CP REV02 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
55 1000 x 0 x 16LA773CP REV01 x 30 16LA773CP REV01 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
56 1000 x 0 x 16LA461CP REV02 x 20 16LA461CP REV02 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
57 1000 x 1000 x 200116-09-1320 x 10 200116-09-1320 MULTIMATIC 3000 100 0 0 10 15000 x ETA30x16_203dpi.prn
58 1000 x 0 x 5803112815 x 10 5803112815 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
59 1000 x 0 x 5803112815 REV01 x 10 5803112815 REV01 IVECO 5000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
60 1000 x 0 x 5803112816 x 10 5803112816 IVECO 5000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
61 1000 x 0 x 5803112816 REV01 x 10 5803112816 REV01 IVECO 5000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
62 1000 x 0 x 16LA584CP REV01 x 30 16LA584CP REV01 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
63 1000 x 0 x 16L0058CP REV02 x 30 16L0058CP REV02 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
64 1000 x 0 x 16LA027SP REV02 x 30 16LA027SP REV02 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
65 1000 x 0 x 16L0043CP REV02 x 30 16L0043CP REV02 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
66 1000 x 0 x 5802729983 REV0 x 10 5802729983 REV0 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
67 1000 x 0 x 5802980014 REV0 x 25 5802980014 REV0 IVECO 7000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
68 1000 x 0 x 16LA586CP REV01 x 20 16LA586CP REV01 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
69 1000 x 0 x 16LA695CP REV02 x 30 16LA695CP REV02 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
70 1000 x 0 x 16LA765CP REV01 x 20 16LA765CP REV01 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
71 1000 x 0 x 16L0045CP REV02 x 30 16L0045CP REV02 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
72 1000 x 0 x 5801862227 REV0 x 20 5801862227 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
73 1000 x 0 x 5801862227 REV00 x 20 5801862227 REV00 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
74 1000 x 0 x 16FA026SP REV1 x 20 16FA026SP REV1 MCLAREN 200 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
75 1000 x 0 x 16FA026SP x 30 16FA026SP MCLAREN 3000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
76 1000 x 0 x 5801384841 REV0 x 20 5801384841 REV0 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
77 1000 x 0 x 5801384841 REV01 x 20 5801384841 REV01 IVECO 8000 100 0 0 10 15000 x ETA30x16.prn
78 1000 x 0 x 5801384840 REV01 x 20 5801384840 REV01 IVECO 8000 100 0 0 10 15000 x MCLAREN_353.prn
79 1000 x 0 x 12970-13-2388 x 20 12970-13-2388 specificare cliente 7000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
80 1000 x 0 x 12970-13-2386 x 20 12970-13-2386 specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
81 1000 x 0 x 12970-13-2384 x 20 12970-13-2384 specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
82 1000 x 0 x 12970-13-2382 x 20 12970-13-2382 specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
83 1000 x 1000 x 112247 x 10 112247 specificare cliente 7000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
84 1000 x 1000 x 055045415 x 30 055045415 Ferrari 2100 100 0 0 10 15000 x ferrari_flag_qr_only.prn
85 1000 x 0 x 98FB342CP x 20 98FB342CP MCLAREN 200 100 0 0 10 15000 x MCLAREN_353.prn
86 1000 x 0 x 16LA680CP REV01 x 30 16LA680CP REV01 MCLAREN 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
87 1000 x 1000 x 000991211 x 30 000991211 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
88 1000 x 0 x 5802170779 REV0 x 20 5802170779 REV0 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
89 1000 x 0 x MY83-6L701-AB x 30 MY83-6L701-AB specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
90 1000 x 1000 x 000990701 x 30 000990701 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
91 1000 x 1000 x 055019161 x 20 055019161 FERRARI F250 1500 100 0 0 10 15000 x ferrari_30x16_203.prn
92 1000 x 0 x 16FA026SP REV01 x 20 16FA026SP REV01 MCLAREN 200 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
93 1000 x 0 x 16FC056CX REV01 x 20 16FC056CX REV01 MCLAREN 1000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
94 1000 x 0 x 16FC201CX REV01 x 20 16FC201CX REV01 MCLAREN 300 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
95 1000 x 0 x 16FC446CP REV01 x 20 16FC446CP REV01 MCLAREN 200 100 0 0 10 1000 x Mclaren_barcode.prn
96 1000 x 0 x 16FC541CT REV01 x 20 16FC541CT REV01 MCLAREN 200 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
97 1000 x 0 x 16L0145CP REV03 x 30 16L0145CP REV03 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
98 1000 x 0 x 16L0154CP REV03 x 30 16L0154CP REV03 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
99 1000 x 0 x 16L0161CP REV04 x 30 16L0161CP REV04 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
100 1000 x 0 x 16L0164CP REV02 x 30 16L0164CP REV02 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
101 1000 x 0 x 16L0167CP REV02 x 30 16L0167CP REV02 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
102 1000 x 0 x 16L0170CP REV03 x 30 16L0170CP REV03 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
103 1000 x 0 x 16L0174CP REV02 x 30 16L0174CP REV02 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
104 1000 x 0 x 16L0177CP REV03 x 30 16L0177CP REV03 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
105 1000 x 0 x 16L0180CP REV04 x 30 16L0180CP REV04 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
106 1000 x 0 x 16LA372CP REV01 x 30 16LA372CP REV01 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
107 1000 x 0 x 16LA452CP REV01 x 30 16LA452CP REV01 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
108 1000 x 0 x 16LA515CP REV01 x 30 16LA515CP REV01 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
109 1000 x 3500 x 98FA644CP x 20 98FA644CP RICARDO 2000 100 5 0 10 15000 x MCLAREN_353.prn
110 1000 x 1000 x 000990708 x 30 000990708 FERRARI 5000 100 0 0 10 15000 x ferrari_30x16_203.prn
111 1000 x 0 x 5802889709 REV3 x 20 5802889709 REV3 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
112 1000 x 0 x 16LA648CP REV01 x 30 16LA648CP REV01 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
113 1000 x 0 x TEST FUGA 7 BAR x 5 TEST FUGA 7 BAR specificare cliente 7000 100 0 0 10 15000 x ETA30x16.prn
114 1000 x 1000 x dev test x 10 dev test specificare cliente 7000 100 0 0 10 15000 x MCLAREN_353.prn
115 1000 x 0 x 16FB157CP REV03 x 20 16FB157CP REV03 MCLAREN 1000 100 0 0 10 15000 x MCLAREN_353.prn
116 1000 x 0 x 16FB394CP REV04 x 20 16FB394CP REV04 RICARDO 3000 100 0 0 10 15000 x MCLAREN_353.prn
117 1000 x 0 x 16FC069CP REV01 x 20 16FC069CP REV01 RICARDO 1000 100 0 0 10 15000 x MCLAREN_353.prn
118 1000 x 0 x 16FC084CP REV02 x 20 16FC084CP REV02 RICARDO 3000 100 0 0 10 15000 x MCLAREN_353.prn
119 1000 x 0 x 16L0002CP REV03 x 30 16L0002CP REV03 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
120 1000 x 0 x 16L0007CP REV03 x 30 16L0007CP REV03 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
121 1000 x 0 x 16LA661CP REV01 x 20 16LA661CP REV01 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
122 1000 x 0 x 16FA849CP REV05 x 20 16FA849CP REV05 MCLAREN 1000 100 0 0 10 15000 x Mclaren_barcode.prn
123 1000 x 0 x 5802953113 REV. x 20 5802953113 REV. IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
124 1000 x 0 x 5802980014 REV. x 20 5802980014 REV. IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
125 1000 x 0 x 5802981174 REV. x 60 5802981174 REV. IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
126 1000 x 0 x 5803112815 R.1 x 10 5803112815 R.1 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
127 1000 x 0 x 5803112816 R.1 x 10 5803112816 R.1 IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
128 1000 x 1000 x 590.2.418.1A x 5 590.2.418.1A DUCATI 1000 100 0 0 10 15000 x ETA30x16_203dpi.prn
129 1000 x 0 x 16FC469CP REV01 x 20 16FC469CP REV01 MCLAREN 200 100 0 0 10 15000 x Mclaren_barcode.prn
130 1000 x 1000 x 98FA186CP x 20 98FA186CP RICARDO 3000 100 0 0 10 15000 x MCLAREN_353.prn
131 1000 x 0 x 5802170804 REV0 x 20 5802170804 REV0 IVECO 8000 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
132 1000 x 0 x 98FB080CP x 20 98FB080CP MCLAREN 200 100 0 0 10 98FB080CP-20B{N11} 15000 x MCLAREN_353.prn
133 1000 x 0 x 98FB080CP-20B x 10 98FB080CP-20B MCLAREN 3000 100 0 0 10 15000 x label_interoperazione.prn
134 1000 x 0 x 98FB081CP x 20 98FB081CP MCLAREN 200 100 0 0 10 15000 x MCLAREN_353.prn
135 1000 x 500 x 16JA605CP x 10 16JA605CP MCLAREN 0 100 10 0 10 15000 x ETA30x16_203dpi.prn
136 1000 x 0 x 16FC256CP REV01 x 20 16FC256CP REV01 MCLAREN 1000 100 0 0 10 15000 x MCLAREN_353.prn
137 1000 x 1000 x 055055934 x 20 055055934 FERRARI 6800 100 0 0 10 15000 x ETA30x16_203dpi.prn
138 1000 x 1000 x 055038417 x 20 055038417 FERRARI 2000 100 0 0 10 15000 x ETA30x16_203dpi.prn
139 1000 x 1000 x 055038405 x 20 055038405 FERRARI 2000 100 0 0 10 15000 x ETA30x16_203dpi.prn
140 1000 x 0 x 16LA668CP REV01 x 30 16LA668CP REV01 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
141 1000 x 0 x 16LA617CP REV01 x 30 16LA617CP REV01 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
142 1000 x 0 x 16L0075CP REV03 x 30 16L0075CP REV03 MCLAREN 3500 100 0 0 10 15000 x MCLAREN_353.prn
143 1000 x 0 x 60175799 REV0 x 20 60175799 REV0 specificare cliente 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
144 1000 x 0 x 000746453 x 30 000746453 MCLAREN 0 100 0 0 10 15000 x ERRECINQUE_flag_qr_only.prn
145 1000 x 1000 x 000904357 x 20 000904357 FERRARI 4100 100 0 0 10 15000 x ETA30x16_203dpi.prn
146 1000 x 1000 x 000952005 x 20 000952005 FERRARI F250 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
147 1000 x 1000 x 000952022 x 20 000952022 FERRARI F250 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
148 1000 x 0 x 000960275 x 30 000960275 Ferrari 2500 100 0 0 10 15000 x ERRECINQUE_flag_qr_only.prn
149 1000 x 0 x 000960281 x 30 000960281 Ferrari 2500 100 0 0 10 15000 x ERRECINQUE_flag_qr_only.prn
150 1000 x 0 x 000960322 x 30 000960322 Ferrari 2500 100 0 0 10 15000 x ERRECINQUE_flag_qr_only.prn
151 1000 x 0 x 000987571 x 0 000987571 ferrari 0 100 0 0 10 15000 x ferrari_30x16_203.prn
152 1000 x 0 x 000987572 x 0 000987572 ferrari 0 100 0 0 10 15000 x ferrari_30x16_203.prn
153 0 x 0 x 000987923 x 10 000987923 FERRARI 2100 100 0 0 10 0 x ferrari_30x16_203.prn
154 0 x 0 x 000987924 x 10 000987924 FERRARI 2100 100 0 0 10 0 x ferrari_30x16_203.prn
155 1000 x 1000 x 000990679 x 30 000990679 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
156 1000 x 1000 x 000990680 x 30 000990680 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
157 1000 x 1000 x 000990681 x 30 000990681 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
158 1000 x 1000 x 000990684 x 30 000990684 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
159 1000 x 1000 x 000990685 x 30 000990685 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
160 1000 x 1000 x 000990686 x 30 000990686 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
161 1000 x 1000 x 000990687 x 30 000990687 FERRARI 5000 100 0 0 10 15000 x ferrari_30x16_203.prn
162 1000 x 1000 x 000990688 x 30 000990688 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
163 1000 x 1000 x 000990690 x 30 000990690 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
164 1000 x 1000 x 000990691 x 30 000990691 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
165 1000 x 1000 x 000990692 x 30 000990692 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
166 1000 x 1000 x 000990696 x 30 000990696 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
167 1000 x 1000 x 000990700 x 30 000990700 FERRARI 2000 100 0 0 10 15000 x ferrari_30x16_203.prn
168 1000 x 1000 x 18FA535CP x 20 18FA535CP MCLAREN 500 100 0 0 10 15000 x MCLAREN_353.prn
169 1000 x 1000 x SY9Y-2976-AB x 10 SY9Y-2976-AB ASTON MARTIN 3000 100 0 0 10 15000 x MCLAREN_353.prn
170 1000 x 1000 x SY9Y-2976-AC x 30 SY9Y-2976-AC ASTON MARTIN 3000 100 0 0 10 15000 x MCLAREN_353.prn
171 1000 x 1000 x SY9Y-2976-BB x 30 SY9Y-2976-BB ASTON MARTIN 3000 100 0 0 10 15000 x MCLAREN_353.prn
172 1000 x 1000 x SY9Y-2976-BC x 30 SY9Y-2976-BC ASTON MARTIN 3000 100 0 0 10 15000 x MCLAREN_353.prn
173 1000 x 1000 x SY9Y-9S331-AB x 30 SY9Y-9S331-AB ASTON MARTIN 3000 100 0 0 10 15000 x MCLAREN_353.prn
174 1000 x 1000 x SY9Y-9S331-BB x 30 SY9Y-9S331-BB ASTON MARTIN 3000 100 0 0 10 15000 x MCLAREN_353.prn
175 1000 x 0 x 16LA518CP REV02 x 20 16LA518CP REV02 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
176 1000 x 0 x 16LA718CP REV02 x 30 16LA718CP REV02 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
177 1000 x 1000 x 18JB918CP x 30 18JB918CP MCLAREN 3000 100 0 0 10 15000 x ferrari_30x16_203.prn
178 1000 x 1000 x 18JB923CP x 30 18JB923CP MCLAREN 3000 100 0 0 10 15000 x ferrari_30x16_203.prn
179 1000 x 1000 x 18JB921CP x 30 18JB921CP MCLAREN 3000 100 0 0 10 15000 x ferrari_30x16_203.prn
180 1000 x 1000 x 18JB916CP x 30 18JB916CP MCLAREN 3000 100 0 0 10 15000 x ferrari_30x16_203.prn
181 1000 x 1000 x 18JB927CP x 30 18JB927CP MCLAREN 3000 100 0 0 10 15000 x ferrari_30x16_203.prn
182 1000 x 0 x 16L0151CP REV03 x 30 16L0151CP REV03 MCLAREN 3000 100 0 0 10 15000 x MCLAREN_353.prn
183 1000 x 0 x 16LA451CP REV01 x 30 16LA451CP REV01 MCLAREN 3500 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
184 1000 x 1000 x 18JB951CP x 30 18JB951CP MCLAREN 3000 100 0 0 10 15000 x ferrari_30x16_203.prn
185 1000 x 1000 x 18JB925CP x 30 18JB925CP MCLAREN 3000 100 0 0 10 15000 x ferrari_30x16_203.prn
186 1000 x 0 x 18FA126CP x 20 18FA126CP MCLAREN 500 100 0 0 10 15000 x MCLAREN_353.prn
187 1000 x 1000 x 18JB926CP x 30 18JB926CP MCLAREN 3000 100 0 0 10 15000 x ferrari_30x16_203.prn
188 1000 x 3000 x 000960324 x 30 000960324 Ferrari 2500 100 10 0 10 15000 x ERRECINQUE_flag_qr_only.prn
189 1000 x 0 x 5803217628 REV. x 20 5803217628 REV. IVECO 0 100 0 0 10 15000 x EtichettaR5_Montaggio_1prova.prn
190 1000 x 0 x 07N131597A x 30 07N131597A LAMBORGHINI 1000 100 0 0 10 15000 x Lamborghini_30x16.prn
191 1000 x 0 x 07N131628A x 10 07N131628A LAMBORGHINI 200 100 0 0 10 15000 x Lamborghini_30x16.prn
192 1000 x 35 1000 x 18JA708CP x 30 18JA708CP AVL 3000 5 100 1000 0 10 0 10 x 15000 x Bugatti_proto_template.prn
193 1000 x 1000 x 18JA709CP x 30 18JA709CP AVL 3000 100 0 0 10 15000 x ETA30x16_203dpi.prn
194 1000 x 1000 x 18JA710CP x 30 18JA710CP AVL 3000 100 0 0 10 15000 x ETA30x16_203dpi.prn
195 1000 x 1000 x 18JA712CP x 30 18JA712CP AVL 3000 100 0 0 10 15000 x ETA30x16_203dpi.prn
196 1000 x 1000 x 18JA713CP x 30 18JA713CP AVL 3000 100 0 0 10 15000 x ETA30x16_203dpi.prn
197 1000 x 1000 x 18JA750CP x 30 18JA750CP AVL 3000 100 0 0 10 15000 x ETA30x16_203dpi.prn
198 1000 x 1000 x 18JA757CP x 30 18JA757CP AVL 3000 100 0 0 10 15000 x ETA30x16_203dpi.prn

View File

@ -5,6 +5,7 @@ image_for_warning= st-ten-11
[hardware_config]
archive_synchronizer: present
free_fall: present
archive_synchronizer_extra: present
uvc_camera: absent
label_printer: present
@ -58,6 +59,7 @@ label_template_field: modello_etichetta
description_field: descrizione
[recipes_defaults]
prova_pervieta_abilitata:
tester_discharge_enable: yes
dimensione_lotto_abilitata: x
tempo_pre_riempimento: 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 652 KiB

View File

@ -359,18 +359,63 @@ class TecnaMarpossProvasetT3(ModbusComponent):
recipe_name += b"\x00" * (16 - len(recipe_name))
recipe_barcode = f"j{recipe.part_number}"[:16].encode("ascii")
recipe_barcode += b"\x00" * (24 - len(recipe_barcode))
# Base flags and PID mode
test_flags = 0b0110100001010000 if (step.spec.get("autotest", False) in ["ko_check"]) else 0b0110000001010000
pid_mode_text = step.spec.get("pid_mod_config","AUTO") # Get the selected text from the combobox
pid_mode_text = step.spec.get("pid_mod_config", "AUTO") # Get the selected text from the combobox
pid_mode_value = { # Mapping of text to numeric values
"AUTO": 5,
"FAST": 0,
"MEDIUM": 1,
"SLOW": 2,
}.get(pid_mode_text, 5)
# Inject PID mode bits (bits 4..6)
test_flags = (test_flags & ~(7 << 4)) | (pid_mode_value << 4)
pid_ramps=0b0000000000000000 | int(self.config["recipes_defaults"]["pid_level"])<<8 | int(self.config["recipes_defaults"]["pid_speed"])<<12
pid_ramps = 0b0000000000000000 | int(self.config["recipes_defaults"]["pid_level"]) << 8 | int(self.config["recipes_defaults"]["pid_speed"]) << 12
# Build a robust map of parameters with safe defaults, so Free Fall (minimal spec) won't crash
_defs = self.config.get("recipes_defaults", {}) or {}
_s = step.spec or {}
def _gv(key, def_key=None, fallback_key=None):
if key in _s:
return _s.get(key)
if fallback_key and fallback_key in _s:
return _s.get(fallback_key)
if def_key is not None:
return int(_defs.get(def_key, 0)) if isinstance(_defs.get(def_key, 0), (int, float, str)) else 0
return 0
# Determine nominal pressure; for Free Fall we allow "filling_pressure" to be the nominal
test_pressure_val = _gv("test_pressure", "pressione_di_test", fallback_key="filling_pressure")
# Free Fall specific behavior
is_free_fall = (step.step_type == "test_freefall_leak")
test_type_value = "Leak Test"
if is_free_fall:
# Use Blockage test type for Free Fall as requested (code 2 in registers map)
test_type_value = "Blockage"
# Set/clear T1/Pr (bit 1) based on continuous_filling: True => pressure mode
if bool(_s.get("continuous_filling", False)):
test_flags |= (1 << 1)
else:
test_flags &= ~(1 << 1)
# Compute pressure tolerances in % from absolute min/max if provided (for Free Fall)
pr_minus_percent = None
pr_plus_percent = None
try:
nominal = float(test_pressure_val) if test_pressure_val is not None else 0.0
if is_free_fall and nominal > 0:
if _s.get("pressure_min") is not None:
pmin = max(0.0, float(_s.get("pressure_min")))
pr_minus_percent = max(0.0, min(999.9, ((nominal - pmin) * 100.0) / nominal))
if _s.get("pressure_max") is not None:
pmax = max(0.0, float(_s.get("pressure_max")))
pr_plus_percent = max(0.0, min(999.9, ((pmax - nominal) * 100.0) / nominal))
except Exception:
pr_minus_percent = pr_minus_percent if pr_minus_percent is not None else None
pr_plus_percent = pr_plus_percent if pr_plus_percent is not None else None
spec = {
"Flag: Instrument settings": 0b0000000000000000,
"Test program for read/write operation": table,
@ -379,23 +424,23 @@ class TecnaMarpossProvasetT3(ModbusComponent):
**{761 - 1 + i: (recipe_name[i * 2 + 1] << 8) + recipe_name[i * 2] for i in range(8)}, # print field 1
# **{769 - 1 + i: (recipe_name[i * 2 + 1] << 8) + recipe_name[i * 2] for i in range(8)}, # print field 2
"Print options": 0b0000000000000000 | self.saver_label_count << 12 | self.saver_print_on_fail << 8 | self.saver_label_template,
"Test type": "Leak Test",
"Test type": test_type_value,
"Test flags": test_flags,
"T0 - Pre-filling time": step.spec["pre_filling_time"],
"P0 - Pre-filling pressure": step.spec["pre_filling_pressure"],
"T1 - Filling time": step.spec["filling_time"],
"T2 - Settling time": step.spec["settling_time"],
"PR- - Min pressure tolerance %": step.spec["settling_pressure_min_percent"],
"PR+ - Max pressure tolerance % (P+)": step.spec["settling_pressure_max_percent"],
"T3 - Measure time": step.spec["test_time"],
"Q- Lower test leak limit": step.spec["test_pressure_qneg"],
"PREL - Nominal test pressure": step.spec["test_pressure"],
"Q+ Upper test leak limit": step.spec["test_pressure_qpos"],
"FST - Discharge time": step.spec["flush_time"],
"FSL - Discharge limit": step.spec["flush_pressure"],
"T0 - Pre-filling time": _gv("pre_filling_time", "tempo_pre_riempimento"),
"P0 - Pre-filling pressure": _gv("pre_filling_pressure", "pressione_pre_riempimento"),
"T1 - Filling time": _gv("filling_time", "tempo_riempimento"),
"T2 - Settling time": _gv("settling_time", "tempo_assestamento"),
"PR- - Min pressure tolerance %": (pr_minus_percent if pr_minus_percent is not None else _gv("settling_pressure_min_percent", "percentuale_minima_pressione_assestamento")),
"PR+ - Max pressure tolerance % (P+)": (pr_plus_percent if pr_plus_percent is not None else _gv("settling_pressure_max_percent", "percentuale_massima_pressione_assestamento")),
"T3 - Measure time": _gv("test_time", "tempo_di_test"),
"Q- Lower test leak limit": _gv("test_pressure_qneg", "pressione_di_test_delta_minimo"),
"PREL - Nominal test pressure": test_pressure_val,
"Q+ Upper test leak limit": _gv("test_pressure_qpos", "pressione_di_test_delta_massimo"),
"FST - Discharge time": _gv("flush_time", "tempo_svuotamento"),
"FSL - Discharge limit": _gv("flush_pressure", "pressione_svuotamento"),
"PSQ - Next sequence program PSOUT mode": 0,
"RAMPS: T1 configuration": pid_ramps,
"PID: pressure correction": step.spec.get("pid_pressure_correction",0),
"PID: pressure correction": _gv("pid_pressure_correction", "pid_pressure_correction"),
"Various flags": 0b0000000000010000 if self.config["recipes_defaults"]["tester_discharge_enable"] in ("yes", "x") else 0b0000000000000000
}
@ -404,14 +449,42 @@ class TecnaMarpossProvasetT3(ModbusComponent):
elif self.model == "t3l":
spec.update({
"Use programs or use products": 0,
"Nominal peak pressure": step.spec["test_pressure"],
"Pn - Nominal test pressure": step.spec["test_pressure"],
"Nominal peak pressure": test_pressure_val,
"Pn - Nominal test pressure": test_pressure_val,
})
else:
raise NotImplementedError(f"tecna t3 model {self.model!r} not implemented.")
self.log.debug(str(spec))
for register, value in spec.items():
self.write(register, value)
# Override PR-/PR+ handling for Free Fall (Blockage) to write ABSOLUTE pressures
if is_free_fall:
try:
pmin = _s.get("pressure_min", None)
pmax = _s.get("pressure_max", None)
# Sanity checks and auto-correct
if pmin is not None and pmax is not None:
try:
pmin_v = float(pmin)
pmax_v = float(pmax)
if pmin_v > pmax_v:
self.log.warning(f"Free Fall: pressure_min ({pmin_v}) > pressure_max ({pmax_v}); swapping values to maintain consistency")
pmin_v, pmax_v = pmax_v, pmin_v
pmin, pmax = pmin_v, pmax_v
except Exception:
pass
# Write absolute values using relative pressure low-res format (23) and no gain
if pmin is not None:
self.write("PR- - Min pressure tolerance %", pmin)
self.log.info(f"Free Fall: wrote PR- (min final pressure) = {pmin} mbar (format 23)")
if pmax is not None:
self.write("PR+ - Max pressure tolerance % (P+)", pmax)
self.log.info(f"Free Fall: wrote PR+ (max final pressure) = {pmax} mbar (format 23)")
except Exception as e:
try:
self.log.exception(f"Free Fall: failed to write absolute PR-/PR+ values: {e}")
except Exception:
pass
pass
@db.connection_context()

View File

@ -106,6 +106,18 @@ def read_steps(row, config, defaults=None, unsupported_steps=None):
row.get("pid_pressure_correction", defaults["pid_pressure_correction"])),
"pid_mod_config": safe_parse(row.get("pid_mod_config", defaults["pid_mod_config"])),
},
"test_freefall_leak": {
# Dedicated Free Fall parameters
# Tempo riempimento (seconds)
"filling_time": safe_parse(row.get("tempo_riempimento_free_fall", row.get("tempo_riempimento", defaults.get("tempo_riempimento", 0)))),
# Pressione riempimento (mbar)
"filling_pressure": safe_parse(row.get("pressione_riempimento_free_fall", row.get("pressione_pre_riempimento", defaults.get("pressione_pre_riempimento", 0)))),
# Pressione minima/massima (mbar)
"pressure_min": safe_parse(row.get("pressione_min_free_fall", defaults.get("pressione_min_free_fall", 0))),
"pressure_max": safe_parse(row.get("pressione_max_free_fall", defaults.get("pressione_max_free_fall", 0))),
# Riempimento continuo (si/no)
"continuous_filling": str(row.get("riempimento_continuo_free_fall", "")).strip().lower() in {"si","s","x","yes","y","true","1"},
},
"leak_2": {
"pre_filling_time": safe_parse(row.get("tempo_pre_riempimento_2", defaults["tempo_pre_riempimento_2"])),
"pre_filling_pressure": safe_parse(
@ -254,6 +266,9 @@ def import_recipes(config, csv_path=None, defaults=None, unsupported_steps=None,
"vision": len(
row.get("test_visione_abilitato", defaults["test_visione_abilitato"])) and "vision" not in (
unsupported_steps or []),
"test_freefall_leak": len(
row.get("prova_tenuta_abilitata", defaults["prova_tenuta_abilitata"])) and "test_freefall_leak" not in (
unsupported_steps or []),
"leak_1": len(
row.get("prova_tenuta_abilitata", defaults["prova_tenuta_abilitata"])) and "leak_1" not in (
unsupported_steps or []),
@ -378,6 +393,26 @@ def export_recipes(config, csv_path=None, logger=None):
fieldnames.update(["prova_tenuta_abilitata", "tempo_pre_riempimento", "pressione_pre_riempimento",
"tempo_di_test", "pressione_di_test", "pid_pressure_correction"])
# Export Free Fall leak test parameters
if "test_freefall_leak" in steps:
# Ensure enable flag present even if leak_1 absent
exportable.update({
"prova_pervieta_abilitata": exportable.get("prova_pervieta_abilitata", ""),
"tempo_riempimento_free_fall": steps["test_freefall_leak"].spec.get("filling_time", 0),
"pressione_riempimento_free_fall": steps["test_freefall_leak"].spec.get("filling_pressure", 0),
"pressione_min_free_fall": steps["test_freefall_leak"].spec.get("pressure_min", 0),
"pressione_max_free_fall": steps["test_freefall_leak"].spec.get("pressure_max", 0),
"riempimento_continuo_free_fall": "x" if steps["test_freefall_leak"].spec.get("continuous_filling") else "",
})
fieldnames.update([
"prova_pervieta_abilitata",
"tempo_riempimento_free_fall",
"pressione_riempimento_free_fall",
"pressione_min_free_fall",
"pressione_max_free_fall",
"riempimento_continuo_free_fall",
])
if "leak_2" in steps:
exportable.update({
"prova_tenuta_abilitata_2": "x",

View File

@ -0,0 +1 @@
from .freefall_step_editor import FreeFall_Step_Editor

View File

@ -0,0 +1,15 @@
from ui.editor import Editor
class FreeFall_Step_Editor(Editor):
def __init__(self, action=None, cell_widget=None):
super().__init__(action=action, cell_widget=cell_widget)
# Map only the Free Fall specific parameters
self.spec.update({
"filling_time": self.filling_time_sb,
"filling_pressure": self.filling_pressure_sb,
# Correct mapping: spec keys map to corresponding widgets
"pressure_min": self.pressure_min_sb,
"pressure_max": self.pressure_max_sb,
"continuous_filling": self.continuous_filling_cb,
})

View File

@ -0,0 +1,84 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>FreeFall_Step_Editor</class>
<widget class="QWidget" name="FreeFall_Step_Editor">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>800</width>
<height>160</height>
</rect>
</property>
<property name="windowTitle">
<string>Free Fall Step Editor</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="QLabel" name="label_fill_time">
<property name="text">
<string>T1: Tempo riempimento (s)</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QSpinBox" name="filling_time_sb">
<property name="maximum">
<number>9999</number>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QLabel" name="label_fill_pressure">
<property name="text">
<string>P1: Pressione riempimento (mbar)</string>
</property>
</widget>
</item>
<item row="0" column="3">
<widget class="QSpinBox" name="filling_pressure_sb">
<property name="maximum">
<number>99999</number>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_pmin">
<property name="text">
<string>Pmin: Pressione minima (mbar)</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QSpinBox" name="pressure_min_sb">
<property name="maximum">
<number>99999</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label_pmax">
<property name="text">
<string>Pmax: Pressione massima (mbar)</string>
</property>
</widget>
</item>
<item row="1" column="3">
<widget class="QSpinBox" name="pressure_max_sb">
<property name="maximum">
<number>99999</number>
</property>
</widget>
</item>
<item row="2" column="0" colspan="4">
<widget class="QCheckBox" name="continuous_filling_cb">
<property name="text">
<string>Riempimento continuo (sì/no)</string>
</property>
</widget>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -40,6 +40,9 @@ class Recipe_Selection(Widget):
self.second_leak_test_enabled = self.config["hardware_config"].get("second_leak_test", "absent") == "present"
self.defaults = self.config.get("recipes_defaults", noner)
self.unsupported_steps = set(unsupported_steps or set())
# Gate Free Fall feature by hardware_config flag
if self.config.get("hardware_config", {}).get("free_fall", "absent") != "present":
self.unsupported_steps.add("test_freefall_leak")
# Hide instruction_extra entirely unless explicitly enabled in recipes_defaults (istruzione_abilitata_extra: x)
try:
instr_extra_enabled = str(self.config.get("recipes_defaults", noner)["istruzione_abilitata_extra"]).strip().lower() == "x"
@ -158,6 +161,7 @@ class Recipe_Selection(Widget):
"pipe_cutter": len(self.config.get("recipes_defaults", noner)["tagliatubi_abilitata"]) and "pipe_cutter" not in self.unsupported_steps,
"vision": len(self.config.get("recipes_defaults", noner)["test_visione_abilitato"]) and "vision" not in self.unsupported_steps,
"leak_1": len(self.config.get("recipes_defaults", noner)["prova_tenuta_abilitata"]) and "leak_1" not in self.unsupported_steps,
"test_freefall_leak": len(self.config.get("recipes_defaults", noner)["prova_tenuta_abilitata"]) and "test_freefall_leak" not in self.unsupported_steps,
"leak_2": (self.second_leak_test_enabled and len(self.config.get("recipes_defaults", noner)["prova_tenuta_abilitata_2"]) and "leak_2" not in self.unsupported_steps),
"print": len(self.config.get("recipes_defaults", noner)["stampa_etichetta_abilitata"]) and "print" not in self.unsupported_steps,
"step_editors": step_defaults,

View File

@ -5,6 +5,7 @@ from ui.count_step_editor import Count_Step_Editor
from ui.editor import Editor
from ui.helpers import replace_widget
from ui.leak_step_editor import Leak_Step_Editor
from ui.freefall_step_editor import FreeFall_Step_Editor
from ui.pipe_cutter_step_editor import Pipe_Cutter_Step_Editor
from ui.print_step_editor import Print_Step_Editor
from ui.resistance_step_editor import Resistance_Step_Editor
@ -81,6 +82,13 @@ class Recipe_Spec_And_Step_Editor(Editor):
"editor": Leak_Step_Editor(),
"tab": self.leak_1_t,
},
"test_freefall_leak": {
"type": "test_freefall_leak",
"enable": self.free_fall_enabled_cb,
"widget": "free_fall_editor_w",
"editor": FreeFall_Step_Editor(),
"tab": self.free_fall_t,
},
"leak_2": {
"type": "leak_2",
"enable": self.leak_enabled_2_cb,

View File

@ -434,6 +434,49 @@ Fasi di Test</string>
</item>
</layout>
</widget>
<widget class="QWidget" name="free_fall_t">
<attribute name="title">
<string>Test Pervietà</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_free_fall">
<item row="0" column="0">
<spacer name="horizontalSpacer_ff_left">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="1">
<widget class="QCheckBox" name="free_fall_enabled_cb">
<property name="text">
<string>Fase Abilitata</string>
</property>
</widget>
</item>
<item row="0" column="2">
<spacer name="horizontalSpacer_ff_right">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0" colspan="3">
<widget class="QWidget" name="free_fall_editor_w" native="true"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="leak_2_t">
<attribute name="title">
<string>Test caduta pressione 2</string>

View File

@ -5,6 +5,7 @@ from PyQt5.QtWidgets import QPushButton
from ui.crud import Cell, Combo_Box_Cell_Widget, Crud
from ui.dialog import Dialog
from ui.leak_step_editor import Leak_Step_Editor
from ui.freefall_step_editor import FreeFall_Step_Editor
from ui.vision_step_editor import Vision_Step_Editor
from ui.widget import Widget
@ -14,6 +15,7 @@ class Step_Spec_JEDECW(QPushButton, Cell):
self.editors = {
"vision": Vision_Step_Editor(cell_widget=self),
"leak_1": Leak_Step_Editor(cell_widget=self),
"test_freefall_leak": FreeFall_Step_Editor(cell_widget=self),
"leak_2": Leak_Step_Editor(cell_widget=self),
}
self.editor = None
@ -77,6 +79,7 @@ class Steps_Management(Widget):
autocomplete={
"type": [
"leak_1",
"test_freefall_leak",
"leak_2",
"vision",
],

View File

@ -127,6 +127,7 @@ class Test(Widget):
"screws": {"screwdriver", "tecna_t3", },
"resistance": {"multicomp", },
"leak_1": {self.tester_component, },
"test_freefall_leak": {self.tester_component, },
"leak_2": {self.tester_component, },
"pipe_cutter": {"pipe_cutter"},
"vision": {("uvc_camera", "galaxy_camera","hikrobot_sc"), "vision", "vision_saver", }, # "neo_pixels", },
@ -164,6 +165,8 @@ class Test(Widget):
text=u"EMERGENZA INTERVENUTA - RIPRISTINARE PULSANTE E SELEZIONARE \"RESET EMERGENZA\" DAL MEN\u00d9 \"STRUMENTI\"", widget=None),
"fail": Test_Assembly(img_path=self.select_step_img("fail"), text=u"CICLO INTERROTTO, PREMERE CONTINUA PER COMINCIARE UN NUOVO CICLO", widget=Test_Fail(parent=self)),
"blow": Test_Assembly(img_path=None, text=u"SOFFIAGGIO TUBO IN CORSO - ATTENDERE...", widget=Test_Warning_Img(components=self.components, recipe=self.recipe, step=self.step)),
"test_freefall_leak": Test_Assembly(img_path=None, text=None, widget=Test_Leak(config=self.config,components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces, parent=self))
if self.config["hardware_config"]["tecna_t3"] != "absent" or self.config["hardware_config"]["furness_controls"] !="absent" else None,
"leak_1": Test_Assembly(img_path=None, text=None, widget=Test_Leak(config=self.config,components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces, parent=self))
if self.config["hardware_config"]["tecna_t3"] != "absent" or self.config["hardware_config"]["furness_controls"] !="absent" else None,
"leak_2": Test_Assembly(img_path=None, text=None, widget=Test_Leak(config=self.config,components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces, parent=self))
@ -400,6 +403,9 @@ class Test(Widget):
else:
self.log.info(f"cycle step: {self.step!r} action: {action!r} current index:{self.cycle_index}")
# Track the previous step type to enable transition hooks (e.g., Free Fall -> Leak_1)
prev_step_type = self.step.step_type if self.step is not None else None
current_w = self.centralWidget
if hasattr(current_w, "stop"):
@ -520,6 +526,26 @@ class Test(Widget):
if self.recipe is not None and "recipe" not in self.data:
self.data["recipe"] = model_to_dict(self.recipe)
# If transitioning from Free Fall to Leak 1, preload Leak 1 parameters onto the tester
try:
if (
prev_step_type == "test_freefall_leak"
and self.step is not None
and self.step.step_type == "leak_1"
and hasattr(self, "tester_component")
and self.tester_component in (self.components or {})
):
self.log.info("Transition detected: Free Fall -> Leak_1. Pre-writing Leak_1 recipe to tester.")
self.components[self.tester_component].write_recipe(self.recipe, self.step)
leak1 = self.cycle_available_steps.get("leak_1")
if leak1 is not None and getattr(leak1, "widget", None) is not None:
leak1.widget.recipe_written = True
except Exception as e:
try:
self.log.exception(f"Failed to pre-write Leak_1 recipe after Free Fall: {e}")
except Exception:
pass
# Remaining logic for updating widgets, starting timers, etc.
w = self.cycle_available_steps[self.step.step_type]
show = None
@ -637,7 +663,17 @@ class Test(Widget):
if step.step_type in ("leak_1", "leak_2"):
self.leak_step = step
# Ensure Free Fall leak test appears before leak_1 when both are enabled
step_types = [step.step_type for step in steps]
if "test_freefall_leak" in step_types and "leak_1" in step_types:
ff_index = step_types.index("test_freefall_leak")
l1_index = step_types.index("leak_1")
if ff_index > l1_index:
# Move Free Fall step to be immediately before leak_1
steps.insert(l1_index, steps.pop(ff_index))
# Recompute step_types after reordering
step_types = [step.step_type for step in steps]
if "leak_1" in step_types and "leak_2" in step_types:
leak1_index = step_types.index("leak_1")
leak2_index = step_types.index("leak_2")

View File

@ -1,6 +1,7 @@
import sys
import time
import weakref
import os
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QMessageBox, QDialog, QApplication
@ -112,13 +113,17 @@ class Test_Leak(Test_Test):
self.template_print_l.setText(f"AUTOTEST")
else:
self.template_print_l.setText(f"{self.parent.print_template}")
self.recipe_pressure_l.setText(f"{self.step.spec['test_pressure']}")
self.leak_min_l.setText(f"{self.step.spec['test_pressure_qneg']}")
self.leak_max_l.setText(f"{self.step.spec['test_pressure_qpos']}")
self.fill_time_l.setText(f"{self.step.spec['filling_time']}")
self.settle_time_l.setText(f"{self.step.spec['settling_time']}")
self.meas_time_l.setText(f"{self.step.spec['test_time']}")
self.valore_PID_l.setText(f"{self.step.spec.get('pid_pressure_correction')}")
# Populate labels defensively to support both Leak and Free Fall specs
pressure_val = self.step.spec.get('test_pressure', self.step.spec.get('filling_pressure', ""))
leak_min_val = self.step.spec.get('test_pressure_qneg', self.step.spec.get('pressure_min', ""))
leak_max_val = self.step.spec.get('test_pressure_qpos', self.step.spec.get('pressure_max', ""))
self.recipe_pressure_l.setText(f"{pressure_val}")
self.leak_min_l.setText(f"{leak_min_val}")
self.leak_max_l.setText(f"{leak_max_val}")
self.fill_time_l.setText(f"{self.step.spec.get('filling_time', '')}")
self.settle_time_l.setText(f"{self.step.spec.get('settling_time', '')}")
self.meas_time_l.setText(f"{self.step.spec.get('test_time', '')}")
self.valore_PID_l.setText(f"{self.step.spec.get('pid_pressure_correction', '')}")
# SETUP TEST LOOP
if self.step.spec.get("autotest", False): # IF AUTOTESTING UPLOAD RECIPE EVERY TIME
@ -152,9 +157,66 @@ class Test_Leak(Test_Test):
bg_color="blue", text_color="white")
super().visualize(None, img=self.status_imgs_full["calibrated-leak"])
else:
self.display_text(text="COLLEGARE GLI ATTACCHI PNEUMATICI E PREMERE START PER INIZIARE LA PROVA TENUTA")
self.template_print_l.setVisible(True)
self.template_label.setVisible(True)
if step.step_type == "test_freefall_leak":
# Flag Free Fall mode for special UI handling
self._free_fall_mode = True
self._free_fall_img_scale = 1.75 # scale image to almost full available space
# Hide parameters not relevant during free-fall
for name in [
"label_18", # Tempo di riempimento
"fill_time_l",
"label_19", # Tempo di assestamento
"settle_time_l",
"label_22", # Tempo di prova
"meas_time_l",
"template_label", # Etichetta selezionata (caption)
"template_print_l", # Etichetta selezionata (value)
"valore_PID", # Valore PID (caption)
"valore_PID_l", # Valore PID (value)
"label_17", # unit 's' for fill time
"label_20", # unit 's' for settling/measuring time
"label_21", # possibly another unit/aux label to hide in free fall
]:
if hasattr(self, name):
getattr(self, name).setVisible(False)
self.display_text(text="USARE IL SISTEMA DI FLUSSAGGIO. AL TERMINE POSIZIONARE IL PEZZO PER LA PROVA TENUTA")
# Show placeholder image for free-fall: PERVIETÀ.png
pervieta_path_candidates = [
"config/warning_images/generic/PERVIETÀ.png",
"config/warning_images/generic/PERVIETA.png",
"config/warning_images/generic/pervieta.png",
]
img_path = next((p for p in pervieta_path_candidates if os.path.exists(p)), None)
if img_path is not None:
super().visualize(None, img=QPixmap(img_path))
else:
# Fallbacks: try the older instruction image or default
try:
instr_folder = (self.config.get("machine", {}) or {}).get("instruction_folder", getattr(self.config, "machine_id", "")).strip() or getattr(self.config, "machine_id", "")
except Exception:
instr_folder = getattr(self.config, "machine_id", "")
ff_img = None
for ext in ("png", "jpg", "jpeg"):
candidate = f"config/instruction_images/{instr_folder}/free_fall.{ext}"
if os.path.exists(candidate):
ff_img = candidate
break
if ff_img is not None:
super().visualize(None, img=QPixmap(ff_img))
else:
super().visualize(None, img=self.status_imgs_full[None])
else:
# Ensure Free Fall mode is disabled for other steps
self._free_fall_mode = False
self._free_fall_img_scale = None
self.display_text(text="COLLEGARE GLI ATTACCHI PNEUMATICI E PREMERE START PER INIZIARE LA PROVA TENUTA")
super().visualize(None, img=self.status_imgs_full[None])
if step.step_type != "test_freefall_leak":
self.template_print_l.setVisible(True)
self.template_label.setVisible(True)
if self.simulate:
QApplication.processEvents()
time.sleep(2)
@ -420,3 +482,26 @@ class Test_Leak(Test_Test):
# Always disable start button and enable stop button during connection issues
self.start_b.setEnabled(False)
self.stop_b.setEnabled(True)
def resizeEvent(self, event=None):
# First, let the base class handle default behavior
try:
super().resizeEvent(event)
except Exception:
# Fallback: ignore if base cannot handle the event
pass
# Apply Free Fall specific image scaling (half space)
if getattr(self, "_free_fall_mode", False):
if hasattr(self, "img_l") and hasattr(self, "img") and self.img_l is not None and self.img is not None:
try:
scale = float(getattr(self, "_free_fall_img_scale", 0.5) or 0.5)
except Exception:
scale = 0.5
w = max(1, int(self.img_l.width() * scale))
h = max(1, int(self.img_l.height() * scale))
try:
self.img_l.setPixmap(self.img.scaled(w, h, Qt.KeepAspectRatio, Qt.SmoothTransformation))
except Exception:
# If scaling fails, leave as base-class result
pass