Merge remote-tracking branch 'origin/master'
# Conflicts: # config/label_templates/ferrari_30x16_203.prn
|
|
@ -0,0 +1,308 @@
|
|||
codice_ricetta,part_number,tempo_pre_riempimento,pressione_pre_riempimento,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotamento,template_di_stampa,campo1,campo2
|
||||
TEST FUGA 7 BAR,B1619X,0.0,0,5.0,10.0,10,10,5.0,12.0,0,8.0,0.0,0,,DA 14.4 A 21.6 ,
|
||||
5803217628 REV.,UNIT GASOIL PIPE,0.0,0,5.0,10.0,10,10,20.0,20.0,0,0.0,0.0,0,,UNITE GASOIL PI,IVECO
|
||||
5802915822,COMPL.MAN,0.0,0,5.0,15.0,15,15,10.0,20.0,0,10.0,1.0,100,,5802915822 R.02,5802915822 R.02
|
||||
PY83-6B747-BA,ENGINE OIL ASSY,0.0,0,5.0,15.0,10,10,30.0,20.0,0,10.0,0.1,1,"
|
||||
",PY83-6B747-BA,ASTON MARTIN
|
||||
PY83-6B748-BA,ENGINE OIL ASSY,0.0,0,5.0,15.0,10,10,30.0,20.0,0,10.0,0.1,1,"
|
||||
",PY83-6B748-BA,ASTON MARTIN
|
||||
MY83-6B747-BA,ENGINE OIL ASSY,0.0,0,30.0,20.0,10,10,30.0,20.0,0,10.0,0.1,1,"
|
||||
",MY83-6B747-BA,ASTON MARTIN
|
||||
MY83-6B748-BA,ENGINE OIL ASSY,0.0,0,5.0,15.0,10,10,30.0,20.0,0,10.0,0.1,1,"
|
||||
",MY83-6B748-BA,ASTON MARTIN
|
||||
MY83-6L701-AB, ENGINE OIL ASSY,0.0,0,10.0,10.0,10,10,30.0,20.0,0,10.0,0.1,1,,MY83-6L701-AB,ASTON MARTIN
|
||||
MY83-6L694-AB,ENGINE OIL ASSY,0.0,0,10.0,10.0,10,10,30.0,25.0,0,10.0,0.1,1,"
|
||||
",MY83-6L694-AB,ASTON MARTIN
|
||||
000746453,000746453,0.0,0,10.0,20.0,10,10,20.0,25.0,0,5.0,0.1,0, ,000746453 REV05,FERRARI
|
||||
5802889710 REV3,FUEL HOSE,0.0,0,20.0,25.0,10,10,20.0,20.0,0,0.0,0.1,0,,FUEL HOSE,IVECO
|
||||
5802953113 REV.,FUEL HOSE,0.0,0,5.0,25.0,10,10,20.0,20.0,0,0.0,0.0,0,,FUEL HOSE,IVECO
|
||||
5802980014 REV.,UNIT GASOIL PIPE,0.0,0,15.0,10.0,10,10,20.0,20.0,0,0.0,0.0,0,,UNITE GASOIL PI,IVECO
|
||||
5802981174 REV.,UNIT GASOIL PIPE,0.0,0,5.0,20.0,10,10,60.0,20.0,0,0.0,0.0,0,,UNIT GASOIL PIP,IVECO
|
||||
5802889709 REV3,FUEL HOSE,0.0,0,25.0,30.0,10,10,20.0,20.0,0,0.0,0.0,0,,FUEL HOSE,IVECO
|
||||
12970-13-2382,TUBE-ASSY-CLUTCH,0.0,0,10.0,5.0,10,10,20.0,30.0,0,5.0,0.0,0,,12970-13-2382,MULTIMATIC
|
||||
12970-13-2384,TUBE-ASSY-CLUTCH,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,12970-13-2384,MULTIMATIC
|
||||
12970-13-2386,TUBEASSY-CLUTCH,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,12970-13-2386,MULTIMATIC
|
||||
5801384838,full hose,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,5801384838,lancia bz
|
||||
16L0043CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,0,0.0,0.0,0,,PIPE-OUTLET-PRE,P16
|
||||
16LA027SP REV02,,0.0,0,15.0,15.0,10,10,30.0,30.0,0,0.0,0.0,0,,HOSE-LH WCAC AN,P16
|
||||
16LA648CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE-RH-LTR-OUT,P16
|
||||
16LA661CP REV1,HOSE-RH-HT-RADIATOR-BOT,0.0,0,20.0,20.0,20,20,30.0,20.0,0,5.0,1.0,1,,HOSE-RH-HT-RADI,P16
|
||||
16LA449CP REV2,,0.0,0,5.0,10.0,10,10,30.0,30.0,0,0.0,0.0,0,,HOSE-ENGINE-TO-,P16
|
||||
16L0045CP REV2,,0.0,0,10.0,10.0,10,10,30.0,20.0,0,10.0,0.0,0,,HOSE-HT-RADIATO,P16
|
||||
16LA718CP REV02,MCLAREN,0.0,0,10.0,10.0,10,10,30.0,20.0,0,10.0,0.0,0,,HOSE-E-MOTOR-OU,P16
|
||||
16L0075CP REV3,,0.0,0,5.0,10.0,10,10,20.0,30.0,0,0.0,0.0,0,,HOSE-HEADER-TAN,P16
|
||||
5803112815 R.1,COMPL.MAN,0.0,0,5.0,5.0,15,15,10.0,30.0,0,5.0,1.0,1000,,5803112815 R1,
|
||||
5803112816 R.1,COMPL.MAN,0.0,0,5.0,5.0,15,15,10.0,20.0,0,10.0,1.0,100,, 5803112816 R.1,
|
||||
16LA397CP REV02,,0.0,0,5.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,HOSE-HT-RADIATO,P16
|
||||
16LA765CP REV01,,0.0,0,5.0,5.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE-WCACS LINK,P16
|
||||
16LA695CP REV02,,0.0,0,15.0,15.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE PRE COOLER,P16
|
||||
5801384840 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,5801384840 REV0,LANCIA BOLZANO
|
||||
60175799 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,60175799 REV0,LANCIA BOLZANO
|
||||
5803103147 REV0,UNIT GASOIL PIPE FILTER,0.0,0,25.0,30.0,10,10,20.0,20.0,0,0.0,0.0,0,,UNIT GASOIL PIL,IVECO
|
||||
5803103150 REV0,UNIT GASOIL PIPE FILTER,0.0,0,20.0,30.0,10,10,20.0,20.0,0,10.0,0.0,0,,UNIT GASOIL PIL,IVECO
|
||||
5801970063 REV0,,0.0,0,5.0,10.0,10,10,30.0,30.0,0,10.0,0.0,0,,5801970063,"LANCIA,BOLZANO"
|
||||
5801616061,,0.0,0,5.0,10.0,10,10,30.0,30.0,0,10.0,0.0,0,"
|
||||
",5801616061,"LANCIA,BOLZANO"
|
||||
16LA584CP REV1,,0.0,0,5.0,10.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE-TRANS HX-R,P16
|
||||
5801384842 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,5801384842 REV0,LANCIA BOLZANO
|
||||
5801970066 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,5801970066,LANCIA BOLZANO
|
||||
16LA372CP REV01,MCLAREN,0.0,0,5.0,10.0,10,10,30.0,20.0,0,10.0,0.0,0,,PIPE-IN-PRE-COO,P16
|
||||
16LA518CP REV02,P16,0.0,0,5.0,10.0,10,10,20.0,20.0,0,10.0,0.0,0,,HOSE-TO-E-MOTOR,P16
|
||||
16LA680CP REV01,,0.0,0,20.0,10.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE-TRANS- HX-,P16
|
||||
16FB157CP REV 3,MCLAREN,0.0,0,15.0,5.0,10,10,30.0,50.0,0,2.0,0.0,0,,ASSY CCV-OIL TA,P16
|
||||
16FC256CP REV01,ASSY CCV,0.0,17000,15.0,10.0,20,20,20.0,50.0,0,2.0,0.0,0,,ASSY MAKE UP AI,P16
|
||||
16L0151CP REV03,,0.0,0,20.0,25.0,10,10,30.0,20.0,0,5.0,0.0,0,,HOSE-IPU-OUTLET,P16
|
||||
16L0170CP REV03,,0.0,0,5.0,10.0,10,10,30.0,25.0,0,5.0,0.0,0,,HOSE-IPU-OUTLET,P16
|
||||
16L0161CP REV04,,0.0,0,15.0,15.0,10,10,30.0,20.0,0,5.0,0.0,0,,HOSE-WCACS-TO-M,P16
|
||||
16L0167CP REV02,,0.0,0,10.0,20.0,10,10,30.0,20.0,0,5.0,0.0,0,,HOSE-TO-MCU,16L0167CP REV02
|
||||
504321531,,0.0,0,5.0,10.0,10,10,30.0,30.0,0,10.0,0.0,0,"
|
||||
",504321531,"LANCIA,BOLZANO"
|
||||
16L0180CP REV04,,0.0,0,15.0,10.0,10,10,30.0,20.0,0,0.0,1.0,0,,HOSE-LH-LTR-OUT,P16
|
||||
16L0154CP REV03,,0.0,0,15.0,25.0,10,10,30.0,20.0,0,5.0,1.0,0,,HOSE-RH-LTR-OUT,P16
|
||||
5801970064 REV0,,0.0,0,5.0,10.0,10,10,30.0,30.0,0,10.0,0.0,0,,5801970064 REV0,"LANCIA,BOLZANO"
|
||||
16FC446CP REV01,ASSY CCV,0.0,17000,5.0,5.0,20,20,20.0,50.0,0,2.0,0.0,0,,FED,T16C-Z0800-001
|
||||
16LA397CP REV2,,0.0,0,5.0,5.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE-HT-RADIATO,P16
|
||||
16L0164CP REV02,,0.0,0,10.0,15.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE-LH-LTR-OUT,P16
|
||||
16LA461CP REV02,,0.0,0,10.0,10.0,10,10,20.0,20.0,0,0.0,0.0,0,,ASSY-HOSE-HT-RT,P16
|
||||
16L0177CP REV03,,0.0,0,15.0,10.0,10,10,30.0,20.0,0,0.0,1.0,0,,HOSE-JNCTN TO W,P16
|
||||
16L0007CP RE3,,0.0,0,5.0,5.0,10,10,30.0,20.0,0,5.0,0.0,0,,HOSE-IPU-JNCTN-,P16
|
||||
16LA586CP REV1,,0.0,0,15.0,15.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE PRE COOLER,P16
|
||||
16FA849CP REV02,,0.0,17000,5.0,5.0,20,20,20.0,50.0,0,2.0,0.0,0,,ASSY OIL FILL,P16
|
||||
16FC084CP REV2,,0.0,0,5.0,5.0,10,10,20.0,50.0,0,0.0,0.0,0,,BALANCE PIPE-IN,P16
|
||||
16LA573CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE MCU-TO-MOT,P16
|
||||
16L0145CP REV3,,0.0,0,5.0,15.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE-HOSE-PUMP-,P16
|
||||
16FB394CP REV04,,0.0,0,5.0,5.0,10,10,30.0,30.0,0,5.0,0.0,0,,ASSY INLET PURG,P16
|
||||
16FC069CP REV1,,0.0,0,10.0,15.0,10,10,20.0,50.0,0,5.0,0.0,0,,ASSY CCV-INTAKE,P16
|
||||
60192056 REV1,FUEL HOSE,0.0,0,20.0,10.0,10,10,20.0,20.0,0,5.0,0.0,0,,60192056 REV1,LANCIA BOLZANO
|
||||
5801970065 REV0,,0.0,0,20.0,20.0,10,10,30.0,30.0,0,0.0,0.0,0,,5801970065 RE0,"LANCIA,BOLZANO"
|
||||
5801384841 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,5801384841 REV0,LANCIA BOLZANO
|
||||
5801384839 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,5801384839 REV0,LANCIA BOLZANO
|
||||
5803112815 R.1,COMPL.MAN,0.0,0,5.0,5.0,15,15,10.0,30.0,0,5.0,1.0,1000,,5803112815 R1,
|
||||
16JA605CP,,10.0,500,10.0,30.0,10,10,10.0,20.0,0,10.0,0.0,0,,16JA603CP,
|
||||
5803112815,,0.0,0,5.0,5.0,5,10,10.0,30.0,0,5.0,0.0,0,,5803112816,
|
||||
5801970067 REV1,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,5801970067 REV0,LANCIA BOLZANO
|
||||
000746453,000746453,0.0,0,10.0,20.0,10,10,30.0,30.0,0,10.0,0.0,0,,,
|
||||
5801862227 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,0,5.0,0.0,0,,5801862227 REV0,LANCIA BOLZANO
|
||||
5803018239,PIPE,0.0,0,5.0,10.0,10,10,10.0,10.0,0,5.0,0.0,0,,5803018239,PIPE
|
||||
5803018238,PIPE,0.0,0,5.0,10.0,10,10,10.0,10.0,0,5.0,0.0,0,,5803018238,PIPE
|
||||
5803018244,PIPE,0.0,0,5.0,10.0,10,10,10.0,10.0,0,5.0,0.0,0,,5803018244,PIPE
|
||||
5803018243,PIPE,0.0,0,5.0,10.0,10,10,10.0,10.0,0,5.0,0.0,0,,5803018243,PIPE
|
||||
16LA668CP REV01,,0.0,0,15.0,15.0,10,10,30.0,30.0,0,0.0,0.0,0,,HOSE-LH WCAC AN,P16
|
||||
16LA773CP REV01,,0.0,0,20.0,10.0,10,10,30.0,20.0,0,0.0,0.0,0,,HOSE-TRANS- HX-,P16
|
||||
98FA644CP,,10.0,2000,10.0,10.0,20,20,20.0,150.0,0,0.0,0.0,0,,,P98
|
||||
16LA353CP REV2,HOSE-RH-HT-RADIATOR-TOP,0.0,0,20.0,15.0,20,20,30.0,20.0,0,5.0,2.0,1,,HOSE-RH-HT-RADI,P16
|
||||
98FB081CP REV1,,0.0,0,10.0,10.0,10,10,20.0,10.0,0,10.0,0.0,0,,ASSY-PIPE-CCV-T,
|
||||
98FB342CP,,0.0,0,10.0,10.0,10,10,20.0,10.0,0,0.0,0.0,0,,18FB342CP,
|
||||
16L0046CP REV3,HOSE-RH-HT-RADIATOR-BOT,0.0,0,20.0,10.0,10,10,20.0,20.0,0,5.0,1.0,1,,HOSE-LH-HT-RADI,P16
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
NESSUN NOME,,0.0,0,1.0,1.0,10,10,1.0,0.0,0,0.0,0.0,0,,,
|
||||
98FB080CP,,0.0,0,10.0,10.0,10,10,20.0,10.0,0,20.0,0.0,0,,98FB080CP,
|
||||
98FA186CP,98FA186CP,0.0,0,5.0,10.0,10,10,20.0,15.0,0,15.0,0.0,0,,98FA186CP,
|
||||
5802991065,,0.0,0,5.0,5.0,10,10,10.0,30.0,0,5.0,0.0,0,,IVECO,
|
||||
TENUTA 20 bar,,0.0,0,5.0,40.0,10,10,10.0,1.0,0,1.0,2.0,0,,,
|
||||
FUGA,,0.0,0,5.0,40.0,10,10,5.0,5.0,0,0.0,2.0,0,,,
|
||||
112247,j112247,0.0,1000,15.0,15.0,5,5,10.0,30.0,7000,30.0,1.0,100,,112247,
|
||||
|
|
|
@ -0,0 +1,303 @@
|
|||
codice_ricetta,codice_prodotto,tempo_pre_riempimento,pressione_pre_riempimento,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotamento,modello_etichetta,testo_etich_1,testo_etich_2
|
||||
07N.131.628.A,,10,200,20,20,10,10,10,5,200,5,20,0,ferrari_30x16_203.prn,07N.131.628.A,
|
||||
V04.030.057.BE,P18 BATTERY COOLING,0,0,20,20,10,10,20,5,4100,5,1,0,ferrari_30x16_203.prn,V04.030.057.BE,
|
||||
000990502,,0,0,10,10,10,10,10,30,1500,20,0,0,ferrari_30x16_203.prn,000990502,
|
||||
98FA644CP,,0,0,5,10,10,10,20,15,3000,15,0,0,ferrari_30x16_203.prn,98FA644CP,
|
||||
5803158246,CPLGASOLIO LP,5,2000,5,10,10,10,20,30,2000,0,0,0,ferrari_30x16_203.prn,5803158246,C9 CCM FPT
|
||||
BLOW BY WOKO,000781499,10,1000,10,10,99,99,10,600,1000,20,0,0,ferrari_30x16_203.prn,000781499,
|
||||
SY9Y-2976-B,SY9Y-2976-A,0,5000,10,10,10,10,10,20,3000,15,10,0,ferrari_30x16_203.prn,SY9Y-2976-B,
|
||||
SY9Y-2976-A,SY9Y-2976-A,0,0,10,10,10,10,10,20,3000,0,0,0,ferrari_30x16_203.prn,SY9Y-2976-A,
|
||||
SY9Y-9S331-B,SY9Y-9S331-B,10,0,10,10,10,10,10,20,3000,15,0,0,ferrari_30x16_203.prn,SY9Y-9S331-B,
|
||||
SY9Y-9S331-A,SY9Y-9S331-A,10,0,10,10,10,10,10,20,3000,0,0,0,ferrari_30x16_203.prn,SY9Y-9S331-A,
|
||||
18JA708CP,,0,0,5,5,10,10,30,20,3000,20,0,0,ferrari_30x16_203.prn,18JA708CP,
|
||||
18JA757CP,,0,0,5,5,10,10,30,20,3000,20,0,0,ferrari_30x16_203.prn,18JA757CP,
|
||||
18JA750CP,,0,0,5,5,10,10,30,20,3000,20,0,0,ferrari_30x16_203.prn,18JA750CP,
|
||||
18JA712CP,,0,0,5,5,10,10,30,20,3000,20,0,0,ferrari_30x16_203.prn,18JA712CP,
|
||||
18JA710CP,,0,0,5,5,10,10,30,20,3000,20,0,0,ferrari_30x16_203.prn,18JA710CP,
|
||||
18JA718CP,,0,5,5,5,10,10,30,20,3000,20,30,0,ferrari_30x16_203.prn,18JA718CP,
|
||||
18JA713CP,,0,0,5,5,10,10,30,20,3000,20,0,0,ferrari_30x16_203.prn,18JA713CP,
|
||||
18JA709CP,,0,0,5,5,10,10,30,20,3000,20,0,0,ferrari_30x16_203.prn,18JA709CP,
|
||||
000904357,,0,0,10,10,10,10,20,20,4200,20,0,0,ferrari_30x16_203.prn,000904357,
|
||||
05534288,,0,0,10,10,10,10,20,20,6900,20,0,0,ferrari_30x16_203.prn,05534288,
|
||||
5802031904,,0,0,5,5,10,10,20,20,2100,20,0,0,ferrari_30x16_203.prn,5802031904,
|
||||
000894372,,10,0,5,5,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000894372,
|
||||
000957630,,0,0,10,10,10,10,10,30,3400,10,0,0,ferrari_30x16_203.prn,000957630,
|
||||
000957631,,0,0,10,10,10,10,10,30,3400,10,0,0,ferrari_30x16_203.prn,000957631,
|
||||
000958439,,0,0,5,10,10,10,30,30,2200,10,0,0,ferrari_30x16_203.prn,000958439,
|
||||
000986619,,0,0,5,15,10,10,10,30,1600,10,0,0,ferrari_30x16_203.prn,000986619,
|
||||
S3130E132,,0,0,7,15,10,10,5,2,4100,1,0,0,ferrari_30x16_203.prn,S3130E132,
|
||||
18KA144CT,,0,0,5,5,10,10,30,10,3100,10,0,0,ferrari_30x16_203.prn,18KA144CT,
|
||||
5803148261,,2,5000,5,10,10,10,10,30,5000,15,1,0,ferrari_30x16_203.prn,5803148261,
|
||||
98FB080CP,,5,200,10,10,10,10,20,10,200,15,30,1,ferrari_30x16_203.prn,98FB080CP,
|
||||
590.2.418.1A,,0,5000,3,5,10,10,5,5,1000,15,0,0,ferrari_30x16_203.prn,590.2.418.1A,
|
||||
055000044,,0,3000,5,5,10,10,30,20,2100,15,0,0,ferrari_30x16_203.prn,055000044,
|
||||
000975576,TUBO INLET,5,2000,30,80,10,10,10,0,2000,1,0,0,ferrari_30x16_203.prn,000975576,
|
||||
000975575,TUBO OUTLET,5,2000,10,80,10,10,10,0,2000,1,0,0,ferrari_30x16_203.prn,000975575,
|
||||
5803223742,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223742,
|
||||
5803223740,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223740,
|
||||
5803223741,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223741,
|
||||
5803223736,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223736,
|
||||
5803223745,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223745,
|
||||
000884945,,0,0,10,5,10,10,10,30,1500,0,0,0,ferrari_30x16_203.prn,000884945,
|
||||
5803223739,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223739,
|
||||
000960322,000960322,0,0,5,10,10,10,10,20,1600,20,0,0,ferrari_30x16_203.prn,000960322,
|
||||
000960324,000960324,0,0,5,10,10,10,10,20,1600,20,0,0,ferrari_30x16_203.prn,000960324,
|
||||
000960275,000960275,0,0,5,10,10,10,10,20,1600,20,0,0,ferrari_30x16_203.prn,000960275,
|
||||
000960281,000960281,0,0,5,10,10,10,10,20,1600,20,0,0,ferrari_30x16_203.prn,000960281,
|
||||
055055934,,0,0,10,10,10,10,20,20,6800,20,0,0,ferrari_30x16_203.prn,055055934,
|
||||
5803228585,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803228585,
|
||||
5803223755,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223755,
|
||||
5803120375,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803120375,
|
||||
5803083634,,0,5000,5,10,10,10,10,30,3000,15,0,0,ferrari_30x16_203.prn,5803083634,
|
||||
742722-15,742722-15,0,0,5,10,10,10,20,30,6000,10,0,0,ferrari_30x16_203.prn,74222-15,
|
||||
90383952,90383952,0,10,5,10,10,10,20,30,6100,0,0,0,ferrari_30x16_203.prn,90383952,
|
||||
90383805,90383805,0,0,5,20,10,20,20,30,6100,0,0,0,ferrari_30x16_203.prn,90383805,
|
||||
90459069,90459069,0,0,5,10,10,10,20,30,5100,0,0,0,ferrari_30x16_203.prn,90459069,
|
||||
001031-R5,,0,0,10,30,10,10,30,10,5100,5,0,0,ferrari_30x16_203.prn,001031-R5,
|
||||
5803036739,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803036739,
|
||||
000990010,000990010,2,200,10,10,10,10,10,20,200,20,0,0,ferrari_30x16_203.prn,000990010,
|
||||
SY9Y-18D553AAM1,,0,0,5,5,10,10,30,20,7000,20,0,0,ferrari_30x16_203.prn,SY9Y-18D553AAM1,
|
||||
SY9Y-18D552AAM1,,10,7000,5,5,10,10,30,20,7100,20,0,0,ferrari_30x16_203.prn,SY9Y-18D552AAM1,
|
||||
5803037202,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803037202,
|
||||
5803108366,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5703108366,
|
||||
5803108365,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803108365,
|
||||
PT00051126,,2,800,5,10,10,10,10,30,800,15,0,0,ferrari_30x16_203.prn,PT00051126,
|
||||
000985807,,0,0,5,10,10,10,10,30,1600,10,0,0,ferrari_30x16_203.prn,000985807,
|
||||
055038005,,0,300,5,10,40,40,10,20,200,20,10,0,ferrari_30x16_203.prn,055038005,
|
||||
5803034811,,0,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803034811,
|
||||
5803037201,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803037201,
|
||||
5803223749,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223749,
|
||||
5803223748,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223748,
|
||||
055000045,,0,0,5,5,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,055000045,
|
||||
5803223747,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803223747,
|
||||
5803223746,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803223746,
|
||||
000951612,,0,0,5,5,10,10,30,20,2200,20,0,0,ferrari_30x16_203.prn,000951612,
|
||||
000951613,,0,0,5,5,10,10,30,20,2200,20,0,0,ferrari_30x16_203.prn,000951613,
|
||||
5803223750,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223750,
|
||||
5803223751,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223751,
|
||||
5803223752,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223752,
|
||||
5803223753,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803223753,
|
||||
014093,014093,5,6000,10,1,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,014093,
|
||||
7076213,7076213,0,0,10,1,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,7026213,
|
||||
M28090912174,M280909-12174,0,0,5,10,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,M28090912174,
|
||||
M28O90912174ECL,,0,0,1,1,10,10,1,0,0,0,0,0,ferrari_flag_qr_only.prn,,
|
||||
5802815391,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5802815391,
|
||||
5803101541,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803101541,
|
||||
5803101542,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803101542,
|
||||
5803406514,,2,5000,5,10,10,10,10,30,5000,15,1,0,ferrari_30x16_203.prn,5803406514,
|
||||
5803108310,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803108310,
|
||||
5803101537,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803101537,
|
||||
5803101538,,2,5000,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803101538,
|
||||
SY9Y-7F113AAM1,,10,7000,5,5,10,10,30,20,7100,20,0,0,ferrari_30x16_203.prn,SY9Y-7F113AAM1,
|
||||
SY9Y-7F114AAM1,,10,7000,5,5,10,10,30,20,7100,20,0,0,ferrari_30x16_203.prn,SY9Y-7F114AAM1,
|
||||
5803108305,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803108305,
|
||||
5803108311,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803108311,
|
||||
5802932524,,0,0,5,25,10,10,10,50,5000,50,0,0,ferrari_30x16_203.prn,5802932524,
|
||||
200116-13-1610,,5,5000,10,10,10,10,10,30,7000,0,0,0,ferrari_30x16_203.prn,200116-13-1610,
|
||||
5803108369,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803108369,
|
||||
ENT.791.057.MT,,0,8000,5,5,10,10,10,30,8000,32,0,0,ferrari_30x16_203.prn,ENT.791.057.MT,
|
||||
ENT.791.057.MR,,0,8000,5,5,10,10,10,30,8000,32,0,0,ferrari_30x16_203.prn,ENT.791.057.MR,
|
||||
5803036736,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803036736,
|
||||
5803036738,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803036738,
|
||||
A46107017000,,0,0,10,10,10,10,15,10,5100,15,0,0,ferrari_30x16_203.prn,A46107017000,
|
||||
000975406,,0,0,5,5,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000975406,
|
||||
000982127,,0,0,5,5,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000982127,
|
||||
98KA125CT,,0,0,5,5,10,10,30,50,3000,50,0,0,ferrari_30x16_203.prn,98KA125CT,
|
||||
000976097,,0,0,5,5,10,10,10,30,3500,30,0,0,ferrari_30x16_203.prn,000976097,
|
||||
000904357,,0,0,10,10,10,10,20,20,4100,20,0,0,ferrari_30x16_203.prn,000904357,
|
||||
TEST F250,,0,0,10,10,10,10,30,10,6000,0,0,0,ferrari_flag_qr_only.prn,,
|
||||
000779625,,0,0,5,5,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000779625,
|
||||
000951611,,0,0,5,5,10,10,30,20,2200,20,0,0,ferrari_30x16_203.prn,000951611,
|
||||
000748845,,0,0,5,5,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000748845,
|
||||
055034288,,0,6800,10,10,10,10,20,20,6800,20,0,0,ferrari_30x16_203.prn, 055034288,
|
||||
5803223735,,0,0,5,10,10,10,10,30,5100,15,0,0,ferrari_30x16_203.prn,5803223735,
|
||||
LIEBHERR R55240,,0,0,10,40,10,10,10,30,5000,30,0,0,ferrari_flag_qr_only.prn,,
|
||||
000298261,,0,0,3,3,10,10,3,30,6000,30,0,0,ferrari_30x16_203.prn,000298261,
|
||||
18LB033CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB033CT,
|
||||
18LA995CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LA995CT,
|
||||
18LA994CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LA994CT,
|
||||
5803120373,,0,0,5,10,10,10,10,30,5100,15,0,0,ferrari_30x16_203.prn,5803120373,
|
||||
18LB034CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB034CT,
|
||||
18LB069CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB069CT,
|
||||
18LB032CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB032CT,
|
||||
5803025117,,0,0,5,10,10,10,10,30,5100,15,0,0,ferrari_30x16_203.prn,583025117,
|
||||
5803025116,,5,2000,10,10,10,10,10,30,5100,15,0,0,ferrari_30x16_203.prn,5803025116,
|
||||
000990688,,0,0,5,5,10,10,30,20,2000,20,0,0,ferrari_30x16_203.prn,000990688,
|
||||
000990696,,0,0,5,5,10,10,30,20,2000,20,0,0,ferrari_30x16_203.prn,000990696,
|
||||
000990684,,0,0,5,5,10,10,30,20,2000,20,0,0,ferrari_30x16_203.prn,000990684,
|
||||
000990685,,0,0,5,5,10,10,30,20,2000,20,0,0,ferrari_30x16_203.prn,000990685,
|
||||
000990679,,0,0,5,5,10,10,30,20,2000,20,0,0,ferrari_30x16_203.prn,000990679,
|
||||
0000825276,,0,0,5,10,10,10,10,30,1500,30,0,0,ferrari_30x16_203.prn,0000825276,
|
||||
000990691,,0,0,5,10,10,10,10,20,3000,20,0,0,ferrari_30x16_203.prn,000990691,
|
||||
000990704,,0,0,5,10,10,10,10,20,1500,20,0,0,ferrari_30x16_203.prn,000990704,
|
||||
000990700,,0,0,5,10,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000990700,
|
||||
000990681,,0,0,5,10,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000990681,
|
||||
000990703,,0,0,5,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990703,
|
||||
000990692,,0,0,5,10,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000990692,
|
||||
000990690,,0,0,5,10,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000990690,
|
||||
000990708,,0,0,10,10,10,10,30,20,5000,20,0,0,ferrari_30x16_203.prn,000990708,
|
||||
055045415,,0,0,5,5,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,055045415,
|
||||
000990686,,0,0,5,5,10,10,30,20,2000,20,0,0,ferrari_30x16_203.prn,000990686,
|
||||
18LB058CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB058CT,
|
||||
000990680,,0,0,5,10,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000990680,
|
||||
000990687,,0,0,10,10,10,10,30,20,5000,20,0,0,ferrari_30x16_203.prn,000990687,
|
||||
000907313,000907313,0,0,10,10,10,10,10,20,2100,20,0,0,ferrari_30x16_203.prn,000907313,
|
||||
000987924,,5,0,10,10,10,10,10,20,2100,20,0,0,ferrari_30x16_203.prn,000987924,
|
||||
18LB051CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB051CT,
|
||||
18LB044CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB044CT,
|
||||
000987923,,0,0,10,10,10,10,10,20,2100,20,0,0,ferrari_30x16_203.prn,000987923,
|
||||
000987571,,0,0,10,10,10,10,10,20,2100,20,0,0,ferrari_30x16_203.prn,000987571,
|
||||
000987572,,0,0,10,10,10,10,10,20,2100,20,0,0,ferrari_30x16_203.prn,000987572,
|
||||
18LB027CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB027CT,
|
||||
18LA990CT,,0,0,30,30,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LA990CT,
|
||||
18LB561CT,,0,0,30,30,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB561CT,
|
||||
000990702,,0,0,5,5,10,10,10,20,1600,20,0,0,ferrari_30x16_203.prn,000990702,
|
||||
000991064,,0,0,5,5,10,10,10,20,1600,20,0,0,ferrari_30x16_203.prn,000991064,
|
||||
000991211,,0,0,5,5,10,10,10,20,1600,20,0,0,ferrari_30x16_203.prn,000991211,
|
||||
000990689,,0,0,5,5,10,10,30,20,1600,20,0,0,ferrari_30x16_203.prn,000990689,
|
||||
000991211,,0,0,10,10,10,10,30,20,2100,20,0,0,ferrari_30x16_203.prn,000991211,
|
||||
000991064,,0,0,10,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000991064,
|
||||
000990689,,0,0,10,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990689,
|
||||
055000046,,0,0,5,10,10,10,30,20,2150,20,0,0,ferrari_30x16_203.prn,055000046,
|
||||
000990701,,0,0,10,10,10,10,30,20,2000,20,0,0,ferrari_30x16_203.prn,000990701,
|
||||
000990706,,0,0,10,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990706,
|
||||
000990697,,0,0,10,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990697,
|
||||
BUCHER 7076213,7076213,0,0,10,30,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,7076213,
|
||||
000990694,,0,0,5,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990694,
|
||||
000990699,,0,0,10,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990699,
|
||||
SP031.053-R2,,0,0,5,10,10,10,10,30,3100,10,0,0,ferrari_30x16_203.prn,SP031.053-R2,
|
||||
SP031.051-R2,SP031.051-R2,0,0,5,10,10,10,10,30,3100,10,0,0,ferrari_30x16_203.prn,SP031.051-R2,
|
||||
SP031.050-R3,,0,0,5,10,10,10,10,30,3100,10,0,0,ferrari_30x16_203.prn,SP031.050-R3,
|
||||
SP031.052-R2,,0,0,5,10,10,10,10,30,3100,10,0,0,ferrari_30x16_203.prn,SP031.052-R2,
|
||||
16JA603CP,,10,500,10,30,10,10,10,20,500,10,0,0,ferrari_30x16_203.prn,16JA603CP,
|
||||
16JA605CP,,10,500,10,30,10,10,10,20,500,10,0,0,ferrari_30x16_203.prn,16JA605CP,
|
||||
18LB348CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB348CT,
|
||||
18LB347CT,,0,0,10,10,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB347CT,
|
||||
18LB349CT,,0,0,20,20,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB349CT,
|
||||
18LB348CT,,0,0,30,30,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB348CT,
|
||||
18LB349CT,,0,0,30,30,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB349CT,
|
||||
18LB347CT,,0,0,30,30,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB347CT,
|
||||
000990693,,0,0,5,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990693,
|
||||
18LB346CT,,0,0,30,30,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB346CT,
|
||||
18LB350CT,,0,0,30,30,10,10,30,20,3500,20,0,0,ferrari_30x16_203.prn,18LB350CT,
|
||||
000990698,,0,0,10,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990698,
|
||||
000990695,,0,0,10,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990695,
|
||||
000990707,,0,0,5,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990707,
|
||||
055017119,,0,0,5,10,10,10,10,4,2600,10,0,0,ferrari_30x16_203.prn, 055017119,
|
||||
3915370,,0,0,10,10,10,10,20,4,3500,15,0,0,ferrari_30x16_203.prn, 3915370,
|
||||
055017118,,0,0,5,10,10,10,10,4,2600,10,0,0,ferrari_30x16_203.prn, 055017118,
|
||||
055017120,,0,0,5,10,10,10,60,3,2500,10,0,0,ferrari_30x16_203.prn, 055017120,
|
||||
055017125,,0,0,5,10,10,10,60,3,2600,10,0,0,ferrari_30x16_203.prn, 055017125,
|
||||
000990705,,0,0,10,10,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000990705,
|
||||
055024035,,0,0,5,10,10,10,20,5,2600,10,0,0,ferrari_30x16_203.prn, 055024035,
|
||||
R56414,,0,0,5,10,10,10,10,10,3000,10,0,0,ferrari_30x16_203.prn,R56414,
|
||||
R56418,,0,0,5,10,10,10,10,10,3000,10,0,0,ferrari_30x16_203.prn,R56418,
|
||||
R56413,,0,0,5,10,10,10,10,10,3000,10,0,0,ferrari_30x16_203.prn,R56413,
|
||||
R56405,,0,0,5,10,10,10,10,10,3000,10,0,0,ferrari_30x16_203.prn,R56405,
|
||||
R56411,,0,0,5,10,10,10,10,10,3000,10,0,0,ferrari_30x16_203.prn,R56411,
|
||||
R56410,,0,0,5,10,10,10,10,10,3000,10,0,0,ferrari_30x16_203.prn,R56410,
|
||||
07N.131.597.A,,5,4000,10,10,10,10,10,30,3000,10,0,0,ferrari_30x16_203.prn,07N.131.597.A,
|
||||
000784883,,0,0,5,5,10,10,10,30,1600,10,0,0,ferrari_30x16_203.prn, 000784883,
|
||||
000985807,,0,0,5,5,10,10,10,30,1600,10,0,0,ferrari_30x16_203.prn, 000985807,
|
||||
SP031.077R1,,0,0,7,15,10,10,5,30,4100,30,0,0,ferrari_30x16_203.prn,SP031.077-R1,
|
||||
800.P.850.1A,,0,0,5,10,10,10,10,30,4000,30,0,0,ferrari_30x16_203.prn,800.P.850.1A,
|
||||
800.P.851.1A,,0,0,5,10,10,10,10,30,4000,30,0,0,ferrari_30x16_203.prn,800.P.851.1A,
|
||||
055018630,,0,200,5,5,10,10,10,50,2000,50,10,0,ferrari_30x16_203.prn,055018630,
|
||||
5803229239,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803229239,
|
||||
000952005,,0,0,5,10,10,10,10,30,2100,15,0,0,ferrari_30x16_203.prn,000952005,
|
||||
92172962,,0,0,10,20,10,10,10,30,2000,30,0,0,ferrari_30x16_203.prn,92172962,
|
||||
5803229240,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803229240,
|
||||
PROVA VA0017,,0,0,2,3,10,10,5,0,4000,5,0,0,ferrari_30x16_203.prn,VA0017,
|
||||
V04.030.057.AD,,0,0,5,10,10,10,10,20,200,20,0,0,ferrari_30x16_203.prn,V04.030.057.AD,
|
||||
5803184400,,0,0,5,10,10,10,10,20,5000,20,0,0,ferrari_30x16_203.prn,5803184400,
|
||||
5803329396,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803329396,
|
||||
5803329398,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803329398,
|
||||
5803329442,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803329442,
|
||||
5803329443,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803329443,
|
||||
5803313275,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803313275,
|
||||
5803330518,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803330518,
|
||||
5803313274,,0,0,5,10,10,10,10,30,5000,30,0,0,ferrari_30x16_203.prn,5803313274,
|
||||
000742336,,0,0,5,5,10,10,10,20,2100,20,0,0,ferrari_30x16_203.prn,000742336,
|
||||
000742332,,0,0,5,5,10,10,10,20,2100,20,0,0,ferrari_30x16_203.prn,000742332,
|
||||
5803293153,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293153,
|
||||
5803293154,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293154,
|
||||
5803293158,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293158,
|
||||
5803293162,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293162,
|
||||
5803293142,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293142,
|
||||
5803293141,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293141,
|
||||
5803293149,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293149,
|
||||
5803293157,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293157,
|
||||
5803229244,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803229244,
|
||||
5803229245,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803229245,
|
||||
5803293143,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293143,
|
||||
5803293144,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293144,
|
||||
5803293147,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293147,
|
||||
5803293148,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293148,
|
||||
5803293149,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293149,
|
||||
PROVA RIMAC,,0,0,5,10,10,10,20,20,3000,20,0,0,ferrari_30x16_203.prn,PROVA RIMAC,
|
||||
5803293151,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293151,
|
||||
5803293150,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293150,
|
||||
5803293155,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293155,
|
||||
5803293159,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293159,
|
||||
055019161,,0,0,5,10,10,10,10,20,1500,20,0,0,ferrari_30x16_203.prn,055019161,
|
||||
5803293156,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293156,
|
||||
5803293161,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293161,
|
||||
5803293160,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293160,
|
||||
5803328789,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803328789,
|
||||
5803328788,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803328788,
|
||||
5803439351,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803439351,
|
||||
5803442534,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803442534,
|
||||
5803439352,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803439352,
|
||||
5803442535,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803442535,
|
||||
5803328907,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803328907,
|
||||
5803328906,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803328906,
|
||||
5803293145,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293145,
|
||||
5803293155,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293155,
|
||||
5803293152,,0,0,5,10,10,10,10,30,5000,15,0,0,ferrari_30x16_203.prn,5803293152,
|
||||
PT00044318,,0,0,5,10,10,10,10,30,1000,15,0,0,ferrari_30x16_203.prn,PT00044318,
|
||||
PT00045408,,0,0,5,10,10,10,10,30,1000,15,0,0,ferrari_30x16_203.prn,PT00045408,
|
||||
5803311633,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803311633,
|
||||
5803312417,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803312417,
|
||||
5803312373,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803312373,
|
||||
5803312291,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803312291,
|
||||
5803311634,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803311634,
|
||||
5803311630,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803311630,
|
||||
5803311632,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803311632,
|
||||
5803311636,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803311636,
|
||||
5803312839,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803312839,
|
||||
5803312781,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803312781,
|
||||
5803316610,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803316610,
|
||||
5803316729,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803316729,
|
||||
5803316718,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803316718,
|
||||
5803317742,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803317742,
|
||||
5803321O38,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803321038,
|
||||
5803311635,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803311635,
|
||||
5803311631,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803311631,
|
||||
PT00049591,,0,0,5,10,10,10,10,30,1000,15,0,0,ferrari_30x16_203.prn,PT00049591,
|
||||
PT00049590,,0,0,5,10,10,10,10,30,1000,15,0,0,ferrari_30x16_203.prn,PT00049590,
|
||||
1636050157,,0,0,5,10,10,10,10,30,6000,0,0,0,ferrari_30x16_203.prn,1636050157,
|
||||
580051500,,0,0,5,5,10,10,10,30,6100,30,0,0,ferrari_30x16_203.prn,580051500,
|
||||
5803350485,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803350485,
|
||||
5803315085,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803315085,
|
||||
5803350411,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803350411,
|
||||
5803350392,,0,0,5,5,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803350392,
|
||||
580051376,,0,0,5,10,10,10,10,30,6100,30,0,0,ferrari_30x16_203.prn,580051376,
|
||||
055020340,,0,0,5,10,10,10,10,20,2000,20,0,0,ferrari_30x16_203.prn,055020340,
|
||||
G04-030-057-BF,VO4-030-057-BF,0,0,5,5,10,10,10,30,2100,30,0,0,ferrari_30x16_203.prn,V04-030-057-BF,
|
||||
5803350506,,0,0,5,10,10,10,10,30,6100,15,0,0,ferrari_30x16_203.prn,5803350506,
|
||||
5803350485,,0,0,5,10,10,10,10,30,6100,15,0,0,ferrari_30x16_203.prn,5803350485,
|
||||
1636050164,,0,0,5,10,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,1636050164,
|
||||
1636050159,,0,0,5,10,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,1636050159,
|
||||
1636050042,,0,0,5,10,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,1636050042,
|
||||
403/S2662,,0,0,10,10,10,10,10,10,2000,10,0,0,ferrari_30x16_203.prn,403/S2662,
|
||||
1636050042,,0,0,5,1,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,1636050042,
|
||||
1636050162,,0,0,5,10,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,1636050162,
|
||||
1636050158,,0,0,5,10,10,10,10,30,6000,15,0,0,ferrari_30x16_203.prn,1636050158,
|
||||
98FA186CP,98FA186CP,0,2000,5,5,10,10,20,15,3000,15,0,0,ferrari_30x16_203.prn,98FA186CP,
|
||||
5803358645,,0,5000,5,10,10,10,10,30,5100,30,0,0,ferrari_30x16_203.prn,5803358646,
|
||||
5803158291,CPL GASOLIO LP,5,2000,5,10,10,10,20,30,2000,0,0,0,ferrari_30x16_203.prn,5803158291,C9 CCM FPT
|
||||
000784883,,0,0,5,5,10,10,30,20,1500,20,0,0,ferrari_30x16_203.prn,000784883,
|
||||
FUGA CAL 7 BAR,24001,0,0,5,5,10,10,10,9,7000,6,20,1,ferrari_30x16_203.prn,FUGA 24001 8MBA,
|
||||
5802814210 R.3,j5802814210 R.3,5,3000,5,10,20,20,20,30,3000,30,10,100,ferrari_flag_qr_only.prn,5802814210 R.3,
|
||||
403/S2664,j5802814210 R.3,5,3000,5,10,5,5,10,10,2000,10,10,100,ferrari_30x16_203.prn,"",
|
||||
403/S2666,jcb,0,3000,5,10,5,5,10,10,2000,10,10,100,ferrari_30x16_203.prn,"",
|
||||
|
102
config/csv_import/EXTRACTIONS/T3P20RR SN 20060720 09 10 2024.csv
Normal file
|
|
@ -0,0 +1,102 @@
|
|||
codice_ricetta,part_number,tempo_pre_riempimento,pressione_pre_riempimento,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotamento,template_di_stampa,campo1,campo2
|
||||
TEST FUGA 7 BAR,B1619X,0.0,1400,5.0,10.0,10,10,5.0,16.8,7000,11.200000000000001,0.1,0,,DA 11.2 A 16.8 M,
|
||||
16LA773CP REV01,,0.0,0,10.0,15.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-TRANS HX-RT,P16
|
||||
5803112815 REV01,COMPL.MAN,0.0,0,5.0,5.0,15,15,10.0,30.0,5000,1.0,0.0,0,,5803112815 REV01,
|
||||
5803112816 REV01,COMPL.MAN,0.0,0,5.0,5.0,15,15,10.0,30.0,5000,1.0,0.1,0,,5803112816 REV01,
|
||||
PY83-6B747-BA,ENGINE OIL ASSY,0.0,0,10.0,10.0,10,10,30.0,20.0,7000,10.0,0.0,0,,PY83-6B747-BA,ASTON MARTIN
|
||||
PY83-6B748-BA,ENGINE OIL ASSY,0.0,0,10.0,10.0,10,10,30.0,20.0,7000,5.0,0.0,0,,PY83-6B748-BA,ASTON MARTIN
|
||||
5802729983 REV0,,0.0,0,5.0,5.0,10,10,10.0,20.0,8000,0.0,0.0,0,,,
|
||||
MY83-6L701-AB,TRASMISSION OIL,0.0,0,5.0,5.0,10,10,20.0,20.0,7000,5.0,0.0,0,,MY83-6L701-AB,ASTON MARTIN
|
||||
16FC246CP REV1,,0.0,0,10.0,5.0,10,10,20.0,20.0,1000,5.0,0.0,0,,ASSY-OIL FILL,P16
|
||||
MY83-6L694-AB,TRASMISSION OIL,0.0,0,5.0,5.0,10,10,20.0,20.0,7000,5.0,0.0,0,,MY83-6L694-AB,ASTON MARTIN
|
||||
16FC250CP REV02,ASSY CCV,0.0,0,5.0,5.0,20,20,20.0,50.0,200,2.0,0.0,0,,ASSY CCV - PCV,T16C-Z0800-001
|
||||
5801970064 REV2,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801970064 REV2,LANCIA BOLZANO
|
||||
5801970067 REV1,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801970067 REV1,LANCIA BOLZANO
|
||||
5801384839 REV1,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801384839 REV1,LANCIA BOLZANO
|
||||
5801384838 REV1,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801384838 REV1,LANCIA BOLZANO
|
||||
12970-13-2382,TUBEASSY-CLUTCH,0.0,0,10.0,5.0,10,10,20.0,20.0,7000,5.0,0.0,0,,12970-13-2382,MULTIMATIC
|
||||
12970-13-2384,TUBEASSY-CLUTCH,0.0,0,10.0,5.0,10,10,20.0,20.0,7000,5.0,0.0,0,,12970-13-2384,MULTIMATIC
|
||||
12970-13-2386,TUBEASSY-CLUTCH,0.0,0,10.0,5.0,10,10,20.0,20.0,7000,5.0,0.0,0,,12970-13-2386,MULTIMATIC
|
||||
12970-13-2388,TUBEASSY-CLUTCH,0.0,0,10.0,5.0,10,10,20.0,20.0,7000,5.0,0.0,0,,12970-13-2388,MULTIMATIC
|
||||
16FC256CP REV01,,0.0,0,5.0,5.0,10,10,20.0,20.0,1000,5.0,0.0,0,,ASSY-MAKE UP AIR,P16
|
||||
5801384841 REV01,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801384841 REV01,LANCIA BOLZANO
|
||||
5801384842 REV01,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801384842 REV01,LANCIA BOLZANO
|
||||
5801970063 REV2,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801970063 REV2,LANCIA BOLZANO
|
||||
16FB157CP REV03,,0.0,0,5.0,5.0,10,10,20.0,50.0,1000,2.0,0.0,0,,ASSY CCV-OIL TAN,P16
|
||||
16L0002CP REV03,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-RH-HT-RADIA,P16
|
||||
16L0007CP REV03,,0.0,0,5.0,5.0,10,10,30.0,20.0,3000,4.0,0.0,0,,HOSE-IPU-JNCTN-T,P16
|
||||
16L0043CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,PIPE-OUTLET-PRE-,P16
|
||||
16L0045CP REV02,,0.0,0,5.0,5.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-HT-RADIATOR,P16
|
||||
16L0046CP REV03,,0.0,0,15.0,10.0,10,10,20.0,20.0,3500,5.0,0.0,0,,HOSE-LH-HT-RADIA,P16
|
||||
16L0058CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,5.0,0.0,0,,HOSE-LT-TUNNEL-T,P16
|
||||
16L0059CP REV03,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-COOLANT-FIL,P16
|
||||
16L0075CP REVO3,,0.0,0,20.0,15.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-HEADER-TANK,P16
|
||||
16L0145CP REV03,,0.0,0,5.0,15.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-HOSE-PUMP-T,P16
|
||||
16L0151CP REV03,,0.0,0,5.0,15.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-IPU-OUTLET-,P16
|
||||
16L0154CP REV03,,0.0,0,10.0,20.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-RH-LTR-OUTL,P16
|
||||
16L0161CP REV04,,0.0,0,5.0,15.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-WCACS-TO-ME,P16
|
||||
16L0164CP REV02,,0.0,0,10.0,15.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-LH-LTR-OUT,P16
|
||||
16L0167CP REV02,,0.0,0,10.0,20.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-TO-MCU,P16
|
||||
16L0170CP REV03,,0.0,0,10.0,10.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-IPU-OUTLET-,P16
|
||||
16L0174CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-WCACS LINK,P16
|
||||
16L0177CP REV03,,0.0,0,5.0,10.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-JNCTN TO WC,P16
|
||||
16L0180CP REV04,,0.0,0,15.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-LH-LTR-OUTL,P16
|
||||
16LA259CP REV03,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-LT-MECH-PUM,P16
|
||||
16LA336CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-E-MOTOR-OUT,P16
|
||||
16LA353CP REV02,,0.0,0,20.0,15.0,5,20,10.0,20.0,3500,5.0,0.0,0,,HOSE-RH-HT-RADIA,P16
|
||||
16LA372CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3000,0.0,0.0,0,,PIPE-IN-PRE-COOL,P16
|
||||
16LA397CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-HT-RADIATOR,P16
|
||||
16LA449CP REV02,,0.0,0,15.0,15.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-ENGINE-TO-P,P16
|
||||
16LA451CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE PRE COOLER ,P16
|
||||
16LA648CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-RH-LTR-OUT-,P16
|
||||
16LA452CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE PRE COOLERS,P16
|
||||
16LA461CP REV02,,0.0,0,5.0,10.0,10,10,20.0,20.0,3000,0.0,0.0,0,,ASSY-HOSE-HT-RTN,P16
|
||||
16LA680CP REV01,,0.0,0,10.0,15.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-TRANS HX-RT,P16
|
||||
16LA490CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-RH-LTR-OUT-,P16
|
||||
16LA515CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-TRANS HX-RT,P16
|
||||
16LA518CP REV02,,0.0,0,5.0,10.0,10,10,20.0,20.0,3000,0.0,0.0,0,,HOSE-TO-E-MOTOR,P16
|
||||
16LA573CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-MCU-TO-MOTO,P16
|
||||
16LA579CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-WCACS LINK ,P16
|
||||
16LA668CP REV01,,0.0,0,10.0,20.0,10,10,30.0,20.0,3500,5.0,0.0,0,,HOSE-LH WCAC AND,P16
|
||||
16LA615CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-RH WCAC HOS,P16
|
||||
16LA584CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-TRANS HX-RT,P16
|
||||
16LA695CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3000,1.0,0.0,0,,HOSE PRE COOLERS,P16
|
||||
16LA586CP REV01,,0.0,0,5.0,10.0,10,10,20.0,20.0,3000,0.0,0.0,0,,HOSE PRE COOLERS,P16
|
||||
16LA642CP REV01,,0.0,0,5.0,5.0,10,10,20.0,20.0,3500,0.0,0.0,0,,HOSE-WCACS LINK ,P16
|
||||
16LA643CP REV01,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-WCACS LINK ,P16
|
||||
16FC069CP REV01,,0.0,0,10.0,15.0,10,10,20.0,50.0,1000,5.0,0.0,0,,ASSY CCV-INTAKE,P16
|
||||
16FC084CP REV02,,0.0,0,5.0,5.0,10,10,20.0,50.0,3000,0.0,0.0,0,,BALANCE PIPE-INL,P16
|
||||
16FB394CP REV04,,0.0,0,5.0,5.0,10,10,20.0,50.0,3000,5.0,0.0,0,,ASSY INLET PURGE,P16
|
||||
5801970066 REV01,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801970066 REV01,LANCIA BOLZANO
|
||||
5801970021 REV01,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801970021 REV01,LANCIA BOLZANO
|
||||
5801862227 REV00,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801862227 REV00,LANCIA BOLZANO
|
||||
16LA661CP REV01,,0.0,0,5.0,10.0,10,10,20.0,20.0,3500,0.0,0.0,0,,HOSE-RH-HT-RADIA,P16
|
||||
16FC056CX REV01,,0.0,0,5.0,5.0,10,10,20.0,20.0,1000,5.0,0.0,0,,ASSY-MAKE UP AIR,P16
|
||||
16FC201CX REV01, ASSY CCV-PCV,0.0,0,5.0,5.0,20,20,20.0,50.0,300,2.0,0.0,0,"
|
||||
",ASSY CCV - PCV,T16C-Z0800-001
|
||||
16LA718CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3000,0.0,0.0,0,,HOSE-E-MOTOR-OUT,P16
|
||||
16FA849CP REV02,,0.0,0,10.0,5.0,10,10,20.0,20.0,1000,5.0,0.0,0,,ASSY-OIL FILL,P16
|
||||
5803112815,COMPL.MAN,0.0,0,5.0,10.0,15,15,10.0,30.0,5000,1.0,0.1,0,,5803112815,
|
||||
5801970065 REV01,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801970065 REV01,LANCIA BOLZANO
|
||||
MY83-6B748-BA,TRASMISSION OIL,0.0,0,10.0,10.0,10,10,20.0,20.0,7000,5.0,0.0,0,,MY83-6B748-BA,ASTON MARTIN
|
||||
16FC256CP REV01,,0.0,0,5.0,5.0,10,10,20.0,20.0,1000,5.0,0.0,0,,ASSY-MAKE UP AIR,P16
|
||||
5803112816,COMPL.MAN,0.0,0,5.0,10.0,15,15,10.0,30.0,5000,1.0,0.1,0,,5803112816,
|
||||
16LA459CP REV02,,0.0,0,5.0,10.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-TRANS HX-RT,P16
|
||||
MY83-6B747-BA,TRASMISSION OIL,0.0,0,10.0,10.0,10,10,20.0,20.0,7000,5.0,0.0,0,,MY83-6B747-BA,ASTON MARTIN
|
||||
16FA849CP REV02,,0.0,0,10.0,5.0,10,10,20.0,20.0,1000,5.0,0.0,0,,ASSY-OIL FILL,
|
||||
16FA849CX REV01,,0.0,0,10.0,5.0,10,10,20.0,20.0,1000,5.0,0.0,0,,ASSY-OIL FILL,
|
||||
16LA027SP REV02,,0.0,0,20.0,30.0,10,10,30.0,20.0,3500,5.0,0.0,0,,HOSE-LH WCAC AND,P16
|
||||
5801970065 REV01,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801970065 REV01,LANCIA BOLZANO
|
||||
16FA026SP REV1,OIL FIL LINE-FED,0.0,0,5.0,5.0,20,20,20.0,50.0,200,2.0,0.0,0,,FED,T16C-Z0800-001
|
||||
5801384840 REV01,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5801384840 REV01,LANCIA BOLZANO
|
||||
16FC446CP REV01,ASSY CCV,0.0,0,5.0,5.0,20,20,20.0,50.0,200,2.0,0.0,0,,FED,T16C-Z0800-001
|
||||
16FA026SP,,0.0,0,5.0,10.0,10,10,30.0,20.0,3000,0.0,0.0,0,,FED,P16
|
||||
5802170779 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5802170779 REV0,LANCIA BOLZANO
|
||||
16FC469CP REV.01,ASSY CCV,0.0,0,5.0,5.0,20,20,20.0,50.0,200,2.0,0.0,0,,FED,T16C-Z0800-001
|
||||
5802170804 REV0,FUEL HOSE,0.0,0,10.0,5.0,10,10,20.0,20.0,8000,5.0,0.0,0,,5802170804 REV0,LANCIA BOLZANO
|
||||
16LA459CP REV1,,0.0,0,10.0,15.0,10,10,30.0,20.0,3500,0.0,0.0,0,,HOSE-TRANS HX-RT,P16
|
||||
16FC541CT REV01,ASSY CCV,0.0,0,5.0,5.0,20,20,20.0,50.0,200,2.0,0.0,0,,FED,T16C-Z0800-001
|
||||
16LA735CP REV01,,0.0,0,5.0,5.0,10,10,20.0,20.0,3500,0.0,0.0,0,,HOSE-WCACS LINK ,P16
|
||||
16FA026SP REV01,ASSY CCV,0.0,0,5.0,5.0,20,20,20.0,50.0,200,2.0,0.0,0,,FED,T16C-Z0800-001
|
||||
5802980014 REV0,,0.0,0,15.0,10.0,10,10,25.0,20.0,7000,0.0,0.0,0,,UNITE GASOIL PI,IVECO
|
||||
16LA765CP REV1,,0.0,0,5.0,5.0,10,10,20.0,20.0,3500,0.0,0.0,0,,HOSE-WCACS LINK ,P16
|
||||
|
|
Can't render this file because it has a wrong number of fields in line 2.
|
305
config/csv_import/manual_csv_import/ricette prototipi.csv
Normal file
|
|
@ -0,0 +1,305 @@
|
|||
codice_ricetta,codice_prodotto,tempo_pre_riempimento,pressione_di_test,tempo_di_test,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_pre_rimepimento,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotamento,template_di_stampa,descrizione,campo2
|
||||
07N.131.628.A,,10,200,20,20,10,10,10,5,0,5,2,0,,07N.131.628.A,
|
||||
V04.030.057.BE,P18 BATTERY COOLING,0,0,20,20,10,10,20,5,0,5,0,0,,V04.030.057.BE,
|
||||
000990502,,0,0,10,10,10,10,10,30,0,20,0,0,,000990502,
|
||||
98FA644CP,,0,0,5,10,10,10,20,15,0,15,0,0,,98FA644CP,
|
||||
5803158246,CPLGASOLIO LP,5,2000,5,10,10,10,20,30,0,0,0,0,,5803158246,C9 CCM FPT
|
||||
BLOW BY WOKO,000781499,10,1000,10,10,99,99,10,600,0,20,0,0,,000781499,
|
||||
SY9Y-2976-B,SY9Y-2976-A,0,5000,10,10,10,10,10,20,0,15,1,0,,SY9Y-2976-B,
|
||||
SY9Y-2976-A,SY9Y-2976-A,0,0,10,10,10,10,10,20,0,0,0,0,,SY9Y-2976-A,
|
||||
SY9Y-9S331-B,SY9Y-9S331-B,10,0,10,10,10,10,10,20,0,15,0,0,,SY9Y-9S331-B,
|
||||
SY9Y-9S331-A,SY9Y-9S331-A,10,0,10,10,10,10,10,20,0,0,0,0,,SY9Y-9S331-A,
|
||||
18JA708CP,,0,0,5,5,10,10,30,20,0,20,0,0,,18JA708CP,
|
||||
18JA757CP,,0,0,5,5,10,10,30,20,0,20,0,0,,18JA757CP,
|
||||
18JA750CP,,0,0,5,5,10,10,30,20,0,20,0,0,,18JA750CP,
|
||||
18JA712CP,,0,0,5,5,10,10,30,20,0,20,0,0,,18JA712CP,
|
||||
18JA710CP,,0,0,5,5,10,10,30,20,0,20,0,0,,18JA710CP,
|
||||
18JA718CP,,0,5,5,5,10,10,30,20,0,20,3,0,,18JA718CP,
|
||||
18JA713CP,,0,0,5,5,10,10,30,20,0,20,0,0,,18JA713CP,
|
||||
18JA709CP,,0,0,5,5,10,10,30,20,0,20,0,0,,18JA709CP,
|
||||
000904357,,0,0,10,10,10,10,20,20,0,20,0,0,,000904357,
|
||||
05534288,,0,0,10,10,10,10,20,20,0,20,0,0,,05534288,
|
||||
5802031904,,0,0,5,5,10,10,20,20,0,20,0,0,,5802031904,
|
||||
000894372,,10,0,5,5,10,10,30,20,0,20,0,0,,000894372,
|
||||
000957630,,0,0,10,10,10,10,10,30,0,10,0,0,,000957630,
|
||||
000957631,,0,0,10,10,10,10,10,30,0,10,0,0,,000957631,
|
||||
000958439,,0,0,5,10,10,10,30,30,0,10,0,0,,000958439,
|
||||
000986619,,0,0,5,15,10,10,10,30,0,10,0,0,,000986619,
|
||||
S3130E132,,0,0,7,15,10,10,5,2,0,1,0,0,,S3130E132,
|
||||
18KA144CT,,0,0,5,5,10,10,30,10,0,10,0,0,,18KA144CT,
|
||||
5803148261,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803148261,
|
||||
98FB080CP,,5,200,10,10,10,10,20,10,0,15,3,1,,98FB080CP,
|
||||
590.2.418.1A,,0,5000,3,5,10,10,5,5,0,15,0,0,,590.2.418.1A,
|
||||
055000044,,0,3000,5,5,10,10,30,20,0,15,0,0,,055000044,
|
||||
000975576,TUBO INLET,5,2000,30,80,10,10,10,1,0,1,0,0,,000975576,
|
||||
000975575,TUBO OUTLET,5,2000,10,80,10,10,10,1,0,1,0,0,,000975575,
|
||||
5803223742,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803223742,
|
||||
5803223740,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803223740,
|
||||
5803223741,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803223741,
|
||||
5803223736,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803223736,
|
||||
5803223745,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803223745,
|
||||
000884945,,0,0,10,5,10,10,10,30,0,0,0,0,,000884945,
|
||||
5803223739,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803223739,
|
||||
000960322,000960322,0,0,5,10,10,10,10,20,0,20,0,0,,000960322,
|
||||
000960324,000960324,0,0,5,10,10,10,10,20,0,20,0,0,,000960324,
|
||||
000960275,000960275,0,0,5,10,10,10,10,20,0,20,0,0,,000960275,
|
||||
000960281,000960281,0,0,5,10,10,10,10,20,0,20,0,0,,000960281,
|
||||
055055934,,0,0,10,10,10,10,20,20,0,20,0,0,,055055934,
|
||||
5803228585,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803228585,
|
||||
5803223755,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803223755,
|
||||
5803120375,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803120375,
|
||||
5803083634,,0,5000,5,10,10,10,10,30,0,15,0,0,,5803083634,
|
||||
742722-15,742722-15,0,0,5,10,10,10,20,30,0,10,0,0,,74222-15,
|
||||
90383952,90383952,0,10,5,10,10,10,20,30,0,0,0,0,,90383952,
|
||||
90383805,90383805,0,0,5,20,10,20,20,30,0,0,0,0,,90383805,
|
||||
90459069,90459069,0,0,5,10,10,10,20,30,0,0,0,0,,90459069,
|
||||
001031-R5,,0,0,10,30,10,10,30,10,0,5,0,0,,001031-R5,
|
||||
5803036739,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803036739,
|
||||
000990010,000990010,2,200,10,10,10,10,10,20,0,20,0,0,,000990010,
|
||||
SY9Y-18D553AAM1,,0,0,5,5,10,10,30,20,0,20,0,0,,SY9Y-18D553AAM1,
|
||||
SY9Y-18D552AAM1,,10,7000,5,5,10,10,30,20,0,20,0,0,,SY9Y-18D552AAM1,
|
||||
5803037202,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803037202,
|
||||
5803108366,,2,5000,5,10,10,10,10,30,0,15,0,0,,5703108366,
|
||||
5803108365,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803108365,
|
||||
PT00051126,,2,800,5,10,10,10,10,30,0,15,0,0,,PT00051126,
|
||||
000985807,,0,0,5,10,10,10,10,30,0,10,0,0,,000985807,
|
||||
055038005,,0,300,5,10,40,40,10,20,0,20,1,0,,055038005,
|
||||
5803034811,,0,5000,5,10,10,10,10,30,0,15,0,0,,5803034811,
|
||||
5803037201,,0,0,5,10,10,10,10,30,0,15,0,0,,5803037201,
|
||||
5803223749,,0,0,5,10,10,10,10,30,0,15,0,0,,5803223749,
|
||||
5803223748,,0,0,5,10,10,10,10,30,0,15,0,0,,5803223748,
|
||||
055000045,,0,0,5,5,10,10,30,20,0,20,0,0,,055000045,
|
||||
5803223747,,0,0,5,10,10,10,10,30,0,30,0,0,,5803223747,
|
||||
5803223746,,0,0,5,10,10,10,10,30,0,30,0,0,,5803223746,
|
||||
000951612,,0,0,5,5,10,10,30,20,0,20,0,0,,000951612,
|
||||
000951613,,0,0,5,5,10,10,30,20,0,20,0,0,,000951613,
|
||||
5803223750,,0,0,5,10,10,10,10,30,0,15,0,0,,5803223750,
|
||||
5803223751,,0,0,5,10,10,10,10,30,0,15,0,0,,5803223751,
|
||||
5803223752,,0,0,5,10,10,10,10,30,0,15,0,0,,5803223752,
|
||||
5803223753,,0,0,5,10,10,10,10,30,0,15,0,0,,5803223753,
|
||||
014093,014093,5,6000,10,1,10,10,10,30,0,15,0,0,,014093,
|
||||
7076213,7076213,0,0,10,1,10,10,10,30,0,15,0,0,,7026213,
|
||||
M28090912174,M280909-12174,0,0,5,10,10,10,10,30,0,15,0,0,,M28090912174,
|
||||
M28O90912174ECL,,0,0,1,1,10,10,1,0,0,0,0,0,,,
|
||||
5802815391,,0,0,5,10,10,10,10,30,0,15,0,0,,5802815391,
|
||||
5803101541,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803101541,
|
||||
5803101542,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803101542,
|
||||
5803406514,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803406514,
|
||||
5803108310,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803108310,
|
||||
5803101537,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803101537,
|
||||
5803101538,,2,5000,5,10,10,10,10,30,0,15,0,0,,5803101538,
|
||||
SY9Y-7F113AAM1,,10,7000,5,5,10,10,30,20,0,20,0,0,,SY9Y-7F113AAM1,
|
||||
SY9Y-7F114AAM1,,10,7000,5,5,10,10,30,20,0,20,0,0,,SY9Y-7F114AAM1,
|
||||
5803108305,,0,0,5,10,10,10,10,30,0,15,0,0,,5803108305,
|
||||
5803108311,,0,0,5,10,10,10,10,30,0,15,0,0,,5803108311,
|
||||
5802932524,,0,0,5,25,10,10,10,50,0,50,0,0,,5802932524,
|
||||
200116-13-1610,,5,5000,10,10,10,10,10,30,0,0,0,0,,200116-13-1610,
|
||||
5803108369,,0,0,5,10,10,10,10,30,0,15,0,0,,5803108369,
|
||||
ENT.791.057.MT,,0,8000,5,5,10,10,10,30,0,32,0,0,,ENT.791.057.MT,
|
||||
ENT.791.057.MR,,0,8000,5,5,10,10,10,30,0,32,0,0,,ENT.791.057.MR,
|
||||
5803036736,,0,0,5,10,10,10,10,30,0,15,0,0,,5803036736,
|
||||
5803036738,,0,0,5,10,10,10,10,30,0,15,0,0,,5803036738,
|
||||
A46107017000,,0,0,10,10,10,10,15,10,0,15,0,0,,A46107017000,
|
||||
000975406,,0,0,5,"5
|
||||
",10,10,30,20,0,20,0,0,,000975406,
|
||||
000982127,,0,0,5,"5
|
||||
",10,10,30,20,0,20,0,0,,000982127,
|
||||
98KA125CT,,0,0,5,"5
|
||||
",10,10,30,50,0,50,0,0,,98KA125CT,
|
||||
000976097,,0,0,5,"5
|
||||
",10,10,10,30,0,30,0,0,,000976097,
|
||||
000904357,,0,0,10,10,10,10,20,20,0,20,0,0,,000904357,
|
||||
TEST F250,,0,0,10,10,10,10,30,10,0,0,0,0,,,
|
||||
000779625,,0,0,5,5,10,10,30,20,0,20,0,0,,000779625,
|
||||
000951611,,0,0,5,5,10,10,30,20,0,20,0,0,,000951611,
|
||||
000748845,,0,0,5,5,10,10,30,20,0,20,0,0,,000748845,
|
||||
055034288,,0,6800,10,10,10,10,20,20,0,20,0,0,, 055034288,
|
||||
5803223735,,0,0,5,10,10,10,10,30,0,15,0,0,,5803223735,
|
||||
LIEBHERR R55240,,0,0,10,40,10,10,10,30,0,30,0,0,,,
|
||||
000298261,,0,0,3,3,10,10,3,30,0,30,0,0,,000298261,
|
||||
18LB033CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB033CT,
|
||||
18LA995CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LA995CT,
|
||||
18LA994CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LA994CT,
|
||||
5803120373,,0,0,5,10,10,10,10,30,0,15,0,0,,5803120373,
|
||||
18LB034CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB034CT,
|
||||
18LB069CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB069CT,
|
||||
18LB032CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB032CT,
|
||||
5803025117,,0,0,5,10,10,10,10,30,0,15,0,0,,583025117,
|
||||
5803025116,,5,2000,10,10,10,10,10,30,0,15,0,0,,5803025116,
|
||||
000990688,,0,0,5,5,10,10,30,20,0,20,0,0,,000990688,
|
||||
000990696,,0,0,5,5,10,10,30,20,0,20,0,0,,000990696,
|
||||
000990684,,0,0,5,5,10,10,30,20,0,20,0,0,,000990684,
|
||||
000990685,,0,0,5,5,10,10,30,20,0,20,0,0,,000990685,
|
||||
000990679,,0,0,5,5,10,10,30,20,0,20,0,0,,000990679,
|
||||
0000825276,,0,0,5,10,10,10,10,30,0,30,0,0,,0000825276,
|
||||
000990691,,0,0,5,10,10,10,10,20,0,20,0,0,,000990691,
|
||||
000990704,,0,0,5,10,10,10,10,20,0,20,0,0,,000990704,
|
||||
000990700,,0,0,5,10,10,10,30,20,0,20,0,0,,000990700,
|
||||
000990681,,0,0,5,10,10,10,30,20,0,20,0,0,,000990681,
|
||||
000990703,,0,0,5,10,10,10,30,20,0,20,0,0,,000990703,
|
||||
000990692,,0,0,5,10,10,10,30,20,0,20,0,0,,000990692,
|
||||
000990690,,0,0,5,10,10,10,30,20,0,20,0,0,,000990690,
|
||||
000990708,,0,0,10,10,10,10,30,20,0,20,0,0,,000990708,
|
||||
055045415,,0,0,5,5,10,10,30,20,0,20,0,0,,055045415,
|
||||
000990686,,0,0,5,5,10,10,30,20,0,20,0,0,,000990686,
|
||||
18LB058CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB058CT,
|
||||
000990680,,0,0,5,10,10,10,30,20,0,20,0,0,,000990680,
|
||||
000990687,,0,0,10,10,10,10,30,20,0,20,0,0,,000990687,
|
||||
000907313,000907313,0,0,10,10,10,10,10,20,0,20,0,0,,000907313,
|
||||
000987924,,5,0,10,10,10,10,10,20,0,20,0,0,,000987924,
|
||||
18LB051CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB051CT,
|
||||
18LB044CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB044CT,
|
||||
000987923,,0,0,10,10,10,10,10,20,0,20,0,0,,000987923,
|
||||
000987571,,0,0,10,10,10,10,10,20,0,20,0,0,,000987571,
|
||||
000987572,,0,0,10,10,10,10,10,20,0,20,0,0,,000987572,
|
||||
18LB027CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB027CT,
|
||||
18LA990CT,,0,0,30,30,10,10,30,20,0,20,0,0,,18LA990CT,
|
||||
18LB561CT,,0,0,30,30,10,10,30,20,0,20,0,0,,18LB561CT,
|
||||
000990702,,0,0,5,5,10,10,10,20,0,20,0,0,,000990702,
|
||||
000991064,,0,0,5,5,10,10,10,20,0,20,0,0,,000991064,
|
||||
000991211,,0,0,5,5,10,10,10,20,0,20,0,0,,000991211,
|
||||
000990689,,0,0,5,5,10,10,30,20,0,20,0,0,,000990689,
|
||||
000991211,,0,0,10,10,10,10,30,20,0,20,0,0,,000991211,
|
||||
000991064,,0,0,10,10,10,10,30,20,0,20,0,0,,000991064,
|
||||
000990689,,0,0,10,10,10,10,30,20,0,20,0,0,,000990689,
|
||||
055000046,,0,0,5,10,10,10,30,20,0,20,0,0,,055000046,
|
||||
000990701,,0,0,10,10,10,10,30,20,0,20,0,0,,000990701,
|
||||
000990706,,0,0,10,10,10,10,30,20,0,20,0,0,,000990706,
|
||||
000990697,,0,0,10,10,10,10,30,20,0,20,0,0,,000990697,
|
||||
BUCHER 7076213,7076213,0,0,10,30,10,10,10,30,0,30,0,0,,7076213,
|
||||
000990694,,0,0,5,10,10,10,30,20,0,20,0,0,,000990694,
|
||||
000990699,,0,0,10,10,10,10,30,20,0,20,0,0,,000990699,
|
||||
SP031.053-R2,,0,0,5,10,10,10,10,30,0,10,0,0,,SP031.053-R2,
|
||||
SP031.051-R2,SP031.051-R2,0,0,5,10,10,10,10,30,0,10,0,0,,SP031.051-R2,
|
||||
SP031.050-R3,,0,0,5,10,10,10,10,30,0,10,0,0,,SP031.050-R3,
|
||||
SP031.052-R2,,0,0,5,10,10,10,10,30,0,10,0,0,,SP031.052-R2,
|
||||
16JA603CP,,10,500,10,30,10,10,10,20,0,10,0,0,,16JA603CP,
|
||||
16JA605CP,,10,500,10,30,10,10,10,20,0,10,0,0,,16JA605CP,
|
||||
18LB348CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB348CT,
|
||||
18LB347CT,,0,0,10,10,10,10,30,20,0,20,0,0,,18LB347CT,
|
||||
18LB349CT,,0,0,20,20,10,10,30,20,0,20,0,0,,18LB349CT,
|
||||
18LB348CT,,0,0,30,30,10,10,30,20,0,20,0,0,,18LB348CT,
|
||||
18LB349CT,,0,0,30,30,10,10,30,20,0,20,0,0,,18LB349CT,
|
||||
18LB347CT,,0,0,30,30,10,10,30,20,0,20,0,0,,18LB347CT,
|
||||
000990693,,0,0,5,10,10,10,30,20,0,20,0,0,,000990693,
|
||||
18LB346CT,,0,0,30,30,10,10,30,20,0,20,0,0,,18LB346CT,
|
||||
18LB350CT,,0,0,30,30,10,10,30,20,0,20,0,0,,18LB350CT,
|
||||
000990698,,0,0,10,10,10,10,30,20,0,20,0,0,,000990698,
|
||||
000990695,,0,0,10,10,10,10,30,20,0,20,0,0,,000990695,
|
||||
000990707,,0,0,5,10,10,10,30,20,0,20,0,0,,000990707,
|
||||
055017119,,0,0,5,10,10,10,10,4,0,10,0,0,, 055017119,
|
||||
3915370,,0,0,10,10,10,10,20,4,0,15,0,0,, 3915370,
|
||||
055017118,,0,0,5,10,10,10,10,4,0,10,0,0,, 055017118,
|
||||
055017120,,0,0,5,10,10,10,60,3,0,10,0,0,, 055017120,
|
||||
055017125,,0,0,5,10,10,10,60,3,0,10,0,0,, 055017125,
|
||||
000990705,,0,0,10,10,10,10,30,20,0,20,0,0,,000990705,
|
||||
055024035,,0,0,5,10,10,10,20,5,0,10,0,0,, 055024035,
|
||||
R56414,,0,0,5,10,10,10,10,10,0,10,0,0,,R56414,
|
||||
R56418,,0,0,5,10,10,10,10,10,0,10,0,0,,R56418,
|
||||
R56413,,0,0,5,10,10,10,10,10,0,10,0,0,,R56413,
|
||||
R56405,,0,0,5,10,10,10,10,10,0,10,0,0,,R56405,
|
||||
R56411,,0,0,5,10,10,10,10,10,0,10,0,0,,R56411,
|
||||
R56410,,0,0,5,10,10,10,10,10,0,10,0,0,,R56410,
|
||||
07N.131.597.A,,5,4000,10,10,10,10,10,30,0,10,0,0,,07N.131.597.A,
|
||||
000784883,,0,0,5,5,10,10,10,30,0,10,0,0,, 000784883,
|
||||
000985807,,0,0,5,5,10,10,10,30,0,10,0,0,, 000985807,
|
||||
SP031.077R1,,0,0,7,15,10,10,5,30,0,30,0,0,,SP031.077-R1,
|
||||
800.P.850.1A,,0,0,5,10,10,10,10,30,0,30,0,0,,800.P.850.1A,
|
||||
800.P.851.1A,,0,0,5,10,10,10,10,30,0,30,0,0,,800.P.851.1A,
|
||||
055018630,,0,200,5,5,10,10,10,50,0,50,1,0,,055018630,
|
||||
5803229239,,0,0,5,10,10,10,10,30,0,15,0,0,,5803229239,
|
||||
000952005,,0,0,5,10,10,10,10,30,0,15,0,0,,000952005,
|
||||
92172962,,0,0,10,20,10,10,10,30,0,30,0,0,,92172962,
|
||||
5803229240,,0,0,5,10,10,10,10,30,0,15,0,0,,5803229240,
|
||||
PROVA VA0017,,0,0,2,3,10,10,5,0,0,5,0,0,,VA0017,
|
||||
V04.030.057.AD,,0,0,5,10,10,10,10,20,0,20,0,0,,V04.030.057.AD,
|
||||
5803184400,,0,0,5,10,10,10,10,20,0,20,0,0,,5803184400,
|
||||
5803329396,,0,0,5,10,10,10,10,30,0,30,0,0,,5803329396,
|
||||
5803329398,,0,0,5,10,10,10,10,30,0,30,0,0,,5803329398,
|
||||
5803329442,,0,0,5,10,10,10,10,30,0,30,0,0,,5803329442,
|
||||
5803329443,,0,0,5,10,10,10,10,30,0,30,0,0,,5803329443,
|
||||
5803313275,,0,0,5,10,10,10,10,30,0,30,0,0,,5803313275,
|
||||
5803330518,,0,0,5,10,10,10,10,30,0,30,0,0,,5803330518,
|
||||
5803313274,,0,0,5,10,10,10,10,30,0,30,0,0,,5803313274,
|
||||
000742336,,0,0,5,5,10,10,10,20,0,20,0,0,,000742336,
|
||||
000742332,,0,0,5,5,10,10,10,20,0,20,0,0,,000742332,
|
||||
5803293153,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293153,
|
||||
5803293154,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293154,
|
||||
5803293158,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293158,
|
||||
5803293162,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293162,
|
||||
5803293142,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293142,
|
||||
5803293141,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293141,
|
||||
5803293149,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293149,
|
||||
5803293157,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293157,
|
||||
5803229244,,0,0,5,10,10,10,10,30,0,15,0,0,,5803229244,
|
||||
5803229245,,0,0,5,10,10,10,10,30,0,15,0,0,,5803229245,
|
||||
5803293143,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293143,
|
||||
5803293144,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293144,
|
||||
5803293147,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293147,
|
||||
5803293148,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293148,
|
||||
5803293149,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293149,
|
||||
PROVA RIMAC,,0,0,5,10,10,10,20,20,0,20,0,0,,PROVA RIMAC,
|
||||
5803293151,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293151,
|
||||
5803293150,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293150,
|
||||
5803293155,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293155,
|
||||
5803293159,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293159,
|
||||
055019161,,0,0,5,10,10,10,10,20,0,20,0,0,,055019161,
|
||||
5803293156,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293156,
|
||||
5803293161,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293161,
|
||||
5803293160,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293160,
|
||||
5803328789,,0,0,5,10,10,10,10,30,0,15,0,0,,5803328789,
|
||||
5803328788,,0,0,5,10,10,10,10,30,0,15,0,0,,5803328788,
|
||||
5803439351,,0,0,5,10,10,10,10,30,0,15,0,0,,5803439351,
|
||||
5803442534,,0,0,5,10,10,10,10,30,0,15,0,0,,5803442534,
|
||||
5803439352,,0,0,5,10,10,10,10,30,0,15,0,0,,5803439352,
|
||||
5803442535,,0,0,5,10,10,10,10,30,0,15,0,0,,5803442535,
|
||||
5803328907,,0,0,5,10,10,10,10,30,0,15,0,0,,5803328907,
|
||||
5803328906,,0,0,5,10,10,10,10,30,0,15,0,0,,5803328906,
|
||||
5803293145,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293145,
|
||||
5803293155,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293155,
|
||||
5803293152,,0,0,5,10,10,10,10,30,0,15,0,0,,5803293152,
|
||||
PT00044318,,0,0,5,10,10,10,10,30,0,15,0,0,,PT00044318,
|
||||
PT00045408,,0,0,5,10,10,10,10,30,0,15,0,0,,PT00045408,
|
||||
5803311633,,0,0,5,5,10,10,10,30,0,30,0,0,,5803311633,
|
||||
5803312417,,0,0,5,5,10,10,10,30,0,30,0,0,,5803312417,
|
||||
5803312373,,0,0,5,5,10,10,10,30,0,30,0,0,,5803312373,
|
||||
5803312291,,0,0,5,5,10,10,10,30,0,30,0,0,,5803312291,
|
||||
5803311634,,0,0,5,5,10,10,10,30,0,30,0,0,,5803311634,
|
||||
5803311630,,0,0,5,5,10,10,10,30,0,30,0,0,,5803311630,
|
||||
5803311632,,0,0,5,5,10,10,10,30,0,30,0,0,,5803311632,
|
||||
5803311636,,0,0,5,5,10,10,10,30,0,30,0,0,,5803311636,
|
||||
5803312839,,0,0,5,5,10,10,10,30,0,30,0,0,,5803312839,
|
||||
5803312781,,0,0,5,5,10,10,10,30,0,30,0,0,,5803312781,
|
||||
5803316610,,0,0,5,5,10,10,10,30,0,30,0,0,,5803316610,
|
||||
5803316729,,0,0,5,5,10,10,10,30,0,30,0,0,,5803316729,
|
||||
5803316718,,0,0,5,5,10,10,10,30,0,30,0,0,,5803316718,
|
||||
5803317742,,0,0,5,5,10,10,10,30,0,30,0,0,,5803317742,
|
||||
5803321O38,,0,0,5,5,10,10,10,30,0,30,0,0,,5803321038,
|
||||
5803311635,,0,0,5,5,10,10,10,30,0,30,0,0,,5803311635,
|
||||
5803311631,,0,0,5,5,10,10,10,30,0,30,0,0,,5803311631,
|
||||
PT00049591,,0,0,5,10,10,10,10,30,0,15,0,0,,PT00049591,
|
||||
PT00049590,,0,0,5,10,10,10,10,30,0,15,0,0,,PT00049590,
|
||||
1636050157,,0,0,5,10,10,10,10,30,0,0,0,0,,1636050157,
|
||||
580051500,,0,0,5,5,10,10,10,30,0,30,0,0,,580051500,
|
||||
5803350485,,0,0,5,5,10,10,10,30,0,30,0,0,,5803350485,
|
||||
5803315085,,0,0,5,5,10,10,10,30,0,30,0,0,,5803315085,
|
||||
5803350411,,0,0,5,5,10,10,10,30,0,30,0,0,,5803350411,
|
||||
5803350392,,0,0,5,5,10,10,10,30,0,30,0,0,,5803350392,
|
||||
580051376,,0,0,5,10,10,10,10,30,0,30,0,0,,580051376,
|
||||
055020340,,0,0,5,10,10,10,10,20,0,20,0,0,,055020340,
|
||||
G04-030-057-BF,VO4-030-057-BF,0,0,5,5,10,10,10,30,0,30,0,0,,V04-030-057-BF,
|
||||
5803350506,,0,0,5,10,10,10,10,30,0,15,0,0,,5803350506,
|
||||
5803350485,,0,0,5,10,10,10,10,30,0,15,0,0,,5803350485,
|
||||
1636050164,,0,0,5,10,10,10,10,30,0,15,0,0,,1636050164,
|
||||
1636050159,,0,0,5,10,10,10,10,30,0,15,0,0,,1636050159,
|
||||
1636050042,,0,0,5,10,10,10,10,30,0,15,0,0,,1636050042,
|
||||
403/S2662,,0,0,10,10,10,10,10,10,0,10,0,0,,403/S2662,
|
||||
1636050042,,0,0,5,1,10,10,10,30,0,15,0,0,,1636050042,
|
||||
1636050162,,0,0,5,10,10,10,10,30,0,15,0,0,,1636050162,
|
||||
1636050158,,0,0,5,10,10,10,10,30,0,15,0,0,,1636050158,
|
||||
98FA186CP,98FA186CP,0,2000,5,5,10,10,20,15,0,15,0,0,,98FA186CP,
|
||||
5803358645,,0,5000,5,10,10,10,10,30,0,30,0,0,,5803358646,
|
||||
5803158291,CPL GASOLIO LP,5,2000,5,10,10,10,20,30,0,0,0,0,,5803158291,C9 CCM FPT
|
||||
000784883,,0,0,5,5,10,10,30,20,0,20,0,0,,000784883,
|
||||
FUGA CAL 7 BAR,24001,0,0,5,5,10,10,10,10,0,6,2,1,,FUGA 24001 8MBA,
|
||||
5802814210 R.3,j5802814210 R.3,5,3000,5,10,20,20,20,30,3000,30,1,100,,5802814210 R.3,
|
||||
|
291
config/csv_import/manual_csv_import/ricette.stten6csv.csv
Normal file
|
|
@ -0,0 +1,291 @@
|
|||
codice_ricetta,cliente,codice_prodotto,dimensione_lotto_abilitata,dimensione_lotto,verifica_connettore_abilitata,connettore,verifica_codice_a_barre_abilitata,codice_a_barre,verifica_resistenza_connettore_abilitata,scala_resistenza,r nominale,tolleranza_resistenza_pos,tolleranza_resistenza_neg,avvitatura_abilitata,viti,prova_tenuta_abilitata,tempo_pre_riempimento,pressione_pre_riempimento,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotamento,prova_tenuta_abilitata_2,tempo_pre_riempimento_2,pressione_pre_riempimento_2,tempo_riempimento_2,tempo_assestamento_2,percentuale_minima_pressione_assestamento_2,percentuale_massima_pressione_assestamento_2,tempo_di_test_2,pressione_di_test_delta_minimo_2,pressione_di_test_2,pressione_di_test_delta_massimo_2,tempo_svuotamento_2,pressione_svuotamento_2,test_visione_abilitato,ricetta_visione,stampa_etichetta_abilitata,modello_etichetta
|
||||
5801615767,IRISBUS,5801615767,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801615768,IRISBUS,5801615768,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801616061,IRISBUS,5801616061,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802278738,IVECO,5802278738,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802307397,IVECO,5802307397,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802783283,IVECO,5802783283,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820557,IVECO,5802820557,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802981174,IVECO BUS,5802981174,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6614258A2,argo,6614258A2,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6645424A2,ARGO TRACTRORS,6645424A2,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6694527A1,ARGO-TRACTORS,6694527A1,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
8626311,ROSENBAUR,8626311,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
8626312,ROSENBAUR,8626312,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6671546A3,ARGO TRACTOR,6671546A3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6703589A,AVONI,6703589A,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5PLH3000,BIMOTOR,BR5PLH3000,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5PLH2500,BIMOTOR,BR5PLH2500,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5PLH1500,BIMOTOR,BR5PLH1500,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5PLH1000,BIMOTOR,BR5PLH1000,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5SLH1500,BIMOTOR,BR5SLH1500,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5SLH1000,BIMOTOR,BR5SLH1000,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5BLH2500,BIMOTOR,BR5BLH2500,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5BLH1000,BIMOTOR,BR5BLH1000,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5BLH3500,BIMOTOR,BR5BLH3500,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5SLH345,BIMOTOR,BR5SLH345,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
BR5BLH345,BIMOTOR,BR5BLH345,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
7064710,BUCHER,7064710,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
7076215,BUCHER,7076215,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
POS.050-R53581,BUCHER,POS.050-R53581,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
CHF-6157,SUTPHEN,CHF-6157,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
CHF-6158,SUTPHEN,CHF-6158,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
47723585,CNH,47723585,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
47723590,CNH,47723590,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802866956,iveco BRASILE,5802866956,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802867195,IVECO-BRASILE,5802867195,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820701,IVECO BRESC,5802820701,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820711,iveco BRESC,5802820711,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802845278,IVECO,5802845278,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801363631,IVECO,5801363631,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820457,IVECO,5802820457,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820464,IVECO,5802820464,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820493,IVECO,5802820493,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820512,IVECO,5802820512,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820516,IVECO,5802820516,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820525,IVECO,5802820525,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820534,IVECO,5802820534,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820538,IVECO,5802820538,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820548,IVECO,5802820548,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820590,IVECO,5802820590,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820596,IVECO,5802820596,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820681,IVECO,5802820681,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820697,IVECO,5802820697,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802820732,IVECO,5802820732,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801364872,IVECO,5801364872,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801402694,IVECO,5801402694,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801457865,IVECO,5801457865,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801521202,IVECO,5801521202,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
53020608,MANITOU,53020608,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
53020610,MANITOU,53020610,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
53020612,MANITOU,53020612,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
80143869,MANITOWOC,80143869,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
80143870,MANITOWOC,80143870,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
80143871,MANITOWOC,80143871,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
117346,MERLO,117346,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
117347,MERLO,117347,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
117536,MERLO,117536,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
117537,MERLO,117537,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
13-2382,MULTIMATIC,13-2382,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
13-2384,MULTIMATIC,13-2384,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
13-2386,MULTIMATIC,13-2386,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
13-2388,MULTIMATIC,13-2388,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
B6336,MV AGUSTA,B6336,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
B8702,MV AGUSTA,B8702,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
32251,OTOKAR,32251,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
1B001316,PIAGGIO,1B001316,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
2B000116,PIAGGIO,2B000116,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
FUG CALIB3,TEST CIVETTA,FUG CALIB3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802513111,PREGNANA,5802513111,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
CHF-6156,SUTPHEN,CHF-6156,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
CHF-6157-200,SUTPHEN,CHF-6157-200,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
CHF-6158-200,SUTPHEN,CHF-6158-200,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801919616,SUZZARA,5801919616,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
46628006,ANTONIO CARRARO,46628006,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
46628008,ANTONIO CARRARO,46628008,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6623494A4,argo,6623494A4,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6628897A3,argo,6628897A3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6671549A3,ARGO TRACTOR,6671549A3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6673612A2,ARGO-TRACTORS,6673612A2,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6688903A2,ARGO TRACTOR,6688903A2,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6688904A2,ARGO TRACTOR,6688904A2,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6693686A3,ARGO TRACTOR,6693686A3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6693687A3,ARGO TRACTOR,6693687A3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
16L0167CP,mclaren,16L0167CP,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
MY83-6B747-BA,ASTON MARTIN,MY83-6B747-BA,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
MY83-6B748-BA,ASTON MARTIN,MY83-6B748-BA,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
MY83-6L694-AB,ASTON MARTIN,MY83-6L694-AB,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
MY83-6L701-AB,ASTON MARTIN,MY83-6L701-AB,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
MY83-6L694-AA,ASTON MARTIN,MY83-6L694-AA,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
1636031851,ATLASCOPCO,1636031851,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
1636031854,ATLASCOPCO,1636031854,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
1636031855,ATLASCOPCO,1636031855,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53221,AUTOMARK,R53221,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
R53222,AUTOMARK,R53222,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
670053160,BEST HOSES,670053160,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
PR321.39-R1,BUGATTI,PR321.39-R1,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
PR499-33-R3,BUGATTI,PR499-33-R3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
PR499-40-R3,BUGATTI,PR499-40-R3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
PR499-41-R3,BUGATTI,PR499-41-R3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
PR499-42-R3,BUGATTI,PR499-42-R3,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
PR499-73-R2,BUGATTI,PR499-73-R2,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
145-3810,CRANE CARRIER,145-3810,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
145-3811,CRANE CARRIER,145-3811,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
145-3812,CRANE CARRIER,145-3812,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
145-3813,CRANE CARRIER,145-3813,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52607933,MANITOU,52607933,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52607935,MANITOU,52607935,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52607941,MANITOU,52607941,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52631209,MANITOU,52631209,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52631210,MANITOU,52631210,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52631211,MANITOU,52631211,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
125584,MERLO,125584,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
128551,MERLO,128551,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
19P003_364,MERLO,19P003_364,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
19P003_365,MERLO,19P003_365,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R52444,MERLO,R52444,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R52445,MERLO,R52445,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
13M26-32252-AA,OTOKAR,13M26-32252-AA,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
13R00-32252-AA,OTOKAR,13R00-32252-AA,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802513100,PREGNANA,5802513100,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802513109,PREGNANA,5802513109,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802513113,PREGNANA,5802513113,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802513114,PREGNANA,5802513114,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026890,PRINOTH,28026890,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026891,PRINOTH,28026891,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026892,PRINOTH,28026892,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026893,PRINOTH,28026893,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026894,PRINOTH,28026894,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026895,PRINOTH,28026895,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026896,PRINOTH,28026896,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026897,PRINOTH,28026897,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28026898,PRINOTH,28026898,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
28054871,PRINOTH,28054871,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52706151,MANITOU,52706151,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52706152,MANITOU,52706152,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
52706153,MANITOU,52706153,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
63403,MAGNI,63403,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
180.3.827,VENIERI,180.3.827,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
180.3.828,VENIERI,180.3.828,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
180.3.829,VENIERI,180.3.829,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
180.3.830,VENIERI,180.3.830,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
180.3.831,VENIERI,180.3.831,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
180.3.832,VENIERI,180.3.832,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
180.3.838,VENIERI,180.3.838,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
180.3.839,VENIERI,180.3.839,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
A89020507,TECNOGEN,A89020507,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
A89090500,TECNOGEN,A89090500,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
A89100500,TECNOGEN,A89100500,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11K0210CP,MCLAREN,11K0210CP,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11K0235RT,MCLAREN,11K0235RT,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11K0236RT,MCLAREN,11K0236RT,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11K0237RT,MCLAREN,11K0237RT,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
122109,MERLO,122109,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
128551-R54268,MERLO,128551-R54268,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
12970-13-8212,MULTIMATIC,12970-13-8212,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
12KO243CP,MCLAREN,12KO243CP,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
47723530,CNH,47723530,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
504385052,FPT,504385052,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801402690,IVECO,5801402690,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5801283144,IVECO,5801283144,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5801354164,Iveco,5801354164,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801355177,IVECO,5801355177,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5801376020,IVECO,5801376020,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5801372024,IVECO,5801372024,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5801436969,IVECO,5801436969,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801503729,IVECO,5801503729,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801615766,IRISBUS,5801615766,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5E.R52814,DIECI,5E.R52814,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5801668147,IVECO,5801668147,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801668141,IVECO,5801668141,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
117345,MERLO,117345,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
117344,MERLO,117344,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R55205,DEUTZ,R55205,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R55204,DEUTZ,R55204,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54893,ATLAS COPCO,R54893,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54822,BIMOTOR,R54822,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54800,ANDREOLI,R54800,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54762,ATLAS COPCO,R54762,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54761/ECL4,ATLAS COPCO,R54761/ECL4,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
R54258,BIMOTOR,R54258,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54026-1,AVONI,R54026-1,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54026,ARGO TRACTOR,R54026,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54021,ARGO TRACTOR,R54021,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R54020,ARGO TRACTOR,R54020,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53963,SOREMA,R53963,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53961,SOREMA,R53961,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53959,SOREMA,R53959,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53957,SOREMA,R53957,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53927,MERLO,R53927,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53861,ARGO TRACTOR,R53861,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53849,ARGO TRACTOR,R53849,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53848,ARGO TRACTOR,R53848,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53847,ARGO TRACTOR,R53847,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53390,DIECI,R53390,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53293,KAHA,R53293,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R53223,AUTOMARK,R53223,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5802951920,IVECO,5802951920,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5801690154,IVECO,5801690154,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801690155,IVECO,5801690155,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
B4901,MV AGUSTA,B4901,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
503146253,MAGIRUS,503146253,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
503146900 DX,MAGIRUS,503146900 DX,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
125637,MERLO,125637,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
13H30-32256-AA,OTOKAR,13H30-32256-AA,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
13M26-32256-AA,OTOKAR,13M26-32256-AA,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
503146256 SX,MAGIRUS,503146256 SX,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
6703586A1,ARGO,6703586A1,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
19901416000,INTERPUMP,19901416000,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,2000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
36001,TEREX,36001,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
36002,TEREX,36002,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801460021,IVECO,5801460021,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801460025,IVECO,5801460025,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802845277,IVECO,5802845277,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,10000,30,1,100,x,0,1000,10,10,5,5,10,30,10000,30,3,100,False,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R55145,DEUTZ,R55145,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5803018238,IVECO,5803018238,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,10,10,10,30,18000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5803018239,IVECO,5803018239,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,10,10,10,30,18000,30,1,100,,0,1000,10,10,5,5,10,30,18000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5803018244,IVECO,5803018244,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,10,10,10,30,18000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
7064708,BUCHER,7064708,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
7067082,BUCHER,7067082,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
7080623,BUCHER,7080623,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
53027246,MANITOU,53027246,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
53027247,MANITOU,53027247,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
53027248,MANITOU,53027248,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
53027252,MANITOU,53027252,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
53027253,MANITOU,53027253,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802527206,PREGNANA,5802527206,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
7081272-ECL3,BUCHER,7081272-ECL3,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11K0218CP,MCLAREN,11K0218CP,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
51513901,CNH-LECCE,51513901,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
51513904,CNH-LECCE,51513904,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5801395749,IVECO,5801395749,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
6603139A4,ARGO-TRACTORS,6603139A4,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,20,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802540646,IVECO,5802540646,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,10,10,10,10,10,10,10,3,4300,30,0,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5802845274,IVECO,5802845274,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5802915400,IVECO,5802915400,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
6658115A2,ARGO-TRACTORS,6658115A2,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
6658115A4,ARGO-TRACTORS,6658115A4,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,15,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
125583,MERLO,125583,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
6683267A2,ARGO-TRACTORS,6683267A2,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,15,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
47886643,CNH-LECCE,47886643,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,20,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
R56763,STERKI,R56763,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
R56759,STERKI,R56759,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
6703537A2,ARGO,6703537A2,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5802752024,IVECO,5802752024,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5802754968,PREGNANA,5802754968,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5802845275,IVECO,5802845275,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
131295,MERLO,131295,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,15,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
5803143177,IVECO,5803143177,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,2500,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5802845276,IVECO FRANCE,5802845276,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
R52763,AUTOMARK,R52763,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
R52764,AUTOMARK,R52764,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
R52765,AUTOMARK,R52765,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5802892528,IVECO FRANCE,5802892528,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
5802892531,IVECO FRANCE,5802892531,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
19872.00.35,DELL ORTO,19872.00.35,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,20,30,9000,30,0,100,,0,1000,10,10,5,5,20,30,9000,5,1,100,False,000952054.ini,x,ETA30x16_203dpi.prn
|
||||
19799.00.35,DELL ORTO,19799.00.35,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,20,30,9000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,ETA30x16_203dpi.prn
|
||||
000746453,FERRARI,000746453,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,10500,30,1,100,,0,1000,10,10,5,5,10,30,10000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
10005330,CAPACITY TRUCKS,10005330,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
10006718,CAPACITY TRUCKS,10006718,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
112247,MERLO,112247,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
112248,MERLO,112248,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11519588,VAN HOOL,11519588,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11519589,VAN HOOL,11519589,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11519590,VAN HOOL,11519590,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11556236,VAN HOOL,11556236,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11556237,VAN HOOL,11556237,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11578030,VAN HOOL,11578030,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,000952054.ini,x,EtichettaR5_Montaggio_1prova.prn
|
||||
11585242,VAN HOOL,11585242,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11604514,VAN HOOL,11604514,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,30,30,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11607305,VAN HOOL,11607305,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11627962,VAN HOOL,11627962,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,20,10,5,5,10,30,7000,30,1,100,x,0,1000,20,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11642860,VAN HOOL,11642860,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11642861,VAN HOOL,11642861,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11650475,VAN HOOL,11650475,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11650477,VAN HOOL,11650477,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11650478,VAN HOOL,11650478,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11650479,VAN HOOL,11650479,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11650481,VAN HOOL,11650481,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
11650484,VAN HOOL,11650484,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
117342,MERLO,117342,,,,SCRx,,,,500.0,1000000000.0,10.0,5.0,,,x,0,1000,10,10,5,5,10,30,7000,30,1,100,x,0,1000,10,10,5,5,10,30,15000,30,1,100,0,termorestringente_923578.ini,x,EtichettaR5_Montaggio_2prove.prn
|
||||
117343,MERLO,117343,,,,SCRx,,,,500.0,9999999.99,10.0,5.0,,,x,0,1000,10,10,5,5,20,30,9000,30,1,100,,0,1000,10,10,5,5,10,30,15000,30,1,100,False,termorestringente_923578.ini,x,ETA30x16_203dpi.prn
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
import csv
|
||||
import itertools
|
||||
|
||||
# DOES NOT WORK
|
||||
def lower_first(iterator):
|
||||
return itertools.chain([next(iterator).lower()], iterator)
|
||||
|
||||
with open("Tabella Tubi riscaldati - COMPLETA rev19_29-12-2022.csv", 'rU') as datafile:
|
||||
csvDict = csv.DictReader(lower_first(datafile))
|
||||
for ucrow in csvDict:
|
||||
row = dict((k.lower(), v) for k, v in ucrow.items()) # WORKS
|
||||
print(row)
|
||||
49
config/instruction_images/generic/DEFAULT.svg
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="1200"
|
||||
height="700"
|
||||
viewBox="0 0 1200 700"
|
||||
version="1.1"
|
||||
id="svg5"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.2.2 (1:1.2.2+202212051550+b0a8486541)"
|
||||
sodipodi:docname="DEFAULT.svg"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
|
||||
id="namedview7"
|
||||
pagecolor="#505050"
|
||||
bordercolor="#eeeeee"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="0"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#505050"
|
||||
inkscape:document-units="mm"
|
||||
showgrid="false"
|
||||
inkscape:zoom="1.0570734"
|
||||
inkscape:cx="365.15913"
|
||||
inkscape:cy="357.59106"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1023"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" /><defs
|
||||
id="defs2" /><g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff7f2a;fill-opacity:1;stroke:#aa4400"
|
||||
x="277.31964"
|
||||
y="373.9111"
|
||||
id="text226"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan224"
|
||||
x="277.31964"
|
||||
y="373.9111"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:53.3333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:#aa4400;fill:#ff7f2a">DISEGNO NON DISPONIBILE</tspan></text></g></svg>
|
||||
|
After Width: | Height: | Size: 2.0 KiB |
|
Before Width: | Height: | Size: 216 KiB After Width: | Height: | Size: 320 KiB |
68
config/instruction_images/st-ten-11/18JA708CP.svg
Normal file
|
After Width: | Height: | Size: 236 KiB |
80
config/instruction_images/st-ten-11/18JA709CP.svg
Normal file
|
After Width: | Height: | Size: 148 KiB |
48
config/instruction_images/st-ten-11/18JA710CP.svg
Normal file
|
After Width: | Height: | Size: 130 KiB |
70
config/instruction_images/st-ten-11/18JA712CP.svg
Normal file
|
After Width: | Height: | Size: 142 KiB |
128
config/instruction_images/st-ten-11/18JA713CP.svg
Normal file
|
After Width: | Height: | Size: 217 KiB |
48
config/instruction_images/st-ten-11/18JA718CP.svg
Normal file
|
After Width: | Height: | Size: 136 KiB |
48
config/instruction_images/st-ten-11/18JA750CP.svg
Normal file
|
After Width: | Height: | Size: 156 KiB |
48
config/instruction_images/st-ten-11/18JA757CP.svg
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
config/label_designs/FERRARI/ferrari_flag_qr_only.nlbl
Normal file
BIN
config/label_designs/LAMBORGHINI/Lamborghini_label.nlbl
Normal file
BIN
config/label_designs/LAMBORGHINI/Lamborghini_test.nlbl
Normal file
BIN
config/label_designs/MCLAREN/MCLAREN_TEMPLATE.nlbl
Normal file
BIN
config/label_designs/PROTOTIPI/ERRECINQUE_flag_qr_only.nlbl
Normal file
20
config/label_templates/ERRECINQUE_flag_qr_only.prn
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
CT~~CD,~CC^~CT~
|
||||
^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2~SD25^JUS^LRN^CI0^XZ
|
||||
^XA
|
||||
^MMT
|
||||
^PW320
|
||||
^LL1039
|
||||
^LS0
|
||||
^FO32,128^GFA,06144,06144,00032,:Z64:
|
||||
eJzt10Fr5DYUAGAZw+gSoj2mNKC/sF1f9lDQsX8jS6H9FyuHwM4lsNfCHvI39laXwOZimp+wDoXtsQ65qCD0+mTLHrl+stIuhbZEF8/4G9vvSU+Sh7Gn9i9opdl2nrl+x54lpPj9snq4/XDvdg/vPpSMA4D1p/EIw5OLyxcvW1694dXXwU1wF/zspD2u2HH1si2ZCF7Ofn/5rbltK3ZUPW93ay8eTr+/37dV4/147aw6/fRV3Vb26LvnrSPu//Dbr79ctWen4tOry/H6Prgdeubu529urk7OjuSbVz/smAw+5Tn2Qc3Y6QljJ0e0++8G/Qub9h4v/jLt//G2y7jYVM3kVT18KlZ1zMGV0AnoeS+vjQAGcNOrt52WQz+iW44Ihht0CXXw1wcXiPgrIy+MgmZyNbv0P3HcomvoBheNCy4Gl8Fx8AD2XeSssPInKy2g73vHe6b2nUbHIQ+uzq2yWjg1ea9Fh95NXlvlBr+3pXejRT97aby/VwLwQj/R1QUARs1EN8Zv/P2feefeNZz7LsOQZy+sZkp8/DF4icnErr1r8RGCY5eLtctbwCdyzB+D9ymPjpWPrka/M3gLnzyGxGQT4h/cyZvJ5egieK99ik7unbiz+IjRzXQ971+jXzt5ge5kx0DeWXU9OQ4zuh8idBy8a3D4RWHUMLnzbuS5k83gQ3JLx/pS3jVckM6h8yE2CnvWdy6WFEA9eufKvoBaMSsbYdCZNoWvk3qz6J/aqg2bCrYm4Tx4l3ARPLUZTu4yDjlPBCjGGxdhZVh7WPF1IkAeApOJAHkoKZEorTIEVqYCnJasVIDaLo9/bvKRAfJkgN3imAqQfXaAiSF8bIBFNsDEECq7PK4ChMcG2PzDASaGcApMJAIUmQDVdoDFPDs1OcR8fi1SZAJynp2C7GE1512SCR7mdkF5PDOoDoiz1oTHvabqtUu77SrqFNmsXXcZr7c9zkmsfdEnhJf285ybjPfbLmIn8htfif6+L04R45P1+JRe++ISor5iLyiPPlP1HTsn5kfskvC4pKkFxHs5bYLE/PXONzZJ7/MmWmc8d32XeX4i/uklg/r7FedP7XGL/s04OX51/LB624n6Wnqz8kX95eo754vJQpzKOf/rvpj/lJttL3Nut32x/uWcyH+5vhIejznpzeEztX6rbttl1AHU/hJvmkT94eQ5fKb2v+jNkqrveP+k5gfedD5LrT9+/4aN+Tvu/+n1J5r9iX8JxcEbyqMASN5cXhYR1gl/ak/t/9P+AGyhc1w=:83DC
|
||||
^FT293,614^A0I,25,21^FH\^FD{DD}/{MO}/{YY}^FS
|
||||
^FT145,614^A0I,25,21^FH\^FD{HH}:{MI}:{SS}^FS
|
||||
^FT291,952^A0I,25,24^FH\^FDNumero Disegno^FS
|
||||
^FT293,645^A0I,25,24^FH\^FDData/Ora Prova^FS
|
||||
^FT293,691^A0I,25,24^FH\^FDN. Pezzo:^FS
|
||||
^FT185,690^A0I,25,24^FH\^FD{SN5}^FS
|
||||
^BY120,120^FT289,803^BXI,6,200,0,0,1,~
|
||||
^FH\^FD{PART}{MO}{YY}{SN5}^FS
|
||||
^FT291,752^A0I,25,24^FH\^FD{PART}{MO}{YY}{SN5}^FS
|
||||
^FT293,558^A0I,25,24^FH\^FDEsito : CONFORME^FS
|
||||
^PQ1,0,1,Y^XZ
|
||||
14
config/label_templates/ETA30x16_203dpi.prn
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
CT~~CD,~CC^~CT~
|
||||
^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2~SD20^JUS^LRN^CI0^XZ
|
||||
^XA
|
||||
^MMT
|
||||
^PW256
|
||||
^LL0144
|
||||
^LS0
|
||||
^FT148,125^BQN,2,4
|
||||
^FH\^FDLA,{PART}^FS
|
||||
^FT19,40^A0N,23,21^FH\^FD{PART}^FS
|
||||
^FT19,71^A0N,23,21^FH\^FDNum:{SN5}^FS
|
||||
^FT19,101^A0N,23,21^FH\^FD{DATE}^FS
|
||||
^FT19,126^A0N,23,21^FH\^FD{TIME}^FS
|
||||
^PQ1,0,1,Y^XZ
|
||||
53
config/label_templates/F164F169_203.prn
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
CT~~CD,~CC^~CT~
|
||||
^XA
|
||||
~TA000
|
||||
~JSN
|
||||
^LT0
|
||||
^MNW
|
||||
^MTT
|
||||
^PON
|
||||
^PMN
|
||||
^LH0,0
|
||||
^JMA
|
||||
^PR2,2
|
||||
~SD15
|
||||
^JUS
|
||||
^LRN
|
||||
^CI27
|
||||
^PA0,1,1,0
|
||||
^XZ
|
||||
^XA
|
||||
^MMT
|
||||
^PW320
|
||||
^LL1119
|
||||
^LS0
|
||||
^FT27,493^A0N,25,23^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27
|
||||
^FT175,493^A0N,25,23^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27
|
||||
^FT18,1013^A0N,31,30^FH\^CI28^FDESITO:^FS^CI27
|
||||
^FT144,1013^A0N,31,30^FH\^CI28^FDCONFORME^FS^CI27
|
||||
^FT29,87^A0N,25,25^FH\^CI28^FDNumero Disegno^FS^CI27
|
||||
^FT27,462^A0N,25,25^FH\^CI28^FDData/Ora Prova^FS^CI27
|
||||
^FT27,530^A0N,25,25^FH\^CI28^FDStazione: {STATION}^FS^CI27
|
||||
^FT27,416^A0N,25,25^FH\^CI28^FDN. Pezzo:^FS^CI27
|
||||
^FT135,417^A0N,25,25^FH\^CI28^FD{SN5}^FS^CI27
|
||||
^FT27,562^A0N,25,25^FH\^CI28^FDOPERATORE: {OPERATOR}^FS^CI27
|
||||
^FO52,649^GB215,0,8^FS
|
||||
^FT19,705^A0N,25,25^FH\^CI28^FDP. prova:^FS^CI27
|
||||
^FT19,737^A0N,25,25^FH\^CI28^FDP. rilevata:^FS^CI27
|
||||
^FT145,737^A0N,25,25^FH\^CI28^FD{RESPSET}mbar^FS^CI27
|
||||
^FT19,764^A0N,25,25^FH\^CI28^FDCaduta ammessa:^FS^CI27
|
||||
^FT206,764^A0N,25,25^FH\^CI28^FD{PMIN} mbar^FS^CI27
|
||||
^FT19,797^A0N,25,25^FH\^CI28^FDCaduta rilevata:^FS^CI27
|
||||
^FT179,797^A0N,25,25^FH\^CI28^FD{RESLEAK} mbar^FS^CI27
|
||||
^FT19,908^A0N,25,25^FH\^CI28^FDT.Prova^FS^CI27
|
||||
^FT207,912^A0N,25,25^FH\^CI28^FD{TTEST} s^FS^CI27
|
||||
^FT18,864^A0N,25,25^FH\^CI28^FDT.Riempim.^FS^CI27
|
||||
^FT207,864^A0N,25,25^FH\^CI28^FD{TFILL} s^FS^CI27
|
||||
^FT19,886^A0N,25,25^FH\^CI28^FDT.Stabilizzazione^FS^CI27
|
||||
^FT207,888^A0N,25,25^FH\^CI28^FD{TSET} s^FS^CI27
|
||||
^FT145,705^A0N,25,25^FH\^CI28^FD{PTEST} mbar^FS^CI27
|
||||
^FT31,236^BXN,6,200,0,0,1,_,1
|
||||
^FH\^FD{PART}{MO}{YY}{SN5}^FS
|
||||
^FT29,287^A0N,25,25^FH\^CI28^FD{PART}{MO}{YY}{SN5}^FS^CI27
|
||||
^PQ1,0,1,Y
|
||||
^XZ
|
||||
34
config/label_templates/ferrari_flag_qr_only.prn
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
CT~~CD,~CC^~CT~
|
||||
^XA
|
||||
~TA000
|
||||
~JSN
|
||||
^LT0
|
||||
^MNW
|
||||
^MTT
|
||||
^PON
|
||||
^PMN
|
||||
^LH0,0
|
||||
^JMA
|
||||
^PR2,2
|
||||
~SD15
|
||||
^JUS
|
||||
^LRN
|
||||
^CI27
|
||||
^PA0,1,1,0
|
||||
^XZ
|
||||
^XA
|
||||
^MMT
|
||||
^PW320
|
||||
^LL1119
|
||||
^LS0
|
||||
^FT27,425^A0N,25,23^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27
|
||||
^FT175,425^A0N,25,23^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27
|
||||
^FT29,87^A0N,25,25^FH\^CI28^FDNumero Disegno^FS^CI27
|
||||
^FT27,394^A0N,25,25^FH\^CI28^FDData/Ora Prova^FS^CI27
|
||||
^FT27,348^A0N,25,25^FH\^CI28^FDN. Pezzo:^FS^CI27
|
||||
^FT135,349^A0N,25,25^FH\^CI28^FD{SN5}^FS^CI27
|
||||
^FT31,236^BXN,6,200,0,0,1,_,1
|
||||
^FH\^FD{PART}{MO}{YY}{SN5}^FS
|
||||
^FT29,287^A0N,25,25^FH\^CI28^FD{PART}{MO}{YY}{SN5}^FS^CI27
|
||||
^PQ1,0,1,Y
|
||||
^XZ
|
||||
29
config/label_templates/st-ten-11/Lamborghini_label.prn
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
CT~~CD,~CC^~CT~
|
||||
^XA
|
||||
~TA000
|
||||
~JSN
|
||||
^LT0
|
||||
^MNW
|
||||
^MTT
|
||||
^PON
|
||||
^PMN
|
||||
^LH0,0
|
||||
^JMA
|
||||
^PR2,2
|
||||
~SD20
|
||||
^JUS
|
||||
^LRN
|
||||
^CI27
|
||||
^PA0,1,1,0
|
||||
^XZ
|
||||
^XA
|
||||
^MMT
|
||||
^PW192
|
||||
^LL240
|
||||
^LS0
|
||||
^FT19,173^BXN,7,200,0,0,1,_,1
|
||||
^FH\^FD#{RECIPE}###{DD}{MO}{YY}*\0D\0A^FS
|
||||
^FT20,205^A0N,25,25^FH\^CI28^FD#{RECIPE}###^FS^CI27
|
||||
^FT19,230^A0N,22,23^FH\^CI28^FD{DD}/{MO}/{YY}*^FS^CI27
|
||||
^PQ1,0,1,Y
|
||||
^XZ
|
||||
34
config/label_templates/st-ten-11/Lamborghini_lable.prn
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
CT~~CD,~CC^~CT~
|
||||
^XA
|
||||
~TA000
|
||||
~JSN
|
||||
^LT0
|
||||
^MNW
|
||||
^MTT
|
||||
^PON
|
||||
^PMN
|
||||
^LH0,0
|
||||
^JMA
|
||||
^PR2,2
|
||||
~SD20
|
||||
^JUS
|
||||
^LRN
|
||||
^CI27
|
||||
^PA0,1,1,0
|
||||
^XZ
|
||||
^XA
|
||||
^MMT
|
||||
^PW192
|
||||
^LL240
|
||||
^LS0
|
||||
^FT19,173^BXN,7,200,0,0,1,_,1
|
||||
^FH\^FD#{RECIPE}###{DD}{MO}{YY}*\0D\0A^FS
|
||||
^FT9,204^A0N,24,23^FH\^CI28^FD#^FS^CI27
|
||||
^FT20,205^A0N,25,25^FH\^CI28^FD{RECIPE}^FS^CI27
|
||||
^FT118,204^A0N,24,23^FH\^CI28^FD#^FS^CI27
|
||||
^FT129,204^A0N,24,23^FH\^CI28^FD#^FS^CI27
|
||||
^FT141,204^A0N,24,23^FH\^CI28^FD#^FS^CI27
|
||||
^FT2,227^A0N,22,23^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27
|
||||
^FT170,232^A0N,28,28^FH\^CI28^FD*^FS^CI27
|
||||
^PQ1,0,1,Y
|
||||
^XZ
|
||||
29
config/label_templates/st-ten-11/Mclaren_label.prn
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
CT~~CD,~CC^~CT~
|
||||
^XA
|
||||
~TA000
|
||||
~JSN
|
||||
^LT0
|
||||
^MNW
|
||||
^MTT
|
||||
^PON
|
||||
^PMN
|
||||
^LH0,0
|
||||
^JMA
|
||||
^PR2,2
|
||||
~SD25
|
||||
^JUS
|
||||
^LRN
|
||||
^CI27
|
||||
^PA0,1,1,0
|
||||
^XZ
|
||||
^XA
|
||||
^MMT
|
||||
^PW320
|
||||
^LL1039
|
||||
^LS0
|
||||
^FO73,37^GFA,329,672,24,:Z64:eJx10D2OhDAMBWBGKVLmCBwlR0s6rkXHNWC2SItEAVJM3jzzs6PVBhDNZ+I8u2lqj52r3ECq7B48oNTYoO7uwf2DA9V7zYO7aFCb63KzNTz1+nMSPXchauaft8IKfvih8b0vhhgi04oTg0U9hjHgcD0jXjyy+oQFGFjnWC9IEJy+YAUS0G86heD2zIm0NI6Mg50v+zN4hpOWPmkc/rJDcwbk4sSvEqZ4LG89XPsUrjiJfzNOSJebywfxo8YckHbEr3eHG3QYdo2Sv32OOBZdxZ2wIr9ub283W6yE0xcu7fbZcp8tdcO51DS3HOsDi7sZvg==:29D1
|
||||
^FT91,110^A0N,31,30^FH\^CI28^FD{PART}^FS^CI27
|
||||
^FT97,152^A0N,32,33^FH\^CI28^FD{YY} T {JJJ}^FS^CI27
|
||||
^FT12,222^A0N,32,25^FH\^CI28^FDLEAK RESULT {RESULT}^FS^CI27
|
||||
^PQ1,0,1,Y
|
||||
^XZ
|
||||
30
config/label_templates/st-ten-11/ferrari_30x16_203.prn
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
CT~~CD,~CC^~CT~
|
||||
^XA
|
||||
~TA000
|
||||
~JSN
|
||||
^LT0
|
||||
^MNW
|
||||
^MTT
|
||||
^PON
|
||||
^PMN
|
||||
^LH0,0
|
||||
^JMA
|
||||
^PR2,2
|
||||
~SD15
|
||||
^JUS
|
||||
^LRN
|
||||
^CI27
|
||||
^PA0,1,1,0
|
||||
^XZ
|
||||
^XA
|
||||
^MMT
|
||||
^PW256
|
||||
^LL144
|
||||
^LS0
|
||||
^FT21,129^BQN,2,4
|
||||
^FH\^FDLA,{PART}{SN5}{MO}{YY}^FS
|
||||
^FT234,104^A0I,23,23^FH\^CI28^FD{PART}^FS^CI27
|
||||
^FT234,50^A0I,23,23^FH\^CI28^FDN:{SN5}^FS^CI27
|
||||
^FT234,23^A0I,23,23^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27
|
||||
^PQ1,0,1,Y
|
||||
^XZ
|
||||
|
|
@ -50,6 +50,18 @@ minimum_disk_free_space_gb: 20
|
|||
resize_resolution: 612x512
|
||||
|
||||
[archive_synchronizer]
|
||||
portal_address: https://r5portal.it/
|
||||
archive_root:api/st-ten-save/
|
||||
status_root:api/device-info-update/
|
||||
download_root:media/uploads/
|
||||
|
||||
images_path: data/images
|
||||
poll_time: 60
|
||||
hold_time: 30
|
||||
service_account_json: config/machine_settings/gcloud_default.json
|
||||
bucket_id: st_ten_img
|
||||
|
||||
[archive_synchronizer_extra]
|
||||
archive_endpoint: https://r5portal.it/api/st-ten-save/
|
||||
images_path: data/images
|
||||
poll_time: 60
|
||||
|
|
|
|||
|
|
@ -12,4 +12,6 @@ st-ten-10: st-ten-10
|
|||
st-ten-11: st-ten-11
|
||||
st-ten-12: st-ten-12
|
||||
st-ten-13: st-ten-13
|
||||
st-ten-14: st-ten-14
|
||||
test-linux: test-linux
|
||||
|
||||
|
|
|
|||
|
|
@ -1,66 +1,107 @@
|
|||
[machine]
|
||||
description = ST-TEN-2 - COLLAUDO TUBI RISCALDATI VOLPIANO
|
||||
instruction_folder = st-ten-2
|
||||
image_for_warning= st-ten-2
|
||||
description = ST-TEN-1
|
||||
instruction_folder = st-ten-1
|
||||
image_for_warning= st-ten-1
|
||||
|
||||
|
||||
[hardware_config]
|
||||
archive_synchronizer: present
|
||||
galaxy_camera: absent
|
||||
uvc_camera: absent
|
||||
label_printer: present
|
||||
neo_pixels: absent
|
||||
remote_api: absent
|
||||
tecna_t3: present
|
||||
|
||||
[digital_io]
|
||||
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
|
||||
id_flush_blow: USB-5860,BID#0
|
||||
blow_on: 0 # INPUT VALVE TO SERVICE AIR
|
||||
flush_on: 1 # OUTPUT VALVE TO DIRT COLLECTOR
|
||||
blow_led:2 # CLEAN INDICATOR
|
||||
test_on_led:3 # LEAK TEST ACTIVE INDICATOR
|
||||
flush_led:4 # FLUSH INDICATOR
|
||||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: absent
|
||||
fixture_id: absent
|
||||
digital_io: present
|
||||
external_flush_blow: absent
|
||||
|
||||
[tecna_t3]
|
||||
port: /dev/ttyUSB0
|
||||
model: t3l
|
||||
|
||||
[fixture_rfid]
|
||||
port: COM5
|
||||
|
||||
[digital_io]
|
||||
# OUTPUT MAP FOR FIXTURE CONNECTOR
|
||||
id_fixture: USB-5862,BID#0
|
||||
discard_idx:12 # BIT NUMBER OF THE I/0 MODULE USED FOR DISCARD SENSING
|
||||
|
||||
[recipe]
|
||||
recipe_name_field: cod finito cliente
|
||||
part_number_field: cod finito r5
|
||||
barcode_enable_field: verifica_codice_a_barre_abilitata
|
||||
barcode_serial_field: codice_a_barre
|
||||
label_template_field: etichetta
|
||||
description_field: cod semilavorato costampato
|
||||
recipe_name_field: codice_ricetta
|
||||
part_number_field: codice_prodotto
|
||||
label_template_field: modello_etichetta
|
||||
description_field: descrizione
|
||||
|
||||
[label_printer]
|
||||
platform: windows
|
||||
printer: zd420
|
||||
|
||||
[recipes_defaults]
|
||||
prova_tenuta_abilitata: x
|
||||
tester_discharge_enable: yes
|
||||
codice_ricetta: specificare ricetta
|
||||
cliente: IVECO
|
||||
part_number: specificare part number
|
||||
canale_di_prova: 0
|
||||
warning_img:
|
||||
|
||||
dimensione_lotto_abilitata:
|
||||
n_componenti:1
|
||||
istruzione_abilitata: x
|
||||
numero nastri (n):0
|
||||
numero sensori anello (sa):0
|
||||
numero sensori presenza (sp):0
|
||||
|
||||
prova_tenuta_abilitata: x
|
||||
tempo_pre_riempimento: 0
|
||||
pressione_pre_riempimento: 1000
|
||||
tempo_riempimento: 10
|
||||
pressione_pre_riempimento: 5000
|
||||
tempo_riempimento: 5
|
||||
tempo_assestamento: 10
|
||||
percentuale_minima_pressione_assestamento: 5
|
||||
percentuale_massima_pressione_assestamento: 5
|
||||
tempo_di_test: 10
|
||||
pressione_di_test_delta_minimo: 30
|
||||
pressione_di_test: 15000
|
||||
pressione_di_test: 5000
|
||||
pressione_di_test_delta_massimo: 30
|
||||
tempo_svuotamento: 1
|
||||
pressione_svuotamento: 100
|
||||
canale_di_prova: 0
|
||||
tester_discharge_enable: yes
|
||||
|
||||
prova_tenuta_abilitata_2:
|
||||
tempo_pre_riempimento_2: 0
|
||||
pressione_pre_riempimento_2: 1000
|
||||
tempo_riempimento_2: 5
|
||||
tempo_assestamento_2: 5
|
||||
percentuale_minima_pressione_assestamento_2: 5
|
||||
percentuale_massima_pressione_assestamento_2: 5
|
||||
tempo_di_test_2: 5
|
||||
pressione_di_test_delta_minimo_2: 200
|
||||
pressione_di_test_2: 1000
|
||||
pressione_di_test_delta_massimo_2: 200
|
||||
tempo_svuotamento_2: 1
|
||||
pressione_svuotamento_2: 100
|
||||
|
||||
stampa_etichetta_abilitata: x
|
||||
modello_etichetta: ETA30x16_203dpi.prn
|
||||
descrizione: inserire descrizione ricetta
|
||||
|
||||
[autotest_leak]
|
||||
enabled: true
|
||||
pre_filling_time: 0
|
||||
pre_filling_pressure: 1000
|
||||
filling_time: 5
|
||||
filling_time: 10
|
||||
settling_time: 10
|
||||
settling_pressure_min_percent: 5
|
||||
settling_pressure_max_percent: 5
|
||||
test_pressure: 7000
|
||||
test_time: 10
|
||||
test_pressure_qneg: 5
|
||||
test_pressure: 9000
|
||||
test_pressure_qpos: 5
|
||||
test_pressure_qpos: 10 #Q+ Upper test leak limit
|
||||
test_pressure_qneg: 30 #Q- Lower test leak limit
|
||||
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
|
||||
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
|
||||
flush_time: 1
|
||||
flush_pressure: 100
|
||||
relay_config: 1
|
||||
|
|
@ -14,7 +14,7 @@ tecna_t3: present
|
|||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: absent
|
||||
fixture_id: present
|
||||
#fixture_id: present
|
||||
digital_io: present
|
||||
external_flush_blow: absent
|
||||
|
||||
|
|
|
|||
|
|
@ -83,18 +83,3 @@ tester_discharge_enable: yes
|
|||
|
||||
[autotest_leak]
|
||||
enabled: false
|
||||
pre_filling_time: 0
|
||||
pre_filling_pressure: 0
|
||||
filling_time: 10
|
||||
settling_time: 10
|
||||
settling_pressure_min_percent: 5
|
||||
settling_pressure_max_percent: 5
|
||||
test_pressure: 5000
|
||||
test_time: 10
|
||||
test_pressure_qpos: 10 #Q+ Upper test leak limit
|
||||
test_pressure_qneg: 30 #Q- Lower test leak limit
|
||||
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
|
||||
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
|
||||
flush_time: 1
|
||||
flush_pressure: 100
|
||||
relay_config: 1
|
||||
|
|
|
|||
93
config/machine_settings/st-ten-14.ini
Normal file
|
|
@ -0,0 +1,93 @@
|
|||
[machine]
|
||||
description = ST-TEN-14
|
||||
instruction_folder = st-ten-14
|
||||
image_for_warning= st-ten-14
|
||||
|
||||
[hardware_config]
|
||||
archive_synchronizer: present
|
||||
uvc_camera: absent
|
||||
label_printer: present
|
||||
neo_pixels: absent
|
||||
remote_api: absent
|
||||
tecna_t3: present
|
||||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: absent
|
||||
digital_io: absent
|
||||
barcode_recipe_selection: absent
|
||||
fixture_id: absent
|
||||
discard_box: absent
|
||||
enforce_piece_removal: no
|
||||
|
||||
[tecna_t3]
|
||||
port: /dev/ttyUSB0
|
||||
model: t3l
|
||||
|
||||
[label_printer]
|
||||
platform: linux
|
||||
printer: ZTC-ZD421-203dpi-ZPL
|
||||
|
||||
[digital_io]
|
||||
# OUTPUT MAP FOR FIXTURE CONNECTOR
|
||||
id: USB-5860,BID#0
|
||||
|
||||
[fixture_rfid]
|
||||
port: dev/ttyUSB1
|
||||
|
||||
[recipe]
|
||||
recipe_name_field: codice_ricetta
|
||||
part_number_field: codice_prodotto
|
||||
label_template_field: modello_etichetta
|
||||
description_field: descrizione
|
||||
|
||||
[recipes_defaults]
|
||||
tester_discharge_enable: yes
|
||||
dimensione_lotto_abilitata: x
|
||||
tempo_pre_riempimento: 0
|
||||
pressione_pre_riempimento: 1000
|
||||
tempo_riempimento: 15
|
||||
tempo_assestamento: 15
|
||||
tempo_di_test: 10
|
||||
n_componenti:1
|
||||
percentuale_minima_pressione_assestamento: 5
|
||||
percentuale_massima_pressione_assestamento: 5
|
||||
pressione_di_test_delta_minimo: 30
|
||||
pressione_di_test: 7000
|
||||
pressione_di_test_delta_massimo: 30
|
||||
tempo_svuotamento: 0
|
||||
pressione_svuotamento: 100
|
||||
canale_di_prova: 1
|
||||
prova_tenuta_abilitata_2:
|
||||
tempo_pre_riempimento_2: 0
|
||||
pressione_pre_riempimento_2: 1000
|
||||
tempo_riempimento_2: 20
|
||||
tempo_assestamento_2: 20
|
||||
tempo_di_test_2: 10
|
||||
percentuale_minima_pressione_assestamento_2: 5
|
||||
percentuale_massima_pressione_assestamento_2: 5
|
||||
pressione_di_test_delta_minimo_2: 30
|
||||
pressione_di_test_2: 15000
|
||||
pressione_di_test_delta_massimo_2: 30
|
||||
tempo_svuotamento_2: 0
|
||||
pressione_svuotamento_2: 100
|
||||
canale_di_prova_2: 2
|
||||
modello_etichetta: EtichettaR5_Montaggio_1prova.prn
|
||||
pid_pressure_correction: 100
|
||||
|
||||
[autotest_leak]
|
||||
enabled: true
|
||||
pre_filling_time: 0
|
||||
pre_filling_pressure: 1000
|
||||
filling_time: 10
|
||||
settling_time: 10
|
||||
settling_pressure_min_percent: 5
|
||||
settling_pressure_max_percent: 5
|
||||
test_pressure: 5000
|
||||
test_time: 10
|
||||
test_pressure_qpos: 3 #Q+ Upper test leak limit
|
||||
test_pressure_qneg: 10 #Q- Lower test leak limit
|
||||
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
|
||||
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
|
||||
flush_time: 1
|
||||
flush_pressure: 100
|
||||
relay_config: 1
|
||||
|
|
@ -13,22 +13,31 @@ tecna_t3: present
|
|||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: absent
|
||||
#digital_io: present
|
||||
digital_io_flush_blow: present
|
||||
second_leak_test: present
|
||||
external_flush_blow: present # EXTERNAL BOX CONTROLLING MULTI-CHANNEL TEST (IF PRESENT), BLOW-CLEANING AND EXTERNAL FLUSH
|
||||
dual_channel: present
|
||||
#fixture_id: present
|
||||
|
||||
[tecna_t3]
|
||||
port: COM4
|
||||
model: t3l
|
||||
|
||||
[neo_pixels]
|
||||
port: COM6
|
||||
|
||||
[fixture_rfid]
|
||||
port: COM5
|
||||
|
||||
[label_printer]
|
||||
platform: windows
|
||||
printer: zd421
|
||||
|
||||
[digital_io]
|
||||
# OUTPUT MAP FOR FIXTURE CONNECTOR
|
||||
id: USB-5860,BID#0
|
||||
|
||||
[digital_io_flush_blow]
|
||||
id: USB-5860,BID#0
|
||||
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
|
||||
|
|
@ -79,6 +88,7 @@ tempo_svuotamento_2: 1
|
|||
pressione_svuotamento_2: 100
|
||||
canale_di_prova_2: 1
|
||||
modello_etichetta: EtichettaR5_Montaggio_1prova.prn
|
||||
pid_pressure_correction: 0
|
||||
|
||||
[autotest_leak]
|
||||
enabled: true
|
||||
|
|
|
|||
113
config/machine_settings/test-linux.ini
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
[machine]
|
||||
description = TEST-LINUX
|
||||
#instruction_folder = st-ten-1
|
||||
image_for_warning= st-ten-1
|
||||
|
||||
|
||||
[hardware_config]
|
||||
archive_synchronizer: present
|
||||
galaxy_camera: absent
|
||||
uvc_camera: absent
|
||||
label_printer: present
|
||||
neo_pixels: absent
|
||||
remote_api: absent
|
||||
tecna_t3: present
|
||||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: absent
|
||||
fixture_id: absent
|
||||
digital_io: present
|
||||
external_flush_blow: absent
|
||||
|
||||
[archive_synchronizer]
|
||||
archive_endpoint: https://dev.r5portal.it/api/st-ten-save/
|
||||
status_endpoint: https://dev.r5portal.it/api/device-info-update/
|
||||
poll_time: 10
|
||||
hold_time: 10
|
||||
|
||||
[tecna_t3]
|
||||
port: /dev/ttyUSB0
|
||||
model: t3p
|
||||
|
||||
[fixture_rfid]
|
||||
port: COM5
|
||||
|
||||
[digital_io]
|
||||
# OUTPUT MAP FOR VALVE CONTROL UNITS
|
||||
id: USB-5862,BID#0
|
||||
discard_idx:12 # BIT NUMBER OF THE I/0 MODULE USED FOR DISCARD SENSING
|
||||
|
||||
[recipe]
|
||||
recipe_name_field: codice_ricetta
|
||||
part_number_field: codice_prodotto
|
||||
label_template_field: modello_etichetta
|
||||
description_field: descrizione
|
||||
|
||||
[label_printer]
|
||||
platform: linux
|
||||
printer: Zebra_Technologies_ZTC_ZD421-203dpi_ZPL
|
||||
|
||||
[recipes_defaults]
|
||||
tester_discharge_enable: yes
|
||||
codice_ricetta: specificare ricetta
|
||||
cliente: IVECO
|
||||
part_number: specificare part number
|
||||
canale_di_prova: 0
|
||||
warning_img:
|
||||
pid_pressure_correction: 105
|
||||
dimensione_lotto_abilitata:
|
||||
n_componenti:1
|
||||
istruzione_abilitata: x
|
||||
numero nastri (n):0
|
||||
numero sensori anello (sa):0
|
||||
numero sensori presenza (sp):0
|
||||
|
||||
prova_tenuta_abilitata: x
|
||||
tempo_pre_riempimento: 0
|
||||
pressione_pre_riempimento: 5000
|
||||
tempo_riempimento: 5
|
||||
tempo_assestamento: 10
|
||||
percentuale_minima_pressione_assestamento: 5
|
||||
percentuale_massima_pressione_assestamento: 5
|
||||
tempo_di_test: 10
|
||||
pressione_di_test_delta_minimo: 30
|
||||
pressione_di_test: 5000
|
||||
pressione_di_test_delta_massimo: 30
|
||||
tempo_svuotamento: 1
|
||||
pressione_svuotamento: 100
|
||||
|
||||
prova_tenuta_abilitata_2:
|
||||
tempo_pre_riempimento_2: 0
|
||||
pressione_pre_riempimento_2: 1000
|
||||
tempo_riempimento_2: 5
|
||||
tempo_assestamento_2: 5
|
||||
percentuale_minima_pressione_assestamento_2: 5
|
||||
percentuale_massima_pressione_assestamento_2: 5
|
||||
tempo_di_test_2: 5
|
||||
pressione_di_test_delta_minimo_2: 200
|
||||
pressione_di_test_2: 1000
|
||||
pressione_di_test_delta_massimo_2: 200
|
||||
tempo_svuotamento_2: 1
|
||||
pressione_svuotamento_2: 100
|
||||
|
||||
stampa_etichetta_abilitata: x
|
||||
modello_etichetta: ETA30x16_203dpi.prn
|
||||
descrizione: inserire descrizione ricetta
|
||||
|
||||
[autotest_leak]
|
||||
enabled: true
|
||||
pre_filling_time: 0
|
||||
pre_filling_pressure: 1000
|
||||
filling_time: 10
|
||||
settling_time: 10
|
||||
settling_pressure_min_percent: 5
|
||||
settling_pressure_max_percent: 5
|
||||
test_pressure: 7000
|
||||
test_time: 10
|
||||
test_pressure_qpos: 10 #Q+ Upper test leak limit
|
||||
test_pressure_qneg: 30 #Q- Lower test leak limit
|
||||
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
|
||||
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
|
||||
flush_time: 1
|
||||
flush_pressure: 100
|
||||
relay_config: 1
|
||||
107
config/machine_settings/test-windows.ini
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
[machine]
|
||||
description = TEST-WINDOWS
|
||||
instruction_folder = st-ten-1
|
||||
image_for_warning= st-ten-1
|
||||
|
||||
|
||||
[hardware_config]
|
||||
archive_synchronizer: absent
|
||||
galaxy_camera: absent
|
||||
uvc_camera: absent
|
||||
label_printer: present
|
||||
neo_pixels: absent
|
||||
remote_api: absent
|
||||
tecna_t3: present
|
||||
vision_saver: absent
|
||||
vision: absent
|
||||
screwdriver: absent
|
||||
fixture_id: absent
|
||||
digital_io: absent
|
||||
external_flush_blow: absent
|
||||
|
||||
[tecna_t3]
|
||||
port: COM4
|
||||
model: t3p
|
||||
|
||||
[fixture_rfid]
|
||||
port: COM5
|
||||
|
||||
[digital_io]
|
||||
# OUTPUT MAP FOR FIXTURE CONNECTOR
|
||||
id_fixture: USB-5862,BID#0
|
||||
discard_idx:12 # BIT NUMBER OF THE I/0 MODULE USED FOR DISCARD SENSING
|
||||
|
||||
[recipe]
|
||||
recipe_name_field: codice_ricetta
|
||||
part_number_field: codice_prodotto
|
||||
label_template_field: modello_etichetta
|
||||
description_field: descrizione
|
||||
|
||||
[label_printer]
|
||||
platform: windows
|
||||
printer: zd421
|
||||
|
||||
[recipes_defaults]
|
||||
tester_discharge_enable: yes
|
||||
codice_ricetta: specificare ricetta
|
||||
cliente: IVECO
|
||||
part_number: specificare part number
|
||||
canale_di_prova: 0
|
||||
warning_img:
|
||||
|
||||
dimensione_lotto_abilitata:
|
||||
n_componenti:1
|
||||
istruzione_abilitata: x
|
||||
numero nastri (n):0
|
||||
numero sensori anello (sa):0
|
||||
numero sensori presenza (sp):0
|
||||
|
||||
prova_tenuta_abilitata: x
|
||||
tempo_pre_riempimento: 0
|
||||
pressione_pre_riempimento: 5000
|
||||
tempo_riempimento: 5
|
||||
tempo_assestamento: 10
|
||||
percentuale_minima_pressione_assestamento: 5
|
||||
percentuale_massima_pressione_assestamento: 5
|
||||
tempo_di_test: 10
|
||||
pressione_di_test_delta_minimo: 30
|
||||
pressione_di_test: 5000
|
||||
pressione_di_test_delta_massimo: 30
|
||||
tempo_svuotamento: 1
|
||||
pressione_svuotamento: 100
|
||||
|
||||
prova_tenuta_abilitata_2:
|
||||
tempo_pre_riempimento_2: 0
|
||||
pressione_pre_riempimento_2: 1000
|
||||
tempo_riempimento_2: 5
|
||||
tempo_assestamento_2: 5
|
||||
percentuale_minima_pressione_assestamento_2: 5
|
||||
percentuale_massima_pressione_assestamento_2: 5
|
||||
tempo_di_test_2: 5
|
||||
pressione_di_test_delta_minimo_2: 200
|
||||
pressione_di_test_2: 1000
|
||||
pressione_di_test_delta_massimo_2: 200
|
||||
tempo_svuotamento_2: 1
|
||||
pressione_svuotamento_2: 100
|
||||
|
||||
stampa_etichetta_abilitata: x
|
||||
modello_etichetta: ETA30x16_203dpi.prn
|
||||
descrizione: inserire descrizione ricetta
|
||||
|
||||
[autotest_leak]
|
||||
enabled: true
|
||||
pre_filling_time: 0
|
||||
pre_filling_pressure: 1000
|
||||
filling_time: 10
|
||||
settling_time: 10
|
||||
settling_pressure_min_percent: 5
|
||||
settling_pressure_max_percent: 5
|
||||
test_pressure: 7000
|
||||
test_time: 10
|
||||
test_pressure_qpos: 10 #Q+ Upper test leak limit
|
||||
test_pressure_qneg: 30 #Q- Lower test leak limit
|
||||
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
|
||||
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
|
||||
flush_time: 1
|
||||
flush_pressure: 100
|
||||
relay_config: 1
|
||||
15
designer.sh
|
|
@ -1 +1,14 @@
|
|||
pyqt5-tools designer
|
||||
#!/bin/bash
|
||||
|
||||
# Path to your virtual environment
|
||||
VENV_PATH=/home/edo-neo/PycharmProjects/st-ten-1/venv
|
||||
|
||||
# Set environment variables
|
||||
export LD_LIBRARY_PATH=$VENV_PATH/lib/python3.11/site-packages/PyQt5/Qt5/lib:/usr/lib/x86_64-linux-gnu
|
||||
export PYQTDESIGNERPATH=$VENV_PATH/lib/python3.11/site-packages
|
||||
export PYTHONPATH=$VENV_PATH/bin:$PYTHONPATH
|
||||
export PATH=$VENV_PATH/bin:$PATH
|
||||
export QT_PLUGIN_PATH=$VENV_PATH/lib/python3.11/site-packages/PyQt5/Qt5/plugins
|
||||
|
||||
# Execute Qt Designer
|
||||
$VENV_PATH/lib/python3.11/site-packages/qt5_applications/Qt/bin/designer
|
||||
10
init.sh
|
|
@ -2,6 +2,7 @@
|
|||
set -x
|
||||
here="$(realpath "$(dirname "$0")")"
|
||||
cd "$here"
|
||||
mkdir -p "$here/tmp"
|
||||
|
||||
echo "---------- initialize venv ----------"
|
||||
sudo apt-get install python3 python3-venv python-is-python3 python3-pip
|
||||
|
|
@ -30,8 +31,6 @@ source "./venv/bin/activate" || source "./venv/Scripts/activate" || :
|
|||
# # echo "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
|
||||
# # sudo apt-get update
|
||||
# sudo apt install -y build-essential docker # bazel libusb-1.0-0-dev libabsl-dev libflatbuffers-dev
|
||||
# mkdir -p "$here/tmp"
|
||||
# cd "$here/tmp"
|
||||
# # git clone https://github.com/tensorflow/tensorflow || :
|
||||
# # cd tensorflow
|
||||
# # git pull
|
||||
|
|
@ -61,4 +60,11 @@ source "./venv/bin/activate" || source "./venv/Scripts/activate" || :
|
|||
#python3 setup.py install
|
||||
#cd "$here"
|
||||
|
||||
echo "---------- INSTALL ADVANTECH DAQNAVI DRIVER ----------"
|
||||
cd "$here/tmp"
|
||||
wget --continue "https://advdownload.advantech.com/productfile/Downloadfile5/1-2MULY66/DAQ_Linux_4.0.11.0_64bit.run"
|
||||
chmod +x DAQ_Linux_4.0.11.0_64bit.run
|
||||
sudo ./DAQ_Linux_4.0.11.0_64bit.run
|
||||
|
||||
echo "---------- INIT DONE ----------"
|
||||
cd "$here"
|
||||
|
|
|
|||
26
make_desktop_file.sh
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Define the temporary file name for the .desktop file
|
||||
SCRIPT="/tmp/shortcut-$(date +%s).desktop"
|
||||
|
||||
# Create the .desktop file with the required content
|
||||
echo "[Desktop Entry]" >> $SCRIPT
|
||||
echo "Version=1.0" >> $SCRIPT
|
||||
echo "Name=AVVIO PROGRAMMA COLLAUDO" >> $SCRIPT
|
||||
echo "Comment=Shortcut to AVVIO PROGRAMMA COLLAUDO" >> $SCRIPT
|
||||
echo "Exec=$HOME/PycharmProjects/st-ten-1/runme.sh" >> $SCRIPT
|
||||
echo "Icon=$HOME/PycharmProjects/st-ten-1/src/ui/imgs/neo.ico" >> $SCRIPT
|
||||
echo "Terminal=false" >> $SCRIPT
|
||||
echo "Type=Application" >> $SCRIPT
|
||||
echo "Categories=Utility;" >> $SCRIPT
|
||||
|
||||
# Prompt for sudo password and copy the .desktop file to the user's Desktop
|
||||
sudo cp $SCRIPT "$HOME/Desktop/AVVIO PROGRAMMA COLLAUDO.desktop"
|
||||
|
||||
# Make the .desktop file executable
|
||||
sudo chmod +x "$HOME/Desktop/AVVIO PROGRAMMA COLLAUDO.desktop"
|
||||
|
||||
# Remove the temporary .desktop file
|
||||
rm $SCRIPT
|
||||
|
||||
echo "Shortcut created on Desktop"
|
||||
26
make_desktop_file_noautotest.sh
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Define the temporary file name for the .desktop file
|
||||
SCRIPT="/tmp/shortcut-$(date +%s).desktop"
|
||||
|
||||
# Create the .desktop file with the required content
|
||||
echo "[Desktop Entry]" >> $SCRIPT
|
||||
echo "Version=1.0" >> $SCRIPT
|
||||
echo "Name=AVVIO PROGRAMMA COLLAUDO" >> $SCRIPT
|
||||
echo "Comment=Shortcut to AVVIO PROGRAMMA COLLAUDO" >> $SCRIPT
|
||||
echo "Exec=$HOME/PycharmProjects/st-ten-1/runmenoautotest.sh" >> $SCRIPT
|
||||
echo "Icon=$HOME/PycharmProjects/st-ten-1/src/ui/imgs/neo_red.ico" >> $SCRIPT
|
||||
echo "Terminal=false" >> $SCRIPT
|
||||
echo "Type=Application" >> $SCRIPT
|
||||
echo "Categories=Utility;" >> $SCRIPT
|
||||
|
||||
# Prompt for sudo password and copy the .desktop file to the user's Desktop
|
||||
sudo cp $SCRIPT "$HOME/Desktop/AVVIO PROGRAMMA COLLAUDO NO AUTOTEST.desktop"
|
||||
|
||||
# Make the .desktop file executable
|
||||
sudo chmod +x "$HOME/Desktop/AVVIO PROGRAMMA COLLAUDO NO AUTOTEST.desktop"
|
||||
|
||||
# Remove the temporary .desktop file
|
||||
rm $SCRIPT
|
||||
|
||||
echo "Shortcut created on Desktop"
|
||||
4
runmenoautotest.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/bash -e
|
||||
cd "$(dirname "$0")"
|
||||
source "./venv/bin/activate" || source "./venv/Scripts/activate" || :
|
||||
python -O "./src/main.py" --no-edgetpu --no-tflite --no-autotest $*
|
||||
|
|
@ -4,12 +4,15 @@ import re
|
|||
import sys
|
||||
import threading
|
||||
import time
|
||||
from pathlib import Path
|
||||
|
||||
import requests
|
||||
import traceback
|
||||
|
||||
import requests
|
||||
from google.api_core.exceptions import Forbidden
|
||||
from google.cloud import storage
|
||||
from requests import JSONDecodeError
|
||||
|
||||
from lib.db import Archive, db
|
||||
from PyQt5.QtCore import QThread
|
||||
from requests.adapters import HTTPAdapter, Retry
|
||||
|
|
@ -18,21 +21,26 @@ from urllib3.exceptions import InsecureRequestWarning
|
|||
from .component import Component
|
||||
# Suppress insecure request warning
|
||||
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)
|
||||
|
||||
|
||||
class ArchiveSynchronizer(Component):
|
||||
machine_status = "offline"
|
||||
def __init__(self, config=None, name=None, period=1, lazy=True, paused=False, threaded=True):
|
||||
super().__init__(config=config, name=name, period=period, lazy=lazy, paused=paused, threaded=threaded)
|
||||
self.simulate = "--sim-archiver" in sys.argv
|
||||
self.status= ArchiveSynchronizer.machine_status
|
||||
self.machine_status = "logged-in"
|
||||
self.machine_id = None
|
||||
|
||||
def config_changed(self):
|
||||
self.machine_id = self.config.machine_id
|
||||
if "--dev-portal" in sys.argv:
|
||||
self.archive_endpoint =f"https://dev.r5portal.it/api/st-ten-save/"
|
||||
self.archive_endpoint = f"https://dev.r5portal.it/api/st-ten-save/"
|
||||
self.status_endpoint = f"https://dev.r5portal.it/api/device-info-update/"
|
||||
self.download_endpoint = f"https://dev.r5portal.it/media/uploads/"
|
||||
else:
|
||||
self.archive_endpoint = self.config[self.name]["archive_endpoint"]
|
||||
#self.status_endpoint = f"https://dev.r5portal.it/api/device-info-update?machine-id={self.machine_id_endpoint}&status={self.status}"
|
||||
# self.images_path = self.config[self.name]["images_path"]
|
||||
self.download_endpoint = self.config[self.name]["portal_address"] + self.config[self.name]["download_root"]
|
||||
self.archive_endpoint = self.config[self.name]["portal_address"] + self.config[self.name]["archive_root"]
|
||||
self.status_endpoint = self.config[self.name]["portal_address"] + self.config[self.name]["status_root"]
|
||||
|
||||
self._do_set_period({"period": float(self.config[self.name]["poll_time"])})
|
||||
self.hold_time = round(float(self.config[self.name]["hold_time"]) * 1000)
|
||||
self.gcs_client = storage.Client.from_service_account_json(self.config[self.name]["service_account_json"])
|
||||
|
|
@ -55,46 +63,69 @@ class ArchiveSynchronizer(Component):
|
|||
if self.hold_time > 0:
|
||||
QThread.msleep(self.hold_time)
|
||||
self.gcs_bucket = None
|
||||
if "--dev-portal" in sys.argv:
|
||||
self.update_machine_status()
|
||||
|
||||
# UPDATE MACHINE STATUS
|
||||
self.machine_status="working"
|
||||
|
||||
super()._get()
|
||||
self.update_machine_status()
|
||||
|
||||
def update_machine_status(self):
|
||||
self.status = ArchiveSynchronizer.machine_status
|
||||
#print(f"machine_status_global: {ArchiveSynchronizer.machine_status}") # TESTING
|
||||
self.status_endpoint = f"https://dev.r5portal.it/api/device-info-update?machine-id={self.machine_id.upper()}&status={self.status}"
|
||||
|
||||
if self.status not in ["working", "logged-in", "logged-out"]:
|
||||
status_dict = {"last_status": "offline"}
|
||||
else:
|
||||
status_dict = {"last_status": self.status}
|
||||
status_call = f"{self.status_endpoint}?machine-id={self.machine_id.upper()}&status={self.machine_status}"
|
||||
|
||||
response = None
|
||||
try:
|
||||
if not self.simulate:
|
||||
with requests.Session() as s:
|
||||
s.mount("", HTTPAdapter(max_retries=Retry(total=0))) # this disables retries
|
||||
response = requests.post(self.status_endpoint, json=status_dict, timeout=5, verify=False)
|
||||
response = s.post(status_call, timeout=5, verify=False)
|
||||
if response.status_code != 200:
|
||||
raise AssertionError("bad status response")
|
||||
else:
|
||||
self.parse_response_and_execute(response)
|
||||
except AssertionError as e:
|
||||
self.log.warning(
|
||||
f"Status: {self.status}: failed to update machine status: {str(e)}: {response.status_code if response else 'no response'}: {response.content if response else 'no response'}"
|
||||
f"Status: {self.machine_status}: failed to update machine status: {str(e)}: {response.status_code if response else 'no response'}: {response.content if response else 'no response'}"
|
||||
)
|
||||
return False
|
||||
except (requests.ConnectionError, requests.Timeout) as e:
|
||||
self.log.warning(
|
||||
f"Status: {self.status}: failed to update machine status, archive_endpoint might be unreachable: {str(e)}"
|
||||
f"Status: {self.machine_status}: failed to update machine status, archive_endpoint might be unreachable: {str(e)}"
|
||||
)
|
||||
return False
|
||||
except Exception:
|
||||
self.log.error(
|
||||
f"Status: {self.status}: failed to update machine status:\n{traceback.format_exc()}:\n{response.status_code if response else 'no response'}: {response.content if response else 'no response'}"
|
||||
f"Status: {self.machine_status}: failed to update machine status:\n{traceback.format_exc()}:\n{response.status_code if response else 'no response'}: {response.content if response else 'no response'}"
|
||||
)
|
||||
return False
|
||||
|
||||
self.log.info(f"Status: {self.status}: Machine Status Updated Successfully")
|
||||
self.log.info(f"Status: {self.machine_status}: Machine Status Updated Successfully")
|
||||
return True
|
||||
|
||||
def parse_response_and_execute(self, response):
|
||||
try:
|
||||
data = response.json()
|
||||
if not isinstance(data, dict):
|
||||
raise ValueError("Parsed response is not a dictionary")
|
||||
|
||||
actions = data.get("ACTIONS_TO_DO", [])
|
||||
|
||||
# Ensure actions is a list
|
||||
if isinstance(actions, dict):
|
||||
actions = [actions]
|
||||
|
||||
for action in actions:
|
||||
remote_path = action.get("remote_path")
|
||||
local_path = action.get("local_path")
|
||||
self.log.info(f"Executing remote fetch with remote_path: {remote_path} and local_path: {local_path}")
|
||||
result = self.remote_fetch(remote_path=remote_path, local_path=local_path)
|
||||
self.log.info(f"Remote fetch result: {result}")
|
||||
|
||||
except json.JSONDecodeError:
|
||||
self.log.error("Failed to decode JSON response")
|
||||
except Exception as e:
|
||||
self.log.error(f"An unexpected error occurred while parsing response: {str(e)}")
|
||||
|
||||
def remote_archive(self, record):
|
||||
r = None
|
||||
try:
|
||||
|
|
@ -153,3 +184,63 @@ class ArchiveSynchronizer(Component):
|
|||
self.log.error(f"id: {record.id}: failed to store remotely:\n{traceback.format_exc()}")
|
||||
self.log.info(f"id: {record.id}: stored remotely")
|
||||
return True
|
||||
|
||||
def remote_fetch(self, remote_path=None, local_path=None):
|
||||
"""
|
||||
download a single file from the server.
|
||||
|
||||
:param remote_path: path of where to download the file from
|
||||
:param local_path: path of where to save the file to
|
||||
:return: a dictionary with errors if any occur.
|
||||
"""
|
||||
if remote_path is None:
|
||||
raise ValueError("remote_path cannot be None")
|
||||
if local_path is None:
|
||||
raise ValueError("local_path cannot be None")
|
||||
|
||||
call_url = f"https://dev.r5portal.it/{remote_path}"
|
||||
try:
|
||||
if not self.simulate:
|
||||
with requests.Session() as s:
|
||||
self.log.info(f"Fetching file from: {call_url}")
|
||||
|
||||
# Make the HTTP GET request to fetch the file
|
||||
response = s.get(call_url, timeout=5, verify=False)
|
||||
|
||||
# Log response details
|
||||
self.log.info(f"HTTP Status Code: {response.status_code}")
|
||||
#self.log.info(f"Response Headers: {response.headers}")
|
||||
#self.log.info(f"Response Content: {response.content}")
|
||||
|
||||
# Handle HTTP errors
|
||||
if response.status_code == 404:
|
||||
self.log.warning(f"File not found: {call_url}. Please check the URL path.")
|
||||
return {"error": "File not found"}
|
||||
elif response.status_code == 403 or response.status_code == 401:
|
||||
self.log.warning(f"Access forbidden or not logged in for file: {call_url}")
|
||||
return {"error": "Access forbidden or not logged in"}
|
||||
elif response.status_code != 200:
|
||||
self.log.error(f"Unexpected HTTP response status: {response.status_code} for URL: {call_url}")
|
||||
return {"error": "Unexpected HTTP response status"}
|
||||
|
||||
# Ensure the directory exists
|
||||
os.makedirs(local_path, exist_ok=True)
|
||||
|
||||
# Save the file to the local path
|
||||
local_file_path = os.path.join(local_path, os.path.basename(remote_path))
|
||||
with open(local_file_path, "wb") as f:
|
||||
f.write(response.content)
|
||||
|
||||
self.log.info(f"File downloaded successfully: {local_file_path}")
|
||||
return {"downloaded_file": local_file_path}
|
||||
|
||||
except requests.ConnectionError as e:
|
||||
self.log.error(f"Connection error occurred while fetching the file: {str(e)}")
|
||||
return {"error": "Connection error"}
|
||||
except requests.Timeout as e:
|
||||
self.log.error(f"Timeout error occurred while fetching the file: {str(e)}")
|
||||
return {"error": "Timeout error"}
|
||||
except Exception as e:
|
||||
self.log.error(f"An unexpected error occurred: {str(e)}")
|
||||
return {"error": "Unexpected error"}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
import sys
|
||||
import traceback
|
||||
import warnings
|
||||
|
||||
from PyQt5.QtWidgets import QMessageBox
|
||||
|
||||
if "--sim-serial" in sys.argv:
|
||||
from components.dummies.serial import serial
|
||||
|
|
@ -48,7 +51,10 @@ class ModbusComponent(Component):
|
|||
strict=False,
|
||||
)
|
||||
if not self.client.connect():
|
||||
raise ConnectionError("device not reachable (could not connect): {} ({})".format(self.name, self.port))
|
||||
QMessageBox.critical(None, "ERRORE", f"ERRORE TECNA - VERIFICARE CONNESSIONE USB")
|
||||
exit(-1)
|
||||
#raise ConnectionError("device not reachable (could not connect): {} ({})".format(self.name, self.port))
|
||||
|
||||
if not self.client.is_socket_open():
|
||||
raise ConnectionError("device not reachable (socket not open): {} ({})".format(self.name, self.port))
|
||||
self.lock.unlock()
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
from lib.db import Recipes, Steps, db
|
||||
from lib.db import Recipes, db
|
||||
from PyQt5.QtCore import QSemaphore, pyqtSignal
|
||||
from PyQt5.QtWidgets import QMessageBox
|
||||
|
||||
|
|
@ -333,7 +333,7 @@ class TecnaMarpossProvasetT3(ModbusComponent):
|
|||
recipes = []
|
||||
for recipe in list(Recipes.select().order_by(Recipes.name.asc())):
|
||||
# if recipe.spec["leak_1"]:
|
||||
recipes.append([recipe, Steps.get_by_id(recipe.spec["available_steps"]["leak_1"])])
|
||||
recipes.append([recipe, recipe.spec["steps"]["leak_1"]])
|
||||
# reverve last for our recipe control
|
||||
if len(recipes) > max(self.max_program_number - 1, 0):
|
||||
self.log.warning(f"too many recipes ({len(recipes)}), saving only first {max(self.max_program_number - 1, 0)}")
|
||||
|
|
@ -360,3 +360,89 @@ class TecnaMarpossProvasetT3(ModbusComponent):
|
|||
self.write_recipe(recipe, step, table=i)
|
||||
self.log.info(f"saved {min(len(recipes), max(self.max_program_number - 1, 0))} recipes")
|
||||
self._store_recipes_lock.release(1)
|
||||
|
||||
# SELECT & READ RECIPE FROM TECNA MEMORY
|
||||
|
||||
def read_recipe(self, recipe_number):
|
||||
spec = {
|
||||
**{(719 - 1 + i) : f"R{i}" for i in range(8)},
|
||||
**{(727 - 1 + i) : f"C{i}" for i in range(12)},
|
||||
**{(761 - 1 + i) : f"F1_{i}" for i in range(8)},
|
||||
**{(769 - 1 + i) : f"F2_{i}" for i in range(8)},
|
||||
"T0 - Pre-filling time": "pre_filling_time",
|
||||
"P0 - Pre-filling pressure": "pre_filling_pressure",
|
||||
"T1 - Filling time": "filling_time",
|
||||
"T2 - Settling time": "settling_time",
|
||||
"PR- - Min pressure tolerance %": "settling_pressure_min_percent",
|
||||
"PR+ - Max pressure tolerance % (P+)": "settling_pressure_max_percent",
|
||||
"T3 - Measure time": "test_time",
|
||||
"Q- Lower test leak limit": "test_pressure_qneg",
|
||||
"Q+ Upper test leak limit": "test_pressure_qpos",
|
||||
"FST - Discharge time": "flush_time",
|
||||
"FSL - Discharge limit": "flush_pressure",
|
||||
"Print options": "print_options"
|
||||
}
|
||||
if self.model == "t3p":
|
||||
spec.update({
|
||||
"PREL - Nominal test pressure": "test_pressure",
|
||||
})
|
||||
elif self.model == "t3l":
|
||||
spec.update({
|
||||
"PREL - Nominal test pressure": "test_pressure",
|
||||
})
|
||||
else:
|
||||
raise NotImplementedError(f"tecna t3 model {self.model!r} not implemented.")
|
||||
|
||||
# SET RECIPE NUMBER
|
||||
#self.write("Source of test program number selection", "FROM PARAMETER (SET BY LCD OR SERIAL LINE)")
|
||||
#self.write("Selected program", recipe_number)
|
||||
self.write("Test program for read/write operation", recipe_number)
|
||||
|
||||
recipe_data = {}
|
||||
# READ ALL PARAMETERS
|
||||
for register_name, field_name in spec.items():
|
||||
recipe_data[field_name] = self.read(register_name)
|
||||
recipe_name=self.int_array_to_str([recipe_data[f"R{wn}"] for wn in range(8)])
|
||||
recipe_code=self.int_array_to_str([recipe_data[f"C{wn}"] for wn in range(12)])
|
||||
recipe_f1=self.int_array_to_str([recipe_data[f"F1_{wn}"] for wn in range(8)])
|
||||
recipe_f2=self.int_array_to_str([recipe_data[f"F2_{wn}"] for wn in range(8)])
|
||||
recipe_data["recipe_name"]=recipe_name
|
||||
recipe_data["recipe_code"]=recipe_code
|
||||
recipe_data["recipe_f1"]=recipe_f1
|
||||
recipe_data["recipe_f2"]=recipe_f2
|
||||
recipe_data["print_template"] = int(recipe_data["print_options"] & 0xFF)
|
||||
if self.model == "t3p":
|
||||
recipe_data["test_time"]=int(recipe_data["test_time"]/10)
|
||||
recipe_data["pre_filling_time"] = int(recipe_data["pre_filling_time"] / 10)
|
||||
recipe_data["filling_time"] = int(recipe_data["filling_time"] / 10)
|
||||
recipe_data["settling_time"] = int(recipe_data["settling_time"] / 10)
|
||||
recipe_data["test_pressure_qneg"] = int(recipe_data["test_pressure_qneg"] / 100)
|
||||
recipe_data["test_pressure_qpos"] = int(recipe_data["test_pressure_qpos"] / 100)
|
||||
|
||||
return recipe_data
|
||||
|
||||
@staticmethod
|
||||
def int_array_to_str(arr):
|
||||
"""
|
||||
Translates an array of 16-bit integers, where each integer contains 2 ASCII characters,
|
||||
into a string.
|
||||
|
||||
Args:
|
||||
arr: The array of 16-bit integers.
|
||||
|
||||
Returns:
|
||||
The translated string.
|
||||
"""
|
||||
result = ""
|
||||
for value in arr:
|
||||
char1 = chr(value & 0xFF)
|
||||
char2 = chr(value >> 8)
|
||||
|
||||
# Stop if we encounter a null byte
|
||||
if char1 == '\0':
|
||||
break
|
||||
result+=char1
|
||||
if char2 == '\0':
|
||||
break
|
||||
result+=char2
|
||||
return result
|
||||
|
|
|
|||
|
|
@ -9,21 +9,14 @@ from PyQt5.QtWidgets import QMessageBox, QApplication
|
|||
|
||||
from .component import Component
|
||||
|
||||
is_win = platform.system().lower() == "windows"
|
||||
|
||||
if "--sim-io" not in sys.argv:
|
||||
if is_win:
|
||||
from components.Automation.BDaq import *
|
||||
from components.Automation.BDaq.InstantDoCtrl import InstantDoCtrl
|
||||
from components.Automation.BDaq.InstantDiCtrl import InstantDiCtrl
|
||||
else:
|
||||
libbiodaq = ctypes.CDLL("/opt/advantech/libs/libbiodaq.so")
|
||||
from components.Automation.BDaq import *
|
||||
from components.Automation.BDaq.InstantDoCtrl import InstantDoCtrl
|
||||
from components.Automation.BDaq.InstantDiCtrl import InstantDiCtrl
|
||||
else:
|
||||
from components.dummies.Automation.BDaq import *
|
||||
from components.dummies.Automation.BDaq.InstantDoCtrl import InstantDoCtrl
|
||||
from components.dummies.Automation.BDaq.InstantDiCtrl import InstantDiCtrl
|
||||
#is_win=False
|
||||
#import components.dummies.libbiodaq as libbiodaq
|
||||
from components.dummies.libbiodaq import ErrorCode
|
||||
|
||||
class USB_586x(Component):
|
||||
|
|
@ -44,7 +37,7 @@ class USB_586x(Component):
|
|||
self.mutex = QMutex()
|
||||
self.simulate="--sim-io" in sys.argv
|
||||
# DEVICE INFORMATION
|
||||
self.id=config["digital_io"]["id"]
|
||||
self.id=config[self.name]["id"]
|
||||
if "5860" in self.id:
|
||||
self.type = "5860"
|
||||
self.in_size = 1
|
||||
|
|
@ -77,52 +70,19 @@ class USB_586x(Component):
|
|||
# DIGITAL I/O CLASS
|
||||
if not self.simulate:
|
||||
self.log.info("OPENING USB MODULE...")
|
||||
if is_win:
|
||||
try:
|
||||
self.di_ctrl = InstantDiCtrl(self.info.Description)
|
||||
self.do_ctrl = InstantDoCtrl(self.info.Description)
|
||||
self.di_read = self.di_ctrl.readAny
|
||||
self.do_write_bit = self.do_ctrl.writeBit
|
||||
self.buffer = ctypes.create_string_buffer(2)
|
||||
self.io_ok=True
|
||||
except ValueError:
|
||||
QMessageBox.critical(None, "ERRORE", f"ERRORE I/O DIGITALE - VERIFICARE CONNESSIONE USB")
|
||||
exit(-1)
|
||||
self.io_ok = False
|
||||
|
||||
time.sleep(1)
|
||||
else:
|
||||
self.di_create = libbiodaq.AdxInstantDiCtrlCreate
|
||||
self.di_create.restype = ctypes.c_void_p
|
||||
self.di_setSelectedDevice = libbiodaq.InstantDiCtrl_setSelectedDevice
|
||||
self.di_setSelectedDevice.argtypes = [ctypes.c_void_p, ctypes.POINTER(self.DeviceInformation)]
|
||||
self.di_setSelectedDevice.restype = ctypes.c_uint32
|
||||
# DIGITAL INPUTS READ FUNCTION
|
||||
self.di_read = libbiodaq.InstantDiCtrl_ReadAny
|
||||
self.di_read.argtypes = [ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.c_char_p]
|
||||
self.di_read.restype = ctypes.c_int32
|
||||
# DIGITAL OUTPUTS CLASS
|
||||
self.do_create = libbiodaq.AdxInstantDoCtrlCreate
|
||||
self.do_create.restype = ctypes.c_void_p
|
||||
# SET SELECTED DEVICE
|
||||
self.do_setSelectedDevice = libbiodaq.InstantDoCtrl_setSelectedDevice
|
||||
self.do_setSelectedDevice.argtypes = [ctypes.c_void_p, ctypes.POINTER(self.DeviceInformation)]
|
||||
self.do_setSelectedDevice.restype = ctypes.c_uint32
|
||||
# get ports
|
||||
self.get_ports = libbiodaq.InstantDoCtrl_getPortDirection
|
||||
self.get_ports.argtypes = [ctypes.c_void_p]
|
||||
self.get_ports.restype = ctypes.POINTER(ctypes.c_void_p)
|
||||
# DIGITAL OUTPUTS WRITE FUNCTION
|
||||
self.do_write_bit = libbiodaq.InstantDoCtrl_WriteBit
|
||||
self.do_write_bit.argtypes = [ctypes.c_void_p, ctypes.c_int32, ctypes.c_int32, ctypes.c_char]
|
||||
self.do_write_bit.restype = ctypes.c_int32
|
||||
try:
|
||||
self.di_ctrl = InstantDiCtrl(self.info.Description)
|
||||
self.do_ctrl = InstantDoCtrl(self.info.Description)
|
||||
self.di_read = self.di_ctrl.readAny
|
||||
self.do_write_bit = self.do_ctrl.writeBit
|
||||
self.buffer = ctypes.create_string_buffer(2)
|
||||
# INIT OBJECTS
|
||||
self.di_ctrl = self.di_create()
|
||||
self.do_ctrl = self.do_create()
|
||||
self.di_init_status = self.di_setSelectedDevice(self.di_ctrl, ctypes.byref(self.info))
|
||||
self.do_init_status = self.do_setSelectedDevice(self.do_ctrl, ctypes.byref(self.info))
|
||||
self.io_ok = True
|
||||
self.io_ok=True
|
||||
except ValueError:
|
||||
QMessageBox.critical(None, "ERRORE", f"ERRORE I/O DIGITALE - VERIFICARE CONNESSIONE USB")
|
||||
exit(-1)
|
||||
self.io_ok = False
|
||||
|
||||
time.sleep(1)
|
||||
else:
|
||||
self.di_ctrl = InstantDiCtrl(self.info.Description)
|
||||
self.do_ctrl = InstantDoCtrl(self.info.Description)
|
||||
|
|
@ -177,38 +137,30 @@ class USB_586x(Component):
|
|||
max_retry = 3
|
||||
while retry < max_retry:
|
||||
|
||||
if is_win or self.simulate:
|
||||
if self.simulate:
|
||||
read = self.sim_in
|
||||
if self.simulate:
|
||||
read = self.sim_in
|
||||
break
|
||||
else:
|
||||
if self.io_ok:
|
||||
ret = self.di_read(0, self.in_size)
|
||||
if ret[0].value == ErrorCode.Success.value:
|
||||
self.buffer = ret[1]
|
||||
for byte_num in range(len(self.buffer)):
|
||||
byte = self.buffer[byte_num]
|
||||
read.append([bool(byte & m) for m in self.masks])
|
||||
else:
|
||||
self.buffer = None
|
||||
self.log.error(f"READ ERROR")
|
||||
self.di_ctrl.dispose()
|
||||
self.do_ctrl.dispose()
|
||||
self.io_ok = False
|
||||
|
||||
|
||||
if self.io_ok:
|
||||
break
|
||||
else:
|
||||
if self.io_ok:
|
||||
ret = self.di_read(0, self.in_size)
|
||||
if ret[0].value == ErrorCode.Success.value:
|
||||
self.buffer = ret[1]
|
||||
for byte_num in range(len(self.buffer)):
|
||||
byte = self.buffer[byte_num]
|
||||
read.append([bool(byte & m) for m in self.masks])
|
||||
else:
|
||||
self.buffer = None
|
||||
self.log.error(f"READ ERROR")
|
||||
self.di_ctrl.dispose()
|
||||
self.do_ctrl.dispose()
|
||||
self.io_ok = False
|
||||
|
||||
|
||||
if self.io_ok:
|
||||
break
|
||||
else:
|
||||
time.sleep(1)
|
||||
self.open_device()
|
||||
else:
|
||||
self.di_read(self.di_ctrl, 0, self.in_size, self.buffer)
|
||||
|
||||
for byte_num in range(len(self.buffer)):
|
||||
byte = int.from_bytes(self.buffer[byte_num], "little")
|
||||
read.append([bool(byte & m) for m in self.masks])
|
||||
|
||||
time.sleep(1)
|
||||
self.open_device()
|
||||
self.mutex.unlock()
|
||||
return read
|
||||
|
||||
|
|
@ -239,10 +191,7 @@ class USB_586x(Component):
|
|||
# print("set", byte, bit, not val, flush=True)
|
||||
if self.io_ok:
|
||||
if not self.simulate:
|
||||
if is_win:
|
||||
ret=self.do_write_bit(byte, bit, int(val))
|
||||
else:
|
||||
ret=self.do_write_bit(self.do_ctrl, byte, bit, int(val))
|
||||
ret=self.do_write_bit(byte, bit, int(val))
|
||||
else:
|
||||
ret = ErrorCode.Success
|
||||
|
||||
|
|
|
|||
|
|
@ -6,13 +6,12 @@ import re
|
|||
|
||||
from playhouse.sqlite_ext import JSONField
|
||||
|
||||
from .models import Archive, Log, Recipes, Session, Steps, Users, db
|
||||
from .models import Archive, Log, Recipes, Session, Users, db
|
||||
|
||||
models_reference = {
|
||||
"archive": Archive,
|
||||
"log": Log,
|
||||
"recipes": Recipes,
|
||||
"steps": Steps,
|
||||
"users": Users,
|
||||
}
|
||||
|
||||
|
|
@ -49,57 +48,6 @@ def init_db():
|
|||
except FileNotFoundError:
|
||||
pass
|
||||
|
||||
# try:
|
||||
# with open("src/lib/db/imports/connectors.csv", "r") as f:
|
||||
# log.info("importing connectors")
|
||||
# reader = csv.DictReader(f)
|
||||
# count = 0
|
||||
# for row in reader:
|
||||
# steps = {}
|
||||
# for step_type, step_spec in {
|
||||
# "connector": {"connector": row["connector"]},
|
||||
# "barcodes": {"serial": ""},
|
||||
# "resistance": {"scale": 500, "expected": float(row["resistance_expected"]), "tolerance": float(row["resistance_tolerance"])},
|
||||
# "leak_1": {"pre_filling_time": 1, "pre_filling_pressure": 1000, "filling_time": 1, "settling_time": 1, "settling_pressure_min_percent": 5, "settling_pressure_max_percent": 5, "test_time": 5, "test_pressure_qneg": 100, "test_pressure": 1000, "test_pressure_qpos": 100, "flush_time": 1, "flush_pressure": 100},
|
||||
# "leak_2": {"pre_filling_time": 1, "pre_filling_pressure": 1000, "filling_time": 1, "settling_time": 1, "settling_pressure_min_percent": 5, "settling_pressure_max_percent": 5, "test_time": 5, "test_pressure_qneg": 100, "test_pressure": 1000, "test_pressure_qpos": 100, "flush_time": 1, "flush_pressure": 100},
|
||||
# "vision": {"recipe": "termorestringente_923578.ini"},
|
||||
# "print": {"template": "EtichettaR5.prn", },
|
||||
# }.items():
|
||||
# steps[step_type] = Steps(
|
||||
# type=re.sub(r"^(.*)_[0-9]+$", r"\1", step_type),
|
||||
# spec=step_spec,
|
||||
# )
|
||||
# steps[step_type].save(force_insert=True)
|
||||
# recipe = Recipes(
|
||||
# name=row["name"],
|
||||
# client=row["client"],
|
||||
# part_number=row["part_number"],
|
||||
# spec={
|
||||
# "connector": True,
|
||||
# "barcodes": True,
|
||||
# "resistance": True,
|
||||
# "leak_1": False,
|
||||
# "leak_2": False,
|
||||
# "vision": False,
|
||||
# "print": True,
|
||||
# "steps": [steps["connector"].name, steps["resistance"].name, steps["print"].name, ], # pks of the enabled steps
|
||||
# "available_steps": {
|
||||
# "connector": steps["connector"].name,
|
||||
# "barcodes": steps["barcodes"].name,
|
||||
# "resistance": steps["resistance"].name,
|
||||
# "leak_1": steps["leak_1"].name,
|
||||
# "leak_2": steps["leak_2"].name,
|
||||
# "vision": steps["vision"].name,
|
||||
# "print": steps["print"].name,
|
||||
# },
|
||||
# },
|
||||
# )
|
||||
# recipe.save(force_insert=True)
|
||||
# count += 1
|
||||
# log.info(f"connectors: imported {count} rows.")
|
||||
# except FileNotFoundError:
|
||||
# pass
|
||||
|
||||
|
||||
init_db()
|
||||
|
||||
|
|
|
|||
|
|
@ -2,5 +2,4 @@ from .archive import Archive
|
|||
from .base_model import db
|
||||
from .log import Log
|
||||
from .recipes import Recipes
|
||||
from .steps import Steps
|
||||
from .users import Session, Users
|
||||
|
|
|
|||
|
|
@ -1,49 +1,40 @@
|
|||
import json
|
||||
from uuid import uuid4 as uuid
|
||||
|
||||
from peewee import BooleanField, TextField
|
||||
from playhouse.sqlite_ext import JSONField
|
||||
|
||||
from .base_model import BaseModel
|
||||
from .steps import Steps
|
||||
from ...helpers.step import Step
|
||||
|
||||
|
||||
class Recipes(BaseModel):
|
||||
name = TextField(primary_key=True, unique=True, null=False, default=lambda: uuid().hex)
|
||||
client = TextField(null=True)
|
||||
part_number = TextField(null=False)
|
||||
spec = JSONField(null=False) # keys inside spec must not overlap withthe model
|
||||
spec = JSONField(null=False)
|
||||
description = TextField(null=True)
|
||||
archived = BooleanField(null=False, default=False)
|
||||
|
||||
def get_steps(self):
|
||||
steps = []
|
||||
for step_pk in self.spec.get("steps", []):
|
||||
steps.append(Steps.get_by_id(step_pk))
|
||||
for step_name, enabled in self.spec.items():
|
||||
if enabled in (True, 1):
|
||||
steps.append(Step(step_type=step_name,spec=self.spec["steps"][step_name]))
|
||||
return steps
|
||||
|
||||
def delete_associated_steps(self):
|
||||
return Steps.delete().where(Steps._meta.primary_key << list(self.spec.get("available_steps", {}).values())).execute()
|
||||
|
||||
def get_steps_map(self):
|
||||
steps = {}
|
||||
for step_name, step_pk in self.spec.get("available_steps", {}).items():
|
||||
steps[step_name] = Steps.get_by_id(step_pk)
|
||||
for step_name, step_pk in self.spec.get("steps", {}).items():
|
||||
steps[step_name] = Step(step_type=step_name,spec=self.spec["steps"][step_name])
|
||||
return steps
|
||||
|
||||
@classmethod
|
||||
def crud_delete(cls, deleted_rows):
|
||||
# return cls.delete().where(self._meta.primary_key << deleted_rows).execute()
|
||||
recipes = list(cls.select().where(cls._meta.primary_key << deleted_rows).execute())
|
||||
for recipe in recipes:
|
||||
recipe.delete_associated_steps()
|
||||
recipe.delete_instance()
|
||||
return len(recipes)
|
||||
|
||||
# @classmethod
|
||||
# def delete(cls, *args, **kwargs):
|
||||
# # OVERRIDE DELETION
|
||||
# # so that deleting a user will only archive it
|
||||
# return cls.update(archived=True)
|
||||
|
||||
class Meta:
|
||||
table_name = "recipes"
|
||||
|
|
|
|||
|
|
@ -1,23 +0,0 @@
|
|||
from uuid import uuid4 as uuid
|
||||
|
||||
from peewee import BooleanField, TextField
|
||||
from playhouse.sqlite_ext import JSONField
|
||||
|
||||
from .base_model import BaseModel
|
||||
|
||||
|
||||
class Steps(BaseModel):
|
||||
name = TextField(primary_key=True, unique=True, null=False, default=lambda: uuid().hex)
|
||||
type = TextField(null=False)
|
||||
spec = JSONField(null=False) # keys inside spec must not overlap withthe model
|
||||
description = TextField(null=True)
|
||||
archived = BooleanField(null=False, default=False)
|
||||
|
||||
# @classmethod
|
||||
# def delete(cls, *args, **kwargs):
|
||||
# # OVERRIDE DELETION
|
||||
# # so that deleting a user will only archive it
|
||||
# return cls.update(archived=True)
|
||||
|
||||
class Meta:
|
||||
table_name = "steps"
|
||||
8
src/lib/helpers/step.py
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
|
||||
|
||||
class Step(object):
|
||||
step_type = None
|
||||
spec = {}
|
||||
def __init__(self,step_type=None,spec=dict):
|
||||
self.step_type = step_type
|
||||
self.spec = spec
|
||||
|
|
@ -279,7 +279,7 @@ try:
|
|||
app = QApplication(sys.argv)
|
||||
|
||||
with SingleProcess() as single_process_lock:
|
||||
if not single_process_lock:
|
||||
if not single_process_lock and "--no-lock" not in sys.argv:
|
||||
logging.error(f"Program already opened, exiting...")
|
||||
QMessageBox.critical(None, "ERRORE", "IL PROGRAMMA E' GIA' IN ESECUZIONE")
|
||||
exit(0)
|
||||
|
|
|
|||
|
|
@ -10,9 +10,9 @@ opencv-python-headless
|
|||
peewee
|
||||
pillow
|
||||
pycoral
|
||||
pymodbus
|
||||
pymodbus~=3.6.8
|
||||
pyqt5
|
||||
pyqt5-tools
|
||||
#pyqt5-tools
|
||||
pyserial
|
||||
pyserial-asyncio
|
||||
qrcode
|
||||
|
|
|
|||
|
|
@ -6,24 +6,24 @@ from PyQt5.QtWidgets import QApplication
|
|||
from src.components.os_label_printer import *
|
||||
from src.lib.helpers import ConfigReader
|
||||
|
||||
SYSTEM_ID = "ST-TEN-1"
|
||||
SYSTEM_ID = "test-windows"
|
||||
START_SN=1
|
||||
STOP_SN=40
|
||||
TEMPLATE="ferrari_30x16_203.prn"
|
||||
PRINTER_NAME="Zebra_Technologies_ZTC_ZD421-203dpi_ZPL"
|
||||
|
||||
STOP_SN=6
|
||||
TEMPLATE="ferrari_flag_qr_only.prn"
|
||||
PRINTER_NAME="zd421"
|
||||
PN="055015378"
|
||||
config = ConfigReader(system_id=SYSTEM_ID)
|
||||
config["label_printer"]["printer"] = PRINTER_NAME
|
||||
printer=Os_Label_Printer(config=config,name="label_printer")
|
||||
|
||||
|
||||
timenow = datetime.now()
|
||||
# timenow = datetime.now()
|
||||
app = QApplication(sys.argv)
|
||||
for sn in range(START_SN,STOP_SN+1):
|
||||
timenow = datetime.now()
|
||||
print(f"PRINTING LABEL # {sn}")
|
||||
context = {
|
||||
# RECIPE DATA
|
||||
"PART": "000825276",
|
||||
"PART": PN,
|
||||
# SERIAL DEFINITION
|
||||
"SN": str(sn),
|
||||
"SN4": f"{sn:0>4}",
|
||||
|
|
|
|||
54
src/scripts/print_labels_csv.py
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
import csv
|
||||
import time
|
||||
from datetime import datetime
|
||||
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
|
||||
from src.components.os_label_printer import *
|
||||
from src.lib.helpers import ConfigReader
|
||||
|
||||
SYSTEM_ID = "test-linux"
|
||||
CSV_PATH="tmp/ferrari_labels5.csv"
|
||||
TEMPLATE="ferrari_flag_qr_only.prn"
|
||||
config = ConfigReader(system_id=SYSTEM_ID)
|
||||
printer=Os_Label_Printer(config=config,name="label_printer")
|
||||
|
||||
|
||||
# timenow = datetime.now()
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
with open(CSV_PATH, "r", encoding="utf-8-sig") as f:
|
||||
reader = csv.DictReader(f)
|
||||
for row in reader:
|
||||
START_SN = 1
|
||||
STOP_SN = int(row["quantity"])
|
||||
PN = row["part_number"]
|
||||
print(f"PART NUMBER # {PN}")
|
||||
input("Press Enter to continue...")
|
||||
for sn in range(START_SN,STOP_SN+2):
|
||||
timenow = datetime.now()
|
||||
print(f"PRINTING LABEL # {sn}")
|
||||
context = {
|
||||
# RECIPE DATA
|
||||
"PART": PN,
|
||||
# SERIAL DEFINITION
|
||||
"SN": str(sn),
|
||||
"SN4": f"{sn:0>4}",
|
||||
"SN5": f"{sn:0>5}",
|
||||
"SN6": f"{sn:0>6}",
|
||||
# TIME DEFINITION
|
||||
"DATETIME": timenow.strftime("%d/%m/%Y %H:%M:%S"),
|
||||
"DATE": timenow.strftime("%d/%m/%Y"),
|
||||
"TIME": timenow.strftime("%H:%M:%S"),
|
||||
"YYYY": timenow.strftime("%Y"),
|
||||
"YY": timenow.strftime("%y"),
|
||||
"MO": timenow.strftime("%m"),
|
||||
"DD": timenow.strftime("%d"),
|
||||
"HH": timenow.strftime("%H"),
|
||||
"MI": timenow.strftime("%M"),
|
||||
"SS": timenow.strftime("%S"),
|
||||
"JJJ": timenow.strftime("%j"),
|
||||
}
|
||||
printer.print_label(TEMPLATE,context)
|
||||
|
||||
time.sleep(1)
|
||||
211
src/scripts/save_tecna_recipes_to_csv.py
Normal file
|
|
@ -0,0 +1,211 @@
|
|||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import csv
|
||||
import faulthandler
|
||||
import logging
|
||||
import os
|
||||
import platform
|
||||
import signal
|
||||
import sys
|
||||
sys.argv.append("--sim-io")
|
||||
#sys.argv.append("--system-id=test-windows")
|
||||
|
||||
if platform.system().lower() == "windows":
|
||||
sys.path.append(f"{os.getcwd()}\src\components")
|
||||
sys.path.append(f"{os.getcwd()}\src")
|
||||
else:
|
||||
sys.path.append(f"{os.getcwd()}/src/components")
|
||||
|
||||
import traceback
|
||||
import weakref
|
||||
from datetime import datetime
|
||||
from pathlib import Path
|
||||
from ui.diagnostics import Diagnostics
|
||||
from lib.helpers.single_process import SingleProcess
|
||||
|
||||
|
||||
app = None
|
||||
|
||||
parser = argparse.ArgumentParser(prog='ST-TEN', description='Leak test system')
|
||||
parser.add_argument('-s', '--system-id')
|
||||
args, unspec = parser.parse_known_args()
|
||||
|
||||
def quit_app(signalnum=None, handler=None):
|
||||
logging.info(f"quitting app. signal: {signalnum!r}, handler: {handler!r}")
|
||||
global app
|
||||
if app is not None:
|
||||
app.quit()
|
||||
quit()
|
||||
|
||||
|
||||
# SETUP QUITTING ON CTRL+C
|
||||
signal.signal(signal.SIGINT, quit_app)
|
||||
|
||||
# SETUP FAULTHANDLER
|
||||
faulthandler.enable(file=sys.stderr, all_threads=True)
|
||||
|
||||
# SETUP LOGS
|
||||
logs_dir = Path(".") / "data" / "logs"
|
||||
os.makedirs(logs_dir, exist_ok=True)
|
||||
logging.basicConfig(
|
||||
format="{asctime}:{name}:{levelname}:{message}",
|
||||
datefmt="%Y-%m-%d_%H-%M-%S",
|
||||
style="{",
|
||||
level="DEBUG" if "--debug" in sys.argv else "INFO",
|
||||
handlers=[
|
||||
logging.StreamHandler(stream=sys.stderr),
|
||||
logging.FileHandler(
|
||||
logs_dir / f"{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.log",
|
||||
mode="a",
|
||||
encoding="utf-8",
|
||||
delay=False,
|
||||
**({"errors": "surrogateescape"} if sys.version_info.major >= 3 and sys.version_info.minor >= 10 else {}),
|
||||
),
|
||||
],
|
||||
force=True,
|
||||
**({"encoding": "utf-8"} if sys.version_info.major >= 3 and sys.version_info.minor >= 10 else {}),
|
||||
**({"errors": "surrogateescape"} if sys.version_info.major >= 3 and sys.version_info.minor >= 10 else {}),
|
||||
)
|
||||
|
||||
try:
|
||||
# IMPORT PROJECT ONLY AFTER SETTING UP SIGNAL, FAULTHANDLER AND LOGGING
|
||||
from components import TecnaMarpossProvasetT3
|
||||
from lib.db import Users
|
||||
from lib.helpers import ConfigReader
|
||||
from PyQt5.QtCore import QObject, QThread, pyqtSignal, pyqtSlot
|
||||
from PyQt5.QtWidgets import QApplication, QMessageBox, QFileDialog
|
||||
from ui import About, Archive, Login, Main_Window, Test, Users_Management, Recipe_Selection, \
|
||||
Barcode_Recipe_Selection
|
||||
|
||||
|
||||
|
||||
class Main(QObject):
|
||||
|
||||
def __init__(self, parent=None):
|
||||
# print(f"MAIN {int(QThread.currentThreadId())}", flush=True)
|
||||
super().__init__()
|
||||
self.recipes = None
|
||||
try:
|
||||
# READ CONFIG
|
||||
|
||||
system_id = args.system_id if "system_id" in args else None
|
||||
|
||||
self.config = ConfigReader(system_id=system_id)
|
||||
logging.info(f"STARTING SESSION ON MACHINE {self.config['machine']['description']}")
|
||||
# INIT COMPONENT
|
||||
self.components_specs = {
|
||||
"tecna_t3": {"c": TecnaMarpossProvasetT3, "k": {"paused": True}},
|
||||
}
|
||||
|
||||
self.components = {}
|
||||
self.threads = {}
|
||||
for component_name, spec in self.components_specs.items():
|
||||
self.components[component_name] = spec["c"](*spec.get("a", []), config=self.config,
|
||||
name=component_name, **spec.get("k", {}))
|
||||
if spec.get("t", True):
|
||||
self.threads[component_name] = QThread()
|
||||
self.threads[component_name].setTerminationEnabled(True)
|
||||
self.components[component_name].moveToThread(self.threads[component_name])
|
||||
|
||||
for component_name, thread in self.threads.items():
|
||||
component = self.components[component_name]
|
||||
thread.started.connect(component.start)
|
||||
thread.start()
|
||||
# DEBUGGER WORKAROUND
|
||||
QApplication.processEvents()
|
||||
QThread.msleep(1000)
|
||||
QApplication.processEvents()
|
||||
component.wait_completion()
|
||||
|
||||
except Exception as e:
|
||||
logging.exception(traceback.format_exc())
|
||||
QMessageBox.critical(None, "Errore", f"Errore di avvio del programma di collaudo:\n\n{e}")
|
||||
quit()
|
||||
|
||||
def read_recipes(self):
|
||||
self.recipes = {}
|
||||
max_num_recipes=self.components["tecna_t3"].max_program_number
|
||||
max_num_recipes=300
|
||||
logging.info(f"NUMBER OF RECIPES TO BE READ: {max_num_recipes}")
|
||||
for recipe_num in range(1, max_num_recipes+1):
|
||||
logging.info(f"READING RECIPE #{recipe_num}")
|
||||
self.recipes[recipe_num] = self.components["tecna_t3"].read_recipe(recipe_num)
|
||||
|
||||
def export_recipes(self, csv_path=None):
|
||||
if csv_path is None:
|
||||
csv_path, _ = QFileDialog.getSaveFileName(
|
||||
None,
|
||||
"Esportazione ricette",
|
||||
"ricette.csv",
|
||||
"CSV data (*.csv);;All Files (*)",
|
||||
)
|
||||
csv_path = str(csv_path)
|
||||
if not len(csv_path):
|
||||
return
|
||||
if not csv_path.lower().endswith(".csv"):
|
||||
csv_path += ".csv"
|
||||
csv_dir = os.path.dirname(csv_path)
|
||||
if len(csv_dir):
|
||||
os.makedirs(csv_dir, exist_ok=True)
|
||||
data = []
|
||||
fieldnames = [
|
||||
"codice_ricetta",
|
||||
"part_number",
|
||||
"tempo_pre_riempimento",
|
||||
"pressione_pre_riempimento",
|
||||
"tempo_riempimento",
|
||||
"tempo_assestamento",
|
||||
"percentuale_minima_pressione_assestamento",
|
||||
"percentuale_massima_pressione_assestamento",
|
||||
"tempo_di_test",
|
||||
"pressione_di_test_delta_minimo",
|
||||
"pressione_di_test",
|
||||
"pressione_di_test_delta_massimo",
|
||||
"tempo_svuotamento",
|
||||
"pressione_svuotamento",
|
||||
"template_di_stampa",
|
||||
"campo1",
|
||||
"campo2"
|
||||
]
|
||||
for num,recipe in self.recipes.items():
|
||||
exportable = {
|
||||
"codice_ricetta": recipe["recipe_name"],
|
||||
"part_number": recipe["recipe_code"],
|
||||
"campo1": recipe["recipe_f1"],
|
||||
"campo2": recipe["recipe_f2"],
|
||||
"tempo_pre_riempimento": recipe["pre_filling_time"],
|
||||
"pressione_pre_riempimento": recipe["pre_filling_pressure"],
|
||||
"tempo_riempimento": recipe["filling_time"],
|
||||
"tempo_assestamento": recipe["settling_time"],
|
||||
"percentuale_minima_pressione_assestamento": recipe["settling_pressure_min_percent"],
|
||||
"percentuale_massima_pressione_assestamento": recipe["settling_pressure_max_percent"],
|
||||
"tempo_di_test": recipe["test_time"],
|
||||
"pressione_di_test_delta_minimo": recipe["test_pressure_qneg"],
|
||||
"pressione_di_test": recipe["test_pressure"],
|
||||
"pressione_di_test_delta_massimo": recipe["test_pressure_qpos"],
|
||||
"tempo_svuotamento": recipe["flush_time"],
|
||||
"pressione_svuotamento": recipe["flush_pressure"],
|
||||
"template_di_stampa": recipe["print_template"],
|
||||
}
|
||||
data.append(exportable)
|
||||
if len(data):
|
||||
logging.info(f"recipes: exporting recipes to {csv_path}")
|
||||
with open(csv_path, "w", newline="") as f:
|
||||
w = csv.DictWriter(f, fieldnames, extrasaction="ignore")
|
||||
w.writeheader()
|
||||
w.writerows(data)
|
||||
logging.info(f"recipes: exported {len(data)} rows.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
with SingleProcess() as single_process_lock:
|
||||
|
||||
main = Main()
|
||||
main.read_recipes()
|
||||
main.export_recipes()
|
||||
|
||||
|
||||
except Exception:
|
||||
logging.exception(traceback.format_exc())
|
||||
BIN
src/test/data/database/sqlite.db
Normal file
50
src/test/label_printer_ferrari.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
import sys
|
||||
from datetime import datetime
|
||||
from PyQt5.QtWidgets import QApplication
|
||||
|
||||
from components import Os_Label_Printer
|
||||
from lib.helpers import ConfigReader
|
||||
|
||||
config = ConfigReader(system_id="test-windows")
|
||||
time =datetime.now()
|
||||
context = {
|
||||
# RECIPE DATA
|
||||
"RECIPE": "000948653",
|
||||
"PART": "000948653",
|
||||
"TFILL": "5",
|
||||
"TSET": "10",
|
||||
"TTEST": "10",
|
||||
"PSETMINP_A": "4750",
|
||||
"PSETMAXP_A": "5250",
|
||||
"PTEST": "1500",
|
||||
"PMIN": "30",
|
||||
"RESPSET": "1512",
|
||||
"RESLEAK": "12.34",
|
||||
"SN4": "1234",
|
||||
"SN5": "12345",
|
||||
# TIME DEFINITION
|
||||
"DATETIME": time.strftime("%d/%m/%Y %H:%M:%S"),
|
||||
"DATE": time.strftime("%d/%m/%Y"),
|
||||
"TIME": time.strftime("%H:%M:%S"),
|
||||
"YYYY": time.strftime("%Y"),
|
||||
"YY": time.strftime("%y"),
|
||||
"MO": time.strftime("%m"),
|
||||
"DD": time.strftime("%d"),
|
||||
"HH": time.strftime("%H"),
|
||||
"MI": time.strftime("%M"),
|
||||
"SS": time.strftime("%S"),
|
||||
"JJJ": time.strftime("%j"),
|
||||
# EXTRA DATA
|
||||
"SHIFT": "1",
|
||||
"STATION": "ST-TEN-1",
|
||||
"OPERATOR": "MARIO",
|
||||
"BADGE_NUM": "999",
|
||||
|
||||
}
|
||||
|
||||
app = QApplication(sys.argv)
|
||||
|
||||
# TEST STANDARD PRINTER
|
||||
printer = Os_Label_Printer(config=config, name="label_printer")
|
||||
printer.config_changed()
|
||||
printer.print_label("ferrari_30x16_203.prn", context=context)
|
||||
150
src/test/remote_fetch_test.py
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
import unittest
|
||||
from unittest.mock import patch, Mock
|
||||
import requests
|
||||
import json
|
||||
import os
|
||||
|
||||
from components import ArchiveSynchronizer
|
||||
|
||||
|
||||
class TestArchiveSynchronizer(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.synchronizer = ArchiveSynchronizer(config=Mock(), name=None)
|
||||
self.synchronizer.archive_endpoint = "https://dev.r5portal.it/api/st-ten-save/"
|
||||
self.synchronizer.status_endpoint = "https://dev.r5portal.it/api/device-info-update/"
|
||||
self.synchronizer.download_endpoint = "https://dev.r5portal.it/media/uploads/"
|
||||
self.synchronizer.machine_id = "st-ten-1"
|
||||
self.synchronizer.log = Mock()
|
||||
|
||||
@patch('requests.Session')
|
||||
@patch('os.makedirs')
|
||||
@patch('builtins.open', new_callable=unittest.mock.mock_open)
|
||||
def test_remote_fetch_success(self, mock_open, mock_makedirs, mock_session):
|
||||
remote_path = "img-025.png"
|
||||
local_path = "config/warning_images"
|
||||
|
||||
mock_response = Mock()
|
||||
mock_response.status_code = 200
|
||||
mock_response.content = b'Test content'
|
||||
mock_session.return_value.__enter__.return_value.get.return_value = mock_response
|
||||
|
||||
result = self.synchronizer.remote_fetch(remote_path, local_path)
|
||||
|
||||
self.assertEqual(result, {"downloaded_file": f"{local_path}/{remote_path}"})
|
||||
mock_open.assert_called_with(f"{local_path}/{remote_path}", "wb")
|
||||
mock_open().write.assert_called_with(b'Test content')
|
||||
|
||||
@patch('requests.Session')
|
||||
def test_remote_fetch_not_found(self, mock_session):
|
||||
remote_path = "img-025.png"
|
||||
local_path = "config/warning_images"
|
||||
|
||||
mock_response = Mock()
|
||||
mock_response.status_code = 404
|
||||
mock_session.return_value.__enter__.return_value.get.return_value = mock_response
|
||||
|
||||
result = self.synchronizer.remote_fetch(remote_path, local_path)
|
||||
self.assertEqual(result, {"error": "File not found"})
|
||||
|
||||
@patch('requests.Session')
|
||||
def test_remote_fetch_forbidden(self, mock_session):
|
||||
remote_path = "img-025.png"
|
||||
local_path = "config/warning_images"
|
||||
|
||||
mock_response = Mock()
|
||||
mock_response.status_code = 403
|
||||
mock_session.return_value.__enter__.return_value.get.return_value = mock_response
|
||||
|
||||
result = self.synchronizer.remote_fetch(remote_path, local_path)
|
||||
self.assertEqual(result, {"error": "Access forbidden or not logged in"})
|
||||
|
||||
@patch('requests.Session')
|
||||
@patch('requests.Session.get', side_effect=requests.ConnectionError("Connection error"))
|
||||
def test_remote_fetch_connection_error(self, mock_get, mock_session):
|
||||
remote_path = "img-025.png"
|
||||
local_path = "config/warning_images"
|
||||
|
||||
result = self.synchronizer.remote_fetch(remote_path, local_path)
|
||||
self.assertEqual(result, {"error": "Connection error"})
|
||||
self.synchronizer.log.error.assert_called_with(
|
||||
"Connection error occurred while fetching the file: Connection error")
|
||||
|
||||
@patch('requests.Session')
|
||||
@patch('requests.Session.get', side_effect=requests.Timeout("Timeout error"))
|
||||
def test_remote_fetch_timeout_error(self, mock_get, mock_session):
|
||||
remote_path = "img-025.png"
|
||||
local_path = "config/warning_images"
|
||||
|
||||
result = self.synchronizer.remote_fetch(remote_path, local_path)
|
||||
self.assertEqual(result, {"error": "Timeout error"})
|
||||
self.synchronizer.log.error.assert_called_with("Timeout error occurred while fetching the file: Timeout error")
|
||||
|
||||
@patch('requests.Session')
|
||||
def test_parse_response_and_execute_success(self, mock_session):
|
||||
mock_response = Mock()
|
||||
mock_response.json.return_value = {
|
||||
"STATUS": "OK",
|
||||
"ACTIONS_TO_DO": [
|
||||
{"remote_path": "img-025.png", "local_path": "config/warning_images"}
|
||||
]
|
||||
}
|
||||
|
||||
with patch.object(self.synchronizer, 'remote_fetch',
|
||||
return_value={"downloaded_file": "config/warning_images/img-025.png"}) as mock_rf:
|
||||
self.synchronizer.parse_response_and_execute(mock_response)
|
||||
mock_rf.assert_called_once_with(remote_path="img-025.png", local_path="config/warning_images")
|
||||
|
||||
def test_parse_response_and_execute_json_error(self):
|
||||
mock_response = Mock()
|
||||
mock_response.json.side_effect = json.JSONDecodeError("Expecting value", "doc", 0)
|
||||
|
||||
self.synchronizer.parse_response_and_execute(mock_response)
|
||||
self.synchronizer.log.error.assert_called_with("Failed to decode JSON response")
|
||||
|
||||
@patch('requests.Session')
|
||||
@patch.object(ArchiveSynchronizer, 'parse_response_and_execute')
|
||||
def test_update_machine_status_success(self, mock_parse_response, mock_session):
|
||||
mock_response = Mock()
|
||||
mock_response.status_code = 200
|
||||
mock_session.return_value.__enter__.return_value.post.return_value = mock_response
|
||||
|
||||
self.synchronizer.machine_status = "running"
|
||||
result = self.synchronizer.update_machine_status()
|
||||
self.assertTrue(result)
|
||||
mock_parse_response.assert_called_once_with(mock_response)
|
||||
self.synchronizer.log.info.assert_called_with("Status: running: Machine Status Updated Successfully")
|
||||
|
||||
@patch('requests.Session')
|
||||
def test_update_machine_status_bad_status_response(self, mock_session):
|
||||
mock_response = Mock()
|
||||
mock_response.status_code = 500
|
||||
mock_session.return_value.__enter__.return_value.post.return_value = mock_response
|
||||
|
||||
self.synchronizer.machine_status = "idle"
|
||||
result = self.synchronizer.update_machine_status()
|
||||
self.assertFalse(result)
|
||||
self.synchronizer.log.warning.assert_called_with(
|
||||
"Status: idle: failed to update machine status: bad status response: 500: no response"
|
||||
)
|
||||
|
||||
@patch('requests.Session', side_effect=requests.ConnectionError("Connection error"))
|
||||
def test_update_machine_status_connection_error(self, mock_session):
|
||||
self.synchronizer.machine_status = "offline"
|
||||
result = self.synchronizer.update_machine_status()
|
||||
self.assertFalse(result)
|
||||
self.synchronizer.log.warning.assert_called_with(
|
||||
"Status: offline: failed to update machine status, archive_endpoint might be unreachable: Connection error"
|
||||
)
|
||||
|
||||
@patch('requests.Session', side_effect=requests.Timeout("Timeout error"))
|
||||
def test_update_machine_status_timeout_error(self, mock_session):
|
||||
self.synchronizer.machine_status = "offline"
|
||||
result = self.synchronizer.update_machine_status()
|
||||
self.assertFalse(result)
|
||||
self.synchronizer.log.warning.assert_called_with(
|
||||
"Status: offline: failed to update machine status, archive_endpoint might be unreachable: Timeout error"
|
||||
)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
@ -9,7 +9,7 @@ from src.components.usb_586x import USB_586x
|
|||
from lib.helpers import ConfigReader
|
||||
|
||||
|
||||
test_config = ConfigReader()
|
||||
test_config = ConfigReader(system_id="test-linux")
|
||||
|
||||
if "USB-5862" in test_config["digital_io"]["id"]:
|
||||
out_size = in_size = 16
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>538</width>
|
||||
<height>234</height>
|
||||
<width>1004</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
|
|
@ -29,102 +29,102 @@
|
|||
<widget class="QLabel" name="label">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>33</y>
|
||||
<width>52</width>
|
||||
<height>16</height>
|
||||
<x>20</x>
|
||||
<y>50</y>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Seriale-1</string>
|
||||
<string>Barcode 1</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="serial_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>68</x>
|
||||
<y>33</y>
|
||||
<width>133</width>
|
||||
<height>22</height>
|
||||
<x>100</x>
|
||||
<y>40</y>
|
||||
<width>321</width>
|
||||
<height>36</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="serial_le_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>68</x>
|
||||
<y>68</y>
|
||||
<width>133</width>
|
||||
<height>22</height>
|
||||
<x>100</x>
|
||||
<y>80</y>
|
||||
<width>321</width>
|
||||
<height>36</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>68</y>
|
||||
<width>52</width>
|
||||
<height>16</height>
|
||||
<x>20</x>
|
||||
<y>90</y>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Seriale-2</string>
|
||||
<string>Barcode 2</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="serial_le_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>68</x>
|
||||
<y>103</y>
|
||||
<width>133</width>
|
||||
<height>22</height>
|
||||
<x>100</x>
|
||||
<y>120</y>
|
||||
<width>321</width>
|
||||
<height>36</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>103</y>
|
||||
<width>52</width>
|
||||
<height>16</height>
|
||||
<x>20</x>
|
||||
<y>130</y>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Seriale-3</string>
|
||||
<string>Barcode 3</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="serial_le_4">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>68</x>
|
||||
<y>138</y>
|
||||
<width>133</width>
|
||||
<height>22</height>
|
||||
<x>100</x>
|
||||
<y>160</y>
|
||||
<width>321</width>
|
||||
<height>36</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>138</y>
|
||||
<width>52</width>
|
||||
<height>16</height>
|
||||
<x>20</x>
|
||||
<y>170</y>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Seriale-4</string>
|
||||
<string>Barcode 4</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" name="n_comp_le">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>297</x>
|
||||
<y>33</y>
|
||||
<width>133</width>
|
||||
<height>22</height>
|
||||
<x>610</x>
|
||||
<y>40</y>
|
||||
<width>321</width>
|
||||
<height>36</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
|
|
@ -134,9 +134,9 @@
|
|||
<widget class="QLabel" name="label_5">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>207</x>
|
||||
<y>33</y>
|
||||
<width>84</width>
|
||||
<x>480</x>
|
||||
<y>50</y>
|
||||
<width>131</width>
|
||||
<height>16</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
|
@ -147,10 +147,10 @@
|
|||
<widget class="QLineEdit" name="serial_le_5">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>68</x>
|
||||
<y>173</y>
|
||||
<width>133</width>
|
||||
<height>22</height>
|
||||
<x>100</x>
|
||||
<y>200</y>
|
||||
<width>321</width>
|
||||
<height>36</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
|
|
@ -160,14 +160,14 @@
|
|||
<widget class="QLabel" name="label_6">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>173</y>
|
||||
<width>52</width>
|
||||
<height>16</height>
|
||||
<x>20</x>
|
||||
<y>210</y>
|
||||
<width>81</width>
|
||||
<height>20</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Seriale-4</string>
|
||||
<string>Barcode 5</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
import ast
|
||||
import json
|
||||
import logging
|
||||
import traceback
|
||||
import weakref
|
||||
from datetime import datetime
|
||||
|
|
@ -40,6 +41,7 @@ class Cell:
|
|||
modified = pyqtSignal(bool)
|
||||
|
||||
def __init__(self, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
|
||||
self.log = logging.getLogger(f"{self.__class__.__name__} ({id(self)})")
|
||||
self.readonly = readonly
|
||||
self.autocomplete = autocomplete
|
||||
self.field_name = field_name
|
||||
|
|
@ -73,7 +75,7 @@ class Cell:
|
|||
self.render(data, *args, **kwargs)
|
||||
if not self.connected_modified:
|
||||
# only connect after first render
|
||||
# to avoid false modified signals trigghered by autocomplete
|
||||
# to avoid false modified signals triggered by autocomplete
|
||||
self.connect_modified()
|
||||
self.connected_modified = True
|
||||
|
||||
|
|
@ -221,11 +223,6 @@ class Json_External_Dialog_Editor_Cell_Widget(QPushButton, Cell):
|
|||
def render(self, data, field_name=None, row_number=None, crud=None):
|
||||
self.editor.render(data, field_name=field_name, row_number=row_number, crud=crud)
|
||||
|
||||
# def _parse(self, action=None, row_number=None, crud=None):
|
||||
# if action != "commit" and self.connected_modified and not self.is_modified:
|
||||
# return self.value
|
||||
# return self.editor.parse(action=action, row_number=row_number, crud=crud)
|
||||
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
return self.editor.parse(row_number=row_number, crud=crud)
|
||||
|
||||
|
|
@ -275,7 +272,7 @@ class Crud(Widget):
|
|||
self.filter_delay = QTimer()
|
||||
self.filter_delay.setSingleShot(True)
|
||||
self.filter_delay.setInterval(500)
|
||||
self.filter_delay.timeout.connect(lambda self=weakref.ref(self): self().do_filter(self().filter_cn))
|
||||
self.filter_delay.timeout.connect(lambda selfi=weakref.ref(self): selfi().do_filter(selfi().filter_cn))
|
||||
self.db_tw.crud = self
|
||||
self.refresh("init")
|
||||
self.db_tw.horizontalHeader().sectionClicked.connect(self.toggle_sort)
|
||||
|
|
@ -288,13 +285,13 @@ class Crud(Widget):
|
|||
else:
|
||||
self.db_tw.setSelectionMode(QAbstractItemView.ExtendedSelection)
|
||||
self.db_tw.itemSelectionChanged.connect(self.show_selection)
|
||||
self.revert_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("revert"))
|
||||
self.revert_b.clicked.connect(lambda checked, selfi=weakref.ref(self): selfi().refresh("revert"))
|
||||
if self.pagination is not False:
|
||||
self.start_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("pagination", page=0))
|
||||
self.previous_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("pagination", page=max(self().page - 1, 0)))
|
||||
self.page_n_sb.valueChanged.connect(lambda page, self=weakref.ref(self): self().refresh("pagination", page=page - 1))
|
||||
self.next_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("pagination", page=self().page + 1))
|
||||
self.end_b.clicked.connect(lambda checked, self=weakref.ref(self): self().refresh("pagination", page=-1))
|
||||
self.start_b.clicked.connect(lambda checked, selfi=weakref.ref(self): selfi().refresh("pagination", page=0))
|
||||
self.previous_b.clicked.connect(lambda checked, selfi=weakref.ref(self): selfi().refresh("pagination", page=max(selfi().page - 1, 0)))
|
||||
self.page_n_sb.valueChanged.connect(lambda page, selfi=weakref.ref(self): selfi().refresh("pagination", page=page - 1))
|
||||
self.next_b.clicked.connect(lambda checked, selfi=weakref.ref(self): selfi().refresh("pagination", page=selfi().page + 1))
|
||||
self.end_b.clicked.connect(lambda checked, selfi=weakref.ref(self): selfi().refresh("pagination", page=-1))
|
||||
else:
|
||||
self.next_b.setHidden(True)
|
||||
self.previous_b.setHidden(True)
|
||||
|
|
@ -473,8 +470,8 @@ class Crud(Widget):
|
|||
if fn in self.db.table_fields:
|
||||
w.setPlaceholderText("Filtro")
|
||||
w.setText(self.filters.get(fn, None))
|
||||
w.editingFinished.connect(lambda cn=cn, self=weakref.ref(self): self().do_filter(cn))
|
||||
w.textChanged.connect(lambda text, cn=cn, self=weakref.ref(self): self().filter_edited(cn))
|
||||
w.editingFinished.connect(lambda cni=cn, selfi=weakref.ref(self): selfi().do_filter(cni))
|
||||
w.textChanged.connect(lambda text, cni=cn, selfi=weakref.ref(self): selfi().filter_edited(cni))
|
||||
else:
|
||||
w.setPlaceholderText("Non filtrabile")
|
||||
w.setEnabled(False)
|
||||
|
|
|
|||
|
|
@ -21,8 +21,7 @@ class Login(Widget):
|
|||
super().__init__()
|
||||
self.welcome_l.setText("BENVENUTO, PER INIZIARE IL COLLAUDO, EFFETTUA L'ACCESSO:")
|
||||
self.user_cb.addItems(Users.get_usernames())
|
||||
|
||||
ArchiveSynchronizer.machine_status = "logged-in"
|
||||
self.archive_synch= ArchiveSynchronizer()
|
||||
|
||||
QShortcut(QKeySequence("Return"), self).activated.connect(self.login_b.click)
|
||||
QShortcut(QKeySequence("Enter"), self).activated.connect(self.login_b.click)
|
||||
|
|
@ -59,7 +58,6 @@ class Login(Widget):
|
|||
login_count += 1
|
||||
# /TESTING
|
||||
self.successful_login.emit()
|
||||
ArchiveSynchronizer.machine_status = "logged-in"
|
||||
|
||||
def show_osk(self):
|
||||
self.password_le.setFocus()
|
||||
|
|
|
|||
|
|
@ -5,15 +5,17 @@ import sys
|
|||
import weakref
|
||||
from glob import glob
|
||||
|
||||
from lib.db import Recipes, Steps, Users, db
|
||||
from lib.db import Recipes, Users, db
|
||||
from PyQt5.QtCore import QTimer, pyqtSignal
|
||||
from PyQt5.QtGui import QKeySequence
|
||||
from PyQt5.QtWidgets import QFileDialog, QMessageBox, QShortcut
|
||||
import shutil
|
||||
from ui.crud import Crud, Json_External_Dialog_Editor_Cell_Widget
|
||||
from ui.helpers import replace_widget
|
||||
from ui.recipe_spec_and_step_editor import Recipe_Spec_And_Step_Editor
|
||||
from ui.widget import Widget
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
class Noner:
|
||||
def __getitem__(self, key):
|
||||
|
|
@ -33,8 +35,6 @@ class Recipe_Selection(Widget):
|
|||
self.second_leak_test_enabled = self.config["hardware_config"]["second_leak_test"] == "present"
|
||||
self.defaults = self.config.get("recipes_defaults", noner)
|
||||
self.unsupported_steps = unsupported_steps
|
||||
if not self.second_leak_test_enabled:
|
||||
self.unsupported_steps.add("leak_2")
|
||||
session = Users.get_session()
|
||||
if session.is_admin:
|
||||
readonly = False
|
||||
|
|
@ -94,7 +94,6 @@ class Recipe_Selection(Widget):
|
|||
self.config.get("recipes_defaults", noner)["verifica_resistenza_connettore_abilitata"]) and "resistance" not in self.unsupported_steps,
|
||||
"screws": len(self.config.get("recipes_defaults", noner)["avvitatura_abilitata"]) and "screws" not in self.unsupported_steps,
|
||||
"instruction": len(self.config.get("recipes_defaults", noner)["istruzione_abilitata"]) and "instruction" not in self.unsupported_steps,
|
||||
"instruction_extra": len(self.config.get("recipes_defaults", noner)["istruzione_abilitata_extra"]) and "instruction_extra" 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,
|
||||
"leak_2": len(self.config.get("recipes_defaults", noner)["prova_tenuta_abilitata_2"]) and "leak_2" not in self.unsupported_steps,
|
||||
"vision": len(self.config.get("recipes_defaults", noner)["test_visione_abilitato"]) and "vision" not in self.unsupported_steps,
|
||||
|
|
@ -137,6 +136,7 @@ class Recipe_Selection(Widget):
|
|||
self.import_b.setVisible(False)
|
||||
self.export_b.setVisible(False)
|
||||
self.delete_all_b.setVisible(False)
|
||||
|
||||
# TESTING
|
||||
if "--auto-select" in sys.argv:
|
||||
recipe = "R56738/1"
|
||||
|
|
@ -181,6 +181,7 @@ class Recipe_Selection(Widget):
|
|||
val = dict.get(key, self.defaults[key])
|
||||
return val if val != "" else self.defaults[key]
|
||||
|
||||
# READ RECIPE STEPS FROM CSV ROW
|
||||
def read_steps(self, row, defaults=None):
|
||||
if defaults is None:
|
||||
global noner
|
||||
|
|
@ -272,26 +273,27 @@ class Recipe_Selection(Widget):
|
|||
},
|
||||
}
|
||||
|
||||
# IMPORT RECIPES FROM CSV FILE TO DATABASE
|
||||
def import_recipes(self, csv_path=None, defaults=None):
|
||||
if defaults is None:
|
||||
global noner
|
||||
defaults = self.config.get("recipes_defaults", noner)
|
||||
|
||||
if 'codice_prodotto' not in defaults:
|
||||
defaults['codice_prodotto'] = "VALORE_PREDEFINITO"
|
||||
if csv_path is None:
|
||||
options = QFileDialog.Options()
|
||||
options |= QFileDialog.DontUseNativeDialog
|
||||
csv_path, _ = QFileDialog.getOpenFileName(
|
||||
None,
|
||||
"Esportazione ricette",
|
||||
self,
|
||||
"Importazione ricette",
|
||||
"ricette.csv",
|
||||
"CSV data (*.csv);;All Files (*)",
|
||||
options=options,
|
||||
)
|
||||
csv_path = str(csv_path)
|
||||
if not len(csv_path):
|
||||
return
|
||||
self.log.info(f"recipes: importing recipes from {csv_path}")
|
||||
recipe_name_field = self.config.get("recipe", {}).get("recipe_name_field", "codice_ricetta").strip()
|
||||
part_number_field = self.config.get("recipe", {}).get("part_number_field", "part number").strip()
|
||||
part_number_field = self.config.get("recipe", {}).get("part_number_field", "part_number").strip()
|
||||
description_field = self.config.get("recipe", {}).get("description_field", "descrizione").strip()
|
||||
barcode_enable_field = self.config.get("recipe", {}).get("barcode_enable_field", "verifica_codice_a_barre_abilitata").strip()
|
||||
|
||||
|
|
@ -302,6 +304,8 @@ class Recipe_Selection(Widget):
|
|||
row = dict((k.lower(), v) for k, v in ucrow.items())
|
||||
recipe_name = row.get(recipe_name_field, defaults["codice_ricetta"])
|
||||
steps_specs = self.read_steps(row, defaults=defaults)
|
||||
|
||||
# create recipe or update existing one in DB
|
||||
try:
|
||||
recipe = Recipes.get_by_id(recipe_name)
|
||||
steps = recipe.get_steps_map()
|
||||
|
|
@ -309,21 +313,12 @@ class Recipe_Selection(Widget):
|
|||
except Recipes.DoesNotExist:
|
||||
recipe = Recipes(name=recipe_name, part_number="TEMPORARY")
|
||||
steps = {}
|
||||
for step_type, step_spec in steps_specs.items():
|
||||
step = Steps()
|
||||
steps[step_type] = step
|
||||
for step_name, step_spec in steps_specs.items():
|
||||
if step_name not in self.unsupported_steps:
|
||||
steps[step_name] = step_spec
|
||||
recipe_is_new = True
|
||||
for step_name, step_spec in steps_specs.items():
|
||||
step = steps[step_name]
|
||||
# step.type = re.sub(r"^(.*)_[0-9]+$", r"\1", step_name)
|
||||
step.type = step_name
|
||||
step.spec = step_spec
|
||||
if recipe_is_new:
|
||||
step.save(force_insert=True)
|
||||
else:
|
||||
step.save()
|
||||
recipe.client = row.get("cliente", defaults["cliente"])
|
||||
recipe.part_number = row.get(part_number_field, defaults["codice_prodotto"])
|
||||
recipe.part_number = row.get(part_number_field, defaults["part_number"])
|
||||
recipe.description = row.get(description_field, defaults["descrizione"])
|
||||
recipe.spec = {
|
||||
"count": len(row.get("dimensione_lotto_abilitata", defaults["dimensione_lotto_abilitata"])) and "count" not in self.unsupported_steps,
|
||||
|
|
@ -338,23 +333,9 @@ class Recipe_Selection(Widget):
|
|||
"leak_2": len(row.get("prova_tenuta_abilitata_2", defaults["prova_tenuta_abilitata_2"])) and "leak_2" not in self.unsupported_steps,
|
||||
"vision": len(row.get("test_visione_abilitato", defaults["test_visione_abilitato"])) and "vision" not in self.unsupported_steps,
|
||||
"print": len(row.get("stampa_etichetta_abilitata", defaults["stampa_etichetta_abilitata"])) and "print" not in self.unsupported_steps,
|
||||
"steps": [], # should be pks of the enabled steps
|
||||
"available_steps": {
|
||||
"count": steps["count"].get_id(),
|
||||
"connector": steps["connector"].get_id(),
|
||||
"barcodes": steps["barcodes"].get_id(),
|
||||
"resistance": steps["resistance"].get_id(),
|
||||
"screws": steps["screws"].get_id(),
|
||||
"instruction": steps["instruction"].get_id(),
|
||||
"leak_1": steps["leak_1"].get_id(),
|
||||
"leak_2": steps["leak_2"].get_id(),
|
||||
"vision": steps["vision"].get_id(),
|
||||
"print": steps["print"].get_id(),
|
||||
},
|
||||
"steps": steps,
|
||||
}
|
||||
for step_name, step in recipe.spec["available_steps"].items():
|
||||
if recipe.spec[step_name]:
|
||||
recipe.spec["steps"].append(step)
|
||||
recipe.spec["steps"]=steps_specs
|
||||
if recipe_is_new:
|
||||
recipe.save(force_insert=True)
|
||||
else:
|
||||
|
|
@ -364,13 +345,17 @@ class Recipe_Selection(Widget):
|
|||
self.log.info(f"recipes: imported {count} rows.")
|
||||
self.crud.refresh()
|
||||
|
||||
# EXPORT RECIPES TABLE TO CSV FILE
|
||||
def export_recipes(self, csv_path=None):
|
||||
if csv_path is None:
|
||||
options = QFileDialog.Options()
|
||||
options |= QFileDialog.DontUseNativeDialog
|
||||
csv_path, _ = QFileDialog.getSaveFileName(
|
||||
None,
|
||||
self,
|
||||
"Esportazione ricette",
|
||||
"ricette.csv",
|
||||
"CSV data (*.csv);;All Files (*)",
|
||||
options=options,
|
||||
)
|
||||
csv_path = str(csv_path)
|
||||
if not len(csv_path):
|
||||
|
|
@ -381,121 +366,135 @@ class Recipe_Selection(Widget):
|
|||
if len(csv_dir):
|
||||
os.makedirs(csv_dir, exist_ok=True)
|
||||
recipe_name_field = self.config.get("recipe", {}).get("recipe_name_field", "codice_ricetta").strip()
|
||||
part_number_field = self.config.get("recipe", {}).get("part_number_field", "codice_prodotto").strip()
|
||||
description_field = self.config.get("recipe", {}).get("description_field", "descrizione").strip()
|
||||
barcode_enable_field = self.config.get("recipe", {}).get("barcode_enable_field", "verifica_codice_a_barre_abilitata").strip()
|
||||
barcode_serial_field = self.config.get("recipe", {}).get("barcode_serial_field", "codice_a_barre").strip()
|
||||
print_template_field = self.config.get("recipe", {}).get("label_template_field", "modello_etichetta").strip()
|
||||
data = []
|
||||
fieldnames = [
|
||||
recipe_name_field,
|
||||
"cliente",
|
||||
part_number_field,
|
||||
description_field,
|
||||
"dimensione_lotto_abilitata",
|
||||
"dimensione_lotto",
|
||||
"verifica_connettore_abilitata",
|
||||
"connettore",
|
||||
barcode_enable_field,
|
||||
barcode_serial_field,
|
||||
"verifica_resistenza_connettore_abilitata",
|
||||
"scala_resistenza",
|
||||
"r nominale",
|
||||
"tolleranza_resistenza_pos",
|
||||
"tolleranza_resistenza_neg",
|
||||
"avvitatura_abilitata",
|
||||
"viti",
|
||||
"prova_tenuta_abilitata",
|
||||
"tempo_pre_riempimento",
|
||||
"pressione_pre_riempimento",
|
||||
"tempo_riempimento",
|
||||
"tempo_assestamento",
|
||||
"percentuale_minima_pressione_assestamento",
|
||||
"percentuale_massima_pressione_assestamento",
|
||||
"tempo_di_test",
|
||||
"pressione_di_test_delta_minimo",
|
||||
"pressione_di_test",
|
||||
"pressione_di_test_delta_massimo",
|
||||
"tempo_svuotamento",
|
||||
"pressione_svuotamento",
|
||||
"prova_tenuta_abilitata_2",
|
||||
"tempo_pre_riempimento_2",
|
||||
"pressione_pre_riempimento_2",
|
||||
"tempo_riempimento_2",
|
||||
"tempo_assestamento_2",
|
||||
"percentuale_minima_pressione_assestamento_2",
|
||||
"percentuale_massima_pressione_assestamento_2",
|
||||
"tempo_di_test_2",
|
||||
"pressione_di_test_delta_minimo_2",
|
||||
"pressione_di_test_2",
|
||||
"pressione_di_test_delta_massimo_2",
|
||||
"tempo_svuotamento_2",
|
||||
"pressione_svuotamento_2",
|
||||
"test_visione_abilitato",
|
||||
"ricetta_visione",
|
||||
"stampa_etichetta_abilitata",
|
||||
print_template_field,
|
||||
]
|
||||
fieldnames = set() # Use a set to avoid duplicates
|
||||
for recipe in list(Recipes.select()):
|
||||
steps = recipe.get_steps_map()
|
||||
exportable = {
|
||||
# BASE SECTION
|
||||
recipe_name_field: recipe.name,
|
||||
"cliente": recipe.client,
|
||||
part_number_field: recipe.part_number,
|
||||
description_field: recipe.description,
|
||||
# "dimensione_lotto_abilitata": "x" if recipe.spec["count"] else "",
|
||||
# "dimensione_lotto": steps["count"].spec["amount"],
|
||||
"verifica_connettore_abilitata": "x" if recipe.spec["connector"] else "",
|
||||
"connettore": steps["connector"].spec["connector"],
|
||||
barcode_enable_field: "x" if recipe.spec["barcodes"] else "",
|
||||
barcode_serial_field: steps["barcodes"].spec["serial"],
|
||||
"verifica_resistenza_connettore_abilitata": "x" if recipe.spec["resistance"] else "",
|
||||
"scala_resistenza": steps["resistance"].spec["scale"],
|
||||
"r nominale": steps["resistance"].spec["expected"],
|
||||
"tolleranza_resistenza_pos": steps["resistance"].spec["tolerance_pos"],
|
||||
"tolleranza_resistenza_neg": steps["resistance"].spec["tolerance_neg"],
|
||||
# "avvitatura_abilitata": "x" if recipe.spec["screws"] else "",
|
||||
# "viti": steps["screws"].spec["quantity"],
|
||||
"prova_tenuta_abilitata": "x" if recipe.spec["leak_1"] else "",
|
||||
"tempo_pre_riempimento": steps["leak_1"].spec["pre_filling_time"],
|
||||
"pressione_pre_riempimento": steps["leak_1"].spec["pre_filling_pressure"],
|
||||
"tempo_riempimento": steps["leak_1"].spec["filling_time"],
|
||||
"tempo_assestamento": steps["leak_1"].spec["settling_time"],
|
||||
"percentuale_minima_pressione_assestamento": steps["leak_1"].spec["settling_pressure_min_percent"],
|
||||
"percentuale_massima_pressione_assestamento": steps["leak_1"].spec["settling_pressure_max_percent"],
|
||||
"tempo_di_test": steps["leak_1"].spec["test_time"],
|
||||
"pressione_di_test_delta_minimo": steps["leak_1"].spec["test_pressure_qneg"],
|
||||
"pressione_di_test": steps["leak_1"].spec["test_pressure"],
|
||||
"pressione_di_test_delta_massimo": steps["leak_1"].spec["test_pressure_qpos"],
|
||||
"tempo_svuotamento": steps["leak_1"].spec["flush_time"],
|
||||
"pressione_svuotamento": steps["leak_1"].spec["flush_pressure"],
|
||||
"prova_tenuta_abilitata_2": "x" if recipe.spec["leak_2"] else "",
|
||||
"tempo_pre_riempimento_2": steps["leak_2"].spec["pre_filling_time"],
|
||||
"pressione_pre_riempimento_2": steps["leak_2"].spec["pre_filling_pressure"],
|
||||
"tempo_riempimento_2": steps["leak_2"].spec["filling_time"],
|
||||
"tempo_assestamento_2": steps["leak_2"].spec["settling_time"],
|
||||
"percentuale_minima_pressione_assestamento_2": steps["leak_2"].spec["settling_pressure_min_percent"],
|
||||
"percentuale_massima_pressione_assestamento_2": steps["leak_2"].spec["settling_pressure_max_percent"],
|
||||
"tempo_di_test_2": steps["leak_2"].spec["test_time"],
|
||||
"pressione_di_test_delta_minimo_2": steps["leak_2"].spec["test_pressure_qneg"],
|
||||
"pressione_di_test_2": steps["leak_2"].spec["test_pressure"],
|
||||
"pressione_di_test_delta_massimo_2": steps["leak_2"].spec["test_pressure_qpos"],
|
||||
"tempo_svuotamento_2": steps["leak_2"].spec["flush_time"],
|
||||
"pressione_svuotamento_2": steps["leak_2"].spec["flush_pressure"],
|
||||
"test_visione_abilitato": recipe.spec["vision"],
|
||||
"ricetta_visione": steps["vision"].spec["recipe"],
|
||||
"stampa_etichetta_abilitata": "x" if recipe.spec["print"] else "",
|
||||
print_template_field: steps["print"].spec["template"],
|
||||
"part_number": recipe.part_number,
|
||||
}
|
||||
|
||||
# Add base fields to the fieldnames
|
||||
fieldnames.update([recipe_name_field, "cliente", "part_number"])
|
||||
|
||||
# Check and add fields conditionally for each section
|
||||
if "connector" in steps:
|
||||
exportable.update({
|
||||
"verifica_connettore_abilitata": "x",
|
||||
"connettore": steps["connector"].spec["connector"]
|
||||
})
|
||||
fieldnames.update(["verifica_connettore_abilitata", "connettore"])
|
||||
|
||||
if "resistance" in steps:
|
||||
exportable.update({
|
||||
"verifica_resistenza_connettore_abilitata": "x",
|
||||
"scala_resistenza": steps["resistance"].spec["scale"],
|
||||
"r nominale": steps["resistance"].spec["expected"],
|
||||
"tolleranza_resistenza_pos": steps["resistance"].spec["tolerance_pos"],
|
||||
"tolleranza_resistenza_neg": steps["resistance"].spec["tolerance_neg"]
|
||||
})
|
||||
fieldnames.update(["verifica_resistenza_connettore_abilitata", "scala_resistenza", "r nominale",
|
||||
"tolleranza_resistenza_pos", "tolleranza_resistenza_neg"])
|
||||
|
||||
if "barcodes" in steps:
|
||||
exportable.update({
|
||||
barcode_enable_field: "x",
|
||||
barcode_serial_field: steps["barcodes"].spec["serial"]
|
||||
})
|
||||
fieldnames.update([barcode_enable_field, barcode_serial_field])
|
||||
|
||||
if recipe.spec.get("steps", {}).get("screws") and "screws" in steps:
|
||||
exportable.update({
|
||||
"avvitatura_abilitata": "x",
|
||||
"viti": steps["screws"].spec["quantity"]
|
||||
})
|
||||
fieldnames.update(["avvitatura_abilitata", "viti"])
|
||||
|
||||
if "leak_1" in steps:
|
||||
exportable.update({
|
||||
"prova_tenuta_abilitata": "x",
|
||||
"tempo_pre_riempimento": steps["leak_1"].spec["pre_filling_time"],
|
||||
"pressione_pre_riempimento": steps["leak_1"].spec["pre_filling_pressure"],
|
||||
"tempo_riempimento": steps["leak_1"].spec["filling_time"],
|
||||
"tempo_assestamento": steps["leak_1"].spec["settling_time"],
|
||||
"percentuale_minima_pressione_assestamento": steps["leak_1"].spec["settling_pressure_min_percent"],
|
||||
"percentuale_massima_pressione_assestamento": steps["leak_1"].spec["settling_pressure_max_percent"],
|
||||
"tempo_di_test": steps["leak_1"].spec["test_time"],
|
||||
"pressione_di_test_delta_minimo": steps["leak_1"].spec["test_pressure_qneg"],
|
||||
"pressione_di_test": steps["leak_1"].spec["test_pressure"],
|
||||
"pressione_di_test_delta_massimo": steps["leak_1"].spec["test_pressure_qpos"],
|
||||
"tempo_svuotamento": steps["leak_1"].spec["flush_time"],
|
||||
"pressione_svuotamento": steps["leak_1"].spec["flush_pressure"],
|
||||
})
|
||||
fieldnames.update(["prova_tenuta_abilitata", "tempo_pre_riempimento", "pressione_pre_riempimento",
|
||||
"tempo_riempimento", "tempo_assestamento",
|
||||
"percentuale_minima_pressione_assestamento",
|
||||
"percentuale_massima_pressione_assestamento", "tempo_di_test",
|
||||
"pressione_di_test_delta_minimo",
|
||||
"pressione_di_test", "pressione_di_test_delta_massimo", "tempo_svuotamento",
|
||||
"pressione_svuotamento"])
|
||||
|
||||
if "leak_2" in steps:
|
||||
exportable.update({
|
||||
"prova_tenuta_abilitata_2": "x",
|
||||
"tempo_pre_riempimento_2": steps["leak_2"].spec["pre_filling_time"],
|
||||
"pressione_pre_riempimento_2": steps["leak_2"].spec["pre_filling_pressure"],
|
||||
"tempo_riempimento_2": steps["leak_2"].spec["filling_time"],
|
||||
"tempo_assestamento_2": steps["leak_2"].spec["settling_time"],
|
||||
"percentuale_minima_pressione_assestamento_2": steps["leak_2"].spec[
|
||||
"settling_pressure_min_percent"],
|
||||
"percentuale_massima_pressione_assestamento_2": steps["leak_2"].spec[
|
||||
"settling_pressure_max_percent"],
|
||||
"tempo_di_test_2": steps["leak_2"].spec["test_time"],
|
||||
"pressione_di_test_delta_minimo_2": steps["leak_2"].spec["test_pressure_qneg"],
|
||||
"pressione_di_test_2": steps["leak_2"].spec["test_pressure"],
|
||||
"pressione_di_test_delta_massimo_2": steps["leak_2"].spec["test_pressure_qpos"],
|
||||
"tempo_svuotamento_2": steps["leak_2"].spec["flush_time"],
|
||||
"pressione_svuotamento_2": steps["leak_2"].spec["flush_pressure"],
|
||||
})
|
||||
fieldnames.update(["prova_tenuta_abilitata_2", "tempo_pre_riempimento_2", "pressione_pre_riempimento_2",
|
||||
"tempo_riempimento_2", "tempo_assestamento_2",
|
||||
"percentuale_minima_pressione_assestamento_2",
|
||||
"percentuale_massima_pressione_assestamento_2", "tempo_di_test_2",
|
||||
"pressione_di_test_delta_minimo_2", "pressione_di_test_2",
|
||||
"pressione_di_test_delta_massimo_2",
|
||||
"tempo_svuotamento_2", "pressione_svuotamento_2"])
|
||||
|
||||
if "vision" in steps:
|
||||
exportable.update({
|
||||
"test_visione_abilitato": recipe.spec["vision"],
|
||||
"ricetta_visione": steps["vision"].spec["recipe"]
|
||||
})
|
||||
fieldnames.update(["test_visione_abilitato", "ricetta_visione"])
|
||||
|
||||
if "print" in steps:
|
||||
exportable.update({
|
||||
"stampa_etichetta_abilitata": "x",
|
||||
print_template_field: steps["print"].spec["template"],
|
||||
"etichette_supplementari": steps["print"].spec["extra_label"]
|
||||
})
|
||||
fieldnames.update(["stampa_etichetta_abilitata", print_template_field, "etichette_supplementari"])
|
||||
|
||||
# Append the exportable dictionary to the data list
|
||||
data.append(exportable)
|
||||
|
||||
# Convert the set to a list for CSV writing
|
||||
fieldnames = list(fieldnames)
|
||||
|
||||
# Export to CSV if there is data
|
||||
if len(data):
|
||||
self.log.info(f"recipes: exporting recipes to {csv_path}")
|
||||
with open(csv_path, "w", newline="") as f:
|
||||
w = csv.DictWriter(f, fieldnames, extrasaction="ignore")
|
||||
w = csv.DictWriter(f, fieldnames=fieldnames, extrasaction="ignore")
|
||||
w.writeheader()
|
||||
w.writerows(data)
|
||||
self.log.info(f"recipes: exported {len(data)} rows.")
|
||||
|
||||
def delete_recipes(self):
|
||||
ret = QMessageBox.warning(
|
||||
None,
|
||||
|
|
@ -506,5 +505,41 @@ class Recipe_Selection(Widget):
|
|||
)
|
||||
if ret == QMessageBox.Ok:
|
||||
Recipes.delete().execute()
|
||||
Steps.delete().execute()
|
||||
self.crud.refresh()
|
||||
def backup_current_recipes(self):
|
||||
# Define the backup directory and file name
|
||||
backup_dir = os.path.join('config', 'csv_import', 'backup_csv')
|
||||
timestamp = datetime.now().strftime("%d%m%y%H%M%S")
|
||||
backup_file = f"backup_{timestamp}.csv"
|
||||
backup_path = os.path.join(backup_dir, backup_file)
|
||||
|
||||
# Ensure the backup directory exists
|
||||
os.makedirs(backup_dir, exist_ok=True)
|
||||
|
||||
# Export current recipes to backup file
|
||||
self.export_recipes(csv_path=backup_path)
|
||||
|
||||
def move_imported_csv(self, csv_path):
|
||||
# Move the imported CSV to the 'imported_csv' directory
|
||||
imported_dir = os.path.join('config', 'csv_import', 'imported_csv')
|
||||
os.makedirs(imported_dir, exist_ok=True)
|
||||
imported_path = os.path.join(imported_dir, os.path.basename(csv_path))
|
||||
shutil.move(csv_path, imported_path)
|
||||
self.log.info(f"Imported CSV moved to {imported_path}")
|
||||
return imported_path
|
||||
|
||||
def check_and_import_auto_csv(self):
|
||||
# Define the directory to check
|
||||
auto_import_dir = os.path.join('config', 'csv_import', 'auto_csv_import')
|
||||
|
||||
# Check if the directory exists and is not empty
|
||||
if os.path.exists(auto_import_dir) and os.listdir(auto_import_dir):
|
||||
# Perform backup
|
||||
self.backup_current_recipes()
|
||||
|
||||
# Move and import each CSV file in the directory
|
||||
for csv_file in os.listdir(auto_import_dir):
|
||||
csv_path = os.path.join(auto_import_dir, csv_file)
|
||||
if os.path.isfile(csv_path) and csv_file.endswith(".csv"):
|
||||
self.import_recipes(csv_path=csv_path)
|
||||
self.move_imported_csv(csv_path)
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
from lib.db import Steps
|
||||
from peewee import IntegrityError
|
||||
from ui.barcodes_step_editor import Barcodes_Step_Editor
|
||||
from ui.connector_step_editor import Connector_Step_Editor
|
||||
|
|
@ -16,7 +15,8 @@ from ui.instruction_step_editor import Instruction_Step_Editor
|
|||
class Recipe_Spec_And_Step_Editor(Editor):
|
||||
def __init__(self, action=None, cell_widget=None, unsupported_steps=None):
|
||||
super().__init__(action=action, cell_widget=cell_widget)
|
||||
self.map = {
|
||||
self.crud = None
|
||||
self.steps_map = {
|
||||
"count": {
|
||||
"type": "count",
|
||||
"enable": self.count_enabled_cb,
|
||||
|
|
@ -97,20 +97,20 @@ class Recipe_Spec_And_Step_Editor(Editor):
|
|||
},
|
||||
}
|
||||
for step_name in unsupported_steps:
|
||||
self.map.get(step_name, {})["hidden"] = True
|
||||
self.spec.update({step_name: map["enable"] for step_name, map in self.map.items()})
|
||||
for map in self.map.values():
|
||||
self.steps_map.get(step_name, {})["hidden"] = True
|
||||
self.spec.update({step_name: map["enable"] for step_name, map in self.steps_map.items()})
|
||||
for map in self.steps_map.values():
|
||||
editor = map.get("editor", None)
|
||||
if editor is not None:
|
||||
replace_widget(self, map["widget"], editor)
|
||||
self.steps_tw.setTabVisible(self.steps_tw.indexOf(map["tab"]), not map.get("hidden", False))
|
||||
self.save_steps_b.clicked.connect(self.save_steps)
|
||||
self.reset_steps_b.clicked.connect(self.reset_steps)
|
||||
self.available_steps = {}
|
||||
self.recipe = None
|
||||
|
||||
def set_readonly(self, readonly=True):
|
||||
super().set_readonly(readonly=readonly)
|
||||
for map in self.map.values():
|
||||
for map in self.steps_map.values():
|
||||
editor = map.get("editor", None)
|
||||
if editor is not None:
|
||||
editor.set_readonly(readonly=readonly)
|
||||
|
|
@ -123,84 +123,58 @@ class Recipe_Spec_And_Step_Editor(Editor):
|
|||
step_editors_autocomplete = autocomplete.get("step_editors", None)
|
||||
super().do_autocomplete(autocomplete)
|
||||
if step_editors_autocomplete is not None:
|
||||
for step_name, map in self.map.items():
|
||||
for step_name, map in self.steps_map.items():
|
||||
editor = map.get("editor", None)
|
||||
if editor is not None:
|
||||
editor.do_autocomplete(step_editors_autocomplete.get(step_name, None))
|
||||
|
||||
def init(self, action=None):
|
||||
self.get_steps()
|
||||
if action == "add":
|
||||
self.save_steps()
|
||||
|
||||
def showing_dialog(self):
|
||||
self.reset_steps()
|
||||
|
||||
# def connect_modified(self, check_modified):
|
||||
# super().connect_modified(check_modified)
|
||||
# for map in self.map.values():
|
||||
# editor = map.get("editor", None)
|
||||
# if editor is not None:
|
||||
# editor.connect_modified(check_modified)
|
||||
|
||||
def render(self, data, field_name=None, row_number=None, crud=None):
|
||||
super().render(data, field_name=field_name, row_number=row_number, crud=crud)
|
||||
self.available_steps = data.get("available_steps", None)
|
||||
self.get_steps()
|
||||
steps = set(data.get("steps", set()))
|
||||
for map in self.map.values():
|
||||
step = map.get("step", None)
|
||||
if step is not None:
|
||||
map["enable"].setChecked(step.name in steps and not map.get("hidden", False))
|
||||
self.crud = crud
|
||||
steps_data = data.get("steps", {})
|
||||
|
||||
for step_name, step_def in self.steps_map.items():
|
||||
if not step_def.get("hidden", False):
|
||||
step_enabled = data.get(step_name, {}) in (True, 1, "x")
|
||||
step_def["enable"].setChecked(step_enabled)
|
||||
step_def["spec"] = steps_data.get(step_name, {})
|
||||
|
||||
self.render_steps()
|
||||
|
||||
def parse(self, action=None, row_number=None, crud=None):
|
||||
# if action == "commit":
|
||||
# self.save_steps()
|
||||
ret = super().parse(row_number=row_number, crud=crud)
|
||||
ret["steps"] = []
|
||||
ret["available_steps"] = {}
|
||||
for step_name, map in self.map.items():
|
||||
ret["available_steps"][step_name] = map["step"].name
|
||||
if map["enable"].isChecked() and not map.get("hidden", False):
|
||||
ret["steps"].append(map["step"].name)
|
||||
ret["steps"] = {}
|
||||
#self.save_steps()
|
||||
for step_name, step_map in self.steps_map.items():
|
||||
if not step_map.get("hidden", False):
|
||||
ret["steps"][step_name]=self.steps_map[step_name]["spec"]
|
||||
return ret
|
||||
|
||||
def get_steps(self):
|
||||
for step_name, map in self.map.items():
|
||||
if step_name in self.available_steps:
|
||||
try:
|
||||
map["step"] = Steps.get_by_id(self.available_steps[step_name])
|
||||
map["step_is_new"] = False
|
||||
except Steps.DoesNotExist:
|
||||
map["step"] = Steps(name=self.available_steps[step_name], type=map["type"], spec={})
|
||||
map["step_is_new"] = True
|
||||
elif map.get("step", None) is None:
|
||||
map["step"] = Steps(type=map["type"], spec={})
|
||||
map["step_is_new"] = True
|
||||
|
||||
def render_steps(self):
|
||||
for step_name, map in self.map.items():
|
||||
step = map.get("step", None)
|
||||
if step is not None:
|
||||
editor = map.get("editor", None)
|
||||
for step_name, step_map in self.steps_map.items():
|
||||
spec = step_map.get("spec", None)
|
||||
if spec is not None:
|
||||
editor = step_map.get("editor", None)
|
||||
if editor is not None:
|
||||
editor.render(step.spec)
|
||||
editor.render(spec)
|
||||
|
||||
def reset_steps(self):
|
||||
self.get_steps()
|
||||
self.render_steps()
|
||||
|
||||
def save_steps(self):
|
||||
for map in self.map.values():
|
||||
step = map.get("step", None)
|
||||
if step is not None:
|
||||
editor = map.get("editor", None)
|
||||
for step_name,step_map in self.steps_map.items():
|
||||
if not step_map.get("hidden", False):
|
||||
editor = step_map.get("editor", None)
|
||||
if editor is not None:
|
||||
step.spec = editor.parse()
|
||||
if map["step_is_new"]:
|
||||
step.save(force_insert=True)
|
||||
step_dict = editor.parse()
|
||||
self.steps_map[step_name]["spec"]=step_dict
|
||||
else:
|
||||
step.save()
|
||||
map["step_is_new"] = False
|
||||
self.steps_map[step_name]["spec"] = {}
|
||||
if self.crud is not None:
|
||||
self.crud.set_modified()
|
||||
parsed_value=self.parse()
|
||||
self.cell_widget().value = parsed_value
|
||||
self.reset_steps()
|
||||
|
|
|
|||
|
|
@ -4,11 +4,11 @@ import os
|
|||
import sys
|
||||
import weakref
|
||||
from datetime import datetime, timedelta
|
||||
from components import ArchiveSynchronizer
|
||||
from PyQt5.QtCore import QTimer, pyqtSlot
|
||||
from PyQt5.QtWidgets import QMessageBox
|
||||
from lib.db import Archive, Steps, Users
|
||||
from lib.db import Archive, Recipes, Users
|
||||
from lib.helpers import get_shift
|
||||
from lib.helpers.step import Step
|
||||
from playhouse.shortcuts import model_to_dict
|
||||
from ui.barcode_recipe_selection import Barcode_Recipe_Selection
|
||||
from ui.helpers import replace_widget
|
||||
|
|
@ -26,6 +26,7 @@ from ui.test_screws import Test_Screws
|
|||
from ui.test_vision import Test_Vision
|
||||
from ui.test_warning_img import Test_Warning_Img
|
||||
from ui.widget import Widget
|
||||
from components import ArchiveSynchronizer
|
||||
|
||||
|
||||
class Test(Widget):
|
||||
|
|
@ -50,6 +51,8 @@ class Test(Widget):
|
|||
self.refresh_time(init=True)
|
||||
# INIT RECIPE
|
||||
self.recipe = None
|
||||
self.auto_import = Recipe_Selection
|
||||
self.archive_synch = ArchiveSynchronizer(config=config)
|
||||
|
||||
|
||||
if self.config["hardware_config"]["barcode_recipe_selection"] == "present":
|
||||
|
|
@ -181,6 +184,7 @@ class Test(Widget):
|
|||
self.next_timer.timeout.connect(self.next)
|
||||
self.next()
|
||||
|
||||
|
||||
def refresh_time(self, init=False):
|
||||
if init:
|
||||
self.time_timer = QTimer()
|
||||
|
|
@ -236,7 +240,13 @@ class Test(Widget):
|
|||
if self.autotest_period is not None:
|
||||
self.autotest_timer.start(self.autotest_period)
|
||||
reason = "boot"
|
||||
self.autotest_request = reason
|
||||
|
||||
if self.config["autotest_leak"]["enabled"] == "true":
|
||||
self.autotest_request = reason
|
||||
else:
|
||||
self.autotest_request = False
|
||||
else:
|
||||
self.log.info(f"Autotest request ignored (reason: {reason!r}) --no-autotest flag detected")
|
||||
if reason == "logout":
|
||||
self.next(action="abort")
|
||||
|
||||
|
|
@ -245,13 +255,10 @@ class Test(Widget):
|
|||
|
||||
def next(self, action=None):
|
||||
if self.step is not None:
|
||||
self.log.info(f"cycle step: {model_to_dict(self.step)!r} action: {action!r} current index:{self.cycle_index}")
|
||||
self.log.info(f"cycle step: {self.step.step_type!r} action: {action!r} current index:{self.cycle_index}")
|
||||
else:
|
||||
self.log.info(f"cycle step: {self.step!r} action: {action!r} current index:{self.cycle_index}")
|
||||
|
||||
ArchiveSynchronizer.machine_status = "working"
|
||||
# print(f"{ArchiveSynchronizer.machine_status}")#testing
|
||||
|
||||
current_w = self.centralWidget
|
||||
if hasattr(current_w, "stop"):
|
||||
current_w.stop()
|
||||
|
|
@ -261,7 +268,7 @@ class Test(Widget):
|
|||
if self.config["hardware_config"]["tecna_t3"] == "present" or self.config["hardware_config"]["furness_controls"] == "present":
|
||||
self.cycle_available_steps["leak_1"].widget.recipe_written = False
|
||||
self.cycle_available_steps["leak_2"].widget.recipe_written = False
|
||||
self.step = Steps(type="select_recipe")
|
||||
self.step = Step(step_type="select_recipe")
|
||||
self.cycle_index = -1
|
||||
self.recipe = None
|
||||
self.cycle_steps = None
|
||||
|
|
@ -271,7 +278,7 @@ class Test(Widget):
|
|||
elif action in ("fail", "abort"):
|
||||
self.log.info(f"cycle next: action: {action!r}")
|
||||
# FAIL AND RESTART TEST
|
||||
self.step = Steps(type="fail")
|
||||
self.step = Step(step_type="fail")
|
||||
self.cycle_index = -1
|
||||
# COUNT FAIL
|
||||
if action == "fail":
|
||||
|
|
@ -284,10 +291,11 @@ class Test(Widget):
|
|||
# if recipe not set: select_recipe
|
||||
if self.recipe_selection_mode == "barcode":
|
||||
self.log.info(f"returning to barcode recipe selection")
|
||||
self.step = Steps(type="barcode_recipe_selection")
|
||||
self.step = Step(step_type="barcode_recipe_selection")
|
||||
else:
|
||||
self.log.info(f"returning to recipe selection table")
|
||||
self.step = Steps(type="select_recipe")
|
||||
self.step = Step(step_type="select_recipe")
|
||||
|
||||
elif action is None:
|
||||
if self.autotest_request is not False and self.autotest_cycle_steps is not None and not self.autotesting and (self.cycle_index == -1 or self.cycle_index + 1 >= len(self.cycle_steps)):
|
||||
# if autotest was requested
|
||||
|
|
@ -295,6 +303,7 @@ class Test(Widget):
|
|||
self.autotesting = True
|
||||
self.autotesting_reason = self.autotest_request
|
||||
self.autotest_request = False
|
||||
self.log.info(f"Autotest requested (reason: {self.autotesting_reason})")
|
||||
if self.autotest_period is not None: # reset periodic autotest timer
|
||||
self.time_timer.start(self.autotest_period)
|
||||
self.require_discard_piece = False
|
||||
|
|
@ -326,25 +335,25 @@ class Test(Widget):
|
|||
|
||||
else:
|
||||
self.cycle_index = -1
|
||||
self.step = Steps(type=None)
|
||||
self.step = Step(step_type=None)
|
||||
# enable/disable cycle controls
|
||||
self.change_recipe_b.setEnabled(self.recipe is not None)
|
||||
self.cancel_b.setEnabled(self.step.type is not None and self.step.type not in {
|
||||
self.cancel_b.setEnabled(self.step.step_type is not None and self.step.step_type not in {
|
||||
"emergency",
|
||||
"fail",
|
||||
"select_recipe",
|
||||
"wait",
|
||||
})
|
||||
self.log.info(f"next cycle step: {model_to_dict(self.step)!r}")
|
||||
self.log.info(f"next cycle step: {self.step.step_type!r}")
|
||||
# INIT TEST DATA IF STARTING CYCLE LOOP OR IF RESET IS NEEDED
|
||||
if self.cycle_index == 0:
|
||||
self.data = {"ok": True, "overridden": False}
|
||||
self.archived = None
|
||||
if self.recipe is not None and "recipe" not in self.data:
|
||||
self.data["recipe"] = model_to_dict(self.recipe)
|
||||
w = self.cycle_available_steps[self.step.type]
|
||||
w = self.cycle_available_steps[self.step.step_type]
|
||||
show = None
|
||||
if self.step.type == "leak_2":
|
||||
if self.step.step_type == "leak_2":
|
||||
self.setCentralWidget(w) # NEED TO PRESHOW UI
|
||||
if hasattr(w, "start"):
|
||||
show = w.start(recipe=self.recipe, step=self.step, pieces=self.pieces)
|
||||
|
|
@ -352,16 +361,16 @@ class Test(Widget):
|
|||
self.setCentralWidget(w)
|
||||
elif show is False:
|
||||
self.next_timer.start(0)
|
||||
if self.step.type == "done":
|
||||
if self.step.step_type == "done":
|
||||
self.archived = self.done()
|
||||
self.last_label = copy.deepcopy(self.archived)
|
||||
self.next_timer.start(500)
|
||||
elif self.step.type == "print":
|
||||
elif self.step.step_type == "print":
|
||||
compiled_label = self.print(self.archived, self.step.spec.get("template", "EtichettaR5"))
|
||||
self.archived.label = compiled_label
|
||||
self.archived.save()
|
||||
self.next_timer.start(500)
|
||||
elif self.step.type == "wait":
|
||||
elif self.step.step_type == "wait":
|
||||
self.next_timer.start(500)
|
||||
# UPDATE COUNT DISPLAY
|
||||
self.update_count_display()
|
||||
|
|
@ -390,7 +399,7 @@ class Test(Widget):
|
|||
# create step sequence list
|
||||
barcode_names = ['serial', 'barcode_input_2', 'barcode_input_3', 'barcode_input_4', 'barcode_input_5']
|
||||
for i, step in enumerate(steps):
|
||||
if step.type == "barcodes":
|
||||
if step.step_type == "barcodes":
|
||||
n_pieces = int(step.spec.get("n_pieces", 1))
|
||||
n_pieces_adapted = n_pieces
|
||||
if n_pieces_adapted == 1:
|
||||
|
|
@ -403,63 +412,63 @@ class Test(Widget):
|
|||
steps.insert(i + 1, new_barcode_step)
|
||||
if i in skip:
|
||||
continue
|
||||
if step.type == "vision":
|
||||
if step.step_type == "vision":
|
||||
self.components["vision"].config_changed(vision_recipe=self.recipe.name)
|
||||
if step.type == "count":
|
||||
if step.step_type == "count":
|
||||
count_found = True
|
||||
if "warning_img" in step.spec:
|
||||
if step.spec["warning_img"]:
|
||||
steps.insert(i, Steps(type="warning_img", spec={"warning_img": step.spec["warning_img"]}))
|
||||
steps.insert(i, Step(step_type="warning_img", spec={"warning_img": step.spec["warning_img"]}))
|
||||
skip.add(i + 1)
|
||||
if "assembly" in step.spec:
|
||||
if step.spec["assembly"]:
|
||||
steps.insert(i, Steps(type="instructions", spec={}))
|
||||
steps.insert(i, Step(step_type="instructions", spec={}))
|
||||
skip.add(i + 1)
|
||||
if "require_discard_piece" in step.spec:
|
||||
if step.spec["require_discard_piece"]:
|
||||
self.require_discard_piece = True
|
||||
if step.type == "resistance": # ADD STEP TO ENSURE REMOVAL OF CONNECTOR
|
||||
steps.insert(i + 1, Steps(type="resistance", spec={
|
||||
if step.step_type == "resistance": # ADD STEP TO ENSURE REMOVAL OF CONNECTOR
|
||||
steps.insert(i + 1, Step(step_type="resistance", spec={
|
||||
"scale": 500,
|
||||
"expected": float("+inf"),
|
||||
"tolerance_pos": 0,
|
||||
"tolerance_neg": 0,
|
||||
}))
|
||||
skip.add(i + 1)
|
||||
if step.type == "print":
|
||||
if step.step_type == "print":
|
||||
if print_found:
|
||||
continue
|
||||
steps.insert(i, Steps(type="done"))
|
||||
steps.insert(i, Step(step_type="done"))
|
||||
print_found = True
|
||||
self.print_step = step
|
||||
if self.config["hardware_config"].get("enforce_piece_removal", "no") == "yes":
|
||||
steps.append(Steps(type="piece_removal"))
|
||||
steps.append(Step(step_type="piece_removal"))
|
||||
if count_found:
|
||||
steps.append(Steps(type="count_end"))
|
||||
if step.type in ("leak_1", "leak_2"):
|
||||
steps.append(Step(step_type="count_end"))
|
||||
if step.step_type in ("leak_1", "leak_2"):
|
||||
self.leak_step = step
|
||||
|
||||
step_types = [step.type for step in steps]
|
||||
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")
|
||||
if leak1_index + 1 == leak2_index: # Ensure 'leak_1' is immediately followed by 'leak_2'
|
||||
steps.insert(leak2_index, Steps(type="instruction_extra", spec={}))
|
||||
steps.insert(leak2_index, Step(step_type="instruction_extra", spec={}))
|
||||
inserted_instruction = True
|
||||
|
||||
# Insert 'instruction_extra' after the first 'instructions' if not inserted between leaks
|
||||
if not inserted_instruction:
|
||||
for i, step in enumerate(steps):
|
||||
if step.type == "instructions":
|
||||
steps.insert(i + 1, Steps(type="instruction_extra", spec={}))
|
||||
if step.step_type == "instructions":
|
||||
steps.insert(i + 1, Step(step_type="instruction_extra", spec={}))
|
||||
inserted_instruction = True
|
||||
break
|
||||
|
||||
if not print_found:
|
||||
steps.append(Steps(type="done"))
|
||||
steps.append(Step(step_type="done"))
|
||||
if count_found:
|
||||
steps.append(Steps(type="count_end"))
|
||||
steps.append(Steps(type="wait"))
|
||||
steps.append(Step(step_type="count_end"))
|
||||
steps.append(Step(step_type="wait"))
|
||||
self.cycle_steps = steps
|
||||
self.check_steps_dependencies(self.cycle_steps)
|
||||
leak_autotest_steps = []
|
||||
|
|
@ -475,32 +484,32 @@ class Test(Widget):
|
|||
l_at_2["test_pressure_qneg"] = l_at_2["test_pressure_tt_qneg"]
|
||||
l_at_2["test_pressure_qpos"] = l_at_2["test_pressure_tt_qpos"]
|
||||
l_at_2["autotest"] = "ok_check"
|
||||
leak_autotest_steps = [Steps(type="leak_1", spec=l_at_1), Steps(type="leak_1", spec=l_at_2)]
|
||||
leak_autotest_steps = [Step(step_type="leak_1", spec=l_at_1), Step(step_type="leak_1", spec=l_at_2)]
|
||||
|
||||
self.autotest_cycle_steps = [
|
||||
*([
|
||||
Steps(type="resistance", spec={
|
||||
Step(step_type="resistance", spec={
|
||||
"scale": 500,
|
||||
"expected": 1,
|
||||
"tolerance_pos": 5,
|
||||
"tolerance_neg": 5,
|
||||
"autotest": True,
|
||||
}),
|
||||
Steps(type="resistance", spec={
|
||||
Step(step_type="resistance", spec={
|
||||
"scale": 500,
|
||||
"expected": float("+inf"),
|
||||
"tolerance_pos": 0,
|
||||
"tolerance_neg": 0,
|
||||
"autotest": True,
|
||||
}),
|
||||
Steps(type="resistance", spec={
|
||||
Step(step_type="resistance", spec={
|
||||
"scale": 500,
|
||||
"expected": 10,
|
||||
"tolerance_pos": 1,
|
||||
"tolerance_neg": 1,
|
||||
"autotest": True,
|
||||
}),
|
||||
Steps(type="resistance", spec={
|
||||
Step(step_type="resistance", spec={
|
||||
"scale": 500,
|
||||
"expected": float("+inf"),
|
||||
"tolerance_pos": 0,
|
||||
|
|
@ -509,15 +518,15 @@ class Test(Widget):
|
|||
}),
|
||||
] if "resistance" not in self.unsupported_steps else []),
|
||||
*(leak_autotest_steps),
|
||||
Steps(type="done"),
|
||||
Steps(type="wait"),
|
||||
Step(step_type="done"),
|
||||
Step(step_type="wait"),
|
||||
]
|
||||
for w in self.cycle_available_steps.values():
|
||||
if hasattr(w, "reset"):
|
||||
w.reset()
|
||||
# UPDATE RECIPE DISPLAY
|
||||
if self.recipe is not None:
|
||||
self.log.info(f"set recipe: {model_to_dict(self.recipe)!r} cycle steps: {[model_to_dict(s) for s in self.cycle_steps]}")
|
||||
self.log.info(f"set recipe: {model_to_dict(self.recipe)!r} cycle steps: {[s.step_type for s in self.cycle_steps]}")
|
||||
self.recipe_l.setText(self.recipe.name)
|
||||
self.recipe_l.setStyleSheet("")
|
||||
self.cycle_index = -1
|
||||
|
|
@ -531,13 +540,13 @@ class Test(Widget):
|
|||
unsupported_steps = set()
|
||||
missing_components = set()
|
||||
for step in steps:
|
||||
if step.type in self.unsupported_steps or step.type not in self.cycle_available_steps:
|
||||
unsupported_steps.add(step.type)
|
||||
if step.step_type in self.unsupported_steps or step.step_type not in self.cycle_available_steps:
|
||||
unsupported_steps.add(step.step_type)
|
||||
else:
|
||||
for dependency in self.steps_dependencies.get(step.type, []):
|
||||
for dependency in self.steps_dependencies.get(step.step_type, []):
|
||||
if isinstance(dependency, tuple):
|
||||
if all([d not in self.components for d in dependency]):
|
||||
unsupported_steps.add(step.type)
|
||||
unsupported_steps.add(step.step_type)
|
||||
else:
|
||||
unready = set()
|
||||
for d in dependency:
|
||||
|
|
@ -552,7 +561,7 @@ class Test(Widget):
|
|||
missing_components.add(" or ".join(dependency))
|
||||
else:
|
||||
if dependency not in self.components:
|
||||
unsupported_steps.add(step.type)
|
||||
unsupported_steps.add(step.step_type)
|
||||
else:
|
||||
if not self.components[dependency].ready:
|
||||
self.components[dependency].reconfigure()
|
||||
|
|
@ -571,7 +580,7 @@ class Test(Widget):
|
|||
if step_name not in self.data:
|
||||
self.data[step_name] = {}
|
||||
if data is not None:
|
||||
data["step"] = model_to_dict(self.step)
|
||||
data["step"] = self.step.spec
|
||||
data["step"].pop("name", None)
|
||||
|
||||
# MAKE ARRAY ONLY IF MORE THAN ONE TEST OF SAME TYPE
|
||||
|
|
@ -589,7 +598,6 @@ class Test(Widget):
|
|||
|
||||
# remove useless info
|
||||
self.data.get("recipe", {}).get("spec", {}).pop("steps", None)
|
||||
self.data.get("recipe", {}).get("spec", {}).pop("available_steps", None)
|
||||
for leak in ["leak_1", "leak_2"]:
|
||||
if leak in self.data.keys():
|
||||
results = {k: self.data[leak]["results"][self.tester_component][k] for k in ["Running test: result"]}
|
||||
|
|
@ -680,31 +688,31 @@ class Test(Widget):
|
|||
"DESCRIPTION": self.labellify(recipe.get("description", "-")),
|
||||
"RECIPE_TO_PRINT": self.labellify(self.print_step.spec.get("labeltxt_5", "-").replace('{N11}', '')),
|
||||
# STEP SPEC
|
||||
"TPREFILL": self.labellify(leak_test_1_step_spec.get("pre_filling_time", "-")),
|
||||
"PPREFILL": self.labellify(leak_test_1_step_spec.get("pre_filling_pressure", "-")),
|
||||
"TFILL": self.labellify(leak_test_1_step_spec.get("filling_time", "-")),
|
||||
"TSET": self.labellify(leak_test_1_step_spec.get("settling_time", "-")),
|
||||
"TPREFILL2": self.labellify(leak_test_2_step_spec.get("pre_filling_time", "-")),
|
||||
"PPREFILL2": self.labellify(leak_test_2_step_spec.get("pre_filling_pressure", "-")),
|
||||
"TFILL2": self.labellify(leak_test_2_step_spec.get("filling_time", "-")),
|
||||
"TSET2": self.labellify(leak_test_2_step_spec.get("settling_time", "-")),
|
||||
"PSETMINP": self.labellify(leak_test_1_step_spec.get("settling_pressure_min_percent", " -")),
|
||||
"PSETMAXP": self.labellify(leak_test_1_step_spec.get("settling_pressure_max_percent", " -")),
|
||||
"PSETMINP2": self.labellify(leak_test_2_step_spec.get("settling_pressure_min_percent", " -")),
|
||||
"PSETMAXP2": self.labellify(leak_test_2_step_spec.get("settling_pressure_max_percent", " -")),
|
||||
"TPREFILL": self.labellify(leak_test_1_step.get("pre_filling_time", "-")),
|
||||
"PPREFILL": self.labellify(leak_test_1_step.get("pre_filling_pressure", "-")),
|
||||
"TFILL": self.labellify(leak_test_1_step.get("filling_time", "-")),
|
||||
"TSET": self.labellify(leak_test_1_step.get("settling_time", "-")),
|
||||
"TPREFILL2": self.labellify(leak_test_2_step.get("pre_filling_time", "-")),
|
||||
"PPREFILL2": self.labellify(leak_test_2_step.get("pre_filling_pressure", "-")),
|
||||
"TFILL2": self.labellify(leak_test_2_step.get("filling_time", "-")),
|
||||
"TSET2": self.labellify(leak_test_2_step.get("settling_time", "-")),
|
||||
"PSETMINP": self.labellify(leak_test_1_step.get("settling_pressure_min_percent", " -")),
|
||||
"PSETMAXP": self.labellify(leak_test_1_step.get("settling_pressure_max_percent", " -")),
|
||||
"PSETMINP2": self.labellify(leak_test_2_step.get("settling_pressure_min_percent", " -")),
|
||||
"PSETMAXP2": self.labellify(leak_test_2_step.get("settling_pressure_max_percent", " -")),
|
||||
"PSETMINP_A": self.labellify(psetminp_a),
|
||||
"PSETMAXP_A": self.labellify(psetmaxp_a),
|
||||
"PSETMINP2_A": self.labellify(psetminp2_a),
|
||||
"PSETMAXP2_A": self.labellify(psetmaxp2_a),
|
||||
"TTEST": self.labellify(leak_test_1_step_spec.get("test_time", "-")),
|
||||
"TTEST2": self.labellify(leak_test_2_step_spec.get("test_time", "-")),
|
||||
"PMIN": self.labellify(leak_test_1_step_spec.get("test_pressure_qneg", "-")),
|
||||
"PMIN2": self.labellify(leak_test_2_step_spec.get("test_pressure_qneg", "-")),
|
||||
"PTEST": self.labellify(leak_test_1_step_spec.get("test_pressure", "-")),
|
||||
"PTEST2": self.labellify(leak_test_2_step_spec.get("test_pressure", "-")),
|
||||
"PMAX": self.labellify(leak_test_1_step_spec.get("test_pressure_qpos", "-")),
|
||||
"TFLUSH": self.labellify(leak_test_1_step_spec.get("flush_time", "-")),
|
||||
"PFLUSH": self.labellify(leak_test_1_step_spec.get("flush_pressure", "-")),
|
||||
"TTEST": self.labellify(leak_test_1_step.get("test_time", "-")),
|
||||
"TTEST2": self.labellify(leak_test_2_step.get("test_time", "-")),
|
||||
"PMIN": self.labellify(leak_test_1_step.get("test_pressure_qneg", "-")),
|
||||
"PMIN2": self.labellify(leak_test_2_step.get("test_pressure_qneg", "-")),
|
||||
"PTEST": self.labellify(leak_test_1_step.get("test_pressure", "-")),
|
||||
"PTEST2": self.labellify(leak_test_2_step.get("test_pressure", "-")),
|
||||
"PMAX": self.labellify(leak_test_1_step.get("test_pressure_qpos", "-")),
|
||||
"TFLUSH": self.labellify(leak_test_1_step.get("flush_time", "-")),
|
||||
"PFLUSH": self.labellify(leak_test_1_step.get("flush_pressure", "-")),
|
||||
# ACTUAL TESTED VALUES
|
||||
"RESPFILL": self.labellify(leak_test_1_results.get("Running test: filling pressure", "-")),
|
||||
"RESPFILL2": self.labellify(leak_test_2_results.get("Running test: filling pressure", "-")),
|
||||
|
|
@ -742,7 +750,7 @@ class Test(Widget):
|
|||
# RESULT
|
||||
"RESULT": str("CONFORME" if leak_test_1.get("ok", False) else "SCARTO") + str(" FORZATO" if self.data.get("overridden", False) else ""),
|
||||
"RESULT_L1": "ESITO" + str(" FORZATO" if self.data.get("overridden", False) else ""),
|
||||
"RESULT_L2": str("CONFORME" if leak_test_1_results.get("ok", False) else "SCARTO"),
|
||||
"RESULT_L2": str("CONFORME" if leak_test_1.get("ok", False) else "SCARTO"),
|
||||
}
|
||||
#TESTING BROTHER
|
||||
label_brother = context.get("RECIPE_TO_PRINT", "-") + context.get("DD","-") + context.get("MO","-") + context.get("YY","-") + context.get("SN5","-")
|
||||
|
|
@ -775,7 +783,7 @@ class Test(Widget):
|
|||
def load_recipe_from_rfid(self, data):
|
||||
if data not in(None,''):
|
||||
self.tag_loaded_recipe = data
|
||||
if self.step.type == "barcode_recipe_selection":
|
||||
if self.step.step_type == "barcode_recipe_selection":
|
||||
if data is not None:
|
||||
self.cycle_available_steps["barcode_recipe_selection"].widget.get(data)
|
||||
else:
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ class Test_Instructions(Test_Test):
|
|||
self.layout = QVBoxLayout()
|
||||
self.layout.addWidget(self.svg_widget)
|
||||
self.svg_w.setLayout(self.layout)
|
||||
self.svg_path=os.path.join("config","instruction_images",self.config["machine"]["instruction_folder"],"")
|
||||
self.svg_path=os.path.join("config","instruction_images",self.config["machine"].get("instruction_folder","generic"),"")
|
||||
self.timer = QTimer()
|
||||
self.timer.timeout.connect(self.toggle_icons)
|
||||
self.expected_input_state=True
|
||||
|
|
@ -48,9 +48,9 @@ class Test_Instructions(Test_Test):
|
|||
self.get_connection = self.components["digital_io"].out.connect(self.get)
|
||||
|
||||
if step is not None:
|
||||
if step.type == "instruction":
|
||||
if step.step_type == "instruction":
|
||||
svg_path = f"{self.svg_path}{self.recipe}.svg"
|
||||
elif step.type == "instruction_extra":
|
||||
elif step.step_type == "instruction_extra":
|
||||
svg_path = f"{self.svg_path}{self.recipe}-extra.svg"
|
||||
|
||||
if not os.path.exists(svg_path):
|
||||
|
|
@ -58,7 +58,7 @@ class Test_Instructions(Test_Test):
|
|||
self.svg_root = etree.parse(svg_path)
|
||||
self.svg_str = etree.tostring(self.svg_root)
|
||||
self.svg_str=etree.tostring(self.svg_root)
|
||||
self.expected_input_state = True if step.type == "instruction" else False
|
||||
self.expected_input_state = True if step.step_type == "instruction" else False
|
||||
|
||||
self.monitored_ids=self.svg_root.xpath(f'''.//*[starts-with(@id, 'sensor_')]''')
|
||||
|
||||
|
|
@ -156,7 +156,7 @@ class Test_Instructions(Test_Test):
|
|||
QApplication.processEvents()
|
||||
|
||||
def get(self, data=None, override=False):
|
||||
if self.parent_assembly_widget().parent().step.type == "select_recipe":
|
||||
if self.parent_assembly_widget().parent().step.step_type == "select_recipe":
|
||||
self.stop()
|
||||
return
|
||||
if self.done: # avoid proccessing if completed
|
||||
|
|
|
|||
|
|
@ -44,7 +44,7 @@ class Test_Leak(Test_Test):
|
|||
|
||||
def start_test(self):
|
||||
# print extra labels
|
||||
if self.step.type == "leak_1":
|
||||
if self.step.step_type == "leak_1":
|
||||
self.parent.print_extra_labels()
|
||||
|
||||
# SELECT TEST CHANNEL
|
||||
|
|
@ -94,8 +94,8 @@ class Test_Leak(Test_Test):
|
|||
if show is False:
|
||||
return show
|
||||
|
||||
if "leak_2" in [s.type for s in self.parent.cycle_steps]:
|
||||
if self.step.type=="leak_1":
|
||||
if "leak_2" in [s.step_type for s in self.parent.cycle_steps]:
|
||||
if self.step.step_type=="leak_1":
|
||||
self.test_num_l.setText("1/2")
|
||||
else:
|
||||
self.test_num_l.setText("2/2")
|
||||
|
|
@ -144,8 +144,8 @@ class Test_Leak(Test_Test):
|
|||
time.sleep(2)
|
||||
|
||||
# AUTO START SECOND TEST
|
||||
if step.type == "leak_2":
|
||||
if self.config["hardware_config"].get("dual_chanel","absent") == "present":
|
||||
if step.step_type == "leak_2":
|
||||
if self.config["hardware_config"].get("dual_chanel", "absent") == "present":
|
||||
self.recipe_written = False
|
||||
time.sleep(1)
|
||||
self.start_b.setEnabled(True)
|
||||
|
|
|
|||