1 Commits

Author SHA1 Message Date
Samuele Locatelli f34bffd551 Merge branch 'develop' into SDK/MultiCnc 2022-07-12 11:02:22 +02:00
2544 changed files with 215009 additions and 199716 deletions
-19
View File
@@ -148,18 +148,12 @@ publish/
# NuGet Packages
*.nupkg
# NuGet Symbol Packages
*.snupkg
# The packages folder can be ignored because of Package Restore
**/[Pp]ackages/*
**/packages/*
# except build/, which is used as an MSBuild target.
!**/packages/build/
# Uncomment if necessary however generally it will be regenerated when needed
#!**/packages/repositories.config
# NuGet v3's project.json files produces more ignorable files
*.nuget.props
*.nuget.targets
# Windows Azure Build Output
csx/
@@ -336,16 +330,3 @@ _UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
# esclusioni gestione IOB-WIN-PYTHON
IOB-WIN-PSER/logs/logfile.txt*
IOB-WIN-PSER/dist/logTest/*
IOB-WIN-PSER/dist/IOB-WIN-PSER/*
IOB-WIN-PSER/logs/*/*.txt
IOB-WIN-PSER/dist/CONF/*.cfg
IOB-WIN-PSER/dist/logs/*/*.txt
IOB-WIN-PSER/dist/*.exe
IOB-WIN-PSER/dist-nuitka/*.exe
IOB-WIN-PSER.build/
IOB-WIN-PSER.dist/
IOB-WIN-PSER.onefile-build/
+337 -1042
View File
File diff suppressed because it is too large Load Diff
-4
View File
@@ -1,4 +0,0 @@
{
"dotnet.preferCSharpExtension": true,
"dotnet.defaultSolution": "IOB-WIN-NEXT.sln"
}
-529
View File
@@ -1,529 +0,0 @@
1;E2_800.00;Alarm Word 0;0;1,ALLARME INVERTER CATENA TRASP. TESSUTO
2;E2_800.01;Alarm Word 0;1;2,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE SUPERIORE
3;E2_800.02;Alarm Word 0;2;3,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE INFERIORE
4;E2_800.03;Alarm Word 0;3;4,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE SINISTRA
5;E2_800.04;Alarm Word 0;4;5,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE DESTRA
6;E2_800.05;Alarm Word 0;5;6,ALLARME INVERTER STACCAPEZZA
7;E2_800.06;Alarm Word 0;6;7,ALLARME INVERTER FALDAROTOLATORE
8;E2_800.07;Alarm Word 0;7;8,ALLARME INVERTER FALDERUOLE
9;E2_800.08;Alarm Word 0;8;9,ALLARME INVERTER ESAUSTORE 1
10;E2_800.09;Alarm Word 0;9;10,ALLARME FUNE SICUREZZA USCITA
11;E2_800.10;Alarm Word 0;10;11,ALLARME VENTILATORE 1 (BASSO)
12;E2_800.11;Alarm Word 0;11;12, ALLARME VENTILATORE 2 (BASSO)
13;E2_800.12;Alarm Word 0;12;13,ALLARME F.C. MINIMO CAMPO MASTER
14;E2_800.13;Alarm Word 0;13;14,ALLARME F.C. MASSIMO CAMPO MASTER
15;E2_800.14;Alarm Word 0;14;15,ALLARME PROTEZIONE TAPPETO INGRESSO
16;E2_800.15;Alarm Word 0;15;16,RIFERIMENTO POTENZIOMETRI CAMPI ASSENTE
17;E2_801.00;Alarm Word 1;0;17,ALLARME CONDIZIONATORI
18;E2_801.01;Alarm Word 1;1;18,EMERGENZA IN CORSO !!!
19;E2_801.02;Alarm Word 1;2;19,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 1
20;E2_801.03;Alarm Word 1;3;20,ALLARME POMPA RECUPERO CALORE 3
21;E2_801.04;Alarm Word 1;4;21,CONTROLLO UMIDITA' : FUORI CAMPO
22;E2_801.05;Alarm Word 1;5;22,ALLARME RILEVATORE ALTEZZA TESSUTO
23;E2_801.06;Alarm Word 1;6;23,ALLARME NON RILASCIO TESSUTO SINISTRO
24;E2_801.07;Alarm Word 1;7;24,ALLARME NON RILASCIO TESSUTO DESTRO
25;E2_801.08;Alarm Word 1;8;25,ALLARME ALIMENTAZIONE 24VAC QUADRO
26;E2_801.09;Alarm Word 1;9;26,ALLARME APRICIMOSSE
27;E2_801.10;Alarm Word 1;10;27,ALLARME ASCIUGACIMOSSE A INFRAROSSI
28;E2_801.11;Alarm Word 1;11;28,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 1
29;E2_801.12;Alarm Word 1;12;29,CAMPO PARALLELO 2 ALLARME PROTEZIONE
30;E2_801.13;Alarm Word 1;13;30,ALLARME VENTILATORE 3 (BASSO)
31;E2_801.14;Alarm Word 1;14;31,ALLARME VENTILATORE 4 (BASSO)
32;E2_801.15;Alarm Word 1;15;32,CAMPO PARALLELO 1 ALLARME PROTEZIONE
33;E2_802.00;Alarm Word 2;0;33,CAMPO PARALLELO 3 ALLARME PROTEZIONE
34;E2_802.01;Alarm Word 2;1;34,RAGGIUNTO MASSIMO CARICO CELLA DI CARICO TAPPETO
35;E2_802.02;Alarm Word 2;2;35,ALLARME FALLOPEZZA SINISTRO
36;E2_802.03;Alarm Word 2;3;36,ALLARME FALLOPEZZA DESTRO
37;E2_802.04;Alarm Word 2;4;37,PARATIE ANTERIORI APERTE
38;E2_802.05;Alarm Word 2;5;38,ALLARME AZIONAMENTO CAMPO CONICO
39;E2_802.06;Alarm Word 2;6;39,BLOCCO BRUCIATORE 9
40;E2_802.07;Alarm Word 2;7;40,CAMPO MASTER ALLARME PROTEZIONE
41;E2_802.08;Alarm Word 2;8;41,ALLARME PRESSOSTATO TENDICATENA SINISTRO
42;E2_802.09;Alarm Word 2;9;42,ALLARME PRESSOSTATO TENDICATENA DESTRO
43;E2_802.10;Alarm Word 2;10;43,ALLARME MASSIMO ALLUNGAMENTO CATENA
44;E2_802.11;Alarm Word 2;11;44,ALLARME TIPO LAVORO USCITA NON SELEZIONATO
45;E2_802.12;Alarm Word 2;12;45,ALLARME RADDRIZZATRAMA
46;E2_802.13;Alarm Word 2;13;46,ALLARME SPREMITORE 1
47;E2_802.14;Alarm Word 2;14;47,BLOCCO BRUCIATORE 10
48;E2_802.15;Alarm Word 2;15;48,BLOCCO BRUCIATORE 11
49;E2_803.00;Alarm Word 3;0;49,BLOCCO BRUCIATORE 12
50;E2_803.01;Alarm Word 3;1;50,BLOCCO BRUCIATORE 1
51;E2_803.02;Alarm Word 3;2;51,BLOCCO BRUCIATORE 2
52;E2_803.03;Alarm Word 3;3;52,BLOCCO BRUCIATORE 3
53;E2_803.04;Alarm Word 3;4;53,BLOCCO BRUCIATORE 4
54;E2_803.05;Alarm Word 3;5;54,BIELLE FUORI POSIZIONE
55;E2_803.06;Alarm Word 3;6;55,GRUPPO FALDATORE FUORI POSIZIONE
56;E2_803.07;Alarm Word 3;7;56,SERIE ARRESTI APERTA
57;E2_803.08;Alarm Word 3;8;57,MANCANZA LUBRIFICANTE CATENA TRASP. TESSUTO
58;E2_803.09;Alarm Word 3;9;58,ALLARME INVERTER PICCOLO ROTOLO
59;E2_803.10;Alarm Word 3;10;59,ALLARME PROTEZIONE ALLARGATORI
60;E2_803.11;Alarm Word 3;11;60,ALLARME PROTEZIONE ASPIRACIMOSSE
61;E2_803.12;Alarm Word 3;12;61,ALLARME TAGLIACIMOSSE SINISTRA
62;E2_803.13;Alarm Word 3;13;62,ALLARME TAGLIACIMOSSE DESTRA
63;E2_803.14;Alarm Word 3;14;63,ALLARME INVERTER VENTILATORI INV101
64;E2_803.15;Alarm Word 3;15;64,ALLARME INVERTER VENTILATORI INV103
65;E2_804.00;Alarm Word 4;0;65,ALLARME TIMEOUT VITE CAMPO MASTER
66;E2_804.01;Alarm Word 4;1;66,ALLARME TIMEOUT VITE CAMPO PARALLELO 1
67;E2_804.02;Alarm Word 4;2;67,ALLARME TIMEOUT VITE CAMPO PARALLELO 2
68;E2_804.03;Alarm Word 4;3;68,ALLARME TIMEOUT VITE CAMPO PARALLELO 3
69;E2_804.04;Alarm Word 4;4;69,ALLARME TIMEOUT VITE CAMPO PARALLELO 4
70;E2_804.05;Alarm Word 4;5;70,ALLARME TIMEOUT VITE CAMPO PARALLELO 5
71;E2_804.06;Alarm Word 4;6;71,ALLARME TIMEOUT VITE CAMPO PARALLELO 6
72;E2_804.07;Alarm Word 4;7;72,ALLARME TIMEOUT VITE CAMPO PARALLELO 7
73;E2_804.08;Alarm Word 4;8;73,ALLARME TIMEOUT VITE CAMPO PARALLELO 8
74;E2_804.09;Alarm Word 4;9;74,ALLARME TIMEOUT VITE CAMPO PARALLELO 9
75;E2_804.10;Alarm Word 4;10;75,ALLARME DEVICE_NET ADDR. 32 DA BANCHETTO DI SPALMATURA
76;E2_804.11;Alarm Word 4;11;76,ALLARME INVERTER DOGAL
77;E2_804.12;Alarm Word 4;12;77,ALLARME FOTOCELLULA TAPPETO USCITA PIENO
78;E2_804.13;Alarm Word 4;13;78,TEMPO DI CICLO PLC SOPRA MASSIMO IMPOSTATO
79;E2_804.14;Alarm Word 4;14;79,ERRORE INDIRIZZI SONDE BRUCIATORI
80;E2_804.15;Alarm Word 4;15;80,ALLARME VENTILATORE 4 (ALTO)
81;E2_805.00;Alarm Word 5;0;81,ALLARME VENTILATORE 5 (ALTO)
82;E2_805.01;Alarm Word 5;1;82,ALLARME VENTILATORE 6 (ALTO)
83;E2_805.02;Alarm Word 5;2;83,ALLARME VENTILATORE 7 (ALTO)
84;E2_805.03;Alarm Word 5;3;84,SONDA BRUCIATORE 1 INTERROTTA
85;E2_805.04;Alarm Word 5;4;85,SONDA BRUCIATORE 2 INTERROTTA
86;E2_805.05;Alarm Word 5;5;86,SONDA BRUCIATORE 3 INTERROTTA
87;E2_805.06;Alarm Word 5;6;87,SONDA BRUCIATORE 4 INTERROTTA
88;E2_805.07;Alarm Word 5;7;88,ALLARME DEVICE_NET ADDR. 0
89;E2_805.08;Alarm Word 5;8;89,ALLARME DEVICE_NET ADDR. 1
90;E2_805.09;Alarm Word 5;9;90,ALLARME DEVICE_NET ADDR. 2
91;E2_805.10;Alarm Word 5;10;91,ALLARME DEVICE_NET ADDR. 3
92;E2_805.11;Alarm Word 5;11;92,ALLARME DEVICE_NET ADDR. 4
93;E2_805.12;Alarm Word 5;12;93,ALLARME DEVICE_NET ADDR. 5
94;E2_805.13;Alarm Word 5;13;94,ALLARME DEVICE_NET ADDR. 6
95;E2_805.14;Alarm Word 5;14;95,ALLARME DEVICE_NET ADDR. 7
96;E2_805.15;Alarm Word 5;15;96,ALLARME DEVICE_NET ADDR. 8
97;E2_806.00;Alarm Word 6;0;97,ALLARME DEVICE_NET ADDR. 9
98;E2_806.01;Alarm Word 6;1;98,ALLARME DEVICE_NET ADDR. 10
99;E2_806.02;Alarm Word 6;2;99,ALLARME DEVICE_NET ADDR. 11
100;E2_806.03;Alarm Word 6;3;100,ALLARME DEVICE_NET ADDR. 12
101;E2_806.04;Alarm Word 6;4;101,ALLARME DEVICE_NET ADDR. 13
102;E2_806.05;Alarm Word 6;5;102,ALLARME DEVICE_NET ADDR. 14
103;E2_806.06;Alarm Word 6;6;103,ALLARME DEVICE_NET ADDR. 15
104;E2_806.07;Alarm Word 6;7;104,ALLARME DEVICE_NET ADDR. 16
105;E2_806.08;Alarm Word 6;8;105,ALLARME DEVICE_NET ADDR. 17
106;E2_806.09;Alarm Word 6;9;106,ALLARME DEVICE_NET ADDR. 18
107;E2_806.10;Alarm Word 6;10;107,ALLARME DEVICE_NET ADDR. 19
108;E2_806.11;Alarm Word 6;11;108,ALLARME DEVICE_NET ADDR. 20
109;E2_806.12;Alarm Word 6;12;109,ALLARME DEVICE_NET ADDR. 21
110;E2_806.13;Alarm Word 6;13;110,ALLARME DEVICE_NET ADDR. 22
111;E2_806.14;Alarm Word 6;14;111,ALLARME DEVICE_NET ADDR. 23
112;E2_806.15;Alarm Word 6;15;112,ALLARME DEVICE_NET ADDR. 24
113;E2_807.00;Alarm Word 7;0;113,ALLARME DEVICE_NET ADDR. 25
114;E2_807.01;Alarm Word 7;1;114,ALLARME DEVICE_NET ADDR. 26
115;E2_807.02;Alarm Word 7;2;115,BLOCCO BRUCIATORE 5
116;E2_807.03;Alarm Word 7;3;116,BLOCCO BRUCIATORE 6
117;E2_807.04;Alarm Word 7;4;117,BLOCCO BRUCIATORE 7
118;E2_807.05;Alarm Word 7;5;118,BLOCCO BRUCIATORE 8
119;E2_807.06;Alarm Word 7;6;119,SOVRATEMPERATURA BRUCIATORE 1
120;E2_807.07;Alarm Word 7;7;120,SOVRATEMPERATURA BRUCIATORE 2
121;E2_807.08;Alarm Word 7;8;121,SOVRATEMPERATURA BRUCIATORE 3
122;E2_807.09;Alarm Word 7;9;122,SOVRATEMPERATURA BRUCIATORE 4
123;E2_807.10;Alarm Word 7;10;123,SOVRATEMPERATURA BRUCIATORE 5
124;E2_807.11;Alarm Word 7;11;124,SOVRATEMPERATURA BRUCIATORE 6
125;E2_807.12;Alarm Word 7;12;125,SOVRATEMPERATURA BRUCIATORE 7
126;E2_807.13;Alarm Word 7;13;126,SOVRATEMPERATURA BRUCIATORE 8
127;E2_807.14;Alarm Word 7;14;127,SONDA BRUCIATORE 5 INTERROTTA
128;E2_807.15;Alarm Word 7;15;128,SONDA BRUCIATORE 6 INTERROTTA
129;E2_808.00;Alarm Word 8;0;129,SONDA BRUCIATORE 7 INTERROTTA
130;E2_808.01;Alarm Word 8;1;130,SONDA BRUCIATORE 8 INTERROTTA
131;E2_808.02;Alarm Word 8;2;131,SONDA BRUCIATORE 9 INTERROTTA
132;E2_808.03;Alarm Word 8;3;132,SONDA BRUCIATORE 10 INTERROTTA
133;E2_808.04;Alarm Word 8;4;133,SONDA BRUCIATORE 11 INTERROTTA
134;E2_808.05;Alarm Word 8;5;134,SONDA BRUCIATORE 12 INTERROTTA
135;E2_808.06;Alarm Word 8;6;135,SOVRATEMPERATURA BRUCIATORE 9
136;E2_808.07;Alarm Word 8;7;136,SOVRATEMPERATURA BRUCIATORE 10
137;E2_808.08;Alarm Word 8;8;137,SOVRATEMPERATURA BRUCIATORE 11
138;E2_808.09;Alarm Word 8;9;138,SOVRATEMPERATURA BRUCIATORE 12
139;E2_808.10;Alarm Word 8;10;139,ALLARME INVERTER VENTILATORI INV105
140;E2_808.11;Alarm Word 8;11;140,ALLARME INVERTER VENTILATORI INV107
141;E2_808.12;Alarm Word 8;12;141,ALLARME INVERTER VENTILATORI INV109
142;E2_808.13;Alarm Word 8;13;142,ALLARME INVERTER VENTILATORI INV111
143;E2_808.14;Alarm Word 8;14;143,ALLARME VENTILATORE 5 (BASSO)
144;E2_808.15;Alarm Word 8;15;144,ALLARME VENTILATORE 6 (BASSO)
145;E2_809.00;Alarm Word 9;0;145,ALLARME VENTILATORE 7 (BASSO)
146;E2_809.01;Alarm Word 9;1;146,ALLARME VENTILATORE 8 (BASSO)
147;E2_809.02;Alarm Word 9;2;147,ALLARME VENTILATORE 9 (BASSO)
148;E2_809.03;Alarm Word 9;3;148,ALLARME VENTILATORE 10 (BASSO)
149;E2_809.04;Alarm Word 9;4;149,ALLARME VENTILATORE 11 (BASSO)
150;E2_809.05;Alarm Word 9;5;150,ALLARME VENTILATORE 12 (BASSO)
151;E2_809.06;Alarm Word 9;6;151,ALLARME INVERTER ESAUSTORE 2
152;E2_809.07;Alarm Word 9;7;152,CAMPO PARALLELO 4 ALLARME PROTEZIONE
153;E2_809.08;Alarm Word 9;8;153,CAMPO PARALLELO 5 ALLARME PROTEZIONE
154;E2_809.09;Alarm Word 9;9;154,CAMPO PARALLELO 6 ALLARME PROTEZIONE
155;E2_809.10;Alarm Word 9;10;155,CAMPO PARALLELO 7 ALLARME PROTEZIONE
156;E2_809.11;Alarm Word 9;11;156,CAMPO PARALLELO 8 ALLARME PROTEZIONE
157;E2_809.12;Alarm Word 9;12;157,ALLARME INSEGUIMENTO VITE MASTER AGGIUNTA
158;E2_809.13;Alarm Word 9;13;158,ALLARME INVERTER CILINDRO RAFFREDDAMENTO
159;E2_809.14;Alarm Word 9;14;159,ALLARME TEMPERATURA ESAUSTORI
160;E2_809.15;Alarm Word 9;15;160,ALLARME INVERTER RECUPERO CALORE GRUPPO 1
161;E2_810.00;Alarm Word 10;0;161,ALLARME FINECORSA SX TAPPETO USCITA
162;E2_810.01;Alarm Word 10;1;162,ALLARME FINECORSA DX TAPPETO USCITA
163;E2_810.02;Alarm Word 10;2;163,ALLARME INVERTER RECUPERO CALORE GRUPPO 2
164;E2_810.03;Alarm Word 10;3;164,ALLARME DEVICE_NET ADDR. 31
165;E2_810.04;Alarm Word 10;4;165,ALLARME CENTRATORE USCITA
166;E2_810.05;Alarm Word 10;5;166,COMPATTATORE NON PRONTO
167;E2_810.06;Alarm Word 10;6;167,ALLARME CONTROLLO PIROMETRI
168;E2_810.07;Alarm Word 10;7;168,ALLARME ALLARGATORE SU TAPPETO USCITA
169;E2_810.08;Alarm Word 10;8;169,ALLARME CONTROLLO FUMI
170;E2_810.09;Alarm Word 10;9;170,ALLARME FINECORSA BALLERINO ALTO
171;E2_810.10;Alarm Word 10;10;171,ALLARME FINECORSA BALLERINO BASSO
172;E2_810.11;Alarm Word 10;11;172,ALLARME PROTEZIONE ASPIRATORE VAPORIZZO INTENSIVO
173;E2_810.12;Alarm Word 10;12;173,ALLARME PROTEZIONE BRUCIATORE 1
174;E2_810.13;Alarm Word 10;13;174,ALLARME PROTEZIONE BRUCIATORE 2
175;E2_810.14;Alarm Word 10;14;175,ALLARME PROTEZIONE BRUCIATORE 3
176;E2_810.15;Alarm Word 10;15;176,ALLARME PROTEZIONE BRUCIATORE 4
177;E2_811.00;Alarm Word 11;0;177,ALLARME PROTEZIONE BRUCIATORE 5
178;E2_811.01;Alarm Word 11;1;178,ALLARME PROTEZIONE BRUCIATORE 6
179;E2_811.02;Alarm Word 11;2;179,ALLARME PROTEZIONE BRUCIATORE 7
180;E2_811.03;Alarm Word 11;3;180,ALLARME PROTEZIONE BRUCIATORE 8
181;E2_811.04;Alarm Word 11;4;181,ALLARME PROTEZIONE BRUCIATORE 9
182;E2_811.05;Alarm Word 11;5;182,ALLARME PROTEZIONE BRUCIATORE 10
183;E2_811.06;Alarm Word 11;6;183,ALLARME PROTEZIONE BRUCIATORE 11
184;E2_811.07;Alarm Word 11;7;184,ALLARME PROTEZIONE BRUCIATORE 12
185;E2_811.08;Alarm Word 11;8;185,TERMOFISSAGGIO O ESSICCAZIONE: TEMPERATURA FUORI CAMPO
186;E2_811.09;Alarm Word 11;9;186,TERMOFISSAGGIO O ESSICCAZIONE: VELOCITA' FUORI CAMPO
187;E2_811.10;Alarm Word 11;10;187,TERMOFISSAGGIO O ESSICCAZIONE: TEMPO FUORI CAMPO
188;E2_811.11;Alarm Word 11;11;188,SISTEMA CAMPI PARALLELI NON TARATO
189;E2_811.12;Alarm Word 11;12;189,ALLARME PROTEZIONE VENTOLE BRUCIATORI
190;E2_811.13;Alarm Word 11;13;190,CAMPO CONICO SINISTRO SU LIMITE CHIUSURA
191;E2_811.14;Alarm Word 11;14;191,CAMPO CONICO SINISTRO SU LIMITE APERTURA
192;E2_811.15;Alarm Word 11;15;192,CAMPO CONICO DESTRO SU LIMITE APERTURA
193;E2_812.00;Alarm Word 12;0;193,CAMPO CONICO DESTRO SU LIMITE CHIUSURA
194;E2_812.01;Alarm Word 12;1;194,FINECORSA CAMPO CONICO DESTRO SU TRAVERSA
195;E2_812.02;Alarm Word 12;2;195,FINECORSA CAMPO CONICO SINISTRO SU TRAVERSA
196;E2_812.03;Alarm Word 12;3;196,ALLARME PROTEZIONE INVERTER CAMPO CONICO SINISTRO
197;E2_812.04;Alarm Word 12;4;197,ALLARME PROTEZIONE INVERTER CAMPO CONICO DESTRO
198;E2_812.05;Alarm Word 12;5;198,ALLARME DEVICE_NET ADDR. 27
199;E2_812.06;Alarm Word 12;6;199,ALLARME VENTILATORE 8 (ALTO)
200;E2_812.07;Alarm Word 12;7;200,ALLARME VENTILATORE 9 (ALTO)
201;E2_812.08;Alarm Word 12;8;201,ALLARME VENTILATORE 10 (ALTO)
202;E2_812.09;Alarm Word 12;9;202,ALLARME VENTILATORE 11 (ALTO)
203;E2_812.10;Alarm Word 12;10;203,ALLARME VENTILATORE 12 (ALTO)
204;E2_812.11;Alarm Word 12;11;204,ALLARME VENTILATORE 1 (ALTO)
205;E2_812.12;Alarm Word 12;12;205,ALLARME VENTILATORE 2 (ALTO)
206;E2_812.13;Alarm Word 12;13;206,ALLARME VENTILATORE 3 (ALTO)
207;E2_812.14;Alarm Word 12;14;207,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 2
208;E2_812.15;Alarm Word 12;15;208,ALLARME FINECORSA TANDEM CONTROLLO ANSA TESSUTO
209;E2_813.00;Alarm Word 13;0;209,ALLARME FUNE SICUREZZA / PROTEZIONE RIBALTABILE ANTERIORE
210;E2_813.01;Alarm Word 13;1;210,ALLARME INVERTER VENTILATORI INV101A
211;E2_813.02;Alarm Word 13;2;211,ALLARME INVERTER VENTILATORI INV103A
212;E2_813.03;Alarm Word 13;3;212,ALLARME INVERTER VENTILATORI INV105A
213;E2_813.04;Alarm Word 13;4;213,ALLARME INVERTER VENTILATORI INV107A
214;E2_813.05;Alarm Word 13;5;214,ALLARME INVERTER VENTILATORI INV109A
215;E2_813.06;Alarm Word 13;6;215,ALLARME INVERTER VENTILATORI INV111A
216;E2_813.07;Alarm Word 13;7;216,ALLARME DA BANCHETTO DI SPALMATURA
217;E2_813.08;Alarm Word 13;8;217,ALLARME DEVICE_NET ADDR. 28
218;E2_813.09;Alarm Word 13;9;218,STOP JOG USCITA PER PESO RAGGIUNTO SU CELLA DI CARICO
219;E2_813.10;Alarm Word 13;10;219,DOGAL NON PRONTO
220;E2_813.11;Alarm Word 13;11;220,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91A
221;E2_813.12;Alarm Word 13;12;221,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 1
222;E2_813.13;Alarm Word 13;13;222,ALLARME PROTEZIONE SOSTEGNO TESSUTO
223;E2_813.14;Alarm Word 13;14;223,TARATURA CAMPI CONICI NON EFFETTUATA!
224;E2_813.15;Alarm Word 13;15;224,ALLARME TIMEOUT VITE CAMPO PARALLELO 10
225;E2_814.00;Alarm Word 14;0;225,CAMPO PARALLELO 9 ALLARME PROTEZIONE
226;E2_814.01;Alarm Word 14;1;226,CAMPO PARALLELO 10 ALLARME PROTEZIONE
227;E2_814.02;Alarm Word 14;2;227,CAMPO PARALLELO 11 ALLARME PROTEZIONE
228;E2_814.03;Alarm Word 14;3;228,CAMPO PARALLELO 12 ALLARME PROTEZIONE
229;E2_814.04;Alarm Word 14;4;229,ALLARME FLUSSOSTATO RECUPERO CALORE 1
230;E2_814.05;Alarm Word 14;5;230,ALLARME FLUSSOSTATO RECUPERO CALORE 2
231;E2_814.06;Alarm Word 14;6;231,ALLARME FLUSSOSTATO RECUPERO CALORE 3
232;E2_814.07;Alarm Word 14;7;232,ALLARME PROTEZIONE VENTILATORE ASCIUGACIMOSSE
233;E2_814.08;Alarm Word 14;8;233,ALLARME PROTEZIONE RESISTENZE ASCIUGACIMOSSE
234;E2_814.09;Alarm Word 14;9;234,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 1
235;E2_814.10;Alarm Word 14;10;235,ALLARME INCENDIO
236;E2_814.11;Alarm Word 14;11;236,ATTENZIONE ! ALLARME PRESENTE SU BANCHETTO DI SPALMATURA
237;E2_814.12;Alarm Word 14;12;237,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 2
238;E2_814.13;Alarm Word 14;13;238,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91B
239;E2_814.14;Alarm Word 14;14;239,ALLARME PROTEZIONE PULISCISPILLI
240;E2_814.15;Alarm Word 14;15;240,BATTERIA PLC - LIVELLO BASSO
241;E2_815.00;Alarm Word 15;0;241,ALLARME CONTEMPORANEIT? TERMOSTATI SICUREZZA BRUCIATORI
242;E2_815.01;Alarm Word 15;1;242,BLOCCO VERSIONE SOFTWARE
243;E2_815.02;Alarm Word 15;2;243,SROTOLATORE NON PRONTO
244;E2_815.03;Alarm Word 15;3;244,ERRORE DI COMUNICAZIONE PROTOCOL MACRO
245;E2_815.04;Alarm Word 15;4;245,ALLARME TAGLIERINA URBAN
246;E2_815.05;Alarm Word 15;5;246,FINE TESSUTO IN INGRESSO
247;E2_815.06;Alarm Word 15;6;247,ALLARME PROTEZIONE SERVOVENTILAZIONI MOTORI
248;E2_815.07;Alarm Word 15;7;248,ALLARME INVERTER ARROTOLATORE TANGENZIALE
249;E2_815.08;Alarm Word 15;8;249,ALLARME SPREMITORE 2
250;E2_815.09;Alarm Word 15;9;250,ALLARME FS-91ER PLEVA
251;E2_815.10;Alarm Word 15;10;251,ALLARME LINEA EMERGENZA ARROTOLATORE
252;E2_815.11;Alarm Word 15;11;252,ALLARME FOTOCELLULE ARROTOLATORE
253;E2_815.12;Alarm Word 15;12;253,PORTA CASSETTA USCITA RAMOSA APERTA
254;E2_815.13;Alarm Word 15;13;254,ALLARME FINECORSA CILINDRO PROTEZIONE ARROTOLATORE ASSIALE
255;E2_815.14;Alarm Word 15;14;255,ALLARME PRESSOSTATI GRUPPO VALVOLE USCITA
256;E2_815.15;Alarm Word 15;15;256,ARROTOLATORE NON PRONTO
257;E2_816.00;Alarm Word 16;0;257,FINECORSA GRUPPO FALDATORE AVANTI
258;E2_816.01;Alarm Word 16;1;258,FINECORSA GRUPPO FALDATORE INDIETRO
259;E2_816.02;Alarm Word 16;2;259,ALLARME BATTERIA ELETTRICA 1
260;E2_816.03;Alarm Word 16;3;260,SOVRATEMPERATURA BATTERIA ELETTRICA 5
261;E2_816.04;Alarm Word 16;4;261,ALLARME BATTERIA ELETTRICA 2
262;E2_816.05;Alarm Word 16;5;262,RISCALDAMENTO QUADRO SPENTO
263;E2_816.06;Alarm Word 16;6;263,SOVRATEMPERATURA BATTERIA ELETTRICA 1
264;E2_816.07;Alarm Word 16;7;264,SOVRATEMPERATURA BATTERIA ELETTRICA 2
265;E2_816.08;Alarm Word 16;8;265,ALLARME BATTERIA ELETTRICA 3
266;E2_816.09;Alarm Word 16;9;266,EMERGENZA DA SPALMATRICE
267;E2_816.10;Alarm Word 16;10;267,ALLARME BATTERIA ELETTRICA 4
268;E2_816.11;Alarm Word 16;11;268,ALLARME BATTERIA ELETTRICA 5
269;E2_816.12;Alarm Word 16;12;269,SOVRATEMPERATURA BATTERIA ELETTRICA 3
270;E2_816.13;Alarm Word 16;13;270,SOVRATEMPERATURA BATTERIA ELETTRICA 4
271;E2_816.14;Alarm Word 16;14;271,ALLARME IDROSTATO RECUPERO CALORE 1
272;E2_816.15;Alarm Word 16;15;272,ALLARME SENSORE LIVELLO RECUPERO CALORE 1 : AGGIUNGERE LIQUIDO !
273;E2_817.00;Alarm Word 17;0;273,ALLARME RELE' CONTROLLO FASI
274;E2_817.01;Alarm Word 17;1;274,ALLARME DEVICE NET ADDR. 40 - MODULO GRT1-DRT USCITA RAMOSA
275;E2_817.02;Alarm Word 17;2;275,ALLARME PRESSOSTATO LINEA ENTRATA MACCHINA
276;E2_817.03;Alarm Word 17;3;276,ALLARME PRESSOSTATO LINEA USCITA MACCHINA
277;E2_817.04;Alarm Word 17;4;277,CAMPO CANNOCCHIALI 1 BLOCCATO
278;E2_817.05;Alarm Word 17;5;278,CAMPO CANNOCCHIALI 2 BLOCCATO
279;E2_817.06;Alarm Word 17;6;279,ALLARME DISCONTINUITA' CAMPI PARALLELI
280;E2_817.07;Alarm Word 17;7;280,ALLARME INSEGUIMENTO CAMPI PARALLELI - VITE LENTA
281;E2_817.08;Alarm Word 17;8;281,ALLARME LIMITE VITI
282;E2_817.09;Alarm Word 17;9;282,RAGGIUNTO MASSIMO CARICO SU CELLA DI CARICO
283;E2_817.10;Alarm Word 17;10;283,ALLARME PRESSOSTATO ESAUSTORE
284;E2_817.11;Alarm Word 17;11;284,EMERGENZA MOVIMENTO TESSUTO
285;E2_817.12;Alarm Word 17;12;285,EMERGENZA DA SPREMITORE 1
286;E2_817.13;Alarm Word 17;13;286,EMERGENZA DA RADDRIZZATRAMA
287;E2_817.14;Alarm Word 17;14;287,EMERGENZA DA SROTOLATORE
288;E2_817.15;Alarm Word 17;15;288,EMERGENZA DA ARROTOLATORE
289;E2_818.00;Alarm Word 18;0;289,ALLARME SICUREZZA BRUCIATORE 1
290;E2_818.01;Alarm Word 18;1;290,ALLARME SICUREZZA BRUCIATORE 2
291;E2_818.02;Alarm Word 18;2;291,ALLARME SICUREZZA BRUCIATORE 3
292;E2_818.03;Alarm Word 18;3;292,ALLARME SICUREZZA BRUCIATORE 4
293;E2_818.04;Alarm Word 18;4;293,ALLARME SICUREZZA BRUCIATORE 5
294;E2_818.05;Alarm Word 18;5;294,ALLARME SICUREZZA BRUCIATORE 6
295;E2_818.06;Alarm Word 18;6;295,ALLARME SICUREZZA BRUCIATORE 7
296;E2_818.07;Alarm Word 18;7;296,ALLARME SICUREZZA BRUCIATORE 8
297;E2_818.08;Alarm Word 18;8;297,ALLARME SICUREZZA BRUCIATORE 9
298;E2_818.09;Alarm Word 18;9;298,ALLARME SICUREZZA BRUCIATORE 10
299;E2_818.10;Alarm Word 18;10;299,ALLARME SICUREZZA BRUCIATORE 11
300;E2_818.11;Alarm Word 18;11;300,ALLARME SICUREZZA BRUCIATORE 12
301;E2_818.12;Alarm Word 18;12;301,ALLARME BRUCIATORE 1 SPENTO
302;E2_818.13;Alarm Word 18;13;302,ALLARME BRUCIATORE 2 SPENTO
303;E2_818.14;Alarm Word 18;14;303,ALLARME BRUCIATORE 3 SPENTO
304;E2_818.15;Alarm Word 18;15;304,ALLARME BRUCIATORE 4 SPENTO
305;E2_819.00;Alarm Word 19;0;305,ALLARME BRUCIATORE 5 SPENTO
306;E2_819.01;Alarm Word 19;1;306,ALLARME BRUCIATORE 6 SPENTO
307;E2_819.02;Alarm Word 19;2;307,ALLARME BRUCIATORE 7 SPENTO
308;E2_819.03;Alarm Word 19;3;308,ALLARME BRUCIATORE 8 SPENTO
309;E2_819.04;Alarm Word 19;4;309,ALLARME BRUCIATORE 9 SPENTO
310;E2_819.05;Alarm Word 19;5;310,ALLARME BRUCIATORE 10 SPENTO
311;E2_819.06;Alarm Word 19;6;311,ALLARME BRUCIATORE 11 SPENTO
312;E2_819.07;Alarm Word 19;7;312,ALLARME BRUCIATORE 12 SPENTO
313;E2_819.08;Alarm Word 19;8;313,ALLARME SENSORE LIVELLO RECUPERO CALORE 2 : AGGIUNGERE LIQUIDO !
314;E2_819.09;Alarm Word 19;9;314,ALLARME DA MIXER
315;E2_819.10;Alarm Word 19;10;315,ALLARME PRESSOSTATI LUBRIFICAZIONE
316;E2_819.11;Alarm Word 19;11;316,ALLARME ABBATTITORE FUMI
317;E2_819.12;Alarm Word 19;12;317,MACCHINA 1 NON IN LINEA
318;E2_819.13;Alarm Word 19;13;318,MACCHINA 2 NON IN LINEA
319;E2_819.14;Alarm Word 19;14;319,MACCHINA 3 NON IN LINEA
320;E2_819.15;Alarm Word 19;15;320,MACCHINA 4 NON IN LINEA
321;E2_820.00;Alarm Word 20;0;321,MACCHINA 5 NON IN LINEA
322;E2_820.01;Alarm Word 20;1;322,MACCHINA 6 NON IN LINEA
323;E2_820.02;Alarm Word 20;2;323,MACCHINA 7 NON IN LINEA
324;E2_820.03;Alarm Word 20;3;324,MACCHINA 8 NON IN LINEA
325;E2_820.04;Alarm Word 20;4;325,NON STOP NON PRONTO
326;E2_820.05;Alarm Word 20;5;326,EMERGENZA DA NON STOP
327;E2_820.06;Alarm Word 20;6;327,ALLARME DISCONTINUITA' CAMPO MASTER
328;E2_820.07;Alarm Word 20;7;328,ALLARME DISCONTINUITA' CAMPO PARALLELO 1
329;E2_820.08;Alarm Word 20;8;329,ALLARME DISCONTINUITA' CAMPO PARALLELO 2
330;E2_820.09;Alarm Word 20;9;330,ALLARME DISCONTINUITA' CAMPO PARALLELO 3
331;E2_820.10;Alarm Word 20;10;331,ALLARME DISCONTINUITA' CAMPO PARALLELO 4
332;E2_820.11;Alarm Word 20;11;332,ALLARME DISCONTINUITA' CAMPO PARALLELO 5
333;E2_820.12;Alarm Word 20;12;333,ALLARME DISCONTINUITA' CAMPO PARALLELO 6
334;E2_820.13;Alarm Word 20;13;334,ALLARME DISCONTINUITA' CAMPO PARALLELO 7
335;E2_820.14;Alarm Word 20;14;335,ALLARME DISCONTINUITA' CAMPO PARALLELO 8
336;E2_820.15;Alarm Word 20;15;336,ALLARME DISCONTINUITA' CAMPO PARALLELO 9
337;E2_821.00;Alarm Word 21;0;337,ALLARME DISCONTINUITA' CAMPO PARALLELO 10
338;E2_821.01;Alarm Word 21;1;338,PROTEZIONI INGRESSO APERTE
339;E2_821.02;Alarm Word 21;2;339,PROTEZIONI USCITA APERTE
340;E2_821.03;Alarm Word 21;3;340,ALLARME PROTEZIONE ESTRATTORE FUMI 1
341;E2_821.04;Alarm Word 21;4;341,ALLARME PROTEZIONE ESTRATTORE FUMI 2
342;E2_821.05;Alarm Word 21;5;342,MANCANZA PRESSOSTATO ESTRATTORE FUMI 1
343;E2_821.06;Alarm Word 21;6;343,MANCANZA PRESSOSTATO ESTRATTORE FUMI 2
344;E2_821.07;Alarm Word 21;7;344,EMERGENZA DA MIXER
345;E2_821.08;Alarm Word 21;8;345,EMERGENZA DA SPREMITORE 2
346;E2_821.09;Alarm Word 21;9;346,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 1
347;E2_821.10;Alarm Word 21;10;347,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 2
348;E2_821.11;Alarm Word 21;11;348,ALLARME MODULO VELOCITA? ZERO CATENA TRASP. TESSUTO
349;E2_821.12;Alarm Word 21;12;349,ALLARME RILEVAMENTO TESSUTO SINISTRO USCITA
350;E2_821.13;Alarm Word 21;13;350,ALLARME RILEVAMENTO TESSUTO DESTRO USCITA
351;E2_821.14;Alarm Word 21;14;351,ALLARME FINECORSA SOLLEVAMENTO CAMPI CONICI
352;E2_821.15;Alarm Word 21;15;352,ALLARME IDROSTATO RECUPERO CALORE 2
353;E2_822.00;Alarm Word 22;0;353,ALLARME FUNE DI PROTEZIONE IN USCITA
354;E2_822.01;Alarm Word 22;1;354,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 1
355;E2_822.02;Alarm Word 22;2;355,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 2
356;E2_822.03;Alarm Word 22;3;356,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 3
357;E2_822.04;Alarm Word 22;4;357,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 4
358;E2_822.05;Alarm Word 22;5;358,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 5
359;E2_822.06;Alarm Word 22;6;359,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 6
360;E2_822.07;Alarm Word 22;7;360,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 7
361;E2_822.08;Alarm Word 22;8;361,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 8
362;E2_822.09;Alarm Word 22;9;362,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 9
363;E2_822.10;Alarm Word 22;10;363,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 10
364;E2_822.11;Alarm Word 22;11;364,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 11
365;E2_822.12;Alarm Word 22;12;365,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 12
366;E2_822.13;Alarm Word 22;13;366,OLIO CATENA - PRESSIONE MINIMA
367;E2_822.14;Alarm Word 22;14;367,POMPA OLIO CATENA - ALLARME PROTEZIONE
368;E2_822.15;Alarm Word 22;15;368,JBOX INGRESSO - BALLERINO BASSO
369;E2_823.00;Alarm Word 23;0;369,JBOX INGRESSO - FINE TESSUTO
370;E2_823.01;Alarm Word 23;1;370,JBOX INGRESSO - PIENO
371;E2_823.02;Alarm Word 23;2;371,JBOX INGRESSO - BALLERINO ALTO
372;E2_823.03;Alarm Word 23;3;372,JBOX INGRESSO - VUOTO
373;E2_823.04;Alarm Word 23;4;373,JBOX USCITA - BALLERINO BASSO
374;E2_823.05;Alarm Word 23;5;374,JBOX USCITA - FINE TESSUTO
375;E2_823.06;Alarm Word 23;6;375,JBOX USCITA - PIENO
376;E2_823.07;Alarm Word 23;7;376,JBOX USCITA - BALLERINO ALTO
377;E2_823.08;Alarm Word 23;8;377,JBOX USCITA - VUOTO
378;E2_823.09;Alarm Word 23;9;378,JBOX USCITA - ALLARME PRESSOSTATO
379;E2_823.10;Alarm Word 23;10;379,JBOX ENTRATA - ALLARME PRESSOSTATO
380;E2_823.11;Alarm Word 23;11;380,ALLARME PROTEZIONE CARRELLO FALDATORE
381;E2_823.12;Alarm Word 23;12;381,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 1
382;E2_823.13;Alarm Word 23;13;382,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 2
383;E2_823.14;Alarm Word 23;14;383,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 3
384;E2_823.15;Alarm Word 23;15;384,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 4
385;E2_824.00;Alarm Word 24;0;385,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 5
386;E2_824.01;Alarm Word 24;1;386,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 6
387;E2_824.02;Alarm Word 24;2;387,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 7
388;E2_824.03;Alarm Word 24;3;388,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 8
389;E2_824.04;Alarm Word 24;4;389,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 9
390;E2_824.05;Alarm Word 24;5;390,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 10
391;E2_824.06;Alarm Word 24;6;391,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 11
392;E2_824.07;Alarm Word 24;7;392,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 12
393;E2_824.08;Alarm Word 24;8;393,ESTRATTORE FUMI RISC. INDIRETTO 1 - ALLARME PROTEZIONE
394;E2_824.09;Alarm Word 24;9;394,ESTRATTORE FUMI RISC. INDIRETTO 2 - ALLARME PROTEZIONE
395;E2_824.10;Alarm Word 24;10;395,ESTRATTORE FUMI RISC. INDIRETTO 3 - ALLARME PROTEZIONE
396;E2_824.11;Alarm Word 24;11;396,ESTRATTORE FUMI RISC. INDIRETTO 4 - ALLARME PROTEZIONE
397;E2_824.12;Alarm Word 24;12;397,ESTRATTORE FUMI RISC. INDIRETTO 5 - ALLARME PROTEZIONE
398;E2_824.13;Alarm Word 24;13;398,ESTRATTORE FUMI RISC. INDIRETTO 6 - ALLARME PROTEZIONE
399;E2_824.14;Alarm Word 24;14;399,TAGLIERINA SINISTRA - FUORI POSIZIONE
400;E2_824.15;Alarm Word 24;15;400,TAGLIERINA DESTRA - FUORI POSIZIONE
401;E2_825.00;Alarm Word 25;0;401,ALLARME PROTEZIONE CILINDRO CONTRASTO TAGLIERINE
402;E2_825.01;Alarm Word 25;1;402,JBOX INGRESSO - TESSUTO INCROCIATO
403;E2_825.02;Alarm Word 25;2;403,JBOX USCITA - TESSUTO INCROCIATO
404;E2_825.03;Alarm Word 25;3;404,ALLARME DEVICE_NET STAZIONE ADDR.38 - JBOX INGRESSO
405;E2_825.04;Alarm Word 25;4;405,ALLARME DEVICE_NET STAZIONE ADDR.39 - JBOX USCITA
406;E2_825.05;Alarm Word 25;5;406,JBOX INGRESSO - ALLARME INVERTER
407;E2_825.06;Alarm Word 25;6;407,JBOX USCITA - ALLARME INVERTER
408;E2_825.07;Alarm Word 25;7;408,ALLARGA/CENTRATORE A/B SU IMBARRAGGIO - ALLARME PROTEZIONE
409;E2_825.08;Alarm Word 25;8;409,ALLARME TIMEOUT VITE CAMPO PARALLELO 11
410;E2_825.09;Alarm Word 25;9;410,ALLARME TIMEOUT VITE CAMPO PARALLELO 12
411;E2_825.10;Alarm Word 25;10;411,FRENO JBOX INGRESSO - ALLARME PROTEZIONE
412;E2_825.11;Alarm Word 25;11;412,FRENO JBOX USCITA - ALLARME PROTEZIONE
413;E2_825.12;Alarm Word 25;12;413,ALLARME PROTEZIONE FRENO CAMPO CONICO SINISTRO
414;E2_825.13;Alarm Word 25;13;414,ALLARME PROTEZIONE FRENO CAMPO CONICO DESTRO
415;E2_825.14;Alarm Word 25;14;415,VERIFICA PRESSOSTATO 1 FALLITA
416;E2_825.15;Alarm Word 25;15;416,VERIFICA PRESSOSTATO 2 FALLITA
417;E2_826.00;Alarm Word 26;0;417,ALLARME TERMOSTATO INTERNO QUADRO
418;E2_826.01;Alarm Word 26;1;418,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 2
419;E2_826.02;Alarm Word 26;2;419,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 2
420;E2_826.03;Alarm Word 26;3;420,PROTEZIONE RIBALTABILE INGRESSO
421;E2_826.04;Alarm Word 26;4;421,FUNE EMERGENZA INGRESSO
422;E2_826.05;Alarm Word 26;5;422,PARATIA SCORREVOLE INGRESSO SINISTRA
423;E2_826.06;Alarm Word 26;6;423,PARATIA SCORREVOLE INGRESSO DESTRA
424;E2_826.07;Alarm Word 26;7;424,CANCELLO SINISTRO ENTRATA ANTERIORE
425;E2_826.08;Alarm Word 26;8;425,CANCELLO SINISTRO ENTRATA POSTERIORE
426;E2_826.09;Alarm Word 26;9;426,CANCELLO DESTRO ENTRATA ANTERIORE
427;E2_826.10;Alarm Word 26;10;427,CANCELLO DESTRO ENTRATA POSTERIORE
428;E2_826.11;Alarm Word 26;11;428,CANCELLO SINISTRO USCITA
429;E2_826.12;Alarm Word 26;12;429,CANCELLO DESTRO USCITA
430;E2_826.13;Alarm Word 26;13;430,TENSIONATORE FUNE EMERGENZA SINISTRA ZONA FORNO
431;E2_826.14;Alarm Word 26;14;431,TENSIONATORE FUNE EMERGENZA DESTRA ZONA FORNO
432;E2_826.15;Alarm Word 26;15;432,FUNE EMERGENZA SINISTRA ZONA FORNO
433;E2_827.00;Alarm Word 27;0;433,FUNE EMERGENZA DESTRA ZONA FORNO
434;E2_827.01;Alarm Word 27;1;434,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (1)
435;E2_827.02;Alarm Word 27;2;435,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (2)
436;E2_827.03;Alarm Word 27;3;436,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (1)
437;E2_827.04;Alarm Word 27;4;437,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (2)
438;E2_827.05;Alarm Word 27;5;438,ALLARME FEEDBACK EMERGENZA GENERALE DA SCARICO ARIA
439;E2_827.06;Alarm Word 27;6;439,BYPASS SPORTELLI ARMADIO ATTIVO
440;E2_827.07;Alarm Word 27;7;440,TIMEOUT ENCODER CAMPO CONICO SINISTRO
441;E2_827.08;Alarm Word 27;8;441,TIMEOUT ENCODER CAMPO CONICO DESTRO
442;E2_827.09;Alarm Word 27;9;442,ALLARME BALLERINO ALTO SPREMITORE 1
443;E2_827.10;Alarm Word 27;10;443,ALLARME BALLERINO ALTO SPREMITORE 2
444;E2_827.11;Alarm Word 27;11;444,
445;E2_827.12;Alarm Word 27;12;445,
446;E2_827.13;Alarm Word 27;13;446,
447;E2_827.14;Alarm Word 27;14;447,
448;E2_827.15;Alarm Word 27;15;448,
449;E2_828.00;Alarm Word 28;0;449,
450;E2_828.01;Alarm Word 28;1;450,
451;E2_828.02;Alarm Word 28;2;451,
452;E2_828.03;Alarm Word 28;3;452,
453;E2_828.04;Alarm Word 28;4;453,
454;E2_828.05;Alarm Word 28;5;454,
455;E2_828.06;Alarm Word 28;6;455,
456;E2_828.07;Alarm Word 28;7;456,
457;E2_828.08;Alarm Word 28;8;457,
458;E2_828.09;Alarm Word 28;9;458,
459;E2_828.10;Alarm Word 28;10;459,
460;E2_828.11;Alarm Word 28;11;460,ALLARME PROTEZIONE BARRE ANTISTATICHE
461;E2_828.12;Alarm Word 28;12;461,ALLARME PROTEZIONE VENTILAZIONE INTERNO QUADRO
462;E2_828.13;Alarm Word 28;13;462,BORDO SENSIBILE
463;E2_828.14;Alarm Word 28;14;463,FALDAROTOLATORE_SICUREZZA SX/DX
464;E2_828.15;Alarm Word 28;15;464,FALDAROTOLATORE_EMERGENZA TESSUTO
465;E2_829.00;Alarm Word 29;0;465,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.1
466;E2_829.01;Alarm Word 29;1;466,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.2
467;E2_829.02;Alarm Word 29;2;467,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.3
468;E2_829.03;Alarm Word 29;3;468,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.4
469;E2_829.04;Alarm Word 29;4;469,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.5
470;E2_829.05;Alarm Word 29;5;470,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.6
471;E2_829.06;Alarm Word 29;6;471,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.7
472;E2_829.07;Alarm Word 29;7;472,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.8
473;E2_829.08;Alarm Word 29;8;473,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.9
474;E2_829.09;Alarm Word 29;9;474,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.10
475;E2_829.10;Alarm Word 29;10;475,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.11
476;E2_829.11;Alarm Word 29;11;476,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.12
477;E2_829.12;Alarm Word 29;12;477,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 1/2
478;E2_829.13;Alarm Word 29;13;478,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 3/4
479;E2_829.14;Alarm Word 29;14;479,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 5/6
480;E2_829.15;Alarm Word 29;15;480,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 7/8
481;E2_830.00;Alarm Word 30;0;481,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 9/10
482;E2_830.01;Alarm Word 30;1;482,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 1
483;E2_830.02;Alarm Word 30;2;483,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 2
484;E2_830.03;Alarm Word 30;3;484,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 3
485;E2_830.04;Alarm Word 30;4;485,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 4
486;E2_830.05;Alarm Word 30;5;486,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 5
487;E2_830.06;Alarm Word 30;6;487,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 6
488;E2_830.07;Alarm Word 30;7;488,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 7
489;E2_830.08;Alarm Word 30;8;489,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 8
490;E2_830.09;Alarm Word 30;9;490,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 9
491;E2_830.10;Alarm Word 30;10;491,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 10
492;E2_830.11;Alarm Word 30;11;492,TRASDUTTORE PRESSIONE BR 1 INTERROTTO
493;E2_830.12;Alarm Word 30;12;493,TRASDUTTORE PRESSIONE BR 2 INTERROTTO
494;E2_830.13;Alarm Word 30;13;494,TRASDUTTORE PRESSIONE BR 3 INTERROTTO
495;E2_830.14;Alarm Word 30;14;495,TRASDUTTORE PRESSIONE BR 4 INTERROTTO
496;E2_830.15;Alarm Word 30;15;496,TRASDUTTORE PRESSIONE BR 5 INTERROTTO
497;E2_831.00;Alarm Word 31;0;497,TRASDUTTORE PRESSIONE BR 6 INTERROTTO
498;E2_831.01;Alarm Word 31;1;498,TRASDUTTORE PRESSIONE BR 7 INTERROTTO
499;E2_831.02;Alarm Word 31;2;499,TRASDUTTORE PRESSIONE BR 8 INTERROTTO
500;E2_831.03;Alarm Word 31;3;500,TRASDUTTORE PRESSIONE BR 9 INTERROTTO
501;E2_831.04;Alarm Word 31;4;501,TRASDUTTORE PRESSIONE BR 10 INTERROTTO
502;E2_831.05;Alarm Word 31;5;502,TRASDUTTORE PRESSIONE BR 11 INTERROTTO
503;E2_831.06;Alarm Word 31;6;503,TRASDUTTORE PRESSIONE BR 12 INTERROTTO
504;E2_831.07;Alarm Word 31;7;504,ERRORE TRASDUTTORE DI PRESSIONE RC1
505;E2_831.08;Alarm Word 31;8;505,ERRORE TRASDUTTORE DI PRESSIONE RC2
506;E2_831.09;Alarm Word 31;9;506,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 1 RC
507;E2_831.10;Alarm Word 31;10;507,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 2 RC
508;E2_831.11;Alarm Word 31;11;508,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 11
509;E2_831.12;Alarm Word 31;12;509,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 12
510;E2_831.13;Alarm Word 31;13;510,ALLARME PRESSOSTATO TAGLIERINE
511;E2_831.14;Alarm Word 31;14;511,BALLERINO ALTO - SROTOLATORE - ALLARME
512;E2_831.15;Alarm Word 31;15;512,EMERGENZA DA LINEA ENTRATA RAMOSA
513;E2_832.00;Alarm Word 32;0;513,LINEA ENTRATA RAMOSA NON PRONTA
514;E2_832.01;Alarm Word 32;1;514,EMERGENZA DA LINEA USCITA RAMOSA
515;E2_832.02;Alarm Word 32;2;515,LINEA USCITA RAMOSA NON PRONTA
516;E2_832.03;Alarm Word 32;3;516,TAGLIERINA CENTRALE FUORI POSIZIONE
517;E2_832.04;Alarm Word 32;4;517,TIRACIMOSSE NON PRONTO
518;E2_832.05;Alarm Word 32;5;518,JBOX INGRESSO IN EMERGENZA
519;E2_832.06;Alarm Word 32;6;519,JBOX INGRESSO NON PRONTO
520;E2_832.07;Alarm Word 32;7;520,JBOX USCITA IN EMERGENZA
521;E2_832.08;Alarm Word 32;8;521,JBOX USCITA NON PRONTO
522;E2_832.09;Alarm Word 32;9;522,ALLARME D-NET 41 RISCALDAMENTO INDIRETTO
523;E2_832.10;Alarm Word 32;10;523,SPAZZOLATRICE IN EMERGENZA
524;E2_832.11;Alarm Word 32;11;524,SPAZZOLATRICE NON PRONTA
525;E2_832.12;Alarm Word 32;12;525,ALLARME FUNE DI SICUREZZA USCITA STACCAPEZZA
526;E2_832.13;Alarm Word 32;13;526,ALLARME FUNE DI SICUREZZA USCITA FALDAROTOLATORE
527;E2_832.14;Alarm Word 32;14;527,ALLARME FUNE DI SICUREZZA CAMPO CONICO SINISTRO
528;E2_832.15;Alarm Word 32;15;528,ALLARME FUNE DI SICUREZZA CAMPO CONICO DESTRO
1 1 E2_800.00 Alarm Word 0 0 1,ALLARME INVERTER CATENA TRASP. TESSUTO
2 2 E2_800.01 Alarm Word 0 1 2,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE SUPERIORE
3 3 E2_800.02 Alarm Word 0 2 3,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE INFERIORE
4 4 E2_800.03 Alarm Word 0 3 4,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE SINISTRA
5 5 E2_800.04 Alarm Word 0 4 5,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE DESTRA
6 6 E2_800.05 Alarm Word 0 5 6,ALLARME INVERTER STACCAPEZZA
7 7 E2_800.06 Alarm Word 0 6 7,ALLARME INVERTER FALDAROTOLATORE
8 8 E2_800.07 Alarm Word 0 7 8,ALLARME INVERTER FALDERUOLE
9 9 E2_800.08 Alarm Word 0 8 9,ALLARME INVERTER ESAUSTORE 1
10 10 E2_800.09 Alarm Word 0 9 10,ALLARME FUNE SICUREZZA USCITA
11 11 E2_800.10 Alarm Word 0 10 11,ALLARME VENTILATORE 1 (BASSO)
12 12 E2_800.11 Alarm Word 0 11 12, ALLARME VENTILATORE 2 (BASSO)
13 13 E2_800.12 Alarm Word 0 12 13,ALLARME F.C. MINIMO CAMPO MASTER
14 14 E2_800.13 Alarm Word 0 13 14,ALLARME F.C. MASSIMO CAMPO MASTER
15 15 E2_800.14 Alarm Word 0 14 15,ALLARME PROTEZIONE TAPPETO INGRESSO
16 16 E2_800.15 Alarm Word 0 15 16,RIFERIMENTO POTENZIOMETRI CAMPI ASSENTE
17 17 E2_801.00 Alarm Word 1 0 17,ALLARME CONDIZIONATORI
18 18 E2_801.01 Alarm Word 1 1 18,EMERGENZA IN CORSO !!!
19 19 E2_801.02 Alarm Word 1 2 19,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 1
20 20 E2_801.03 Alarm Word 1 3 20,ALLARME POMPA RECUPERO CALORE 3
21 21 E2_801.04 Alarm Word 1 4 21,CONTROLLO UMIDITA' : FUORI CAMPO
22 22 E2_801.05 Alarm Word 1 5 22,ALLARME RILEVATORE ALTEZZA TESSUTO
23 23 E2_801.06 Alarm Word 1 6 23,ALLARME NON RILASCIO TESSUTO SINISTRO
24 24 E2_801.07 Alarm Word 1 7 24,ALLARME NON RILASCIO TESSUTO DESTRO
25 25 E2_801.08 Alarm Word 1 8 25,ALLARME ALIMENTAZIONE 24VAC QUADRO
26 26 E2_801.09 Alarm Word 1 9 26,ALLARME APRICIMOSSE
27 27 E2_801.10 Alarm Word 1 10 27,ALLARME ASCIUGACIMOSSE A INFRAROSSI
28 28 E2_801.11 Alarm Word 1 11 28,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 1
29 29 E2_801.12 Alarm Word 1 12 29,CAMPO PARALLELO 2 ALLARME PROTEZIONE
30 30 E2_801.13 Alarm Word 1 13 30,ALLARME VENTILATORE 3 (BASSO)
31 31 E2_801.14 Alarm Word 1 14 31,ALLARME VENTILATORE 4 (BASSO)
32 32 E2_801.15 Alarm Word 1 15 32,CAMPO PARALLELO 1 ALLARME PROTEZIONE
33 33 E2_802.00 Alarm Word 2 0 33,CAMPO PARALLELO 3 ALLARME PROTEZIONE
34 34 E2_802.01 Alarm Word 2 1 34,RAGGIUNTO MASSIMO CARICO CELLA DI CARICO TAPPETO
35 35 E2_802.02 Alarm Word 2 2 35,ALLARME FALLOPEZZA SINISTRO
36 36 E2_802.03 Alarm Word 2 3 36,ALLARME FALLOPEZZA DESTRO
37 37 E2_802.04 Alarm Word 2 4 37,PARATIE ANTERIORI APERTE
38 38 E2_802.05 Alarm Word 2 5 38,ALLARME AZIONAMENTO CAMPO CONICO
39 39 E2_802.06 Alarm Word 2 6 39,BLOCCO BRUCIATORE 9
40 40 E2_802.07 Alarm Word 2 7 40,CAMPO MASTER ALLARME PROTEZIONE
41 41 E2_802.08 Alarm Word 2 8 41,ALLARME PRESSOSTATO TENDICATENA SINISTRO
42 42 E2_802.09 Alarm Word 2 9 42,ALLARME PRESSOSTATO TENDICATENA DESTRO
43 43 E2_802.10 Alarm Word 2 10 43,ALLARME MASSIMO ALLUNGAMENTO CATENA
44 44 E2_802.11 Alarm Word 2 11 44,ALLARME TIPO LAVORO USCITA NON SELEZIONATO
45 45 E2_802.12 Alarm Word 2 12 45,ALLARME RADDRIZZATRAMA
46 46 E2_802.13 Alarm Word 2 13 46,ALLARME SPREMITORE 1
47 47 E2_802.14 Alarm Word 2 14 47,BLOCCO BRUCIATORE 10
48 48 E2_802.15 Alarm Word 2 15 48,BLOCCO BRUCIATORE 11
49 49 E2_803.00 Alarm Word 3 0 49,BLOCCO BRUCIATORE 12
50 50 E2_803.01 Alarm Word 3 1 50,BLOCCO BRUCIATORE 1
51 51 E2_803.02 Alarm Word 3 2 51,BLOCCO BRUCIATORE 2
52 52 E2_803.03 Alarm Word 3 3 52,BLOCCO BRUCIATORE 3
53 53 E2_803.04 Alarm Word 3 4 53,BLOCCO BRUCIATORE 4
54 54 E2_803.05 Alarm Word 3 5 54,BIELLE FUORI POSIZIONE
55 55 E2_803.06 Alarm Word 3 6 55,GRUPPO FALDATORE FUORI POSIZIONE
56 56 E2_803.07 Alarm Word 3 7 56,SERIE ARRESTI APERTA
57 57 E2_803.08 Alarm Word 3 8 57,MANCANZA LUBRIFICANTE CATENA TRASP. TESSUTO
58 58 E2_803.09 Alarm Word 3 9 58,ALLARME INVERTER PICCOLO ROTOLO
59 59 E2_803.10 Alarm Word 3 10 59,ALLARME PROTEZIONE ALLARGATORI
60 60 E2_803.11 Alarm Word 3 11 60,ALLARME PROTEZIONE ASPIRACIMOSSE
61 61 E2_803.12 Alarm Word 3 12 61,ALLARME TAGLIACIMOSSE SINISTRA
62 62 E2_803.13 Alarm Word 3 13 62,ALLARME TAGLIACIMOSSE DESTRA
63 63 E2_803.14 Alarm Word 3 14 63,ALLARME INVERTER VENTILATORI INV101
64 64 E2_803.15 Alarm Word 3 15 64,ALLARME INVERTER VENTILATORI INV103
65 65 E2_804.00 Alarm Word 4 0 65,ALLARME TIMEOUT VITE CAMPO MASTER
66 66 E2_804.01 Alarm Word 4 1 66,ALLARME TIMEOUT VITE CAMPO PARALLELO 1
67 67 E2_804.02 Alarm Word 4 2 67,ALLARME TIMEOUT VITE CAMPO PARALLELO 2
68 68 E2_804.03 Alarm Word 4 3 68,ALLARME TIMEOUT VITE CAMPO PARALLELO 3
69 69 E2_804.04 Alarm Word 4 4 69,ALLARME TIMEOUT VITE CAMPO PARALLELO 4
70 70 E2_804.05 Alarm Word 4 5 70,ALLARME TIMEOUT VITE CAMPO PARALLELO 5
71 71 E2_804.06 Alarm Word 4 6 71,ALLARME TIMEOUT VITE CAMPO PARALLELO 6
72 72 E2_804.07 Alarm Word 4 7 72,ALLARME TIMEOUT VITE CAMPO PARALLELO 7
73 73 E2_804.08 Alarm Word 4 8 73,ALLARME TIMEOUT VITE CAMPO PARALLELO 8
74 74 E2_804.09 Alarm Word 4 9 74,ALLARME TIMEOUT VITE CAMPO PARALLELO 9
75 75 E2_804.10 Alarm Word 4 10 75,ALLARME DEVICE_NET ADDR. 32 DA BANCHETTO DI SPALMATURA
76 76 E2_804.11 Alarm Word 4 11 76,ALLARME INVERTER DOGAL
77 77 E2_804.12 Alarm Word 4 12 77,ALLARME FOTOCELLULA TAPPETO USCITA PIENO
78 78 E2_804.13 Alarm Word 4 13 78,TEMPO DI CICLO PLC SOPRA MASSIMO IMPOSTATO
79 79 E2_804.14 Alarm Word 4 14 79,ERRORE INDIRIZZI SONDE BRUCIATORI
80 80 E2_804.15 Alarm Word 4 15 80,ALLARME VENTILATORE 4 (ALTO)
81 81 E2_805.00 Alarm Word 5 0 81,ALLARME VENTILATORE 5 (ALTO)
82 82 E2_805.01 Alarm Word 5 1 82,ALLARME VENTILATORE 6 (ALTO)
83 83 E2_805.02 Alarm Word 5 2 83,ALLARME VENTILATORE 7 (ALTO)
84 84 E2_805.03 Alarm Word 5 3 84,SONDA BRUCIATORE 1 INTERROTTA
85 85 E2_805.04 Alarm Word 5 4 85,SONDA BRUCIATORE 2 INTERROTTA
86 86 E2_805.05 Alarm Word 5 5 86,SONDA BRUCIATORE 3 INTERROTTA
87 87 E2_805.06 Alarm Word 5 6 87,SONDA BRUCIATORE 4 INTERROTTA
88 88 E2_805.07 Alarm Word 5 7 88,ALLARME DEVICE_NET ADDR. 0
89 89 E2_805.08 Alarm Word 5 8 89,ALLARME DEVICE_NET ADDR. 1
90 90 E2_805.09 Alarm Word 5 9 90,ALLARME DEVICE_NET ADDR. 2
91 91 E2_805.10 Alarm Word 5 10 91,ALLARME DEVICE_NET ADDR. 3
92 92 E2_805.11 Alarm Word 5 11 92,ALLARME DEVICE_NET ADDR. 4
93 93 E2_805.12 Alarm Word 5 12 93,ALLARME DEVICE_NET ADDR. 5
94 94 E2_805.13 Alarm Word 5 13 94,ALLARME DEVICE_NET ADDR. 6
95 95 E2_805.14 Alarm Word 5 14 95,ALLARME DEVICE_NET ADDR. 7
96 96 E2_805.15 Alarm Word 5 15 96,ALLARME DEVICE_NET ADDR. 8
97 97 E2_806.00 Alarm Word 6 0 97,ALLARME DEVICE_NET ADDR. 9
98 98 E2_806.01 Alarm Word 6 1 98,ALLARME DEVICE_NET ADDR. 10
99 99 E2_806.02 Alarm Word 6 2 99,ALLARME DEVICE_NET ADDR. 11
100 100 E2_806.03 Alarm Word 6 3 100,ALLARME DEVICE_NET ADDR. 12
101 101 E2_806.04 Alarm Word 6 4 101,ALLARME DEVICE_NET ADDR. 13
102 102 E2_806.05 Alarm Word 6 5 102,ALLARME DEVICE_NET ADDR. 14
103 103 E2_806.06 Alarm Word 6 6 103,ALLARME DEVICE_NET ADDR. 15
104 104 E2_806.07 Alarm Word 6 7 104,ALLARME DEVICE_NET ADDR. 16
105 105 E2_806.08 Alarm Word 6 8 105,ALLARME DEVICE_NET ADDR. 17
106 106 E2_806.09 Alarm Word 6 9 106,ALLARME DEVICE_NET ADDR. 18
107 107 E2_806.10 Alarm Word 6 10 107,ALLARME DEVICE_NET ADDR. 19
108 108 E2_806.11 Alarm Word 6 11 108,ALLARME DEVICE_NET ADDR. 20
109 109 E2_806.12 Alarm Word 6 12 109,ALLARME DEVICE_NET ADDR. 21
110 110 E2_806.13 Alarm Word 6 13 110,ALLARME DEVICE_NET ADDR. 22
111 111 E2_806.14 Alarm Word 6 14 111,ALLARME DEVICE_NET ADDR. 23
112 112 E2_806.15 Alarm Word 6 15 112,ALLARME DEVICE_NET ADDR. 24
113 113 E2_807.00 Alarm Word 7 0 113,ALLARME DEVICE_NET ADDR. 25
114 114 E2_807.01 Alarm Word 7 1 114,ALLARME DEVICE_NET ADDR. 26
115 115 E2_807.02 Alarm Word 7 2 115,BLOCCO BRUCIATORE 5
116 116 E2_807.03 Alarm Word 7 3 116,BLOCCO BRUCIATORE 6
117 117 E2_807.04 Alarm Word 7 4 117,BLOCCO BRUCIATORE 7
118 118 E2_807.05 Alarm Word 7 5 118,BLOCCO BRUCIATORE 8
119 119 E2_807.06 Alarm Word 7 6 119,SOVRATEMPERATURA BRUCIATORE 1
120 120 E2_807.07 Alarm Word 7 7 120,SOVRATEMPERATURA BRUCIATORE 2
121 121 E2_807.08 Alarm Word 7 8 121,SOVRATEMPERATURA BRUCIATORE 3
122 122 E2_807.09 Alarm Word 7 9 122,SOVRATEMPERATURA BRUCIATORE 4
123 123 E2_807.10 Alarm Word 7 10 123,SOVRATEMPERATURA BRUCIATORE 5
124 124 E2_807.11 Alarm Word 7 11 124,SOVRATEMPERATURA BRUCIATORE 6
125 125 E2_807.12 Alarm Word 7 12 125,SOVRATEMPERATURA BRUCIATORE 7
126 126 E2_807.13 Alarm Word 7 13 126,SOVRATEMPERATURA BRUCIATORE 8
127 127 E2_807.14 Alarm Word 7 14 127,SONDA BRUCIATORE 5 INTERROTTA
128 128 E2_807.15 Alarm Word 7 15 128,SONDA BRUCIATORE 6 INTERROTTA
129 129 E2_808.00 Alarm Word 8 0 129,SONDA BRUCIATORE 7 INTERROTTA
130 130 E2_808.01 Alarm Word 8 1 130,SONDA BRUCIATORE 8 INTERROTTA
131 131 E2_808.02 Alarm Word 8 2 131,SONDA BRUCIATORE 9 INTERROTTA
132 132 E2_808.03 Alarm Word 8 3 132,SONDA BRUCIATORE 10 INTERROTTA
133 133 E2_808.04 Alarm Word 8 4 133,SONDA BRUCIATORE 11 INTERROTTA
134 134 E2_808.05 Alarm Word 8 5 134,SONDA BRUCIATORE 12 INTERROTTA
135 135 E2_808.06 Alarm Word 8 6 135,SOVRATEMPERATURA BRUCIATORE 9
136 136 E2_808.07 Alarm Word 8 7 136,SOVRATEMPERATURA BRUCIATORE 10
137 137 E2_808.08 Alarm Word 8 8 137,SOVRATEMPERATURA BRUCIATORE 11
138 138 E2_808.09 Alarm Word 8 9 138,SOVRATEMPERATURA BRUCIATORE 12
139 139 E2_808.10 Alarm Word 8 10 139,ALLARME INVERTER VENTILATORI INV105
140 140 E2_808.11 Alarm Word 8 11 140,ALLARME INVERTER VENTILATORI INV107
141 141 E2_808.12 Alarm Word 8 12 141,ALLARME INVERTER VENTILATORI INV109
142 142 E2_808.13 Alarm Word 8 13 142,ALLARME INVERTER VENTILATORI INV111
143 143 E2_808.14 Alarm Word 8 14 143,ALLARME VENTILATORE 5 (BASSO)
144 144 E2_808.15 Alarm Word 8 15 144,ALLARME VENTILATORE 6 (BASSO)
145 145 E2_809.00 Alarm Word 9 0 145,ALLARME VENTILATORE 7 (BASSO)
146 146 E2_809.01 Alarm Word 9 1 146,ALLARME VENTILATORE 8 (BASSO)
147 147 E2_809.02 Alarm Word 9 2 147,ALLARME VENTILATORE 9 (BASSO)
148 148 E2_809.03 Alarm Word 9 3 148,ALLARME VENTILATORE 10 (BASSO)
149 149 E2_809.04 Alarm Word 9 4 149,ALLARME VENTILATORE 11 (BASSO)
150 150 E2_809.05 Alarm Word 9 5 150,ALLARME VENTILATORE 12 (BASSO)
151 151 E2_809.06 Alarm Word 9 6 151,ALLARME INVERTER ESAUSTORE 2
152 152 E2_809.07 Alarm Word 9 7 152,CAMPO PARALLELO 4 ALLARME PROTEZIONE
153 153 E2_809.08 Alarm Word 9 8 153,CAMPO PARALLELO 5 ALLARME PROTEZIONE
154 154 E2_809.09 Alarm Word 9 9 154,CAMPO PARALLELO 6 ALLARME PROTEZIONE
155 155 E2_809.10 Alarm Word 9 10 155,CAMPO PARALLELO 7 ALLARME PROTEZIONE
156 156 E2_809.11 Alarm Word 9 11 156,CAMPO PARALLELO 8 ALLARME PROTEZIONE
157 157 E2_809.12 Alarm Word 9 12 157,ALLARME INSEGUIMENTO VITE MASTER AGGIUNTA
158 158 E2_809.13 Alarm Word 9 13 158,ALLARME INVERTER CILINDRO RAFFREDDAMENTO
159 159 E2_809.14 Alarm Word 9 14 159,ALLARME TEMPERATURA ESAUSTORI
160 160 E2_809.15 Alarm Word 9 15 160,ALLARME INVERTER RECUPERO CALORE GRUPPO 1
161 161 E2_810.00 Alarm Word 10 0 161,ALLARME FINECORSA SX TAPPETO USCITA
162 162 E2_810.01 Alarm Word 10 1 162,ALLARME FINECORSA DX TAPPETO USCITA
163 163 E2_810.02 Alarm Word 10 2 163,ALLARME INVERTER RECUPERO CALORE GRUPPO 2
164 164 E2_810.03 Alarm Word 10 3 164,ALLARME DEVICE_NET ADDR. 31
165 165 E2_810.04 Alarm Word 10 4 165,ALLARME CENTRATORE USCITA
166 166 E2_810.05 Alarm Word 10 5 166,COMPATTATORE NON PRONTO
167 167 E2_810.06 Alarm Word 10 6 167,ALLARME CONTROLLO PIROMETRI
168 168 E2_810.07 Alarm Word 10 7 168,ALLARME ALLARGATORE SU TAPPETO USCITA
169 169 E2_810.08 Alarm Word 10 8 169,ALLARME CONTROLLO FUMI
170 170 E2_810.09 Alarm Word 10 9 170,ALLARME FINECORSA BALLERINO ALTO
171 171 E2_810.10 Alarm Word 10 10 171,ALLARME FINECORSA BALLERINO BASSO
172 172 E2_810.11 Alarm Word 10 11 172,ALLARME PROTEZIONE ASPIRATORE VAPORIZZO INTENSIVO
173 173 E2_810.12 Alarm Word 10 12 173,ALLARME PROTEZIONE BRUCIATORE 1
174 174 E2_810.13 Alarm Word 10 13 174,ALLARME PROTEZIONE BRUCIATORE 2
175 175 E2_810.14 Alarm Word 10 14 175,ALLARME PROTEZIONE BRUCIATORE 3
176 176 E2_810.15 Alarm Word 10 15 176,ALLARME PROTEZIONE BRUCIATORE 4
177 177 E2_811.00 Alarm Word 11 0 177,ALLARME PROTEZIONE BRUCIATORE 5
178 178 E2_811.01 Alarm Word 11 1 178,ALLARME PROTEZIONE BRUCIATORE 6
179 179 E2_811.02 Alarm Word 11 2 179,ALLARME PROTEZIONE BRUCIATORE 7
180 180 E2_811.03 Alarm Word 11 3 180,ALLARME PROTEZIONE BRUCIATORE 8
181 181 E2_811.04 Alarm Word 11 4 181,ALLARME PROTEZIONE BRUCIATORE 9
182 182 E2_811.05 Alarm Word 11 5 182,ALLARME PROTEZIONE BRUCIATORE 10
183 183 E2_811.06 Alarm Word 11 6 183,ALLARME PROTEZIONE BRUCIATORE 11
184 184 E2_811.07 Alarm Word 11 7 184,ALLARME PROTEZIONE BRUCIATORE 12
185 185 E2_811.08 Alarm Word 11 8 185,TERMOFISSAGGIO O ESSICCAZIONE: TEMPERATURA FUORI CAMPO
186 186 E2_811.09 Alarm Word 11 9 186,TERMOFISSAGGIO O ESSICCAZIONE: VELOCITA' FUORI CAMPO
187 187 E2_811.10 Alarm Word 11 10 187,TERMOFISSAGGIO O ESSICCAZIONE: TEMPO FUORI CAMPO
188 188 E2_811.11 Alarm Word 11 11 188,SISTEMA CAMPI PARALLELI NON TARATO
189 189 E2_811.12 Alarm Word 11 12 189,ALLARME PROTEZIONE VENTOLE BRUCIATORI
190 190 E2_811.13 Alarm Word 11 13 190,CAMPO CONICO SINISTRO SU LIMITE CHIUSURA
191 191 E2_811.14 Alarm Word 11 14 191,CAMPO CONICO SINISTRO SU LIMITE APERTURA
192 192 E2_811.15 Alarm Word 11 15 192,CAMPO CONICO DESTRO SU LIMITE APERTURA
193 193 E2_812.00 Alarm Word 12 0 193,CAMPO CONICO DESTRO SU LIMITE CHIUSURA
194 194 E2_812.01 Alarm Word 12 1 194,FINECORSA CAMPO CONICO DESTRO SU TRAVERSA
195 195 E2_812.02 Alarm Word 12 2 195,FINECORSA CAMPO CONICO SINISTRO SU TRAVERSA
196 196 E2_812.03 Alarm Word 12 3 196,ALLARME PROTEZIONE INVERTER CAMPO CONICO SINISTRO
197 197 E2_812.04 Alarm Word 12 4 197,ALLARME PROTEZIONE INVERTER CAMPO CONICO DESTRO
198 198 E2_812.05 Alarm Word 12 5 198,ALLARME DEVICE_NET ADDR. 27
199 199 E2_812.06 Alarm Word 12 6 199,ALLARME VENTILATORE 8 (ALTO)
200 200 E2_812.07 Alarm Word 12 7 200,ALLARME VENTILATORE 9 (ALTO)
201 201 E2_812.08 Alarm Word 12 8 201,ALLARME VENTILATORE 10 (ALTO)
202 202 E2_812.09 Alarm Word 12 9 202,ALLARME VENTILATORE 11 (ALTO)
203 203 E2_812.10 Alarm Word 12 10 203,ALLARME VENTILATORE 12 (ALTO)
204 204 E2_812.11 Alarm Word 12 11 204,ALLARME VENTILATORE 1 (ALTO)
205 205 E2_812.12 Alarm Word 12 12 205,ALLARME VENTILATORE 2 (ALTO)
206 206 E2_812.13 Alarm Word 12 13 206,ALLARME VENTILATORE 3 (ALTO)
207 207 E2_812.14 Alarm Word 12 14 207,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 2
208 208 E2_812.15 Alarm Word 12 15 208,ALLARME FINECORSA TANDEM CONTROLLO ANSA TESSUTO
209 209 E2_813.00 Alarm Word 13 0 209,ALLARME FUNE SICUREZZA / PROTEZIONE RIBALTABILE ANTERIORE
210 210 E2_813.01 Alarm Word 13 1 210,ALLARME INVERTER VENTILATORI INV101A
211 211 E2_813.02 Alarm Word 13 2 211,ALLARME INVERTER VENTILATORI INV103A
212 212 E2_813.03 Alarm Word 13 3 212,ALLARME INVERTER VENTILATORI INV105A
213 213 E2_813.04 Alarm Word 13 4 213,ALLARME INVERTER VENTILATORI INV107A
214 214 E2_813.05 Alarm Word 13 5 214,ALLARME INVERTER VENTILATORI INV109A
215 215 E2_813.06 Alarm Word 13 6 215,ALLARME INVERTER VENTILATORI INV111A
216 216 E2_813.07 Alarm Word 13 7 216,ALLARME DA BANCHETTO DI SPALMATURA
217 217 E2_813.08 Alarm Word 13 8 217,ALLARME DEVICE_NET ADDR. 28
218 218 E2_813.09 Alarm Word 13 9 218,STOP JOG USCITA PER PESO RAGGIUNTO SU CELLA DI CARICO
219 219 E2_813.10 Alarm Word 13 10 219,DOGAL NON PRONTO
220 220 E2_813.11 Alarm Word 13 11 220,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91A
221 221 E2_813.12 Alarm Word 13 12 221,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 1
222 222 E2_813.13 Alarm Word 13 13 222,ALLARME PROTEZIONE SOSTEGNO TESSUTO
223 223 E2_813.14 Alarm Word 13 14 223,TARATURA CAMPI CONICI NON EFFETTUATA!
224 224 E2_813.15 Alarm Word 13 15 224,ALLARME TIMEOUT VITE CAMPO PARALLELO 10
225 225 E2_814.00 Alarm Word 14 0 225,CAMPO PARALLELO 9 ALLARME PROTEZIONE
226 226 E2_814.01 Alarm Word 14 1 226,CAMPO PARALLELO 10 ALLARME PROTEZIONE
227 227 E2_814.02 Alarm Word 14 2 227,CAMPO PARALLELO 11 ALLARME PROTEZIONE
228 228 E2_814.03 Alarm Word 14 3 228,CAMPO PARALLELO 12 ALLARME PROTEZIONE
229 229 E2_814.04 Alarm Word 14 4 229,ALLARME FLUSSOSTATO RECUPERO CALORE 1
230 230 E2_814.05 Alarm Word 14 5 230,ALLARME FLUSSOSTATO RECUPERO CALORE 2
231 231 E2_814.06 Alarm Word 14 6 231,ALLARME FLUSSOSTATO RECUPERO CALORE 3
232 232 E2_814.07 Alarm Word 14 7 232,ALLARME PROTEZIONE VENTILATORE ASCIUGACIMOSSE
233 233 E2_814.08 Alarm Word 14 8 233,ALLARME PROTEZIONE RESISTENZE ASCIUGACIMOSSE
234 234 E2_814.09 Alarm Word 14 9 234,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 1
235 235 E2_814.10 Alarm Word 14 10 235,ALLARME INCENDIO
236 236 E2_814.11 Alarm Word 14 11 236,ATTENZIONE ! ALLARME PRESENTE SU BANCHETTO DI SPALMATURA
237 237 E2_814.12 Alarm Word 14 12 237,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 2
238 238 E2_814.13 Alarm Word 14 13 238,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91B
239 239 E2_814.14 Alarm Word 14 14 239,ALLARME PROTEZIONE PULISCISPILLI
240 240 E2_814.15 Alarm Word 14 15 240,BATTERIA PLC - LIVELLO BASSO
241 241 E2_815.00 Alarm Word 15 0 241,ALLARME CONTEMPORANEIT? TERMOSTATI SICUREZZA BRUCIATORI
242 242 E2_815.01 Alarm Word 15 1 242,BLOCCO VERSIONE SOFTWARE
243 243 E2_815.02 Alarm Word 15 2 243,SROTOLATORE NON PRONTO
244 244 E2_815.03 Alarm Word 15 3 244,ERRORE DI COMUNICAZIONE PROTOCOL MACRO
245 245 E2_815.04 Alarm Word 15 4 245,ALLARME TAGLIERINA URBAN
246 246 E2_815.05 Alarm Word 15 5 246,FINE TESSUTO IN INGRESSO
247 247 E2_815.06 Alarm Word 15 6 247,ALLARME PROTEZIONE SERVOVENTILAZIONI MOTORI
248 248 E2_815.07 Alarm Word 15 7 248,ALLARME INVERTER ARROTOLATORE TANGENZIALE
249 249 E2_815.08 Alarm Word 15 8 249,ALLARME SPREMITORE 2
250 250 E2_815.09 Alarm Word 15 9 250,ALLARME FS-91ER PLEVA
251 251 E2_815.10 Alarm Word 15 10 251,ALLARME LINEA EMERGENZA ARROTOLATORE
252 252 E2_815.11 Alarm Word 15 11 252,ALLARME FOTOCELLULE ARROTOLATORE
253 253 E2_815.12 Alarm Word 15 12 253,PORTA CASSETTA USCITA RAMOSA APERTA
254 254 E2_815.13 Alarm Word 15 13 254,ALLARME FINECORSA CILINDRO PROTEZIONE ARROTOLATORE ASSIALE
255 255 E2_815.14 Alarm Word 15 14 255,ALLARME PRESSOSTATI GRUPPO VALVOLE USCITA
256 256 E2_815.15 Alarm Word 15 15 256,ARROTOLATORE NON PRONTO
257 257 E2_816.00 Alarm Word 16 0 257,FINECORSA GRUPPO FALDATORE AVANTI
258 258 E2_816.01 Alarm Word 16 1 258,FINECORSA GRUPPO FALDATORE INDIETRO
259 259 E2_816.02 Alarm Word 16 2 259,ALLARME BATTERIA ELETTRICA 1
260 260 E2_816.03 Alarm Word 16 3 260,SOVRATEMPERATURA BATTERIA ELETTRICA 5
261 261 E2_816.04 Alarm Word 16 4 261,ALLARME BATTERIA ELETTRICA 2
262 262 E2_816.05 Alarm Word 16 5 262,RISCALDAMENTO QUADRO SPENTO
263 263 E2_816.06 Alarm Word 16 6 263,SOVRATEMPERATURA BATTERIA ELETTRICA 1
264 264 E2_816.07 Alarm Word 16 7 264,SOVRATEMPERATURA BATTERIA ELETTRICA 2
265 265 E2_816.08 Alarm Word 16 8 265,ALLARME BATTERIA ELETTRICA 3
266 266 E2_816.09 Alarm Word 16 9 266,EMERGENZA DA SPALMATRICE
267 267 E2_816.10 Alarm Word 16 10 267,ALLARME BATTERIA ELETTRICA 4
268 268 E2_816.11 Alarm Word 16 11 268,ALLARME BATTERIA ELETTRICA 5
269 269 E2_816.12 Alarm Word 16 12 269,SOVRATEMPERATURA BATTERIA ELETTRICA 3
270 270 E2_816.13 Alarm Word 16 13 270,SOVRATEMPERATURA BATTERIA ELETTRICA 4
271 271 E2_816.14 Alarm Word 16 14 271,ALLARME IDROSTATO RECUPERO CALORE 1
272 272 E2_816.15 Alarm Word 16 15 272,ALLARME SENSORE LIVELLO RECUPERO CALORE 1 : AGGIUNGERE LIQUIDO !
273 273 E2_817.00 Alarm Word 17 0 273,ALLARME RELE' CONTROLLO FASI
274 274 E2_817.01 Alarm Word 17 1 274,ALLARME DEVICE NET ADDR. 40 - MODULO GRT1-DRT USCITA RAMOSA
275 275 E2_817.02 Alarm Word 17 2 275,ALLARME PRESSOSTATO LINEA ENTRATA MACCHINA
276 276 E2_817.03 Alarm Word 17 3 276,ALLARME PRESSOSTATO LINEA USCITA MACCHINA
277 277 E2_817.04 Alarm Word 17 4 277,CAMPO CANNOCCHIALI 1 BLOCCATO
278 278 E2_817.05 Alarm Word 17 5 278,CAMPO CANNOCCHIALI 2 BLOCCATO
279 279 E2_817.06 Alarm Word 17 6 279,ALLARME DISCONTINUITA' CAMPI PARALLELI
280 280 E2_817.07 Alarm Word 17 7 280,ALLARME INSEGUIMENTO CAMPI PARALLELI - VITE LENTA
281 281 E2_817.08 Alarm Word 17 8 281,ALLARME LIMITE VITI
282 282 E2_817.09 Alarm Word 17 9 282,RAGGIUNTO MASSIMO CARICO SU CELLA DI CARICO
283 283 E2_817.10 Alarm Word 17 10 283,ALLARME PRESSOSTATO ESAUSTORE
284 284 E2_817.11 Alarm Word 17 11 284,EMERGENZA MOVIMENTO TESSUTO
285 285 E2_817.12 Alarm Word 17 12 285,EMERGENZA DA SPREMITORE 1
286 286 E2_817.13 Alarm Word 17 13 286,EMERGENZA DA RADDRIZZATRAMA
287 287 E2_817.14 Alarm Word 17 14 287,EMERGENZA DA SROTOLATORE
288 288 E2_817.15 Alarm Word 17 15 288,EMERGENZA DA ARROTOLATORE
289 289 E2_818.00 Alarm Word 18 0 289,ALLARME SICUREZZA BRUCIATORE 1
290 290 E2_818.01 Alarm Word 18 1 290,ALLARME SICUREZZA BRUCIATORE 2
291 291 E2_818.02 Alarm Word 18 2 291,ALLARME SICUREZZA BRUCIATORE 3
292 292 E2_818.03 Alarm Word 18 3 292,ALLARME SICUREZZA BRUCIATORE 4
293 293 E2_818.04 Alarm Word 18 4 293,ALLARME SICUREZZA BRUCIATORE 5
294 294 E2_818.05 Alarm Word 18 5 294,ALLARME SICUREZZA BRUCIATORE 6
295 295 E2_818.06 Alarm Word 18 6 295,ALLARME SICUREZZA BRUCIATORE 7
296 296 E2_818.07 Alarm Word 18 7 296,ALLARME SICUREZZA BRUCIATORE 8
297 297 E2_818.08 Alarm Word 18 8 297,ALLARME SICUREZZA BRUCIATORE 9
298 298 E2_818.09 Alarm Word 18 9 298,ALLARME SICUREZZA BRUCIATORE 10
299 299 E2_818.10 Alarm Word 18 10 299,ALLARME SICUREZZA BRUCIATORE 11
300 300 E2_818.11 Alarm Word 18 11 300,ALLARME SICUREZZA BRUCIATORE 12
301 301 E2_818.12 Alarm Word 18 12 301,ALLARME BRUCIATORE 1 SPENTO
302 302 E2_818.13 Alarm Word 18 13 302,ALLARME BRUCIATORE 2 SPENTO
303 303 E2_818.14 Alarm Word 18 14 303,ALLARME BRUCIATORE 3 SPENTO
304 304 E2_818.15 Alarm Word 18 15 304,ALLARME BRUCIATORE 4 SPENTO
305 305 E2_819.00 Alarm Word 19 0 305,ALLARME BRUCIATORE 5 SPENTO
306 306 E2_819.01 Alarm Word 19 1 306,ALLARME BRUCIATORE 6 SPENTO
307 307 E2_819.02 Alarm Word 19 2 307,ALLARME BRUCIATORE 7 SPENTO
308 308 E2_819.03 Alarm Word 19 3 308,ALLARME BRUCIATORE 8 SPENTO
309 309 E2_819.04 Alarm Word 19 4 309,ALLARME BRUCIATORE 9 SPENTO
310 310 E2_819.05 Alarm Word 19 5 310,ALLARME BRUCIATORE 10 SPENTO
311 311 E2_819.06 Alarm Word 19 6 311,ALLARME BRUCIATORE 11 SPENTO
312 312 E2_819.07 Alarm Word 19 7 312,ALLARME BRUCIATORE 12 SPENTO
313 313 E2_819.08 Alarm Word 19 8 313,ALLARME SENSORE LIVELLO RECUPERO CALORE 2 : AGGIUNGERE LIQUIDO !
314 314 E2_819.09 Alarm Word 19 9 314,ALLARME DA MIXER
315 315 E2_819.10 Alarm Word 19 10 315,ALLARME PRESSOSTATI LUBRIFICAZIONE
316 316 E2_819.11 Alarm Word 19 11 316,ALLARME ABBATTITORE FUMI
317 317 E2_819.12 Alarm Word 19 12 317,MACCHINA 1 NON IN LINEA
318 318 E2_819.13 Alarm Word 19 13 318,MACCHINA 2 NON IN LINEA
319 319 E2_819.14 Alarm Word 19 14 319,MACCHINA 3 NON IN LINEA
320 320 E2_819.15 Alarm Word 19 15 320,MACCHINA 4 NON IN LINEA
321 321 E2_820.00 Alarm Word 20 0 321,MACCHINA 5 NON IN LINEA
322 322 E2_820.01 Alarm Word 20 1 322,MACCHINA 6 NON IN LINEA
323 323 E2_820.02 Alarm Word 20 2 323,MACCHINA 7 NON IN LINEA
324 324 E2_820.03 Alarm Word 20 3 324,MACCHINA 8 NON IN LINEA
325 325 E2_820.04 Alarm Word 20 4 325,NON STOP NON PRONTO
326 326 E2_820.05 Alarm Word 20 5 326,EMERGENZA DA NON STOP
327 327 E2_820.06 Alarm Word 20 6 327,ALLARME DISCONTINUITA' CAMPO MASTER
328 328 E2_820.07 Alarm Word 20 7 328,ALLARME DISCONTINUITA' CAMPO PARALLELO 1
329 329 E2_820.08 Alarm Word 20 8 329,ALLARME DISCONTINUITA' CAMPO PARALLELO 2
330 330 E2_820.09 Alarm Word 20 9 330,ALLARME DISCONTINUITA' CAMPO PARALLELO 3
331 331 E2_820.10 Alarm Word 20 10 331,ALLARME DISCONTINUITA' CAMPO PARALLELO 4
332 332 E2_820.11 Alarm Word 20 11 332,ALLARME DISCONTINUITA' CAMPO PARALLELO 5
333 333 E2_820.12 Alarm Word 20 12 333,ALLARME DISCONTINUITA' CAMPO PARALLELO 6
334 334 E2_820.13 Alarm Word 20 13 334,ALLARME DISCONTINUITA' CAMPO PARALLELO 7
335 335 E2_820.14 Alarm Word 20 14 335,ALLARME DISCONTINUITA' CAMPO PARALLELO 8
336 336 E2_820.15 Alarm Word 20 15 336,ALLARME DISCONTINUITA' CAMPO PARALLELO 9
337 337 E2_821.00 Alarm Word 21 0 337,ALLARME DISCONTINUITA' CAMPO PARALLELO 10
338 338 E2_821.01 Alarm Word 21 1 338,PROTEZIONI INGRESSO APERTE
339 339 E2_821.02 Alarm Word 21 2 339,PROTEZIONI USCITA APERTE
340 340 E2_821.03 Alarm Word 21 3 340,ALLARME PROTEZIONE ESTRATTORE FUMI 1
341 341 E2_821.04 Alarm Word 21 4 341,ALLARME PROTEZIONE ESTRATTORE FUMI 2
342 342 E2_821.05 Alarm Word 21 5 342,MANCANZA PRESSOSTATO ESTRATTORE FUMI 1
343 343 E2_821.06 Alarm Word 21 6 343,MANCANZA PRESSOSTATO ESTRATTORE FUMI 2
344 344 E2_821.07 Alarm Word 21 7 344,EMERGENZA DA MIXER
345 345 E2_821.08 Alarm Word 21 8 345,EMERGENZA DA SPREMITORE 2
346 346 E2_821.09 Alarm Word 21 9 346,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 1
347 347 E2_821.10 Alarm Word 21 10 347,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 2
348 348 E2_821.11 Alarm Word 21 11 348,ALLARME MODULO VELOCITA? ZERO CATENA TRASP. TESSUTO
349 349 E2_821.12 Alarm Word 21 12 349,ALLARME RILEVAMENTO TESSUTO SINISTRO USCITA
350 350 E2_821.13 Alarm Word 21 13 350,ALLARME RILEVAMENTO TESSUTO DESTRO USCITA
351 351 E2_821.14 Alarm Word 21 14 351,ALLARME FINECORSA SOLLEVAMENTO CAMPI CONICI
352 352 E2_821.15 Alarm Word 21 15 352,ALLARME IDROSTATO RECUPERO CALORE 2
353 353 E2_822.00 Alarm Word 22 0 353,ALLARME FUNE DI PROTEZIONE IN USCITA
354 354 E2_822.01 Alarm Word 22 1 354,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 1
355 355 E2_822.02 Alarm Word 22 2 355,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 2
356 356 E2_822.03 Alarm Word 22 3 356,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 3
357 357 E2_822.04 Alarm Word 22 4 357,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 4
358 358 E2_822.05 Alarm Word 22 5 358,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 5
359 359 E2_822.06 Alarm Word 22 6 359,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 6
360 360 E2_822.07 Alarm Word 22 7 360,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 7
361 361 E2_822.08 Alarm Word 22 8 361,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 8
362 362 E2_822.09 Alarm Word 22 9 362,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 9
363 363 E2_822.10 Alarm Word 22 10 363,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 10
364 364 E2_822.11 Alarm Word 22 11 364,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 11
365 365 E2_822.12 Alarm Word 22 12 365,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 12
366 366 E2_822.13 Alarm Word 22 13 366,OLIO CATENA - PRESSIONE MINIMA
367 367 E2_822.14 Alarm Word 22 14 367,POMPA OLIO CATENA - ALLARME PROTEZIONE
368 368 E2_822.15 Alarm Word 22 15 368,JBOX INGRESSO - BALLERINO BASSO
369 369 E2_823.00 Alarm Word 23 0 369,JBOX INGRESSO - FINE TESSUTO
370 370 E2_823.01 Alarm Word 23 1 370,JBOX INGRESSO - PIENO
371 371 E2_823.02 Alarm Word 23 2 371,JBOX INGRESSO - BALLERINO ALTO
372 372 E2_823.03 Alarm Word 23 3 372,JBOX INGRESSO - VUOTO
373 373 E2_823.04 Alarm Word 23 4 373,JBOX USCITA - BALLERINO BASSO
374 374 E2_823.05 Alarm Word 23 5 374,JBOX USCITA - FINE TESSUTO
375 375 E2_823.06 Alarm Word 23 6 375,JBOX USCITA - PIENO
376 376 E2_823.07 Alarm Word 23 7 376,JBOX USCITA - BALLERINO ALTO
377 377 E2_823.08 Alarm Word 23 8 377,JBOX USCITA - VUOTO
378 378 E2_823.09 Alarm Word 23 9 378,JBOX USCITA - ALLARME PRESSOSTATO
379 379 E2_823.10 Alarm Word 23 10 379,JBOX ENTRATA - ALLARME PRESSOSTATO
380 380 E2_823.11 Alarm Word 23 11 380,ALLARME PROTEZIONE CARRELLO FALDATORE
381 381 E2_823.12 Alarm Word 23 12 381,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 1
382 382 E2_823.13 Alarm Word 23 13 382,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 2
383 383 E2_823.14 Alarm Word 23 14 383,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 3
384 384 E2_823.15 Alarm Word 23 15 384,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 4
385 385 E2_824.00 Alarm Word 24 0 385,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 5
386 386 E2_824.01 Alarm Word 24 1 386,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 6
387 387 E2_824.02 Alarm Word 24 2 387,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 7
388 388 E2_824.03 Alarm Word 24 3 388,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 8
389 389 E2_824.04 Alarm Word 24 4 389,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 9
390 390 E2_824.05 Alarm Word 24 5 390,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 10
391 391 E2_824.06 Alarm Word 24 6 391,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 11
392 392 E2_824.07 Alarm Word 24 7 392,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 12
393 393 E2_824.08 Alarm Word 24 8 393,ESTRATTORE FUMI RISC. INDIRETTO 1 - ALLARME PROTEZIONE
394 394 E2_824.09 Alarm Word 24 9 394,ESTRATTORE FUMI RISC. INDIRETTO 2 - ALLARME PROTEZIONE
395 395 E2_824.10 Alarm Word 24 10 395,ESTRATTORE FUMI RISC. INDIRETTO 3 - ALLARME PROTEZIONE
396 396 E2_824.11 Alarm Word 24 11 396,ESTRATTORE FUMI RISC. INDIRETTO 4 - ALLARME PROTEZIONE
397 397 E2_824.12 Alarm Word 24 12 397,ESTRATTORE FUMI RISC. INDIRETTO 5 - ALLARME PROTEZIONE
398 398 E2_824.13 Alarm Word 24 13 398,ESTRATTORE FUMI RISC. INDIRETTO 6 - ALLARME PROTEZIONE
399 399 E2_824.14 Alarm Word 24 14 399,TAGLIERINA SINISTRA - FUORI POSIZIONE
400 400 E2_824.15 Alarm Word 24 15 400,TAGLIERINA DESTRA - FUORI POSIZIONE
401 401 E2_825.00 Alarm Word 25 0 401,ALLARME PROTEZIONE CILINDRO CONTRASTO TAGLIERINE
402 402 E2_825.01 Alarm Word 25 1 402,JBOX INGRESSO - TESSUTO INCROCIATO
403 403 E2_825.02 Alarm Word 25 2 403,JBOX USCITA - TESSUTO INCROCIATO
404 404 E2_825.03 Alarm Word 25 3 404,ALLARME DEVICE_NET STAZIONE ADDR.38 - JBOX INGRESSO
405 405 E2_825.04 Alarm Word 25 4 405,ALLARME DEVICE_NET STAZIONE ADDR.39 - JBOX USCITA
406 406 E2_825.05 Alarm Word 25 5 406,JBOX INGRESSO - ALLARME INVERTER
407 407 E2_825.06 Alarm Word 25 6 407,JBOX USCITA - ALLARME INVERTER
408 408 E2_825.07 Alarm Word 25 7 408,ALLARGA/CENTRATORE A/B SU IMBARRAGGIO - ALLARME PROTEZIONE
409 409 E2_825.08 Alarm Word 25 8 409,ALLARME TIMEOUT VITE CAMPO PARALLELO 11
410 410 E2_825.09 Alarm Word 25 9 410,ALLARME TIMEOUT VITE CAMPO PARALLELO 12
411 411 E2_825.10 Alarm Word 25 10 411,FRENO JBOX INGRESSO - ALLARME PROTEZIONE
412 412 E2_825.11 Alarm Word 25 11 412,FRENO JBOX USCITA - ALLARME PROTEZIONE
413 413 E2_825.12 Alarm Word 25 12 413,ALLARME PROTEZIONE FRENO CAMPO CONICO SINISTRO
414 414 E2_825.13 Alarm Word 25 13 414,ALLARME PROTEZIONE FRENO CAMPO CONICO DESTRO
415 415 E2_825.14 Alarm Word 25 14 415,VERIFICA PRESSOSTATO 1 FALLITA
416 416 E2_825.15 Alarm Word 25 15 416,VERIFICA PRESSOSTATO 2 FALLITA
417 417 E2_826.00 Alarm Word 26 0 417,ALLARME TERMOSTATO INTERNO QUADRO
418 418 E2_826.01 Alarm Word 26 1 418,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 2
419 419 E2_826.02 Alarm Word 26 2 419,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 2
420 420 E2_826.03 Alarm Word 26 3 420,PROTEZIONE RIBALTABILE INGRESSO
421 421 E2_826.04 Alarm Word 26 4 421,FUNE EMERGENZA INGRESSO
422 422 E2_826.05 Alarm Word 26 5 422,PARATIA SCORREVOLE INGRESSO SINISTRA
423 423 E2_826.06 Alarm Word 26 6 423,PARATIA SCORREVOLE INGRESSO DESTRA
424 424 E2_826.07 Alarm Word 26 7 424,CANCELLO SINISTRO ENTRATA ANTERIORE
425 425 E2_826.08 Alarm Word 26 8 425,CANCELLO SINISTRO ENTRATA POSTERIORE
426 426 E2_826.09 Alarm Word 26 9 426,CANCELLO DESTRO ENTRATA ANTERIORE
427 427 E2_826.10 Alarm Word 26 10 427,CANCELLO DESTRO ENTRATA POSTERIORE
428 428 E2_826.11 Alarm Word 26 11 428,CANCELLO SINISTRO USCITA
429 429 E2_826.12 Alarm Word 26 12 429,CANCELLO DESTRO USCITA
430 430 E2_826.13 Alarm Word 26 13 430,TENSIONATORE FUNE EMERGENZA SINISTRA ZONA FORNO
431 431 E2_826.14 Alarm Word 26 14 431,TENSIONATORE FUNE EMERGENZA DESTRA ZONA FORNO
432 432 E2_826.15 Alarm Word 26 15 432,FUNE EMERGENZA SINISTRA ZONA FORNO
433 433 E2_827.00 Alarm Word 27 0 433,FUNE EMERGENZA DESTRA ZONA FORNO
434 434 E2_827.01 Alarm Word 27 1 434,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (1)
435 435 E2_827.02 Alarm Word 27 2 435,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (2)
436 436 E2_827.03 Alarm Word 27 3 436,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (1)
437 437 E2_827.04 Alarm Word 27 4 437,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (2)
438 438 E2_827.05 Alarm Word 27 5 438,ALLARME FEEDBACK EMERGENZA GENERALE DA SCARICO ARIA
439 439 E2_827.06 Alarm Word 27 6 439,BYPASS SPORTELLI ARMADIO ATTIVO
440 440 E2_827.07 Alarm Word 27 7 440,TIMEOUT ENCODER CAMPO CONICO SINISTRO
441 441 E2_827.08 Alarm Word 27 8 441,TIMEOUT ENCODER CAMPO CONICO DESTRO
442 442 E2_827.09 Alarm Word 27 9 442,ALLARME BALLERINO ALTO SPREMITORE 1
443 443 E2_827.10 Alarm Word 27 10 443,ALLARME BALLERINO ALTO SPREMITORE 2
444 444 E2_827.11 Alarm Word 27 11 444,
445 445 E2_827.12 Alarm Word 27 12 445,
446 446 E2_827.13 Alarm Word 27 13 446,
447 447 E2_827.14 Alarm Word 27 14 447,
448 448 E2_827.15 Alarm Word 27 15 448,
449 449 E2_828.00 Alarm Word 28 0 449,
450 450 E2_828.01 Alarm Word 28 1 450,
451 451 E2_828.02 Alarm Word 28 2 451,
452 452 E2_828.03 Alarm Word 28 3 452,
453 453 E2_828.04 Alarm Word 28 4 453,
454 454 E2_828.05 Alarm Word 28 5 454,
455 455 E2_828.06 Alarm Word 28 6 455,
456 456 E2_828.07 Alarm Word 28 7 456,
457 457 E2_828.08 Alarm Word 28 8 457,
458 458 E2_828.09 Alarm Word 28 9 458,
459 459 E2_828.10 Alarm Word 28 10 459,
460 460 E2_828.11 Alarm Word 28 11 460,ALLARME PROTEZIONE BARRE ANTISTATICHE
461 461 E2_828.12 Alarm Word 28 12 461,ALLARME PROTEZIONE VENTILAZIONE INTERNO QUADRO
462 462 E2_828.13 Alarm Word 28 13 462,BORDO SENSIBILE
463 463 E2_828.14 Alarm Word 28 14 463,FALDAROTOLATORE_SICUREZZA SX/DX
464 464 E2_828.15 Alarm Word 28 15 464,FALDAROTOLATORE_EMERGENZA TESSUTO
465 465 E2_829.00 Alarm Word 29 0 465,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.1
466 466 E2_829.01 Alarm Word 29 1 466,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.2
467 467 E2_829.02 Alarm Word 29 2 467,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.3
468 468 E2_829.03 Alarm Word 29 3 468,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.4
469 469 E2_829.04 Alarm Word 29 4 469,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.5
470 470 E2_829.05 Alarm Word 29 5 470,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.6
471 471 E2_829.06 Alarm Word 29 6 471,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.7
472 472 E2_829.07 Alarm Word 29 7 472,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.8
473 473 E2_829.08 Alarm Word 29 8 473,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.9
474 474 E2_829.09 Alarm Word 29 9 474,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.10
475 475 E2_829.10 Alarm Word 29 10 475,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.11
476 476 E2_829.11 Alarm Word 29 11 476,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.12
477 477 E2_829.12 Alarm Word 29 12 477,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 1/2
478 478 E2_829.13 Alarm Word 29 13 478,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 3/4
479 479 E2_829.14 Alarm Word 29 14 479,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 5/6
480 480 E2_829.15 Alarm Word 29 15 480,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 7/8
481 481 E2_830.00 Alarm Word 30 0 481,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 9/10
482 482 E2_830.01 Alarm Word 30 1 482,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 1
483 483 E2_830.02 Alarm Word 30 2 483,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 2
484 484 E2_830.03 Alarm Word 30 3 484,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 3
485 485 E2_830.04 Alarm Word 30 4 485,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 4
486 486 E2_830.05 Alarm Word 30 5 486,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 5
487 487 E2_830.06 Alarm Word 30 6 487,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 6
488 488 E2_830.07 Alarm Word 30 7 488,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 7
489 489 E2_830.08 Alarm Word 30 8 489,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 8
490 490 E2_830.09 Alarm Word 30 9 490,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 9
491 491 E2_830.10 Alarm Word 30 10 491,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 10
492 492 E2_830.11 Alarm Word 30 11 492,TRASDUTTORE PRESSIONE BR 1 INTERROTTO
493 493 E2_830.12 Alarm Word 30 12 493,TRASDUTTORE PRESSIONE BR 2 INTERROTTO
494 494 E2_830.13 Alarm Word 30 13 494,TRASDUTTORE PRESSIONE BR 3 INTERROTTO
495 495 E2_830.14 Alarm Word 30 14 495,TRASDUTTORE PRESSIONE BR 4 INTERROTTO
496 496 E2_830.15 Alarm Word 30 15 496,TRASDUTTORE PRESSIONE BR 5 INTERROTTO
497 497 E2_831.00 Alarm Word 31 0 497,TRASDUTTORE PRESSIONE BR 6 INTERROTTO
498 498 E2_831.01 Alarm Word 31 1 498,TRASDUTTORE PRESSIONE BR 7 INTERROTTO
499 499 E2_831.02 Alarm Word 31 2 499,TRASDUTTORE PRESSIONE BR 8 INTERROTTO
500 500 E2_831.03 Alarm Word 31 3 500,TRASDUTTORE PRESSIONE BR 9 INTERROTTO
501 501 E2_831.04 Alarm Word 31 4 501,TRASDUTTORE PRESSIONE BR 10 INTERROTTO
502 502 E2_831.05 Alarm Word 31 5 502,TRASDUTTORE PRESSIONE BR 11 INTERROTTO
503 503 E2_831.06 Alarm Word 31 6 503,TRASDUTTORE PRESSIONE BR 12 INTERROTTO
504 504 E2_831.07 Alarm Word 31 7 504,ERRORE TRASDUTTORE DI PRESSIONE RC1
505 505 E2_831.08 Alarm Word 31 8 505,ERRORE TRASDUTTORE DI PRESSIONE RC2
506 506 E2_831.09 Alarm Word 31 9 506,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 1 RC
507 507 E2_831.10 Alarm Word 31 10 507,ALLARME INVERTER RIPRISTINO PRESSIONE GRUPPO 2 RC
508 508 E2_831.11 Alarm Word 31 11 508,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 11
509 509 E2_831.12 Alarm Word 31 12 509,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 12
510 510 E2_831.13 Alarm Word 31 13 510,ALLARME PRESSOSTATO TAGLIERINE
511 511 E2_831.14 Alarm Word 31 14 511,BALLERINO ALTO - SROTOLATORE - ALLARME
512 512 E2_831.15 Alarm Word 31 15 512,EMERGENZA DA LINEA ENTRATA RAMOSA
513 513 E2_832.00 Alarm Word 32 0 513,LINEA ENTRATA RAMOSA NON PRONTA
514 514 E2_832.01 Alarm Word 32 1 514,EMERGENZA DA LINEA USCITA RAMOSA
515 515 E2_832.02 Alarm Word 32 2 515,LINEA USCITA RAMOSA NON PRONTA
516 516 E2_832.03 Alarm Word 32 3 516,TAGLIERINA CENTRALE FUORI POSIZIONE
517 517 E2_832.04 Alarm Word 32 4 517,TIRACIMOSSE NON PRONTO
518 518 E2_832.05 Alarm Word 32 5 518,JBOX INGRESSO IN EMERGENZA
519 519 E2_832.06 Alarm Word 32 6 519,JBOX INGRESSO NON PRONTO
520 520 E2_832.07 Alarm Word 32 7 520,JBOX USCITA IN EMERGENZA
521 521 E2_832.08 Alarm Word 32 8 521,JBOX USCITA NON PRONTO
522 522 E2_832.09 Alarm Word 32 9 522,ALLARME D-NET 41 RISCALDAMENTO INDIRETTO
523 523 E2_832.10 Alarm Word 32 10 523,SPAZZOLATRICE IN EMERGENZA
524 524 E2_832.11 Alarm Word 32 11 524,SPAZZOLATRICE NON PRONTA
525 525 E2_832.12 Alarm Word 32 12 525,ALLARME FUNE DI SICUREZZA USCITA STACCAPEZZA
526 526 E2_832.13 Alarm Word 32 13 526,ALLARME FUNE DI SICUREZZA USCITA FALDAROTOLATORE
527 527 E2_832.14 Alarm Word 32 14 527,ALLARME FUNE DI SICUREZZA CAMPO CONICO SINISTRO
528 528 E2_832.15 Alarm Word 32 15 528,ALLARME FUNE DI SICUREZZA CAMPO CONICO DESTRO
-793
View File
@@ -1,793 +0,0 @@
[
{
"description": "Alarm Word 0 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 0",
"index": 0,
"size": 2,
"messages": [
"1,ALLARME INVERTER CATENA TRASP. TESSUTO",
"2,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE SUPERIORE",
"3,ALLARME INVERTER CILINDRO SOVRALIMENTAZIONE INFERIORE",
"4,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE SINISTRA",
"5,ALLARME INVERTER RUOTA SOVRALIMENTAZIONE DESTRA",
"6,ALLARME INVERTER STACCAPEZZA",
"7,ALLARME INVERTER FALDAROTOLATORE",
"8,ALLARME INVERTER FALDERUOLE",
"9,ALLARME INVERTER ESAUSTORE 1 ",
"10,ALLARME FUNE SICUREZZA USCITA",
"11,ALLARME VENTILATORE 1 (BASSO)",
"12, ALLARME VENTILATORE 2 (BASSO)",
"13,ALLARME F.C. MINIMO CAMPO MASTER",
"14,ALLARME F.C. MASSIMO CAMPO MASTER",
"15,ALLARME PROTEZIONE TAPPETO INGRESSO",
"16,RIFERIMENTO POTENZIOMETRI CAMPI ASSENTE"
]
},
{
"description": "Alarm Word 1 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 1",
"index": 1,
"size": 2,
"messages": [
"17,ALLARME CONDIZIONATORI",
"18,EMERGENZA IN CORSO !!!",
"19,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 1",
"20,ALLARME POMPA RECUPERO CALORE 3",
"21,CONTROLLO UMIDITA' : FUORI CAMPO",
"22,ALLARME RILEVATORE ALTEZZA TESSUTO",
"23,ALLARME NON RILASCIO TESSUTO SINISTRO",
"24,ALLARME NON RILASCIO TESSUTO DESTRO",
"25,ALLARME ALIMENTAZIONE 24VAC QUADRO",
"26,ALLARME APRICIMOSSE",
"27,ALLARME ASCIUGACIMOSSE A INFRAROSSI",
"28,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 1",
"29,CAMPO PARALLELO 2 ALLARME PROTEZIONE",
"30,ALLARME VENTILATORE 3 (BASSO)",
"31,ALLARME VENTILATORE 4 (BASSO)",
"32,CAMPO PARALLELO 1 ALLARME PROTEZIONE"
]
},
{
"description": "Alarm Word 2 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 2",
"index": 2,
"size": 2,
"messages": [
"33,CAMPO PARALLELO 3 ALLARME PROTEZIONE",
"34,RAGGIUNTO MASSIMO CARICO CELLA DI CARICO TAPPETO",
"35,ALLARME FALLOPEZZA SINISTRO",
"36,ALLARME FALLOPEZZA DESTRO",
"37,PARATIE ANTERIORI APERTE",
"38,ALLARME AZIONAMENTO CAMPO CONICO",
"39,BLOCCO BRUCIATORE 9",
"40,CAMPO MASTER ALLARME PROTEZIONE ",
"41,ALLARME PRESSOSTATO TENDICATENA SINISTRO",
"42,ALLARME PRESSOSTATO TENDICATENA DESTRO",
"43,ALLARME MASSIMO ALLUNGAMENTO CATENA",
"44,ALLARME TIPO LAVORO USCITA NON SELEZIONATO",
"45,ALLARME RADDRIZZATRAMA",
"46,ALLARME SPREMITORE 1",
"47,BLOCCO BRUCIATORE 10",
"48,BLOCCO BRUCIATORE 11"
]
},
{
"description": "Alarm Word 3 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 3",
"index": 3,
"size": 2,
"messages": [
"49,BLOCCO BRUCIATORE 12",
"50,BLOCCO BRUCIATORE 1",
"51,BLOCCO BRUCIATORE 2",
"52,BLOCCO BRUCIATORE 3",
"53,BLOCCO BRUCIATORE 4",
"54,BIELLE FUORI POSIZIONE",
"55,GRUPPO FALDATORE FUORI POSIZIONE",
"56,SERIE ARRESTI APERTA",
"57,MANCANZA LUBRIFICANTE CATENA TRASP. TESSUTO",
"58,ALLARME INVERTER PICCOLO ROTOLO",
"59,ALLARME PROTEZIONE ALLARGATORI",
"60,ALLARME PROTEZIONE ASPIRACIMOSSE",
"61,ALLARME TAGLIACIMOSSE SINISTRA",
"62,ALLARME TAGLIACIMOSSE DESTRA",
"63,ALLARME INVERTER VENTILATORI INV101",
"64,ALLARME INVERTER VENTILATORI INV103"
]
},
{
"description": "Alarm Word 4 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 4",
"index": 4,
"size": 2,
"messages": [
"65,ALLARME TIMEOUT VITE CAMPO MASTER",
"66,ALLARME TIMEOUT VITE CAMPO PARALLELO 1",
"67,ALLARME TIMEOUT VITE CAMPO PARALLELO 2",
"68,ALLARME TIMEOUT VITE CAMPO PARALLELO 3",
"69,ALLARME TIMEOUT VITE CAMPO PARALLELO 4",
"70,ALLARME TIMEOUT VITE CAMPO PARALLELO 5",
"71,ALLARME TIMEOUT VITE CAMPO PARALLELO 6",
"72,ALLARME TIMEOUT VITE CAMPO PARALLELO 7",
"73,ALLARME TIMEOUT VITE CAMPO PARALLELO 8",
"74,ALLARME TIMEOUT VITE CAMPO PARALLELO 9",
"75,ALLARME DEVICE_NET ADDR. 32 DA BANCHETTO DI SPALMATURA",
"76,ALLARME INVERTER DOGAL ",
"77,ALLARME FOTOCELLULA TAPPETO USCITA PIENO",
"78,TEMPO DI CICLO PLC SOPRA MASSIMO IMPOSTATO",
"79,ERRORE INDIRIZZI SONDE BRUCIATORI",
"80,ALLARME VENTILATORE 4 (ALTO)"
]
},
{
"description": "Alarm Word 5 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 5",
"index": 5,
"size": 2,
"messages": [
"81,ALLARME VENTILATORE 5 (ALTO)",
"82,ALLARME VENTILATORE 6 (ALTO)",
"83,ALLARME VENTILATORE 7 (ALTO)",
"84,SONDA BRUCIATORE 1 INTERROTTA",
"85,SONDA BRUCIATORE 2 INTERROTTA",
"86,SONDA BRUCIATORE 3 INTERROTTA",
"87,SONDA BRUCIATORE 4 INTERROTTA",
"88,ALLARME DEVICE_NET ADDR. 0",
"89,ALLARME DEVICE_NET ADDR. 1",
"90,ALLARME DEVICE_NET ADDR. 2",
"91,ALLARME DEVICE_NET ADDR. 3",
"92,ALLARME DEVICE_NET ADDR. 4",
"93,ALLARME DEVICE_NET ADDR. 5",
"94,ALLARME DEVICE_NET ADDR. 6",
"95,ALLARME DEVICE_NET ADDR. 7",
"96,ALLARME DEVICE_NET ADDR. 8"
]
},
{
"description": "Alarm Word 6 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 6",
"index": 6,
"size": 2,
"messages": [
"97,ALLARME DEVICE_NET ADDR. 9",
"98,ALLARME DEVICE_NET ADDR. 10",
"99,ALLARME DEVICE_NET ADDR. 11",
"100,ALLARME DEVICE_NET ADDR. 12",
"101,ALLARME DEVICE_NET ADDR. 13",
"102,ALLARME DEVICE_NET ADDR. 14",
"103,ALLARME DEVICE_NET ADDR. 15",
"104,ALLARME DEVICE_NET ADDR. 16",
"105,ALLARME DEVICE_NET ADDR. 17",
"106,ALLARME DEVICE_NET ADDR. 18",
"107,ALLARME DEVICE_NET ADDR. 19",
"108,ALLARME DEVICE_NET ADDR. 20",
"109,ALLARME DEVICE_NET ADDR. 21",
"110,ALLARME DEVICE_NET ADDR. 22",
"111,ALLARME DEVICE_NET ADDR. 23",
"112,ALLARME DEVICE_NET ADDR. 24"
]
},
{
"description": "Alarm Word 7 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 7",
"index": 7,
"size": 2,
"messages": [
"113,ALLARME DEVICE_NET ADDR. 25",
"114,ALLARME DEVICE_NET ADDR. 26",
"115,BLOCCO BRUCIATORE 5",
"116,BLOCCO BRUCIATORE 6",
"117,BLOCCO BRUCIATORE 7",
"118,BLOCCO BRUCIATORE 8",
"119,SOVRATEMPERATURA BRUCIATORE 1",
"120,SOVRATEMPERATURA BRUCIATORE 2",
"121,SOVRATEMPERATURA BRUCIATORE 3",
"122,SOVRATEMPERATURA BRUCIATORE 4",
"123,SOVRATEMPERATURA BRUCIATORE 5",
"124,SOVRATEMPERATURA BRUCIATORE 6",
"125,SOVRATEMPERATURA BRUCIATORE 7",
"126,SOVRATEMPERATURA BRUCIATORE 8",
"127,SONDA BRUCIATORE 5 INTERROTTA",
"128,SONDA BRUCIATORE 6 INTERROTTA"
]
},
{
"description": "Alarm Word 8 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 8",
"index": 8,
"size": 2,
"messages": [
"129,SONDA BRUCIATORE 7 INTERROTTA",
"130,SONDA BRUCIATORE 8 INTERROTTA",
"131,SONDA BRUCIATORE 9 INTERROTTA",
"132,SONDA BRUCIATORE 10 INTERROTTA",
"133,SONDA BRUCIATORE 11 INTERROTTA",
"134,SONDA BRUCIATORE 12 INTERROTTA",
"135,SOVRATEMPERATURA BRUCIATORE 9",
"136,SOVRATEMPERATURA BRUCIATORE 10",
"137,SOVRATEMPERATURA BRUCIATORE 11",
"138,SOVRATEMPERATURA BRUCIATORE 12",
"139,ALLARME INVERTER VENTILATORI INV105",
"140,ALLARME INVERTER VENTILATORI INV107",
"141,ALLARME INVERTER VENTILATORI INV109",
"142,ALLARME INVERTER VENTILATORI INV111",
"143,ALLARME VENTILATORE 5 (BASSO)",
"144,ALLARME VENTILATORE 6 (BASSO)"
]
},
{
"description": "Alarm Word 9 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 9",
"index": 9,
"size": 2,
"messages": [
"145,ALLARME VENTILATORE 7 (BASSO)",
"146,ALLARME VENTILATORE 8 (BASSO)",
"147,ALLARME VENTILATORE 9 (BASSO)",
"148,ALLARME VENTILATORE 10 (BASSO)",
"149,ALLARME VENTILATORE 11 (BASSO)",
"150,ALLARME VENTILATORE 12 (BASSO)",
"151,ALLARME INVERTER ESAUSTORE 2",
"152,CAMPO PARALLELO 4 ALLARME PROTEZIONE",
"153,CAMPO PARALLELO 5 ALLARME PROTEZIONE",
"154,CAMPO PARALLELO 6 ALLARME PROTEZIONE",
"155,CAMPO PARALLELO 7 ALLARME PROTEZIONE",
"156,CAMPO PARALLELO 8 ALLARME PROTEZIONE",
"157,ALLARME INSEGUIMENTO VITE MASTER AGGIUNTA",
"158,ALLARME INVERTER CILINDRO RAFFREDDAMENTO",
"159,ALLARME TEMPERATURA ESAUSTORI",
"160,ALLARME INVERTER RECUPERO CALORE GRUPPO 1 "
]
},
{
"description": "Alarm Word 10 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 10",
"index": 10,
"size": 2,
"messages": [
"161,ALLARME FINECORSA SX TAPPETO USCITA",
"162,ALLARME FINECORSA DX TAPPETO USCITA",
"163,ALLARME INVERTER RECUPERO CALORE GRUPPO 2",
"164,ALLARME DEVICE_NET ADDR. 31",
"165,ALLARME CENTRATORE USCITA",
"166,COMPATTATORE NON PRONTO",
"167,ALLARME CONTROLLO PIROMETRI",
"168,ALLARME ALLARGATORE SU TAPPETO USCITA",
"169,ALLARME CONTROLLO FUMI",
"170,ALLARME FINECORSA BALLERINO ALTO",
"171,ALLARME FINECORSA BALLERINO BASSO",
"172,ALLARME PROTEZIONE ASPIRATORE VAPORIZZO INTENSIVO",
"173,ALLARME PROTEZIONE BRUCIATORE 1",
"174,ALLARME PROTEZIONE BRUCIATORE 2",
"175,ALLARME PROTEZIONE BRUCIATORE 3",
"176,ALLARME PROTEZIONE BRUCIATORE 4"
]
},
{
"description": "Alarm Word 11 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 11",
"index": 11,
"size": 2,
"messages": [
"177,ALLARME PROTEZIONE BRUCIATORE 5",
"178,ALLARME PROTEZIONE BRUCIATORE 6",
"179,ALLARME PROTEZIONE BRUCIATORE 7",
"180,ALLARME PROTEZIONE BRUCIATORE 8",
"181,ALLARME PROTEZIONE BRUCIATORE 9",
"182,ALLARME PROTEZIONE BRUCIATORE 10",
"183,ALLARME PROTEZIONE BRUCIATORE 11",
"184,ALLARME PROTEZIONE BRUCIATORE 12",
"185,TERMOFISSAGGIO O ESSICCAZIONE: TEMPERATURA FUORI CAMPO",
"186,TERMOFISSAGGIO O ESSICCAZIONE: VELOCITA' FUORI CAMPO",
"187,TERMOFISSAGGIO O ESSICCAZIONE: TEMPO FUORI CAMPO",
"188,SISTEMA CAMPI PARALLELI NON TARATO",
"189,ALLARME PROTEZIONE VENTOLE BRUCIATORI",
"190,CAMPO CONICO SINISTRO SU LIMITE CHIUSURA",
"191,CAMPO CONICO SINISTRO SU LIMITE APERTURA",
"192,CAMPO CONICO DESTRO SU LIMITE APERTURA"
]
},
{
"description": "Alarm Word 12 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 12",
"index": 12,
"size": 2,
"messages": [
"193,CAMPO CONICO DESTRO SU LIMITE CHIUSURA",
"194,FINECORSA CAMPO CONICO DESTRO SU TRAVERSA",
"195,FINECORSA CAMPO CONICO SINISTRO SU TRAVERSA",
"196,ALLARME PROTEZIONE INVERTER CAMPO CONICO SINISTRO",
"197,ALLARME PROTEZIONE INVERTER CAMPO CONICO DESTRO",
"198,ALLARME DEVICE_NET ADDR. 27",
"199,ALLARME VENTILATORE 8 (ALTO)",
"200,ALLARME VENTILATORE 9 (ALTO)",
"201,ALLARME VENTILATORE 10 (ALTO)",
"202,ALLARME VENTILATORE 11 (ALTO)",
"203,ALLARME VENTILATORE 12 (ALTO)",
"204,ALLARME VENTILATORE 1 (ALTO)",
"205,ALLARME VENTILATORE 2 (ALTO)",
"206,ALLARME VENTILATORE 3 (ALTO)",
"207,ALLARME PROTEZIONE CELLA DI RAFFREDDAMENTO 2",
"208,ALLARME FINECORSA TANDEM CONTROLLO ANSA TESSUTO"
]
},
{
"description": "Alarm Word 13 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 13",
"index": 13,
"size": 2,
"messages": [
"209,ALLARME FUNE SICUREZZA / PROTEZIONE RIBALTABILE ANTERIORE",
"210,ALLARME INVERTER VENTILATORI INV101A",
"211,ALLARME INVERTER VENTILATORI INV103A",
"212,ALLARME INVERTER VENTILATORI INV105A",
"213,ALLARME INVERTER VENTILATORI INV107A",
"214,ALLARME INVERTER VENTILATORI INV109A",
"215,ALLARME INVERTER VENTILATORI INV111A",
"216,ALLARME DA BANCHETTO DI SPALMATURA",
"217,ALLARME DEVICE_NET ADDR. 28",
"218,STOP JOG USCITA PER PESO RAGGIUNTO SU CELLA DI CARICO",
"219,DOGAL NON PRONTO",
"220,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91A",
"221,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 1",
"222,ALLARME PROTEZIONE SOSTEGNO TESSUTO",
"223,TARATURA CAMPI CONICI NON EFFETTUATA!",
"224,ALLARME TIMEOUT VITE CAMPO PARALLELO 10"
]
},
{
"description": "Alarm Word 14 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 14",
"index": 14,
"size": 2,
"messages": [
"225,CAMPO PARALLELO 9 ALLARME PROTEZIONE",
"226,CAMPO PARALLELO 10 ALLARME PROTEZIONE",
"227,CAMPO PARALLELO 11 ALLARME PROTEZIONE",
"228,CAMPO PARALLELO 12 ALLARME PROTEZIONE",
"229,ALLARME FLUSSOSTATO RECUPERO CALORE 1",
"230,ALLARME FLUSSOSTATO RECUPERO CALORE 2",
"231,ALLARME FLUSSOSTATO RECUPERO CALORE 3",
"232,ALLARME PROTEZIONE VENTILATORE ASCIUGACIMOSSE",
"233,ALLARME PROTEZIONE RESISTENZE ASCIUGACIMOSSE",
"234,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 1 ",
"235,ALLARME INCENDIO",
"236,ATTENZIONE ! ALLARME PRESENTE SU BANCHETTO DI SPALMATURA",
"237,MALFUNZIONAMENTO RECUPERO CALORE GRUPPO 2",
"238,ALLARME PROTEZIONE CELLA RAFFREDDAMENTO 91B",
"239,ALLARME PROTEZIONE PULISCISPILLI",
"240,BATTERIA PLC - LIVELLO BASSO"
]
},
{
"description": "Alarm Word 15 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 15",
"index": 15,
"size": 2,
"messages": [
"241,ALLARME CONTEMPORANEIT? TERMOSTATI SICUREZZA BRUCIATORI",
"242,BLOCCO VERSIONE SOFTWARE",
"243,SROTOLATORE NON PRONTO",
"244,ERRORE DI COMUNICAZIONE PROTOCOL MACRO",
"245,ALLARME TAGLIERINA URBAN",
"246,FINE TESSUTO IN INGRESSO",
"247,ALLARME PROTEZIONE SERVOVENTILAZIONI MOTORI",
"248,ALLARME INVERTER ARROTOLATORE TANGENZIALE",
"249,ALLARME SPREMITORE 2",
"250,ALLARME FS-91ER PLEVA",
"251,ALLARME LINEA EMERGENZA ARROTOLATORE",
"252,ALLARME FOTOCELLULE ARROTOLATORE",
"253,PORTA CASSETTA USCITA RAMOSA APERTA",
"254,ALLARME FINECORSA CILINDRO PROTEZIONE ARROTOLATORE ASSIALE",
"255,ALLARME PRESSOSTATI GRUPPO VALVOLE USCITA",
"256,ARROTOLATORE NON PRONTO"
]
},
{
"description": "Alarm Word 16 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 16",
"index": 16,
"size": 2,
"messages": [
"257,FINECORSA GRUPPO FALDATORE AVANTI",
"258,FINECORSA GRUPPO FALDATORE INDIETRO",
"259,ALLARME BATTERIA ELETTRICA 1",
"260,SOVRATEMPERATURA BATTERIA ELETTRICA 5",
"261,ALLARME BATTERIA ELETTRICA 2",
"262,RISCALDAMENTO QUADRO SPENTO",
"263,SOVRATEMPERATURA BATTERIA ELETTRICA 1",
"264,SOVRATEMPERATURA BATTERIA ELETTRICA 2",
"265,ALLARME BATTERIA ELETTRICA 3",
"266,EMERGENZA DA SPALMATRICE",
"267,ALLARME BATTERIA ELETTRICA 4",
"268,ALLARME BATTERIA ELETTRICA 5",
"269,SOVRATEMPERATURA BATTERIA ELETTRICA 3",
"270,SOVRATEMPERATURA BATTERIA ELETTRICA 4",
"271,ALLARME IDROSTATO RECUPERO CALORE 1",
"272,ALLARME SENSORE LIVELLO RECUPERO CALORE 1 : AGGIUNGERE LIQUIDO !"
]
},
{
"description": "Alarm Word 17 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 17",
"index": 17,
"size": 2,
"messages": [
"273,ALLARME RELE' CONTROLLO FASI",
"274,ALLARME DEVICE NET ADDR. 40 - MODULO GRT1-DRT USCITA RAMOSA",
"275,ALLARME PRESSOSTATO LINEA ENTRATA MACCHINA",
"276,ALLARME PRESSOSTATO LINEA USCITA MACCHINA",
"277,CAMPO CANNOCCHIALI 1 BLOCCATO",
"278,CAMPO CANNOCCHIALI 2 BLOCCATO",
"279,ALLARME DISCONTINUITA' CAMPI PARALLELI",
"280,ALLARME INSEGUIMENTO CAMPI PARALLELI - VITE LENTA",
"281,ALLARME LIMITE VITI",
"282,RAGGIUNTO MASSIMO CARICO SU CELLA DI CARICO",
"283,ALLARME PRESSOSTATO ESAUSTORE",
"284,EMERGENZA MOVIMENTO TESSUTO",
"285,EMERGENZA DA SPREMITORE 1",
"286,EMERGENZA DA RADDRIZZATRAMA",
"287,EMERGENZA DA SROTOLATORE",
"288,EMERGENZA DA ARROTOLATORE"
]
},
{
"description": "Alarm Word 18 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 18",
"index": 18,
"size": 2,
"messages": [
"289,ALLARME SICUREZZA BRUCIATORE 1",
"290,ALLARME SICUREZZA BRUCIATORE 2",
"291,ALLARME SICUREZZA BRUCIATORE 3",
"292,ALLARME SICUREZZA BRUCIATORE 4",
"293,ALLARME SICUREZZA BRUCIATORE 5",
"294,ALLARME SICUREZZA BRUCIATORE 6",
"295,ALLARME SICUREZZA BRUCIATORE 7",
"296,ALLARME SICUREZZA BRUCIATORE 8",
"297,ALLARME SICUREZZA BRUCIATORE 9",
"298,ALLARME SICUREZZA BRUCIATORE 10",
"299,ALLARME SICUREZZA BRUCIATORE 11",
"300,ALLARME SICUREZZA BRUCIATORE 12",
"301,ALLARME BRUCIATORE 1 SPENTO",
"302,ALLARME BRUCIATORE 2 SPENTO",
"303,ALLARME BRUCIATORE 3 SPENTO",
"304,ALLARME BRUCIATORE 4 SPENTO"
]
},
{
"description": "Alarm Word 19 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 19",
"index": 19,
"size": 2,
"messages": [
"305,ALLARME BRUCIATORE 5 SPENTO",
"306,ALLARME BRUCIATORE 6 SPENTO",
"307,ALLARME BRUCIATORE 7 SPENTO",
"308,ALLARME BRUCIATORE 8 SPENTO",
"309,ALLARME BRUCIATORE 9 SPENTO",
"310,ALLARME BRUCIATORE 10 SPENTO",
"311,ALLARME BRUCIATORE 11 SPENTO",
"312,ALLARME BRUCIATORE 12 SPENTO",
"313,ALLARME SENSORE LIVELLO RECUPERO CALORE 2 : AGGIUNGERE LIQUIDO !",
"314,ALLARME DA MIXER",
"315,ALLARME PRESSOSTATI LUBRIFICAZIONE",
"316,ALLARME ABBATTITORE FUMI",
"317,MACCHINA 1 NON IN LINEA",
"318,MACCHINA 2 NON IN LINEA",
"319,MACCHINA 3 NON IN LINEA",
"320,MACCHINA 4 NON IN LINEA"
]
},
{
"description": "Alarm Word 20 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 20",
"index": 20,
"size": 2,
"messages": [
"321,MACCHINA 5 NON IN LINEA",
"322,MACCHINA 6 NON IN LINEA",
"323,MACCHINA 7 NON IN LINEA",
"324,MACCHINA 8 NON IN LINEA",
"325,NON STOP NON PRONTO",
"326,EMERGENZA DA NON STOP",
"327,ALLARME DISCONTINUITA' CAMPO MASTER",
"328,ALLARME DISCONTINUITA' CAMPO PARALLELO 1",
"329,ALLARME DISCONTINUITA' CAMPO PARALLELO 2",
"330,ALLARME DISCONTINUITA' CAMPO PARALLELO 3",
"331,ALLARME DISCONTINUITA' CAMPO PARALLELO 4",
"332,ALLARME DISCONTINUITA' CAMPO PARALLELO 5",
"333,ALLARME DISCONTINUITA' CAMPO PARALLELO 6",
"334,ALLARME DISCONTINUITA' CAMPO PARALLELO 7",
"335,ALLARME DISCONTINUITA' CAMPO PARALLELO 8",
"336,ALLARME DISCONTINUITA' CAMPO PARALLELO 9"
]
},
{
"description": "Alarm Word 21 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 21",
"index": 21,
"size": 2,
"messages": [
"337,ALLARME DISCONTINUITA' CAMPO PARALLELO 10",
"338,PROTEZIONI INGRESSO APERTE",
"339,PROTEZIONI USCITA APERTE",
"340,ALLARME PROTEZIONE ESTRATTORE FUMI 1",
"341,ALLARME PROTEZIONE ESTRATTORE FUMI 2",
"342,MANCANZA PRESSOSTATO ESTRATTORE FUMI 1",
"343,MANCANZA PRESSOSTATO ESTRATTORE FUMI 2",
"344,EMERGENZA DA MIXER",
"345,EMERGENZA DA SPREMITORE 2",
"346,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 1",
"347,ALLARME PROTEZIONE VENTILATORE RECUPERO CALORE 2",
"348,ALLARME MODULO VELOCITA? ZERO CATENA TRASP. TESSUTO",
"349,ALLARME RILEVAMENTO TESSUTO SINISTRO USCITA",
"350,ALLARME RILEVAMENTO TESSUTO DESTRO USCITA",
"351,ALLARME FINECORSA SOLLEVAMENTO CAMPI CONICI",
"352,ALLARME IDROSTATO RECUPERO CALORE 2"
]
},
{
"description": "Alarm Word 22 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 22",
"index": 22,
"size": 2,
"messages": [
"353,ALLARME FUNE DI PROTEZIONE IN USCITA",
"354,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 1",
"355,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 2",
"356,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 3",
"357,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 4",
"358,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 5",
"359,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 6",
"360,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 7",
"361,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 8",
"362,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 9",
"363,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 10",
"364,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 11",
"365,ALLARME PROTEZIONE VENTOLA BRUCIATORE MAXON 12",
"366,OLIO CATENA - PRESSIONE MINIMA",
"367,POMPA OLIO CATENA - ALLARME PROTEZIONE",
"368,JBOX INGRESSO - BALLERINO BASSO"
]
},
{
"description": "Alarm Word 23 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 23",
"index": 23,
"size": 2,
"messages": [
"369,JBOX INGRESSO - FINE TESSUTO",
"370,JBOX INGRESSO - PIENO",
"371,JBOX INGRESSO - BALLERINO ALTO",
"372,JBOX INGRESSO - VUOTO",
"373,JBOX USCITA - BALLERINO BASSO",
"374,JBOX USCITA - FINE TESSUTO",
"375,JBOX USCITA - PIENO",
"376,JBOX USCITA - BALLERINO ALTO",
"377,JBOX USCITA - VUOTO",
"378,JBOX USCITA - ALLARME PRESSOSTATO",
"379,JBOX ENTRATA - ALLARME PRESSOSTATO",
"380,ALLARME PROTEZIONE CARRELLO FALDATORE",
"381,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 1",
"382,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 2",
"383,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 3",
"384,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 4"
]
},
{
"description": "Alarm Word 24 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 24",
"index": 24,
"size": 2,
"messages": [
"385,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 5",
"386,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 6",
"387,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 7",
"388,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 8",
"389,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 9",
"390,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 10",
"391,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 11",
"392,RISCALDAMENTO INDIRETTO - ALLARME FEEDBACK SERRANDA BR. 12",
"393,ESTRATTORE FUMI RISC. INDIRETTO 1 - ALLARME PROTEZIONE",
"394,ESTRATTORE FUMI RISC. INDIRETTO 2 - ALLARME PROTEZIONE",
"395,ESTRATTORE FUMI RISC. INDIRETTO 3 - ALLARME PROTEZIONE",
"396,ESTRATTORE FUMI RISC. INDIRETTO 4 - ALLARME PROTEZIONE",
"397,ESTRATTORE FUMI RISC. INDIRETTO 5 - ALLARME PROTEZIONE",
"398,ESTRATTORE FUMI RISC. INDIRETTO 6 - ALLARME PROTEZIONE",
"399,TAGLIERINA SINISTRA - FUORI POSIZIONE",
"400,TAGLIERINA DESTRA - FUORI POSIZIONE"
]
},
{
"description": "Alarm Word 25 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 25",
"index": 25,
"size": 2,
"messages": [
"401,ALLARME PROTEZIONE CILINDRO CONTRASTO TAGLIERINE",
"402,JBOX INGRESSO - TESSUTO INCROCIATO",
"403,JBOX USCITA - TESSUTO INCROCIATO",
"404,ALLARME DEVICE_NET STAZIONE ADDR.38 - JBOX INGRESSO",
"405,ALLARME DEVICE_NET STAZIONE ADDR.39 - JBOX USCITA",
"406,JBOX INGRESSO - ALLARME INVERTER",
"407,JBOX USCITA - ALLARME INVERTER",
"408,ALLARGA/CENTRATORE A/B SU IMBARRAGGIO - ALLARME PROTEZIONE",
"409,ALLARME TIMEOUT VITE CAMPO PARALLELO 11",
"410,ALLARME TIMEOUT VITE CAMPO PARALLELO 12",
"411,FRENO JBOX INGRESSO - ALLARME PROTEZIONE",
"412,FRENO JBOX USCITA - ALLARME PROTEZIONE",
"413,ALLARME PROTEZIONE FRENO CAMPO CONICO SINISTRO",
"414,ALLARME PROTEZIONE FRENO CAMPO CONICO DESTRO",
"415,VERIFICA PRESSOSTATO 1 FALLITA",
"416,VERIFICA PRESSOSTATO 2 FALLITA"
]
},
{
"description": "Alarm Word 26 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 26",
"index": 26,
"size": 2,
"messages": [
"417,ALLARME TERMOSTATO INTERNO QUADRO",
"418,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 1 POMPA 2",
"419,ALLARME PROTEZIONE RECUPERO CALORE - GRUPPO 2 POMPA 2",
"420,PROTEZIONE RIBALTABILE INGRESSO",
"421,FUNE EMERGENZA INGRESSO",
"422,PARATIA SCORREVOLE INGRESSO SINISTRA",
"423,PARATIA SCORREVOLE INGRESSO DESTRA",
"424,CANCELLO SINISTRO ENTRATA ANTERIORE",
"425,CANCELLO SINISTRO ENTRATA POSTERIORE",
"426,CANCELLO DESTRO ENTRATA ANTERIORE",
"427,CANCELLO DESTRO ENTRATA POSTERIORE",
"428,CANCELLO SINISTRO USCITA",
"429,CANCELLO DESTRO USCITA",
"430,TENSIONATORE FUNE EMERGENZA SINISTRA ZONA FORNO",
"431,TENSIONATORE FUNE EMERGENZA DESTRA ZONA FORNO",
"432,FUNE EMERGENZA SINISTRA ZONA FORNO"
]
},
{
"description": "Alarm Word 27 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 27",
"index": 27,
"size": 2,
"messages": [
"433,FUNE EMERGENZA DESTRA ZONA FORNO",
"434,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (1)",
"435,ALLARME FEEDBACK SCARICO ARIA ENTRATA MACCHINA (2)",
"436,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (1)",
"437,ALLARME FEEDBACK SCARICO ARIA USCITA MACCHINA (2)",
"438,ALLARME FEEDBACK EMERGENZA GENERALE DA SCARICO ARIA",
"439,BYPASS SPORTELLI ARMADIO ATTIVO",
"440,TIMEOUT ENCODER CAMPO CONICO SINISTRO",
"441,TIMEOUT ENCODER CAMPO CONICO DESTRO",
"442,ALLARME BALLERINO ALTO SPREMITORE 1",
"443,ALLARME BALLERINO ALTO SPREMITORE 2",
"444,",
"445,",
"446,",
"447,",
"448,"
]
},
{
"description": "Alarm Word 28 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 28",
"index": 28,
"size": 2,
"messages": [
"449,",
"450,",
"451,",
"452,",
"453,",
"454,",
"455,",
"456,",
"457,",
"458,",
"459,",
"460,ALLARME PROTEZIONE BARRE ANTISTATICHE",
"461,ALLARME PROTEZIONE VENTILAZIONE INTERNO QUADRO",
"462,BORDO SENSIBILE ",
"463,FALDAROTOLATORE_SICUREZZA SX/DX ",
"464,FALDAROTOLATORE_EMERGENZA TESSUTO "
]
},
{
"description": "Alarm Word 29 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 29",
"index": 29,
"size": 2,
"messages": [
"465,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.1",
"466,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.2",
"467,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.3",
"468,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.4",
"469,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.5",
"470,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.6",
"471,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.7",
"472,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.8",
"473,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.9",
"474,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.10",
"475,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.11",
"476,ALLARME DEPRESSIONE RISCALDAMENTO INDIRETTO BR.12",
"477,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 1/2",
"478,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 3/4",
"479,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 5/6",
"480,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 7/8"
]
},
{
"description": "Alarm Word 30 ",
"tipoMem": "Byte",
"memAddr": "Alarm Word 30",
"index": 30,
"size": 2,
"messages": [
"481,MALFUNZIONAMNETO PRESSOSTATO ESTRATTORE FUMI 9/10",
"482,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 1",
"483,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 2",
"484,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 3",
"485,MALFUNZIONAMENTO PRESSOSTATO SICUREZZA BRUCIATORE 4",
-11
View File
@@ -1,11 +0,0 @@
# ToDo's aperti
## ALL
- verifica disattivazione WDST da IOB vari
- riorganizzazione GLOBALE degli IOB x folder del tipo iob (OPC-UA, ModBus, Siemens...)
## IMI REMOSA
Da completare:
- lantek: capire come rendono il link tra dati PODL e part program
- check stato dati IMI altri impianto (sembrano "vuotini")
BIN
View File
Binary file not shown.
Binary file not shown.
+1 -1
View File
@@ -13,7 +13,7 @@ PORT=8193
GETPRGNAME=true
[SERVER]
MPIP=192.168.111.104
MPIP=192.168.0.113
MPURL=/MP/IO
CMDBASE=/IOB/input/
CMDFLOG=/IOB/flog/
+1 -1
View File
@@ -13,7 +13,7 @@ PORT=8193
GETPRGNAME=true
[SERVER]
MPIP=192.168.111.104
MPIP=192.168.0.113
MPURL=/MP/IO
CMDBASE=/IOB/input/
CMDFLOG=/IOB/flog/
-92
View File
@@ -1,92 +0,0 @@
namespace EgwCApp.Core
{
/// <summary>
/// Implementazione di riferimento x un file di configurazione x esecuzione task tramite EgwCApp
/// </summary>
public class ConfigFile
{
#region Public Properties
/// <summary>
/// Path Archivio dove depositare file ORIGINALI processati (se !="" vanno archiviati)
/// </summary>
public string ArchiveDir { get; set; } = "";
/// <summary>
/// Path dove depositare file tradotti processati (se !="" vanno spostati li)
/// </summary>
public string ConvertDir { get; set; } = "";
/// <summary>
/// Path file da processare
/// </summary>
public string FileInPath { get; set; } = "demoIn.txt";
/// <summary>
/// Path file dove salvare
/// </summary>
public string FileOutPath { get; set; } = "";
/// <summary>
/// IdxODL da registrare
/// </summary>
public int IdxODL { get; set; } = 0;
/// <summary>
/// DataType in output del file da processare (default Record Giacenze Giacovelli)
/// </summary>
public OutDataType ReturnDataType { get; set; } = OutDataType.RegGiacenze;
/// <summary>
/// Parametri per processing file: indica in quale NUMERO colonna (INT) ci sia un valore
/// </summary>
public Dictionary<string, int> ProcessParamInt { get; set; } = new Dictionary<string, int>();
/// <summary>
/// Parametri per processing file string --&gt; string
/// </summary>
public Dictionary<string, string> ProcessParamStr { get; set; } = new Dictionary<string, string>();
/// <summary>
/// DB Redis dove salvare
/// </summary>
public int RedisDB { get; set; } = 0;
/// <summary>
/// Posizione Redis dove salvare (HashKey)
/// </summary>
public string RedisOut { get; set; } = "";
/// <summary>
/// Porta Redis salvataggio
/// </summary>
public int RedisPort { get; set; } = 6379;
/// <summary>
/// Indirizzo Redis server
/// </summary>
public string RedisServer { get; set; } = "localhost";
/// <summary>
/// Valore TTL chiavi salvate in Redis (secondi)) - 0 = non scade
/// </summary>
public int RedisTTL { get; set; } = 0;
/// <summary>
/// Modalità ritorno risutlati
/// </summary>
public ReturnMode Return { get; set; } = ReturnMode.ND;
/// <summary>
/// Path file da processare
/// </summary>
public string TargetName { get; set; } = "";
/// <summary>
/// Tipologia di iport da condurre
/// </summary>
public ImportType Type { get; set; } = ImportType.ND;
#endregion Public Properties
}
}
-15
View File
@@ -1,15 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ExcelDataReader.DataSet" Version="3.6.0" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="StackExchange.Redis" Version="2.6.86" />
</ItemGroup>
</Project>
-45
View File
@@ -1,45 +0,0 @@
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
namespace EgwCApp.Core
{
/// <summary>
/// Tipologia file da importare
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum ImportType
{
ND = 0,
CSV,
Excel
}
[JsonConverter(typeof(StringEnumConverter))]
public enum rawTransfType
{
ND,
IcoelBatch,
IcoelVarInfo,
RegGiacenze,
TaglioUstd
}
[JsonConverter(typeof(StringEnumConverter))]
public enum OutDataType
{
ParamTaglioUstd,
RegGiacenze
}
/// <summary>
/// Modalità ritorno risultati
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public enum ReturnMode
{
ND = 0,
Console,
File,
Redis
}
}
-107
View File
@@ -1,107 +0,0 @@
using ExcelDataReader;
using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCApp.Core
{
/// <summary>
/// Gestione lettura excel:
/// https://github.com/ExcelDataReader/ExcelDataReader
/// </summary>
public class ExcelMan
{
protected string _path { get; set; } = "";
/// <summary>
/// Avvio componente x il file indicato
/// </summary>
/// <param name="filePath"></param>
public ExcelMan(string filePath)
{
// verifico esistenza file...
if (File.Exists(filePath))
{
_path = filePath;
}
}
public DataSet getDataSet()
{
DataSet result = new DataSet();
using (var stream = File.Open(_path, FileMode.Open, FileAccess.Read))
{
// Auto-detect format, supports:
// - Binary Excel files (2.0-2003 format; *.xls)
// - OpenXml Excel files (2007 format; *.xlsx, *.xlsb)
System.Text.Encoding.RegisterProvider(System.Text.CodePagesEncodingProvider.Instance);
using (var reader = ExcelReaderFactory.CreateReader(stream))
{
// 2. Use the AsDataSet extension method
//result = reader.AsDataSet();
// The result of each spreadsheet is in result.Tables
// modalità lettura con intestazione
result = reader.AsDataSet(new ExcelDataSetConfiguration()
{
ConfigureDataTable = (_) => new ExcelDataTableConfiguration()
{
UseHeaderRow = true
}
});
#if false
result = reader.AsDataSet();
#endif
}
}
return result;
}
public IExcelDataReader getExcelReader()
{
// ExcelDataReader works with the binary Excel file, so it needs a FileStream
// to get started. This is how we avoid dependencies on ACE or Interop:
FileStream stream = File.Open(_path, FileMode.Open, FileAccess.Read);
// We return the interface, so that
IExcelDataReader reader = null;
try
{
if (_path.EndsWith(".xls"))
{
reader = ExcelReaderFactory.CreateBinaryReader(stream);
}
if (_path.EndsWith(".xlsx"))
{
reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
}
return reader;
}
catch (Exception)
{
throw;
}
}
public IEnumerable<string> getWorksheetNames()
{
var reader = this.getExcelReader();
var workbook = reader.AsDataSet();
var sheets = from DataTable sheet in workbook.Tables select sheet.TableName;
return sheets;
}
public IEnumerable<DataRow> getData(string sheet, bool firstRowIsColumnNames = true)
{
var reader = this.getExcelReader();
//reader.IsFirstRowAsColumnNames = firstRowIsColumnNames;
var workSheet = reader.AsDataSet().Tables[sheet];
var rows = from DataRow a in workSheet.Rows select a;
return rows;
}
}
}
-155
View File
@@ -1,155 +0,0 @@
using StackExchange.Redis;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCApp.Core
{
public class RedisMan
{
#region Public Constructors
public RedisMan(string server, int port, int db)
{
servAddr = server;
servPort = port;
redisDb = db;
connString = $"{servAddr}:{servPort},abortConnect=false,ssl=false";
connRedis = ConnectionMultiplexer.Connect(connString);
}
#endregion Public Constructors
#region Public Properties
/// <summary>
/// Oggetto DB REDIS corrente
/// </summary>
public IDatabase cache
{
get
{
IDatabase answ;
// se già valorizzato uso oggetto private...
if (_currDB != null)
{
answ = _currDB;
}
else
{
// init DB
answ = connRedis.GetDatabase(redisDb);
_currDB = answ;
}
// restituisco oggetto DB
return answ;
}
}
/// <summary>
/// Oggetto statico connessione redis
/// </summary>
public ConnectionMultiplexer connRedis { get; set; }
#endregion Public Properties
#region Public Methods
/// <summary>
/// Restituisce una chiave salvata in RedisCache
/// </summary>
/// <param name="chiave"></param>
/// <returns></returns>
public string getRSV(string chiave)
{
string answ = "";
try
{
answ = cache.StringGet(chiave);
}
catch (Exception exc)
{
#if false
Logging.Instance.Info($"getRSV {exc}");
#endif
}
return answ;
}
/// <summary>
/// Salva una chiave in RedisCache
/// </summary>
/// <param name="chiave"></param>
/// <param name="valore"></param>
/// <returns></returns>
public bool setRSV(string chiave, string valore)
{
bool answ = false;
try
{
cache.StringSet(chiave, valore);
answ = true;
}
catch (Exception exc)
{
#if false
Logging.Instance.Error($"setRSV {exc}");
#endif
}
return answ;
}
/// <summary>
/// Salva una chiave in RedisCache
/// </summary>
/// <param name="chiave"></param>
/// <param name="valore"></param>
/// <param name="TTL_sec">in secondi</param>
/// <returns></returns>
public bool setRSV(string chiave, string valore, int TTL_sec)
{
bool answ = false;
try
{
TimeSpan expT = new TimeSpan(0, 0, TTL_sec);
// salvo con expyry...
cache.StringSet(chiave, valore, expT);
answ = true;
}
catch (Exception exc)
{
#if false
Logging.Instance.Error($"setRSV {exc}");
#endif
}
return answ;
}
#endregion Public Methods
#region Protected Fields
protected int redisDb = 0;
protected string servAddr = "";
protected int servPort = 0;
#endregion Protected Fields
#region Private Fields
private string connString = "";
#endregion Private Fields
#region Private Properties
/// <summary>
/// Oggetto currentDb REDIS locale
/// </summary>
private IDatabase _currDB { get; set; }
#endregion Private Properties
}
}
-41
View File
@@ -1,41 +0,0 @@
namespace EgwCApp.Core
{
public class UstdData
{
#region Public Classes
public class CutterParam
{
#region Public Properties
/// <summary>
/// Codice articolo
/// </summary>
public string Codice { get; set; } = "ND";
/// <summary>
/// Serie Articolo
/// </summary>
public string Serie { get; set; } = "NA";
/// <summary>
/// Lunghezza pezzo da realizzare
/// </summary>
public double LungPezzo { get; set; } = 0;
/// <summary>
/// Quota uscita alama
/// </summary>
public double QuotaUscita { get; set; } = 0;
/// <summary>
/// Lunghezza della barra di partenza
/// </summary>
public double LungBarra { get; set; } = 0;
/// <summary>
/// Altezza pezzo
/// </summary>
public double Altezza { get; set; } = 0;
#endregion Public Properties
}
#endregion Public Classes
}
}
-28
View File
@@ -1,28 +0,0 @@
namespace EgwCApp.Core
{
public class WharehouseData
{
#region Public Classes
public class BatchRec
{
#region Public Properties
public DateTime DateRif { get; set; } = DateTime.Today;
public string ExtDoc { get; set; } = "Doc";
public string IdentRG { get; set; } = "NA";
public int IdxODL { get; set; } = 0;
public string Notes { get; set; } = "Notes";
public int NumPack { get; set; } = 0;
public string Product { get; set; } = "Prod";
public double QtyTot { get; set; } = 0.0;
public string Supplier { get; set; } = "Suppl";
public string Variety { get; set; } = "Var";
#endregion Public Properties
}
#endregion Public Classes
}
}
-37
View File
@@ -1,37 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32516.85
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.Testing", "EgwCApp.Testing\EgwCApp.Testing.csproj", "{E37013B7-E5C6-48ED-8051-0BA5F29CB234}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.ExcImport", "EgwCApp.ExcImport\EgwCApp.ExcImport.csproj", "{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwCApp.Core", "EgwCApp.Core\EgwCApp.Core.csproj", "{DF02D478-2309-48B8-BF0D-90B02327AF02}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{E37013B7-E5C6-48ED-8051-0BA5F29CB234}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E37013B7-E5C6-48ED-8051-0BA5F29CB234}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E37013B7-E5C6-48ED-8051-0BA5F29CB234}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E37013B7-E5C6-48ED-8051-0BA5F29CB234}.Release|Any CPU.Build.0 = Release|Any CPU
{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D689CB4E-14DB-4CD4-B0D6-D2029219EF7E}.Release|Any CPU.Build.0 = Release|Any CPU
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {2AF3181F-288A-47D5-8087-2AB660476D85}
EndGlobalSection
EndGlobal
@@ -1,32 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AssemblyName>ExcImport</AssemblyName>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
<PackageReference Include="StackExchange.Redis" Version="2.6.86" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="testConfExcel.json">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Update="testConfCsv.json">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
</None>
<None Update="testConf.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
-571
View File
@@ -1,571 +0,0 @@
using EgwCApp.Core;
using Newtonsoft.Json;
using static EgwCApp.Core.UstdData;
using static EgwCApp.Core.WharehouseData;
namespace EgwCApp.ExcImport
{
public class ImportProc
{
#region Public Constructors
/// <summary>
/// Init oggetto per import
/// </summary>
/// <param name="confFileName"></param>
public ImportProc(string confFileName)
{
if (!string.IsNullOrEmpty(confFileName))
{
fileConfName = confFileName;
}
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Decodifica configurazione
/// </summary>
/// <returns></returns>
public bool decodeConfig()
{
bool answ = false;
if (!string.IsNullOrEmpty(fileConfName))
{
// deserializzo config
if (!File.Exists(fileConfName))
{
Console.WriteLine($"Error: ConfigFile not found | {fileConfName}");
}
else
{
string rawData = File.ReadAllText(fileConfName);
// se ho contenuto procedo
if (string.IsNullOrEmpty(rawData))
{
Console.WriteLine($"Error: ConfigFile empty! | {fileConfName}");
}
else
{
// deserializzo
taskConfig = JsonConvert.DeserializeObject<ConfigFile>(rawData);
answ = taskConfig != null;
}
}
}
return answ;
}
/// <summary>
/// Esegue import (se possibile)
/// </summary>
/// <returns></returns>
public bool doProcess()
{
bool answ = false;
if (taskConfig != null)
{
// verifico esista il file...
if (string.IsNullOrEmpty(taskConfig.FileInPath) && File.Exists(taskConfig.FileInPath))
{
// manca file ingresso!!! esco!
}
else
{
// verifico il tipo di process necessario...
switch (taskConfig.Type)
{
case ImportType.CSV:
fileReturnData = File.ReadAllText(taskConfig.FileInPath);
answ = true;
break;
case ImportType.Excel:
fileReturnData = processExcelImport(taskConfig.FileInPath, taskConfig.ReturnDataType);
answ = true;
break;
case ImportType.ND:
default:
break;
}
}
}
return answ;
}
/// <summary>
/// Esecuzione ritorno informazioni secondo configurazione...
/// </summary>
/// <returns></returns>
public bool doReturn()
{
bool answ = false;
if (taskConfig != null)
{
// verifico il tipo di return necessario...
switch (taskConfig.Return)
{
case ReturnMode.Console:
Console.WriteLine(fileReturnData);
answ = true;
break;
case ReturnMode.Redis:
// salvo in Redis!
string rKey = taskConfig.RedisOut;
RedisMan redMan = new RedisMan(taskConfig.RedisServer, taskConfig.RedisPort, taskConfig.RedisDB);
// salvo!
if (taskConfig.RedisTTL > 0)
{
redMan.setRSV(rKey, fileReturnData, taskConfig.RedisTTL);
}
else
{
redMan.setRSV(rKey, fileReturnData);
}
break;
case ReturnMode.File:
// verifico path ci sia... sennò creo
string outPath = string.IsNullOrEmpty(taskConfig.FileOutPath) ? "FileOut.txt" : taskConfig.FileOutPath;
// verifico se vadano salvati in una folder differente...
if (!string.IsNullOrEmpty(taskConfig.ConvertDir))
{
if (!Directory.Exists(taskConfig.ConvertDir))
{
Directory.CreateDirectory(taskConfig.ConvertDir);
}
outPath = Path.Combine(taskConfig.ConvertDir, Path.GetFileName(outPath));
}
// salvo il file!
File.WriteAllText(outPath, fileReturnData);
answ = true;
break;
case ReturnMode.ND:
default:
break;
}
// se fatto eventualmente archivio
if (answ)
{
if (!string.IsNullOrEmpty(taskConfig.ArchiveDir))
{
// folder archivio con dataora...
string folderArch = Path.Combine(taskConfig.ArchiveDir, $"{DateTime.Now:yyyyMMdd_HHmmss}");
// verifico cartella archivio
if (!Directory.Exists(folderArch))
{
Directory.CreateDirectory(folderArch);
}
// sposto file
string fName = Path.GetFileName(taskConfig.FileInPath);
File.Move(taskConfig.FileInPath, Path.Combine(folderArch, fName), true);
}
}
}
return answ;
}
#endregion Public Methods
#region Protected Properties
/// <summary>
/// Nome del file config da processare
/// </summary>
protected string fileConfName { get; set; } = "";
/// <summary>
/// Contenuto del file da restituire come return data (serializzato)
/// </summary>
protected string fileReturnData { get; set; } = "";
/// <summary>
/// Configurazione del task da eseguire
/// </summary>
protected ConfigFile? taskConfig { get; set; } = new ConfigFile();
#endregion Protected Properties
#region Protected Methods
/// <summary>
/// Estrae da una riga l'i-esimo elemento
/// </summary>
/// <param name="riga"></param>
/// <param name="col"></param>
/// <returns></returns>
protected string getCellVal(System.Data.DataRow? riga, int col)
{
string answ = "";
if (riga != null)
{
try
{
answ = $"{riga.ItemArray[col]}".Trim();
}
catch
{ }
}
return answ;
}
/// <summary>
/// Cleanup stringa x impiego tipo ident da char dubbi
/// </summary>
/// <param name="origData"></param>
/// <returns></returns>
protected string strFixId(string origData)
{
return origData.Replace(".", "").Replace(" ", "_");
}
#endregion Protected Methods
#region Private Methods
/// <summary>
/// Importa un file excel e restituisce una
/// </summary>
/// <param name="fileItem"></param>
/// <returns></returns>
private string processExcelImport(string fileItem, OutDataType outReq = OutDataType.RegGiacenze)
{
string outVal = "";
switch (outReq)
{
case OutDataType.ParamTaglioUstd:
outVal = getParTaglioUstdJson(fileItem, true);
break;
case OutDataType.RegGiacenze:
default:
outVal = getRegGiacJson(fileItem);
break;
}
return outVal;
}
/// <summary>
/// Processa e restituisce un oggetto lista giacenze serializzato
/// </summary>
/// <param name="fileItem">Nome file excel</param>
/// <param name="doIndent">Output indentato</param>
/// <returns></returns>
private string getRegGiacJson(string fileItem, bool doIndent = false)
{
int numErr = 0;
string outVal = "";
// test procedura di import files excel (default Giacovelli...)
var currExcel = new ExcelMan(fileItem);
// creo lista dati in formato RegGiacenze...
Dictionary<string, BatchRec> listaGiac = new Dictionary<string, BatchRec>();
var dtSet = currExcel.getDataSet();
if (dtSet != null && dtSet.Tables != null && dtSet.Tables.Count > 0)
{
string nomeFile = Path.GetFileName(fileItem);
nomeFile = nomeFile.Substring(0, nomeFile.LastIndexOf("."));
var elSheet = dtSet.Tables;
int idxTab = 0;
// cerco lo sheet corretto se > 1
if (dtSet.Tables.Count > 1)
{
bool found = false;
for (int i = 0; i < dtSet.Tables.Count; i++)
{
if (nomeFile.Contains(dtSet.Tables[i].TableName))
{
idxTab = i;
found = true;
break;
}
// controllo parametro opzionale...
if (!found && taskConfig != null && !string.IsNullOrEmpty(taskConfig.TargetName))
{
if (dtSet.Tables[i].TableName == taskConfig.TargetName)
{
idxTab = i;
break;
}
}
}
}
var tabella = dtSet.Tables[idxTab];
int numRighe = tabella.Rows.Count;
int idxODL = taskConfig != null ? taskConfig.IdxODL : 0;
for (int i = 0; i < numRighe; i++)
{
if (taskConfig != null && taskConfig.ProcessParamInt != null && taskConfig.ProcessParamInt.Count > 5)
{
if (numErr < numRighe / 5)
{
try
{
// variabili di appoggio...
DateTime dtRif = DateTime.Today;
double qtyTot = 0;
int numPack = 0;
var riga = tabella.Rows[i];
if (riga != null)
{
string ddt = getCellVal(riga, taskConfig.ProcessParamInt["ExtDoc"]);
string sDate = getCellVal(riga, taskConfig.ProcessParamInt["DateRif"]);
string prod = getCellVal(riga, taskConfig.ProcessParamInt["Product"]);
// verifiche x import: header, data e DDT (vuoti o "-") --> SKIP!
bool checkHeaderKo = (ddt == "DDT" || prod == "PRODOTTO");
bool checkEmptyDdt = (string.IsNullOrEmpty(ddt) || ddt == "-");
bool checkEmptyDate = (string.IsNullOrEmpty(sDate) || sDate == "-");
if (checkHeaderKo)
{
//lgTrace($"SKIP header");
}
else if (checkEmptyDdt || checkEmptyDate)
{
//lgTrace($"SKIP linea vuota | i: {i} | codice: {codice} | date: {serie} | prod: {prod}");
}
else
{
string variety = getCellVal(riga, taskConfig.ProcessParamInt["Variety"]);
string suppl = getCellVal(riga, taskConfig.ProcessParamInt["Supplier"]);
string sQty = getCellVal(riga, taskConfig.ProcessParamInt["QtyTot"]);
string sNum = getCellVal(riga, taskConfig.ProcessParamInt["NumPack"]);
string numPed = getCellVal(riga, taskConfig.ProcessParamInt["NumPed"]);
string packPed = getCellVal(riga, taskConfig.ProcessParamInt["PackPed"]);
string pesoPack = getCellVal(riga, taskConfig.ProcessParamInt["PesoPack"]);
DateTime.TryParse(sDate, out dtRif);
int.TryParse(sNum, out numPack);
double.TryParse(sQty, out qtyTot);
string identRG = ddt.Length > 2 ? $"{strFixId(ddt)}.{strFixId(prod)}.{strFixId(variety)}.{strFixId(suppl)}" : $"{dtRif:yyyyMMdd}.{strFixId(prod)}.{strFixId(variety)}.{strFixId(suppl)}";
string notes = $"{numPed}x{packPed}x{pesoPack}";
// verifico di avere dati per proseguire...
bool checkIdent = !string.IsNullOrEmpty($"{prod}{variety}{suppl}");
if (checkIdent)
{
BatchRec newRow = new BatchRec()
{
IdxODL = idxODL,
IdentRG = identRG,
DateRif = dtRif,
ExtDoc = ddt,
Product = prod,
Variety = variety,
Supplier = suppl,
NumPack = numPack,
QtyTot = qtyTot,
Notes = notes
};
// verifico: se manca aggiungo
if (!listaGiac.ContainsKey(identRG))
{
listaGiac.Add(identRG, newRow);
}
else
{
// altrimenti aggiorno giacenza con valori numerici
listaGiac[identRG].NumPack += newRow.NumPack;
listaGiac[identRG].QtyTot += newRow.QtyTot;
}
}
else
{
//lgError($"Errore verifica identità riga | prod: {prod} | variety: {variety} | suppl: {suppl}");
numErr++;
}
}
}
}
catch (Exception exc)
{
numErr++;
}
}
}
}
}
if (listaGiac.Count > 0)
{
// converto in una nuova lista...
int rCounter = 1;
Dictionary<int, BatchRec> list2Send = new Dictionary<int, BatchRec>();
foreach (var item in listaGiac)
{
list2Send.Add(rCounter, item.Value);
rCounter++;
}
// serializzo e restituisco file JSON...
Formatting fMode = doIndent ? Formatting.Indented : Formatting.None;
var serVal = JsonConvert.SerializeObject(list2Send, fMode);
if (serVal != null && !string.IsNullOrEmpty(serVal))
{
outVal = serVal;
}
}
return outVal;
}
/// <summary>
/// Processa e restituisce un oggetto parametri taglio serializzato
/// </summary>
/// <param name="fileItem">Nome file excel</param>
/// <param name="doIndent">Output indentato</param>
/// <returns>Restituisce un serializzato formato Dictionary<string, CutterParam></returns>
private string getParTaglioUstdJson(string fileItem, bool doIndent = false)
{
int numErr = 0;
string outVal = "";
// test procedura di import files excel (default Giacovelli...)
var currExcel = new ExcelMan(fileItem);
// creo lista dati in formato ParametriTaglioUSTD...
Dictionary<string, CutterParam> listaParams = new Dictionary<string, CutterParam>();
var dtSet = currExcel.getDataSet();
if (dtSet != null && dtSet.Tables != null && dtSet.Tables.Count > 0)
{
string nomeFile = Path.GetFileName(fileItem);
nomeFile = nomeFile.Substring(0, nomeFile.LastIndexOf("."));
var elSheet = dtSet.Tables;
int idxTab = 0;
// cerco lo sheet corretto se > 1
if (dtSet.Tables.Count > 1)
{
bool found = false;
for (int i = 0; i < dtSet.Tables.Count; i++)
{
if (nomeFile.Contains(dtSet.Tables[i].TableName))
{
idxTab = i;
found = true;
break;
}
// controllo parametro opzionale...
if (!found && taskConfig != null && !string.IsNullOrEmpty(taskConfig.TargetName))
{
if (dtSet.Tables[i].TableName == taskConfig.TargetName)
{
idxTab = i;
break;
}
}
}
}
var tabella = dtSet.Tables[idxTab];
int numRighe = tabella.Rows.Count;
int idxODL = taskConfig != null ? taskConfig.IdxODL : 0;
for (int i = 0; i < numRighe; i++)
{
// voglio che ci sia setup x params
if (taskConfig != null && taskConfig.ProcessParamInt != null && taskConfig.ProcessParamInt.Count > 5)
{
// procedo se errori < 20%...
if (numErr < numRighe / 5)
{
try
{
double lungPezzo = 0;
double quotaUscita = 0;
double lungBarra = 0;
double altezza = 0;
var riga = tabella.Rows[i];
if (riga != null)
{
string codice = getCellVal(riga, taskConfig.ProcessParamInt["Codice"]);
string serie = getCellVal(riga, taskConfig.ProcessParamInt["Serie"]);
string sLungPezzo = getCellVal(riga, taskConfig.ProcessParamInt["LungPezzo"]);
string sQuotaUscita = getCellVal(riga, taskConfig.ProcessParamInt["QuotaUscita"]);
string sLungBarra = getCellVal(riga, taskConfig.ProcessParamInt["LungBarra"]);
string sAltezza = getCellVal(riga, taskConfig.ProcessParamInt["Altezza"]);
// verifiche x import: header avrà codice e serie con nome "codice" e "serie" --> SKIP!
bool chkHeaderKo = (codice.ToLower() == "codice" || serie.ToLower() == "serie");
bool chkEmptyLP = (string.IsNullOrEmpty(sLungPezzo) || sLungPezzo.Length < 2);
bool chkEmptyQU = (string.IsNullOrEmpty(sQuotaUscita) || sQuotaUscita.Length < 2);
bool chkEmptyLB = (string.IsNullOrEmpty(sLungBarra) || sLungBarra.Length < 2);
bool chkEmptyA = (string.IsNullOrEmpty(sAltezza) || sAltezza.Length < 2);
if (chkHeaderKo)
{
//lgTrace($"SKIP header");
}
else if (chkEmptyLP || chkEmptyQU || chkEmptyLB || chkEmptyA)
{
//lgTrace($"SKIP linea vuota | i: {i} | codice: {codice} | date: {serie} | prod: {prod}");
}
else
{
// conversione valori double
bool bLP = double.TryParse(sLungPezzo, out lungPezzo);
bool bQU = double.TryParse(sQuotaUscita, out quotaUscita);
bool bLB = double.TryParse(sLungBarra, out lungBarra);
bool bA = double.TryParse(sAltezza, out altezza);
// verifico di avere dati per proseguire...
bool chkConvert = bLP && bQU && bLB && bA;
if (chkConvert)
{
CutterParam newRow = new CutterParam()
{
Codice = codice,
Serie = serie,
LungPezzo = lungPezzo,
QuotaUscita = quotaUscita,
LungBarra = lungBarra,
Altezza = altezza
};
// verifico: se manca aggiungo
if (!listaParams.ContainsKey(codice))
{
listaParams.Add(codice, newRow);
}
}
else
{
//lgError($"Errore verifica identità riga | prod: {prod} | variety: {variety} | suppl: {suppl}");
numErr++;
}
}
}
}
catch (Exception exc)
{
numErr++;
}
}
}
}
}
// serializzo direttamente la listaParams x velocizzare poi ricerca da dictionary
if (listaParams.Count > 0)
{
#if false
// converto in una nuova lista...
int rCounter = 1;
Dictionary<int, CutterParam> list2Send = new Dictionary<int, CutterParam>();
foreach (var item in listaParams)
{
list2Send.Add(rCounter, item.Value);
rCounter++;
}
// serializzo e restituisco file JSON...
Formatting fMode = doIndent ? Formatting.Indented : Formatting.None;
var serVal = JsonConvert.SerializeObject(list2Send, fMode);
if (serVal != null && !string.IsNullOrEmpty(serVal))
{
outVal = serVal;
}
#endif
// serializzo e restituisco file JSON...
Formatting fMode = doIndent ? Formatting.Indented : Formatting.None;
var serVal = JsonConvert.SerializeObject(listaParams, fMode);
if (serVal != null && !string.IsNullOrEmpty(serVal))
{
outVal = serVal;
}
}
return outVal;
}
#endregion Private Methods
}
}
-69
View File
@@ -1,69 +0,0 @@
// See https://aka.ms/new-console-template for more information
// ExcImport: Excel Importer, per IobWin in logica lettura Giacenze
// parametri:
// $0: Path ConfigFile file per esecuzione
using EgwCApp.ExcImport;
using System.Diagnostics;
string separator = "--------------------------------------";
string fileName = "";
// controllo args, se mancassero o incompleti mostro help
if (args.Length < 1)
{
Console.WriteLine(separator);
Console.WriteLine("- ExcelFileImporter - Core 6.0");
Console.WriteLine("- v.0.0.0.0 | @Egalware 2022+");
Console.WriteLine(separator);
Console.WriteLine();
// provo a processare testConf...
fileName = "testConf.json";
Console.WriteLine("Mancano parametri per esecuzione:");
Console.WriteLine("$0: ConfigFile da impiegare");
Console.WriteLine("");
Console.WriteLine($"verrà usato {fileName}");
}
else
{
fileName = args[0];
}
#if DEBUG
Stopwatch sw = new Stopwatch();
sw.Start();
#endif
// ora processo se ho filename valido...
if (!string.IsNullOrEmpty(fileName))
{
// verifico se ho file...
if (File.Exists(fileName))
{
ImportProc importObj = new ImportProc(fileName);
bool stepOk = importObj.decodeConfig();
if (stepOk)
{
stepOk = importObj.doProcess();
if (!stepOk)
{
Console.WriteLine("Errore in processing file");
}
else
{
importObj.doReturn();
}
}
else
{
Console.WriteLine("Errore in processing config file");
}
}
else
{
Console.WriteLine("Errore file non trovato!");
}
}
#if DEBUG
sw.Stop();
Console.WriteLine($"Proc time: {sw.ElapsedMilliseconds}ms");
#endif
@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net6.0\win-x64\publish\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<_TargetId>Folder</_TargetId>
<TargetFramework>net6.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>
</Project>
-4
View File
@@ -1,4 +0,0 @@
@echo off
REM compilo in publish
dotnet publish EgwCApp.ExcImport.csproj -p:PublishSingleFile=true -r win-x64 -c Release --self-contained false
-23
View File
@@ -1,23 +0,0 @@
{
"ArchiveDir": "",
"ConvertDir": "C:\\temp\\Taglierina\\convert",
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
"FileOutPath": "FileTaglierina.json",
"IdxODL": 0,
"ProcessParamInt": {
"Codice": 0,
"Serie": 1,
"LungPezzo": 4,
"QuotaUscita": 5,
"LungBarra": 6,
"Altezza": 7
},
"ProcessParamStr": {},
"RedisDB": 10,
"RedisOut": "IOB-WIN:Conf:ParamsUSTD",
"RedisTTL": 36000,
"Return": "Redis",
"ReturnDataType": "ParamTaglioUstd",
"TargetName": "Ricette",
"Type": "Excel"
}
@@ -1,6 +0,0 @@
{
"FilePath": "C:\\Temp\\test.log",
"ProcessParams": {},
"Return": "Console",
"Type": "Excel"
}
@@ -1,25 +0,0 @@
{
"ArchiveDir": "C:\\temp\\import\\archive",
"ConvertDir": "C:\\temp\\import\\convert",
"FileInPath": "C:\\temp\\import\\01.12.xlsx",
"FileOutPath": "01.12.json",
"IdxODL": 987654321,
"ProcessParamInt": {
"Product": 3,
"Variety": 9,
"Supplier": 8,
"ExtDoc": 2,
"DateRif": 14,
"QtyTot": 22,
"NumPack": 21,
"NumPed": 17,
"PackPed": 18,
"PesoPack": 20
},
"ProcessParamStr": {},
"RedisDB": 0,
"RedisOut": "",
"Return": "File",
"TargetName": "DB Loco",
"Type": "Excel"
}
@@ -1,22 +0,0 @@
{
"ArchiveDir": "",
"ConvertDir": "C:\\temp\\Taglierina\\convert",
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
"FileOutPath": "FileTaglierina.json",
"IdxODL": 0,
"ProcessParamInt": {
"Codice": 0,
"Serie": 1,
"LungPezzo": 4,
"QuotaUscita": 5,
"LungBarra": 6,
"Altezza": 7
},
"ProcessParamStr": {},
"RedisDB": 0,
"RedisOut": "",
"Return": "Console",
"ReturnDataType": "ParamTaglioUstd",
"TargetName": "Ricette",
"Type": "Excel"
}
@@ -1,22 +0,0 @@
{
"ArchiveDir": "C:\\temp\\Taglierina\\archive",
"ConvertDir": "C:\\temp\\Taglierina\\convert",
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
"FileOutPath": "FileTaglierina.json",
"IdxODL": 0,
"ProcessParamInt": {
"Codice": 0,
"Serie": 1,
"LungPezzo": 4,
"QuotaUscita": 5,
"LungBarra": 6,
"Altezza": 7
},
"ProcessParamStr": {},
"RedisDB": 0,
"RedisOut": "",
"Return": "File",
"ReturnDataType": "ParamTaglioUstd",
"TargetName": "Ricette",
"Type": "Excel"
}
@@ -1,23 +0,0 @@
{
"ArchiveDir": "",
"ConvertDir": "C:\\temp\\Taglierina\\convert",
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
"FileOutPath": "FileTaglierina.json",
"IdxODL": 0,
"ProcessParamInt": {
"Codice": 0,
"Serie": 1,
"LungPezzo": 4,
"QuotaUscita": 5,
"LungBarra": 6,
"Altezza": 7
},
"ProcessParamStr": {},
"RedisDB": 10,
"RedisOut": "IOB-WIN:Conf:ParamsUSTD",
"RedisTTL": 36000,
"Return": "Redis",
"ReturnDataType": "ParamTaglioUstd",
"TargetName": "Ricette",
"Type": "Excel"
}
-9
View File
@@ -1,9 +0,0 @@
echo ------------ Parametri compilazione ------------
echo OutDir: $(OutDir)
echo Configuration: $(ConfigurationName)
echo ProjectDir: $(ProjectDir)
echo AssemblyName: $(AssemblyName)
echo TargetDir: $(TargetDir)
echo ------------ Parametri compilazione ------------
preBuild.bat $(SolutionDir)EgwCApp.ExcImport\EgwCApp.ExcImport.csproj $(SolutionDir)EgwCApp.ExcImport\bin\Release\net6.0\publish\win-x64\ $(ProjectDir)Utils
@@ -1,42 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AssemblyName>$(MSBuildProjectName)</AssemblyName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>embedded</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>embedded</DebugType>
</PropertyGroup>
<ItemGroup>
<Folder Include="Tools\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
<ProjectReference Include="..\EgwCApp.ExcImport\EgwCApp.ExcImport.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="Tools\ExcImport.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Target Name="PreBuild" BeforeTargets="PreBuildEvent">
<Exec Command="preBuild.bat $(SolutionDir)EgwCApp.ExcImport\bin\Release\net6.0\win-x64\publish\ $(ProjectDir)Tools" />
</Target>
</Project>
-114
View File
@@ -1,114 +0,0 @@
using EgwCApp.Core;
using Newtonsoft.Json;
using System.Diagnostics;
namespace EgwCApp.Testing
{
public class FileProcMan
{
#region Public Constructors
public FileProcMan(string toolDir, string exeFileName)
{
this.confFileName = "conf.json";
this.baseDir = toolDir;
this.exeName = exeFileName;
appPath = Path.Combine(baseDir, exeName);
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Processa il singolo file e riporta tempo esecuzione
/// </summary>
/// <returns></returns>
public TimeSpan doProcess(string fPath)
{
TimeSpan outVal = new TimeSpan();
Stopwatch sw = new Stopwatch();
// preparo file conf
createConfFile(fPath);
// avvio processing
Console.WriteLine("calling ext app with args:");
Console.WriteLine($"{appPath} {confFileName}");
Console.WriteLine();
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = appPath,
Arguments = $"{confFileName}",
WindowStyle = ProcessWindowStyle.Minimized,
//WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
//CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardInput = true,
};
sw.Start();
Process p = Process.Start(psi);
string q = "";
while (!p.HasExited)
{
q += p.StandardOutput.ReadToEnd();
}
sw.Stop();
outVal = sw.Elapsed;
return outVal;
}
#endregion Public Methods
#region Protected Fields
protected string appPath = "";
protected string baseDir = "";
protected string confFileName = "";
protected string exeName = "";
#endregion Protected Fields
#region Private Methods
private void createConfFile(string item)
{
Dictionary<string, int> importParams = new Dictionary<string, int>();
importParams.Add("Product", 3);
importParams.Add("Variety", 9);
importParams.Add("Supplier", 8);
importParams.Add("ExtDoc", 2);
importParams.Add("DateRif", 14);
importParams.Add("QtyTot", 22);
importParams.Add("NumPack", 21);
importParams.Add("NumPed", 17);
importParams.Add("PackPed", 18);
importParams.Add("PesoPack", 20);
// calcolo nome file conf specifico
string outFileName = Path.GetFileName(item).Replace("xlsx", "json");
confFileName = $"conf_{outFileName}";
// calcolo outFIleName
var newConf = new ConfigFile()
{
ArchiveDir = @"C:\temp\import\archive\",
ConvertDir = @"C:\temp\import\convert\",
Type = ImportType.Excel,
FileInPath = item,
FileOutPath = outFileName,
Return = ReturnMode.File,
ProcessParamInt = importParams,
TargetName = "DB Loco"
};
// serializzo e salvo!
var rawData = JsonConvert.SerializeObject(newConf, Formatting.Indented);
File.WriteAllText(confFileName, rawData);
}
#endregion Private Methods
}
}
-65
View File
@@ -1,65 +0,0 @@
// See https://aka.ms/new-console-template for more information
using EgwCApp.Core;
using System.Diagnostics;
using Newtonsoft.Json;
using EgwCApp.Testing;
Dictionary<string, TimeSpan> statsColl = new Dictionary<string, TimeSpan>();
Stopwatch sw = new Stopwatch();
string separator = "--------------------------------------";
Console.WriteLine(separator);
Console.WriteLine("Console Test Application");
Console.WriteLine(separator);
Console.WriteLine();
// creo il file di configurazione...
string fileName = "conf.json";
ConfigFile newConf = new ConfigFile();
string rawData = "";
// test CSV
//newConf = new ConfigFile()
//{
// Type = ImportType.CSV,
// FileInPath = @"C:\Temp\test.log",
// Return = ReturnMode.Console
//};
// svuoto eventuali conf vecchi
var listaConf = Directory.GetFiles(Directory.GetCurrentDirectory(), "conf_*.json");
if (listaConf != null && listaConf.Count() > 0)
{
foreach (var file2del in listaConf)
{
File.Delete(file2del);
}
}
// cerco file xlsx e ciclo...
var listaFiles = Directory.GetFiles(@"C:\temp\import\", "*.xlsx");
if (listaFiles != null && listaFiles.Count() > 0)
{
FileProcMan fpm = new FileProcMan("Tools", "ExcImport.exe");
foreach (var item in listaFiles)
{
TimeSpan timeElaps = fpm.doProcess(item);
statsColl.Add($"Ext prog executed for {item}", timeElaps);
}
}
Console.WriteLine(separator);
Console.WriteLine("press enter to proceed...");
Console.ReadLine();
foreach (var item in statsColl)
{
Console.WriteLine($"{item.Key} {item.Value.TotalMilliseconds} ms");
}
//Console.WriteLine($"Display executed in {timeElaps.TotalMilliseconds} ms");
Console.ReadLine();
Binary file not shown.
@@ -1,23 +0,0 @@
{
"ArchiveDir": "",
"ConvertDir": "C:\\temp\\Taglierina\\convert",
"FileInPath": "C:\\temp\\Taglierina\\FileTaglierina.xlsx",
"FileOutPath": "FileTaglierina.json",
"IdxODL": 0,
"ProcessParamInt": {
"Codice": 0,
"Serie": 1,
"LungPezzo": 4,
"QuotaUscita": 5,
"LungBarra": 6,
"Altezza": 7
},
"ProcessParamStr": {},
"RedisDB": 10,
"RedisOut": "IOB-WIN:Conf:ParamsUSTD",
"RedisTTL": 36000,
"Return": "Redis",
"ReturnDataType": "ParamTaglioUstd",
"TargetName": "Ricette",
"Type": "Excel"
}
-6
View File
@@ -1,6 +0,0 @@
@echo off
REM recupero versione compilata
ROBOCOPY %1 %2 *.exe /MIR
echo Eseguito restore CApp!
-37
View File
@@ -1,37 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.2.32516.85
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.Core", "EgwCApp.Core\EgwCApp.Core.csproj", "{DF02D478-2309-48B8-BF0D-90B02327AF02}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.XmlProc", "EgwCApp.XmlProc\EgwCApp.XmlProc.csproj", "{64BC5889-BE30-489A-B78F-8B3EE08819CB}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EgwCApp.XmlTesting", "EgwCApp.XmlTesting\EgwCApp.XmlTesting.csproj", "{52D72303-ACAB-4289-8856-0F56A50474FC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Release|Any CPU.ActiveCfg = Release|Any CPU
{DF02D478-2309-48B8-BF0D-90B02327AF02}.Release|Any CPU.Build.0 = Release|Any CPU
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Debug|Any CPU.Build.0 = Debug|Any CPU
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Release|Any CPU.ActiveCfg = Release|Any CPU
{64BC5889-BE30-489A-B78F-8B3EE08819CB}.Release|Any CPU.Build.0 = Release|Any CPU
{52D72303-ACAB-4289-8856-0F56A50474FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{52D72303-ACAB-4289-8856-0F56A50474FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{52D72303-ACAB-4289-8856-0F56A50474FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{52D72303-ACAB-4289-8856-0F56A50474FC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {2AF3181F-288A-47D5-8087-2AB660476D85}
EndGlobalSection
EndGlobal
@@ -1,20 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="testConf.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
-378
View File
@@ -1,378 +0,0 @@
using EgwCApp.Core;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static EgwCApp.Core.WharehouseData;
namespace EgwCApp.XmlProc
{
public class ImportProc
{
#region Public Constructors
/// <summary>
/// Init oggetto per import
/// </summary>
/// <param name="confFileName"></param>
public ImportProc(string confFileName)
{
if (!string.IsNullOrEmpty(confFileName))
{
fileConfName = confFileName;
}
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Decodifica configurazione
/// </summary>
/// <returns></returns>
public bool decodeConfig()
{
bool answ = false;
if (!string.IsNullOrEmpty(fileConfName))
{
// deserializzo config
if (!File.Exists(fileConfName))
{
Console.WriteLine($"Error: ConfigFile not found | {fileConfName}");
}
else
{
string rawData = File.ReadAllText(fileConfName);
// se ho contenuto procedo
if (string.IsNullOrEmpty(rawData))
{
Console.WriteLine($"Error: ConfigFile empty! | {fileConfName}");
}
else
{
// deserializzo
taskConfig = JsonConvert.DeserializeObject<ConfigFile>(rawData);
answ = taskConfig != null;
}
}
}
return answ;
}
/// <summary>
/// Esegue import (se possibile)
/// </summary>
/// <returns></returns>
public bool doProcess()
{
bool answ = false;
if (taskConfig != null)
{
// verifico esista il file...
if (string.IsNullOrEmpty(taskConfig.FileInPath) && File.Exists(taskConfig.FileInPath))
{
// manca file ingresso!!! esco!
}
else
{
// verifico il tipo di process necessario...
switch (taskConfig.Type)
{
case ImportType.CSV:
fileReturnData = File.ReadAllText(taskConfig.FileInPath);
answ = true;
break;
case ImportType.Excel:
fileReturnData = processExcelImport(taskConfig.FileInPath);
answ = true;
break;
case ImportType.ND:
default:
break;
}
}
}
return answ;
}
/// <summary>
/// Esecuzione ritorno informazioni secondo configurazione...
/// </summary>
/// <returns></returns>
public bool doReturn()
{
bool answ = false;
if (taskConfig != null)
{
// verifico il tipo di return necessario...
switch (taskConfig.Return)
{
case ReturnMode.Console:
Console.WriteLine(fileReturnData);
answ = true;
break;
case ReturnMode.Redis:
break;
case ReturnMode.File:
// verifico path ci sia... sennò creo
string outPath = string.IsNullOrEmpty(taskConfig.FileOutPath) ? "FileOut.txt" : taskConfig.FileOutPath;
// verifico se vadano salvati in una folder differente...
if (!string.IsNullOrEmpty(taskConfig.ConvertDir))
{
if (!Directory.Exists(taskConfig.ConvertDir))
{
Directory.CreateDirectory(taskConfig.ConvertDir);
}
outPath = Path.Combine(taskConfig.ConvertDir, Path.GetFileName(outPath));
}
// salvo il file!
File.WriteAllText(outPath, fileReturnData);
answ = true;
break;
case ReturnMode.ND:
default:
break;
}
// se fatto eventualmente archivio
if (answ)
{
if (!string.IsNullOrEmpty(taskConfig.ArchiveDir))
{
// verifico cartella archivio
if (!Directory.Exists(taskConfig.ArchiveDir))
{
Directory.CreateDirectory(taskConfig.ArchiveDir);
}
// sposto file
string fName = Path.GetFileName(taskConfig.FileInPath);
File.Move(taskConfig.FileInPath, Path.Combine(taskConfig.ArchiveDir, fName), true);
}
}
}
return answ;
}
#endregion Public Methods
#region Protected Properties
/// <summary>
/// Nome del file config da processare
/// </summary>
protected string fileConfName { get; set; } = "";
/// <summary>
/// Contenuto del file da restituire come return data (serializzato)
/// </summary>
protected string fileReturnData { get; set; } = "";
/// <summary>
/// Configurazione del task da eseguire
/// </summary>
protected ConfigFile? taskConfig { get; set; } = new ConfigFile();
#endregion Protected Properties
#region Protected Methods
/// <summary>
/// Estrae da una riga l'i-esimo elemento
/// </summary>
/// <param name="riga"></param>
/// <param name="col"></param>
/// <returns></returns>
protected string getCellVal(System.Data.DataRow? riga, int col)
{
string answ = "";
if (riga != null)
{
try
{
answ = $"{riga.ItemArray[col]}".Trim();
}
catch
{ }
}
return answ;
}
/// <summary>
/// Cleanup stringa x impiego tipo ident da char dubbi
/// </summary>
/// <param name="origData"></param>
/// <returns></returns>
protected string strFixId(string origData)
{
return origData.Replace(".", "").Replace(" ", "_");
}
#endregion Protected Methods
#region Private Methods
/// <summary>
/// Importa un file excel e restituisce una
/// </summary>
/// <param name="fileItem"></param>
/// <returns></returns>
private string processExcelImport(string fileItem)
{
string outVal = "";
int numErr = 0;
// test procedura di import files excel x Giacovelli...
var currExcel = new ExcelMan(fileItem);
// creo lista dati in formato RegGiacenze...
Dictionary<string, BatchRec> listaGiac = new Dictionary<string, BatchRec>();
var dtSet = currExcel.getDataSet();
if (dtSet != null && dtSet.Tables != null && dtSet.Tables.Count > 0)
{
string nomeFile = Path.GetFileName(fileItem);
nomeFile = nomeFile.Substring(0, nomeFile.LastIndexOf("."));
var elSheet = dtSet.Tables;
int idxTab = 0;
// cerco lo sheet corretto se > 1
if (dtSet.Tables.Count > 1)
{
bool found = false;
for (int i = 0; i < dtSet.Tables.Count; i++)
{
if (nomeFile.Contains(dtSet.Tables[i].TableName))
{
idxTab = i;
found = true;
break;
}
// controllo parametro opzionale...
if (!found && taskConfig != null && !string.IsNullOrEmpty(taskConfig.TargetName))
{
if (dtSet.Tables[i].TableName == taskConfig.TargetName)
{
idxTab = i;
break;
}
}
}
}
var tabella = dtSet.Tables[idxTab];
int numRighe = tabella.Rows.Count;
int idxODL = taskConfig != null ? taskConfig.IdxODL : 0;
for (int i = 0; i < numRighe; i++)
{
if (taskConfig != null && taskConfig.ProcessParamInt != null && taskConfig.ProcessParamInt.Count > 5)
{
if (numErr < numRighe / 5)
{
try
{
// variabili di appoggio...
DateTime dtRif = DateTime.Today;
double qtyTot = 0;
int numPack = 0;
var riga = tabella.Rows[i];
if (riga != null)
{
string ddt = getCellVal(riga, taskConfig.ProcessParamInt["ExtDoc"]);
string sDate = getCellVal(riga, taskConfig.ProcessParamInt["DateRif"]);
string prod = getCellVal(riga, taskConfig.ProcessParamInt["Product"]);
// verifiche x import: header, data e DDT (vuoti o "-") --> SKIP!
bool checkHeaderKo = (ddt == "DDT" || prod == "PRODOTTO");
bool checkEmptyDdt = (string.IsNullOrEmpty(ddt) || ddt == "-");
bool checkEmptyDate = (string.IsNullOrEmpty(sDate) || sDate == "-");
if (checkHeaderKo)
{
//lgTrace($"SKIP header");
}
else if (checkEmptyDdt || checkEmptyDate)
{
//lgTrace($"SKIP linea vuota | i: {i} | ddt: {ddt} | date: {sDate} | prod: {prod}");
}
else
{
string variety = getCellVal(riga, taskConfig.ProcessParamInt["Variety"]);
string suppl = getCellVal(riga, taskConfig.ProcessParamInt["Supplier"]);
string sQty = getCellVal(riga, taskConfig.ProcessParamInt["QtyTot"]);
string sNum = getCellVal(riga, taskConfig.ProcessParamInt["NumPack"]);
string numPed = getCellVal(riga, taskConfig.ProcessParamInt["NumPed"]);
string packPed = getCellVal(riga, taskConfig.ProcessParamInt["PackPed"]);
string pesoPack = getCellVal(riga, taskConfig.ProcessParamInt["PesoPack"]);
DateTime.TryParse(sDate, out dtRif);
int.TryParse(sNum, out numPack);
double.TryParse(sQty, out qtyTot);
string identRG = ddt.Length > 2 ? $"{strFixId(ddt)}.{strFixId(prod)}.{strFixId(variety)}.{strFixId(suppl)}" : $"{dtRif:yyyyMMdd}.{strFixId(prod)}.{strFixId(variety)}.{strFixId(suppl)}";
string notes = $"{numPed}x{packPed}x{pesoPack}";
// verifico di avere dati per proseguire...
bool checkIdent = !string.IsNullOrEmpty($"{prod}{variety}{suppl}");
if (checkIdent)
{
BatchRec newRow = new BatchRec()
{
IdxODL = idxODL,
IdentRG = identRG,
DateRif = dtRif,
ExtDoc = ddt,
Product = prod,
Variety = variety,
Supplier = suppl,
NumPack = numPack,
QtyTot = qtyTot,
Notes = notes
};
// verifico: se manca aggiungo
if (!listaGiac.ContainsKey(identRG))
{
listaGiac.Add(identRG, newRow);
}
else
{
// altrimenti aggiorno giacenza con valori numerici
listaGiac[identRG].NumPack += newRow.NumPack;
listaGiac[identRG].QtyTot += newRow.QtyTot;
}
}
else
{
//lgError($"Errore verifica identità riga | prod: {prod} | variety: {variety} | suppl: {suppl}");
numErr++;
}
}
}
}
catch (Exception exc)
{
numErr++;
}
}
}
}
}
if (listaGiac.Count > 0)
{
// converto in una nuova lista...
int rCounter = 1;
Dictionary<int, BatchRec> list2Send = new Dictionary<int, BatchRec>();
foreach (var item in listaGiac)
{
list2Send.Add(rCounter, item.Value);
rCounter++;
}
// serializzo e restituisco file JSON...
var serVal = JsonConvert.SerializeObject(list2Send);
if (serVal != null && !string.IsNullOrEmpty(serVal))
{
outVal = serVal;
}
}
return outVal;
}
#endregion Private Methods
}
}
-62
View File
@@ -1,62 +0,0 @@
// See https://aka.ms/new-console-template for more information
// ExcImport: Excel Importer, per IobWin in logica lettura Giacenze
// parametri:
// $0: Path ConfigFile file per esecuzione
using EgwCApp.XmlProc;
string separator = "--------------------------------------";
string fileName = "";
// controllo args, se mancassero o incompleti mostro help
if (args.Length < 1)
{
Console.WriteLine(separator);
Console.WriteLine("- ExcelFileImporter - Core 6.0");
Console.WriteLine("- v.0.0.0.0 | @Egalware 2022+");
Console.WriteLine(separator);
Console.WriteLine();
Console.WriteLine("Mancano parametri per esecuzione:");
Console.WriteLine("");
Console.WriteLine("$0: ConfigFile da impiegare");
// provo a processare testConf...
fileName = "testConf.json";
}
else
{
fileName = args[0];
}
// ora processo se ho filename valido...
if (!string.IsNullOrEmpty(fileName))
{
// verifico se ho file...
if (File.Exists(fileName))
{
ImportProc importObj = new ImportProc(fileName);
bool stepOk = importObj.decodeConfig();
if (stepOk)
{
stepOk = importObj.doProcess();
if (!stepOk)
{
Console.WriteLine("Errore in processing file");
}
else
{
importObj.doReturn();
}
}
else
{
Console.WriteLine("Errore in processing config file");
}
}
else
{
Console.WriteLine("Errore file non trovato!");
}
}
@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project>
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net6.0\win-x64\publish\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<_TargetId>Folder</_TargetId>
<TargetFramework>net6.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>true</PublishSingleFile>
<PublishReadyToRun>false</PublishReadyToRun>
</PropertyGroup>
</Project>
-4
View File
@@ -1,4 +0,0 @@
@echo off
REM compilo in publish
dotnet publish EgwCApp.ExcImport.csproj -p:PublishSingleFile=true -r win-x64 -c Release --self-contained false
-25
View File
@@ -1,25 +0,0 @@
{
"ArchiveDir": "C:\\temp\\import\\archive",
"ConvertDir": "C:\\temp\\import\\convert",
"FileInPath": "C:\\temp\\import\\01.12.xlsx",
"FileOutPath": "01.12.json",
"IdxODL": 987654321,
"ProcessParamInt": {
"Product": 3,
"Variety": 9,
"Supplier": 8,
"ExtDoc": 2,
"DateRif": 14,
"QtyTot": 22,
"NumPack": 21,
"NumPed": 17,
"PackPed": 18,
"PesoPack": 20
},
"ProcessParamStr": {},
"RedisDB": 0,
"RedisOut": "",
"Return": "File",
"TargetName": "DB Loco",
"Type": "Excel"
}
-6
View File
@@ -1,6 +0,0 @@
{
"FilePath": "C:\\Temp\\test.log",
"ProcessParams": {},
"Return": "Console",
"Type": "Excel"
}
@@ -1,25 +0,0 @@
{
"ArchiveDir": "C:\\temp\\import\\archive",
"ConvertDir": "C:\\temp\\import\\convert",
"FileInPath": "C:\\temp\\import\\01.12.xlsx",
"FileOutPath": "01.12.json",
"IdxODL": 987654321,
"ProcessParamInt": {
"Product": 3,
"Variety": 9,
"Supplier": 8,
"ExtDoc": 2,
"DateRif": 14,
"QtyTot": 22,
"NumPack": 21,
"NumPed": 17,
"PackPed": 18,
"PesoPack": 20
},
"ProcessParamStr": {},
"RedisDB": 0,
"RedisOut": "",
"Return": "File",
"TargetName": "DB Loco",
"Type": "Excel"
}
-9
View File
@@ -1,9 +0,0 @@
echo ------------ Parametri compilazione ------------
echo OutDir: $(OutDir)
echo Configuration: $(ConfigurationName)
echo ProjectDir: $(ProjectDir)
echo AssemblyName: $(AssemblyName)
echo TargetDir: $(TargetDir)
echo ------------ Parametri compilazione ------------
preBuild.bat $(SolutionDir)EgwCApp.ExcImport\EgwCApp.ExcImport.csproj $(SolutionDir)EgwCApp.ExcImport\bin\Release\net6.0\publish\win-x64\ $(ProjectDir)Utils
@@ -1,21 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\EgwCApp.Core\EgwCApp.Core.csproj" />
<ProjectReference Include="..\EgwCApp.XmlProc\EgwCApp.XmlProc.csproj" />
</ItemGroup>
<ItemGroup>
<None Update="Tools\ExcImport.exe">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
</Project>
-120
View File
@@ -1,120 +0,0 @@
using System;
using System.Collections.Generic;
using EgwCApp.Core;
using Newtonsoft.Json;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwCApp.XmlTesting
{
public class FileProcMan
{
#region Public Constructors
public FileProcMan(string toolDir, string exeFileName)
{
this.confFileName = "conf.json";
this.baseDir = toolDir;
this.exeName = exeFileName;
appPath = $"./{baseDir}/{exeName}";
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Processa il singolo file e riporta tempo esecuzione
/// </summary>
/// <returns></returns>
public TimeSpan doProcess(string fPath)
{
TimeSpan outVal = new TimeSpan();
Stopwatch sw = new Stopwatch();
// preparo file conf
createConfFile(fPath);
// avvio processing
Console.WriteLine("calling ext app with args:");
Console.WriteLine($"{appPath} {confFileName}");
Console.WriteLine();
ProcessStartInfo psi = new ProcessStartInfo
{
FileName = appPath,
Arguments = $"{confFileName}",
WindowStyle = ProcessWindowStyle.Minimized,
//WindowStyle = ProcessWindowStyle.Hidden,
UseShellExecute = false,
//CreateNoWindow = true,
RedirectStandardOutput = true,
RedirectStandardInput = true,
};
sw.Start();
Process p = Process.Start(psi);
string q = "";
while (!p.HasExited)
{
q += p.StandardOutput.ReadToEnd();
}
sw.Stop();
outVal = sw.Elapsed;
return outVal;
}
#endregion Public Methods
#region Protected Fields
protected string appPath = "";
protected string baseDir = "";
protected string confFileName = "";
protected string exeName = "";
#endregion Protected Fields
#region Private Methods
private void createConfFile(string item)
{
Dictionary<string, int> importParams = new Dictionary<string, int>();
importParams.Add("Product", 3);
importParams.Add("Variety", 9);
importParams.Add("Supplier", 8);
importParams.Add("ExtDoc", 2);
importParams.Add("DateRif", 14);
importParams.Add("QtyTot", 22);
importParams.Add("NumPack", 21);
importParams.Add("NumPed", 17);
importParams.Add("PackPed", 18);
importParams.Add("PesoPack", 20);
// calcolo nome file conf specifico
string outFileName = Path.GetFileName(item).Replace("xlsx", "json");
confFileName = $"conf_{outFileName}";
// calcolo outFIleName
var newConf = new ConfigFile()
{
ArchiveDir = @"C:\temp\import\archive\",
ConvertDir = @"C:\temp\import\convert\",
Type = ImportType.Excel,
FileInPath = item,
FileOutPath = outFileName,
Return = ReturnMode.File,
ProcessParamInt = importParams,
TargetName = "DB Loco"
};
// serializzo e salvo!
var rawData = JsonConvert.SerializeObject(newConf, Formatting.Indented);
File.WriteAllText(confFileName, rawData);
}
#endregion Private Methods
}
}
-65
View File
@@ -1,65 +0,0 @@
// See https://aka.ms/new-console-template for more information
using EgwCApp.Core;
using System.Diagnostics;
using Newtonsoft.Json;
using EgwCApp.XmlTesting;
Dictionary<string, TimeSpan> statsColl = new Dictionary<string, TimeSpan>();
Stopwatch sw = new Stopwatch();
string separator = "--------------------------------------";
Console.WriteLine(separator);
Console.WriteLine("Console Test Application");
Console.WriteLine(separator);
Console.WriteLine();
// creo il file di configurazione...
string fileName = "conf.json";
ConfigFile newConf = new ConfigFile();
string rawData = "";
// test CSV
//newConf = new ConfigFile()
//{
// Type = ImportType.CSV,
// FileInPath = @"C:\Temp\test.log",
// Return = ReturnMode.Console
//};
// svuoto eventuali conf vecchi
var listaConf = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.json");
if (listaConf != null && listaConf.Count() > 0)
{
foreach (var file2del in listaConf)
{
File.Delete(file2del);
}
}
// cerco file xlsx e ciclo...
var listaFiles = Directory.GetFiles(@"C:\temp\import\", "*.xlsx");
if (listaFiles != null && listaFiles.Count() > 0)
{
FileProcMan fpm = new FileProcMan("Tools", "ExcImport.exe");
foreach (var item in listaFiles)
{
TimeSpan timeElaps = fpm.doProcess(item);
statsColl.Add($"Ext prog executed for {item}", timeElaps);
}
}
Console.WriteLine(separator);
Console.WriteLine("press enter to proceed...");
Console.ReadLine();
foreach (var item in statsColl)
{
Console.WriteLine($"{item.Key} {item.Value.TotalMilliseconds} ms");
}
//Console.WriteLine($"Display executed in {timeElaps.TotalMilliseconds} ms");
Console.ReadLine();
Binary file not shown.
-6
View File
@@ -1,6 +0,0 @@
@echo off
REM recupero versione compilata
ROBOCOPY %1 %2 *.exe /MIR
echo Eseguito restore CApp!
+42
View File
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
<add name="ExportIcoel" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
<add name="TrackerLotti" connectionString="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
<add name="SyncState" connectionString="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
@@ -0,0 +1,132 @@
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
/*------------------------------------------------
* Aggiunto fix come da link seguente:
*
* https://stackoverflow.com/questions/14033193/entity-framework-provider-type-could-not-be-loaded
*
* I solved this by adding an using stament on top of my DBContext class, like so:
* using SqlProviderServices= System.Data.Entity.SqlServer.SqlProviderServices;
*
*/
namespace EgwProxy.Icoel.DataLayer.Controllers
{
/// <summary>
/// Controller accesso dati DB vari x ICOEL
/// </summary>
public class DbController : IDisposable
{
#if false
private static EntrataDbContext dbEntrataCtx;
private static ExportDbContext dbExportCtx;
private static TrackerDbContext dbTrackerCtx;
#endif
#region Public Constructors
/// <summary>
/// Avvio dell'oggetto gestione DB con stringa di connessione specifica
/// </summary>
/// <param name="connSyncState">Connessione DB locale di SYNC</param>
public DbController(string connSyncState)
{
dbSyncStateCtx = new SyncStateDbContext(connSyncState);
Log.Info("Avviata classe dbSyncStateCtx");
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Recupera la tab di CurrData corrente
/// </summary>
/// <returns></returns>
public List<DatabaseModels.CurrDataModel> CurrDataGetAll()
{
List<DatabaseModels.CurrDataModel> dbResult = new List<DatabaseModels.CurrDataModel>();
dbResult = dbSyncStateCtx
.DbSetCurrData
.ToList();
return dbResult;
}
/// <summary>
/// Dispose classe
/// </summary>
public void Dispose()
{
// Clear database context
#if false
dbEntrataCtx.Dispose();
dbExportCtx.Dispose();
dbTrackerCtx.Dispose();
#endif
dbSyncStateCtx.Dispose();
}
/// <summary>
/// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi
/// restitusice in output la tab di SyncState x verificare lo stato
/// </summary>
/// <returns></returns>
public List<DatabaseModels.SyncStateModel> SyncStateDoExportAll()
{
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
dbResult = dbSyncStateCtx
.Database
.SqlQuery<DatabaseModels.SyncStateModel>("EXEC stp_ExportAll")
.ToList();
return dbResult;
}
/// <summary>
/// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi
/// restitusice in output la tab di SyncState x verificare lo stato
/// </summary>
/// <returns></returns>
public List<DatabaseModels.SyncStateModel> SyncStateDoImportAll()
{
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
dbResult = dbSyncStateCtx
.Database
.SqlQuery<DatabaseModels.SyncStateModel>("EXEC stp_ImportAll")
.ToList();
return dbResult;
}
/// <summary>
/// recupera la tab di SyncState corrente
/// </summary>
/// <returns></returns>
public List<DatabaseModels.SyncStateModel> SyncStateGetAll()
{
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
dbResult = dbSyncStateCtx
.DbSetSyncState
.ToList();
return dbResult;
}
#endregion Public Methods
#region Private Fields
private static SyncStateDbContext dbSyncStateCtx;
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
}
}
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("CurrData")]
public partial class CurrDataModel
{
[Key]
[StringLength(50)]
public string Topic { get; set; }
public decimal CurrVal { get; set; } = 0;
}
}
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("DettagliConferimentoMES")]
public partial class DettConferimentoModel
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long PackId { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FillingId { get; set; }
[Key]
[Column(Order = 2)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int FilligRow { get; set; }
[Key]
[Column(Order = 3)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long ScaricoId { get; set; }
public string CODBARRE { get; set; }
public string CODICE_FORNITORE { get; set; }
public string NOME_FORNITORE { get; set; }
public string CODICE_PRODOTTO { get; set; }
public string DESCRIZIONE_PRODOTTO { get; set; }
public string CODICE_PRODOTTO_GREZZO { get; set; }
public string DESCRIZIONE_PRODOTTO_GREZZO { get; set; }
public string SIGLA_LOTTO { get; set; }
public string NUMERO_LOTTO { get; set; }
public string DATA_ENTRATA { get; set; }
public string QUANTITA_ENTRATA { get; set; }
}
}
@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("DettagliConfezioniMES")]
public partial class DettConfezioniModel
{
[Key]
[Column("Pack Id", Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long Pack_Id { get; set; }
[StringLength(50)]
public string EAN { get; set; }
[Key]
[Column("Batch Id", Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long Batch_Id { get; set; }
public string BatchName { get; set; }
[Key]
[Column(Order = 2)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Lane1SizerBatchId { get; set; }
[Key]
[Column(Order = 3)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Lane2SizerBatchId { get; set; }
[Key]
[Column("End Time", Order = 4, TypeName = "datetime2")]
public DateTime End_Time { get; set; }
[Key]
[Column(Order = 5)]
public Guid SizerProductGUID { get; set; }
[Column("Product Name")]
public string Product_Name { get; set; }
[Key]
[Column(Order = 6)]
public Guid SizerPackGUID { get; set; }
[Column("Pack Name")]
[StringLength(50)]
public string Pack_Name { get; set; }
[Key]
[Column(Order = 7)]
public decimal PesoDecigram { get; set; }
[StringLength(10)]
public string FillingMode { get; set; }
[Key]
[Column(Order = 8)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Quantity { get; set; }
}
}
@@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("ENTRATACILIEGIE")]
public partial class EntrataModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long ID_CHIAVE { get; set; }
[StringLength(20)]
public string CODBARRE { get; set; }
public double? CODICE_FORNITORE { get; set; }
[StringLength(5)]
public string CODICE_LUOGO_PRODUZIONE { get; set; }
[StringLength(50)]
public string NOME_FORNITORE { get; set; }
[StringLength(50)]
public string INDIRIZZO_FORNITORE { get; set; }
[StringLength(50)]
public string COMUNE_FORNITORE { get; set; }
[StringLength(50)]
public string NOME_LUOGO_PRODUZIONE { get; set; }
[StringLength(50)]
public string INDIRIZZO_LUOGO_PRODUZIONE { get; set; }
[StringLength(50)]
public string COMUNE_LUOGO_PRODUZIONE { get; set; }
[StringLength(10)]
public string CODICE_PRODOTTO { get; set; }
[StringLength(50)]
public string DESCRIZIONE_PRODOTTO { get; set; }
[StringLength(10)]
public string CODICE_PRODOTTO_GREZZO { get; set; }
[StringLength(50)]
public string DESCRIZIONE_PRODOTTO_GREZZO { get; set; }
[StringLength(50)]
public string SIGLA_LOTTO { get; set; }
[StringLength(10)]
public string NUMERO_LOTTO { get; set; }
[Column(TypeName = "datetime2")]
public DateTime? DATA_ENTRATA { get; set; }
public double? QUANTITA_ENTRATA { get; set; }
}
}
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("ProductsTotals")]
public partial class ProductsTotalsModel
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int SizerBatchId { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Index { get; set; }
public string Nome { get; set; }
public string Qualities { get; set; }
public string Grado { get; set; }
public string Calibro { get; set; }
public int NumeroFrutti { get; set; }
public string Decigrammi { get; set; }
}
}
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("SyncState")]
public partial class SyncStateModel
{
[Key]
[StringLength(50)]
public string TableName { get; set; }
public long LastIdx { get; set; }
public long LastIdxIn { get; set; }
public long LastIdxOut { get; set; }
public long NumRec { get; set; }
public long NumRecIn { get; set; }
public long NumRecOut { get; set; }
public DateTime LastUpdate { get; set; } = DateTime.Today;
}
}
+71
View File
@@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Icoel.DataLayer
{
public static class DbConfig
{
#region Public Fields
public static string DATABASE_NAME = "EgtBwDb";
public static int DATABASE_PROCESS_TIMEOUT = 5;
public static string DATABASE_PWD = "viacremasca";
// Database config
public static string DATABASE_SERV = "127.0.0.1";
public static string DATABASE_USER = "EgtUser";
#endregion Public Fields
#region Public Properties
/// <summary>
/// DB Connection string per azioni amministrative
/// </summary>
public static string ADMIN_CONNECTION_STRING { get; set; } = "";
/// <summary>
/// DB Connection string
/// </summary>
public static string CONNECTION_STRING { get; set; } = "";
#endregion Public Properties
#region Public Methods
/// <summary>
/// Metodo di init standard per DB in rete con Master_Key
/// </summary>
/// <param name="server">Indirizzo del server (tipicamente indirizzo di rete)</param>
/// <param name="nKey">Numero chiave</param>
/// <param name="sKey">Codice/pwd associato a chaive</param>
/// <param name="masterKey">Numero di chiave master con cui è creato il DB</param>
public static void InitDb(string server, string nKey, string sKey, string masterKey = "")
{
// se nulla metto amster come nKey...
masterKey = string.IsNullOrEmpty(masterKey) ? nKey : masterKey;
DATABASE_SERV = server;
DATABASE_NAME = $"EgtBwDb_{masterKey}";
DATABASE_USER = $"user_{nKey}";
DATABASE_PWD = $"pwd_{sKey}";
CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None";
// stringa admin con utente root egalware...
ADMIN_CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database=mysql;uid=root;pwd=Egalware_24068!;sslmode=None;CHARSET=utf8";
}
#if false
public static bool CheckUser(string nKey, string sKey, bool isNetwork)
{
// esecuzione script di install locale
return Controllers.DbController.man.checkCreateUser(DATABASE_USER, DATABASE_PWD, isNetwork);
}
#endif
#endregion Public Methods
}
}
@@ -0,0 +1,199 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E36544CB-D699-48D8-9F81-C2758E7C7D19}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>EgwProxy.Icoel.DataLayer</RootNamespace>
<AssemblyName>EgwProxy.Icoel.DataLayer</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Azure.Core, Version=1.6.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8, processorArchitecture=MSIL">
<HintPath>..\packages\Azure.Core.1.6.0\lib\net461\Azure.Core.dll</HintPath>
</Reference>
<Reference Include="Azure.Identity, Version=1.3.0.0, Culture=neutral, PublicKeyToken=92742159e12e44c8, processorArchitecture=MSIL">
<HintPath>..\packages\Azure.Identity.1.3.0\lib\netstandard2.0\Azure.Identity.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Bcl.AsyncInterfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Bcl.AsyncInterfaces.1.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Data.SqlClient, Version=4.1.0.0, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Data.SqlClient.4.1.0\lib\net461\Microsoft.Data.SqlClient.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Identity.Client, Version=4.22.0.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Identity.Client.4.22.0\lib\net461\Microsoft.Identity.Client.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Identity.Client.Extensions.Msal, Version=2.16.5.0, Culture=neutral, PublicKeyToken=0a613f4dd989e8ae, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Identity.Client.Extensions.Msal.2.16.5\lib\net45\Microsoft.Identity.Client.Extensions.Msal.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.JsonWebTokens, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.JsonWebTokens.6.8.0\lib\net461\Microsoft.IdentityModel.JsonWebTokens.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Logging, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Logging.6.8.0\lib\net461\Microsoft.IdentityModel.Logging.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Protocols, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.6.8.0\lib\net461\Microsoft.IdentityModel.Protocols.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Protocols.OpenIdConnect, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Protocols.OpenIdConnect.6.8.0\lib\net461\Microsoft.IdentityModel.Protocols.OpenIdConnect.dll</HintPath>
</Reference>
<Reference Include="Microsoft.IdentityModel.Tokens, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.IdentityModel.Tokens.6.8.0\lib\net461\Microsoft.IdentityModel.Tokens.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.7.9\lib\net45\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Configuration.ConfigurationManager, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Configuration.ConfigurationManager.5.0.0\lib\net461\System.Configuration.ConfigurationManager.dll</HintPath>
</Reference>
<Reference Include="System.Core" />
<Reference Include="System.Data.OracleClient" />
<Reference Include="System.Diagnostics.DiagnosticSource, Version=4.0.4.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Diagnostics.DiagnosticSource.4.6.0\lib\net46\System.Diagnostics.DiagnosticSource.dll</HintPath>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.IdentityModel" />
<Reference Include="System.IdentityModel.Tokens.Jwt, Version=6.8.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">
<HintPath>..\packages\System.IdentityModel.Tokens.Jwt.6.8.0\lib\net461\System.IdentityModel.Tokens.Jwt.dll</HintPath>
</Reference>
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.IO.Compression" />
<Reference Include="System.Memory, Version=4.0.1.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.4\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Net" />
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=4.0.5.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.4.6.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security" />
<Reference Include="System.Security.AccessControl, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.AccessControl.5.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Security.Cryptography.ProtectedData, Version=4.0.3.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.ProtectedData.4.5.0\lib\net461\System.Security.Cryptography.ProtectedData.dll</HintPath>
</Reference>
<Reference Include="System.Security.Permissions, Version=5.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Permissions.5.0.0\lib\net461\System.Security.Permissions.dll</HintPath>
</Reference>
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Text.Encodings.Web, Version=4.0.5.1, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Encodings.Web.4.7.2\lib\net461\System.Text.Encodings.Web.dll</HintPath>
</Reference>
<Reference Include="System.Text.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Text.Json.4.6.0\lib\net461\System.Text.Json.dll</HintPath>
</Reference>
<Reference Include="System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Threading.Tasks.Extensions.4.5.2\lib\netstandard2.0\System.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="System.Transactions" />
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Controllers\DbController.cs" />
<Compile Include="DatabaseModels\EntrataModel.cs" />
<Compile Include="DatabaseModels\DettConferimentoModel.cs" />
<Compile Include="DatabaseModels\DettConfezioniModel.cs" />
<Compile Include="DatabaseModels\CurrDataModel.cs" />
<Compile Include="EntrataDbContext.cs" />
<Compile Include="ExportDbContext.cs" />
<Compile Include="DatabaseModels\ProductsTotalsModel.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="DatabaseModels\SyncStateModel.cs" />
<Compile Include="SyncStateDbContext.cs" />
<Compile Include="TrackerDbContext.cs" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>Questo progetto fa riferimento a uno o più pacchetti NuGet che non sono presenti in questo computer. Usare lo strumento di ripristino dei pacchetti NuGet per scaricarli. Per altre informazioni, vedere http://go.microsoft.com/fwlink/?LinkID=322105. Il file mancante è {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.props'))" />
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
<Error Condition="!Exists('..\packages\Microsoft.Data.SqlClient.SNI.4.0.0\build\net46\Microsoft.Data.SqlClient.SNI.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Data.SqlClient.SNI.4.0.0\build\net46\Microsoft.Data.SqlClient.SNI.targets'))" />
</Target>
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<Import Project="..\packages\Microsoft.Data.SqlClient.SNI.4.0.0\build\net46\Microsoft.Data.SqlClient.SNI.targets" Condition="Exists('..\packages\Microsoft.Data.SqlClient.SNI.4.0.0\build\net46\Microsoft.Data.SqlClient.SNI.targets')" />
</Project>
@@ -0,0 +1,46 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using NLog;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
namespace EgwProxy.Icoel.DataLayer
{
/// <summary>
/// Classe per accesso dati accettazione merce Agrimatica (via ICOEL)
/// </summary>
public partial class EntrataDbContext : DbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Costruttore implicito
/// </summary>
public EntrataDbContext() : base("name=EntrataFrontiera")
{
Log.Info("Init 01 EntrataDbContext - DONE");
}
/// <summary>
/// Costruttore da connectionString
/// </summary>
/// <param name="connectionString"></param>
public EntrataDbContext(string connectionString) : base(connectionString)
{
Log.Info("Init 02 EntrataDbContext - DONE");
}
/// <summary>
/// DbSet record entrata merce
/// </summary>
public virtual DbSet<EntrataModel> DbSetEntrataMerce { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<EntrataModel>()
.Property(e => e.DATA_ENTRATA)
.HasPrecision(0);
}
}
}
@@ -0,0 +1,44 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using NLog;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
namespace EgwProxy.Icoel.DataLayer
{
/// <summary>
/// Classe per accesso dati Tacker ICOEL
/// </summary>
public partial class ExportDbContext : DbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Costruttore implicito
/// </summary>
public ExportDbContext() : base("name=ExportIcoel")
{
Log.Info("Init 01 ExportDbContext - DONE");
}
/// <summary>
/// Costruttore da connectionString
/// </summary>
/// <param name="connectionString"></param>
public ExportDbContext(string connectionString) : base(connectionString)
{
Log.Info("Init 02 ExportDbContext - DONE");
}
/// <summary>
/// DbSet dati prodotti
/// </summary>
public virtual DbSet<ProductsTotalsModel> DbSetProductsTotals { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
}
+87
View File
@@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Icoel.DataLayer
{
public class MainDbContext : DbContext
{
#region Private Fields
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Public Constructors
// Il contesto è stato configurato per utilizzare una stringa di connessione 'BBMModel' dal file di configurazione
// dell'applicazione (App.config o Web.config). Per impostazione predefinita, la stringa di connessione è destinata al
// database 'BBMModel' nell'istanza di LocalDb.
//
// Per destinarla a un database o un provider di database differente, modificare la stringa di connessione 'BBMModel'
// nel file di configurazione dell'applicazione.
[Obsolete("This constructor should never be used directly, and is only needed to generate entityframework stuff. Connection string can be adapted as pleased.")]
//public DatabaseContext() : base("BBMModel")
public MainDbContext() : base("Data Source=SQLSTEAM;Initial Catalog=SHERPA.BBM;User ID=sa;Password=keyhammer;integrated security=False;MultipleActiveResultSets=True;App=EntityFramework")
{
}
public MainDbContext(string connectionString) : base(connectionString)
{
Log.Info($"init MainDbContext - start");
try
{
Database.CreateIfNotExists();
Log.Error("CreateIfNotExists - DONE");
//Database.SetInitializer(new MigrateDatabaseToLatestVersion<StratonLocalizerDatabase, Migrations.Configuration>());
Database.SetInitializer<MainDbContext>(null);
Database.Initialize(false);
}
catch (Exception exc)
{
Log.Error($"Eccezione in fase init MainDbContext, connectionString: {connectionString}{Environment.NewLine}{exc}");
}
Log.Error("init MainDbContext - DONE");
}
#endregion Public Constructors
// Aggiungere DbSet per ogni tipo di entità che si desidera includere nel modello. Per ulteriori informazioni
// sulla configurazione e sull'utilizzo di un modello Code, vedere http://go.microsoft.com/fwlink/?LinkId=390109.
#region Public Properties
public virtual DbSet<DatabaseModels.BasketsModel> DbSetBaskets { get; set; }
public virtual DbSet<DatabaseModels.CompanyModel> DbSetCompanies { get; set; }
public virtual DbSet<DatabaseModels.FluxCountersModel> DbSetCounters { get; set; }
public virtual DbSet<DatabaseModels.CustomersModel> DbSetCustomers { get; set; }
public virtual DbSet<DatabaseModels.DocsModel> DbSetDocs { get; set; }
public virtual DbSet<DatabaseModels.Fatt2DocModel> DbSetFatt2Doc { get; set; }
public virtual DbSet<DatabaseModels.ItemsModel> DbSetItems { get; set; }
public virtual DbSet<DatabaseModels.NegotiationsModel> DbSetNegotiations { get; set; }
public virtual DbSet<DatabaseModels.ResourcesModel> DbSetResources { get; set; }
#endregion Public Properties
#region Protected Methods
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Precision attribute for decimals
Precision.ConfigureModelBuilder(modelBuilder);
}
#endregion Protected Methods
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
[assembly: AssemblyTitle("EgwProxy.Icoel.DataLayer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Icoel.DataLayer")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
// COM, impostare su true l'attributo ComVisible per tale tipo.
[assembly: ComVisible(false)]
// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
[assembly: Guid("e36544cb-d699-48d8-9f81-c2758e7c7d19")]
// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
//
// Versione principale
// Versione secondaria
// Numero di build
// Revisione
//
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// usando l'asterisco '*' come illustrato di seguito:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,48 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using NLog;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
namespace EgwProxy.Icoel.DataLayer
{
/// <summary>
/// Classe per accesso dati SyncState del DB
/// </summary>
public partial class SyncStateDbContext : DbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Costruttore implicito
/// </summary>
public SyncStateDbContext() : base("name=SyncState")
{
Log.Info("Init 01 SyncStateDbContext - DONE");
}
/// <summary>
/// Costruttore da connectionString
/// </summary>
/// <param name="connectionString"></param>
public SyncStateDbContext(string connectionString) : base(connectionString)
{
Log.Info("Init 02 SyncStateDbContext - DONE");
}
/// <summary>
/// DbSet dei dati stato sync DB esterni <--> locale
/// </summary>
public virtual DbSet<SyncStateModel> DbSetSyncState { get; set; }
/// <summary>
/// DbSet CurrData
/// </summary>
public virtual DbSet<CurrDataModel> DbSetCurrData { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
}
@@ -0,0 +1,49 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using NLog;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
namespace EgwProxy.Icoel.DataLayer
{
/// <summary>
/// Classe per accesso dati Tacker ICOEL
/// </summary>
public partial class TrackerDbContext : DbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Costruttore implicito
/// </summary>
public TrackerDbContext() : base("name=TrackerLotti")
{
Log.Info("Init 01 TrackerDbContext - DONE");
}
/// <summary>
/// Costruttore da connectionString
/// </summary>
/// <param name="connectionString"></param>
public TrackerDbContext(string connectionString) : base(connectionString)
{
Log.Info("Init 02 TrackerDbContext - DONE");
}
/// <summary>
/// DbSet dai dati conferimento <--> pack di uscita
/// </summary>
public virtual DbSet<DettConferimentoModel> DbSetConferimento { get; set; }
/// <summary>
/// DbSet dai dati conferimento <--> confezioni
/// </summary>
public virtual DbSet<DettConfezioniModel> DbSetConfezioni { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
}
+36
View File
@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Azure.Core" version="1.6.0" targetFramework="net462" />
<package id="Azure.Identity" version="1.3.0" targetFramework="net462" />
<package id="EntityFramework" version="6.4.4" targetFramework="net462" />
<package id="Microsoft.Bcl.AsyncInterfaces" version="1.0.0" targetFramework="net462" />
<package id="Microsoft.Data.SqlClient" version="4.1.0" targetFramework="net462" />
<package id="Microsoft.Data.SqlClient.SNI" version="4.0.0" targetFramework="net462" />
<package id="Microsoft.Identity.Client" version="4.22.0" targetFramework="net462" />
<package id="Microsoft.Identity.Client.Extensions.Msal" version="2.16.5" targetFramework="net462" />
<package id="Microsoft.IdentityModel.JsonWebTokens" version="6.8.0" targetFramework="net462" />
<package id="Microsoft.IdentityModel.Logging" version="6.8.0" targetFramework="net462" />
<package id="Microsoft.IdentityModel.Protocols" version="6.8.0" targetFramework="net462" />
<package id="Microsoft.IdentityModel.Protocols.OpenIdConnect" version="6.8.0" targetFramework="net462" />
<package id="Microsoft.IdentityModel.Tokens" version="6.8.0" targetFramework="net462" />
<package id="NLog" version="4.7.9" targetFramework="net462" />
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.Configuration.ConfigurationManager" version="5.0.0" targetFramework="net462" />
<package id="System.Diagnostics.DiagnosticSource" version="4.6.0" targetFramework="net462" />
<package id="System.IdentityModel.Tokens.Jwt" version="6.8.0" targetFramework="net462" />
<package id="System.IO" version="4.3.0" targetFramework="net462" />
<package id="System.Memory" version="4.5.4" targetFramework="net462" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
<package id="System.Runtime.CompilerServices.Unsafe" version="4.6.0" targetFramework="net462" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
<package id="System.Security.AccessControl" version="5.0.0" targetFramework="net462" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net462" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net462" />
<package id="System.Security.Cryptography.ProtectedData" version="4.5.0" targetFramework="net462" />
<package id="System.Security.Permissions" version="5.0.0" targetFramework="net462" />
<package id="System.Security.Principal.Windows" version="5.0.0" targetFramework="net462" />
<package id="System.Text.Encodings.Web" version="4.7.2" targetFramework="net462" />
<package id="System.Text.Json" version="4.6.0" targetFramework="net462" />
<package id="System.Threading.Tasks.Extensions" version="4.5.2" targetFramework="net462" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
</packages>
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>EgwProxy.Icoel</id>
<version>#version#</version>
<title>EgwProxy.Icoel</title>
<authors>Samuele E. Locatelli, EgalWare</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<description>Libreria per comunicazione con SOAP API del sizer di Icoel (IOB-WIN-NEXT) - beta/unstable</description>
<releaseNotes>#releaseNotes#</releaseNotes>
<copyright>#copyright#</copyright>
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
</metadata>
<files>
<file src="EgwProxy.Icoel\bin\Debug\EgwProxy*.dll" target="lib" />
<file src="EgwProxy.Icoel\bin\Debug\EgwProxy*.config" target="lib" />
<file src="EgwProxy.Icoel\bin\Debug\EgwProxy*.pdb" target="lib" />
</files>
</package>
+19
View File
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<package >
<metadata>
<id>EgwProxy.Icoel</id>
<version>#version#</version>
<title>EgwProxy.Icoel</title>
<authors>Samuele E. Locatelli, EgalWare</authors>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<license type="expression">MIT</license>
<description>Libreria per comunicazione con SOAP API del sizer di Icoel (IOB-WIN-NEXT)</description>
<releaseNotes>#releaseNotes#</releaseNotes>
<copyright>#copyright#</copyright>
<tags>EgwProxy.Icoel EgwProxy Icoel</tags>
</metadata>
<files>
<file src="EgwProxy.Icoel\bin\Release\EgwProxy*.dll" target="lib" />
<file src="EgwProxy.Icoel\bin\Release\EgwProxy*.config" target="lib" />
</files>
</package>
+73
View File
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<appSettings>
<add key="IndirizzoIpSizer" value="192.168.137.50" />
<add key="SizerTcpPort" value="8001" />
<add key="EntrataFrontiera" value="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
<add key="ExportIcoel" value="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
<add key="TrackerLotti" value="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
<add key="SyncState" value="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
</appSettings>
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_ISizerService">
<security mode="None" />
</binding>
</netNamedPipeBinding>
<wsHttpBinding>
<binding name="WSHttpBinding_ISizerService" maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8001/SizerService/" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISizerService" contract="SizerService.ISizerService" name="WSHttpBinding_ISizerService" />
<endpoint address="net.pipe://localhost/Compac/8001/SizerService" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISizerService" contract="SizerService.ISizerService" name="NetNamedPipeBinding_ISizerService" />
</client>
</system.serviceModel>
<!--
<connectionStrings>
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
<add name="ExportIcoel" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
<add name="TrackerLotti" connectionString="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
<add name="SyncState" connectionString="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
</connectionStrings>
-->
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
@@ -0,0 +1,73 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A655A6AC-5997-46F9-9752-8C621B80516C}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>EgwProxy.Icoel.Test</RootNamespace>
<AssemblyName>EgwProxy.Icoel.Test</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="batch.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="conf.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwProxy.Icoel.DataLayer\EgwProxy.Icoel.DataLayer.csproj">
<Project>{E36544CB-D699-48D8-9F81-C2758E7C7D19}</Project>
<Name>EgwProxy.Icoel.DataLayer</Name>
</ProjectReference>
<ProjectReference Include="..\EgwProxy.Icoel\EgwProxy.Icoel.csproj">
<Project>{c45f5e6e-866b-4a34-a598-29aab2d178ad}</Project>
<Name>EgwProxy.Icoel</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<Folder Include="INI\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+62
View File
@@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Icoel.INI
{
class BatchDetails
{
private const string NameFile = "batch.ini";
private readonly IniFile _sett;
public BatchDetails()
{
_sett = new IniFile();
}
public string GrowerCode
{
get { return _sett.GetKeyValue("Batch", "GrowerCode"); }
set { _sett.SetKeyValue("Batch", "GrowerCode", value); }
}
public string GrowerName
{
get { return _sett.GetKeyValue("Batch", "GrowerName"); }
set { _sett.SetKeyValue("Batch", "GrowerName", value); }
}
public string Comment1
{
get { return _sett.GetKeyValue("Batch", "Comment1"); }
set { _sett.SetKeyValue("Batch", "Comment1", value); }
}
public string Comment2
{
get { return _sett.GetKeyValue("Batch", "Comment2"); }
set { _sett.SetKeyValue("Batch", "Comment2", value); }
}
public string Comment3
{
get { return _sett.GetKeyValue("Batch", "Comment3"); }
set { _sett.SetKeyValue("Batch", "Comment3", value); }
}
public void Load()
{
if (!File.Exists(NameFile))
{
var fs = File.Create(NameFile);
fs.Close();
}
_sett.Load(NameFile, false);
}
public void Save()
{
_sett.Save(NameFile);
}
}
}
+479
View File
@@ -0,0 +1,479 @@
/*
Date: 08\23\2010 - Ludvik Jerabek - Initial Release
Version: 1.0
Comment: Allow INI manipulation in .NET
License: CPOL
Revisions:
08\23\2010 - Ludvik Jerabek - Initial Release
11\12\2010 - Ludvik Jerabek - Fixed section regex matching on key values with brackets
06\20\2015 - Ludvik Jerabek - Fixed key parsing regex to account for keys with spaces in names
**DISCLAIMER**
THIS MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING, BUT Not LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NON-INFRINGEMENT. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT
APPLY TO YOU. IN NO EVENT WILL I BE LIABLE TO ANY PARTY FOR ANY
DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES FOR ANY
USE OF THIS MATERIAL INCLUDING, WITHOUT LIMITATION, ANY LOST
PROFITS, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR OTHER DATA ON
YOUR INFORMATION HANDLING SYSTEM OR OTHERWISE, EVEN If WE ARE
EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
using System.IO;
using System.Text.RegularExpressions;
using System.Collections;
using System.Diagnostics;
using System;
// IniFile class used to read and write ini files by loading the file into memory
public class IniFile
{
// List of IniSection objects keeps track of all the sections in the INI file
private Hashtable m_sections;
// Public constructor
public IniFile()
{
m_sections = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
}
// Loads the Reads the data in the ini file into the IniFile object
public void Load(string sFileName )
{
Load(sFileName, false);
}
// Loads the Reads the data in the ini file into the IniFile object
public void Load(string sFileName, bool bMerge )
{
if (!bMerge)
{
RemoveAllSections();
}
// Clear the object...
IniSection tempsection = null;
StreamReader oReader = new StreamReader(sFileName);
Regex regexcomment = new Regex("^([\\s]*#.*)", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
Regex regexsection = new Regex("^[\\s]*\\[[\\s]*([^\\[\\s].*[^\\s\\]])[\\s]*\\][\\s]*$", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
Regex regexkey = new Regex("^\\s*([^=]*[^\\s=])\\s*=(.*)", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
while (!oReader.EndOfStream)
{
string line = oReader.ReadLine();
if (line != string.Empty)
{
Match m = null;
if (regexcomment.Match(line).Success)
{
m = regexcomment.Match(line);
Trace.WriteLine(string.Format("Skipping Comment: {0}", m.Groups[0].Value));
}
else if (regexsection.Match(line).Success)
{
m = regexsection.Match(line);
Trace.WriteLine(string.Format("Adding section [{0}]", m.Groups[1].Value));
tempsection = AddSection(m.Groups[1].Value);
}
else if ( regexkey.Match(line).Success && tempsection != null)
{
m = regexkey.Match(line);
Trace.WriteLine(string.Format("Adding Key [{0}]=[{1}]", m.Groups[1].Value, m.Groups[2].Value));
tempsection.AddKey(m.Groups[1].Value).Value = m.Groups[2].Value;
}
else if ( tempsection != null )
{
// Handle Key without Value
Trace.WriteLine(string.Format("Adding Key [{0}]", line));
tempsection.AddKey(line);
}
else
{
// This should not occur unless the tempsection is not created yet...
Trace.WriteLine(string.Format("Skipping unknown type of data: {0}", line));
}
}
}
oReader.Close();
}
// Used to save the data back to the file or your choice
public void Save(string sFileName)
{
StreamWriter oWriter = new StreamWriter(sFileName, false);
foreach (IniSection s in Sections)
{
Trace.WriteLine(string.Format("Writing Section: [{0}]", s.Name));
oWriter.WriteLine(string.Format("[{0}]", s.Name));
foreach (IniSection.IniKey k in s.Keys)
{
if (k.Value != string.Empty)
{
Trace.WriteLine(string.Format("Writing Key: {0}={1}", k.Name, k.Value));
oWriter.WriteLine(string.Format("{0}={1}", k.Name, k.Value));
}
else
{
Trace.WriteLine(string.Format("Writing Key: {0}", k.Name));
oWriter.WriteLine(string.Format("{0}", k.Name));
}
}
}
oWriter.Close();
}
// Gets all the sections names
public System.Collections.ICollection Sections
{
get
{
return m_sections.Values;
}
}
// Adds a section to the IniFile object, returns a IniSection object to the new or existing object
public IniSection AddSection(string sSection )
{
IniSection s = null;
sSection = sSection.Trim();
// Trim spaces
if (m_sections.ContainsKey(sSection))
{
s = (IniSection)m_sections[sSection];
}
else
{
s = new IniSection(this, sSection);
m_sections[sSection] = s;
}
return s;
}
// Removes a section by its name sSection, returns trus on success
public bool RemoveSection(string sSection)
{
sSection = sSection.Trim();
return RemoveSection(GetSection(sSection));
}
// Removes section by object, returns trus on success
public bool RemoveSection(IniSection Section)
{
if (Section != null)
{
try
{
m_sections.Remove(Section.Name);
return true;
}
catch( Exception ex )
{
Trace.WriteLine(ex.Message);
}
}
return false;
}
// Removes all existing sections, returns trus on success
public bool RemoveAllSections()
{
m_sections.Clear();
return (m_sections.Count == 0);
}
// Returns an IniSection to the section by name, NULL if it was not found
public IniSection GetSection(string sSection)
{
sSection = sSection.Trim();
// Trim spaces
if (m_sections.ContainsKey(sSection))
{
return (IniSection)m_sections[sSection];
}
return null;
}
// Returns a KeyValue in a certain section
public string GetKeyValue(string sSection, string sKey)
{
IniSection s = GetSection(sSection);
if (s != null)
{
IniSection.IniKey k = s.GetKey(sKey);
if (k != null)
{
return k.Value;
}
}
return string.Empty;
}
// Sets a KeyValuePair in a certain section
public bool SetKeyValue(string sSection, string sKey, string sValue)
{
IniSection s = AddSection(sSection);
if (s != null)
{
IniSection.IniKey k = s.AddKey(sKey);
if (k != null)
{
k.Value = sValue;
return true;
}
}
return false;
}
// Renames an existing section returns true on success, false if the section didn't exist or there was another section with the same sNewSection
public bool RenameSection(string sSection, string sNewSection)
{
// Note string trims are done in lower calls.
bool bRval = false;
IniSection s = GetSection(sSection);
if (s != null)
{
bRval = s.SetName(sNewSection);
}
return bRval;
}
// Renames an existing key returns true on success, false if the key didn't exist or there was another section with the same sNewKey
public bool RenameKey(string sSection, string sKey, string sNewKey)
{
// Note string trims are done in lower calls.
IniSection s = GetSection(sSection);
if (s != null)
{
IniSection.IniKey k = s.GetKey(sKey);
if (k != null)
{
return k.SetName(sNewKey);
}
}
return false;
}
// IniSection class
public class IniSection
{
// IniFile IniFile object instance
private IniFile m_pIniFile;
// Name of the section
private string m_sSection;
// List of IniKeys in the section
private Hashtable m_keys;
// Constuctor so objects are internally managed
protected internal IniSection(IniFile parent, string sSection)
{
m_pIniFile = parent;
m_sSection = sSection;
m_keys = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
}
// Returns and hashtable of keys associated with the section
public System.Collections.ICollection Keys
{
get
{
return m_keys.Values;
}
}
// Returns the section name
public string Name
{
get
{
return m_sSection;
}
}
// Adds a key to the IniSection object, returns a IniKey object to the new or existing object
public IniKey AddKey(string sKey)
{
sKey = sKey.Trim();
IniSection.IniKey k = null;
if (sKey.Length != 0)
{
if (m_keys.ContainsKey(sKey))
{
k = (IniKey)m_keys[sKey];
}
else
{
k = new IniSection.IniKey(this, sKey);
m_keys[sKey] = k;
}
}
return k;
}
// Removes a single key by string
public bool RemoveKey(string sKey)
{
return RemoveKey(GetKey(sKey));
}
// Removes a single key by IniKey object
public bool RemoveKey(IniKey Key)
{
if (Key != null)
{
try
{
m_keys.Remove(Key.Name);
return true;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
return false;
}
// Removes all the keys in the section
public bool RemoveAllKeys()
{
m_keys.Clear();
return (m_keys.Count == 0);
}
// Returns a IniKey object to the key by name, NULL if it was not found
public IniKey GetKey(string sKey)
{
sKey = sKey.Trim();
if (m_keys.ContainsKey(sKey))
{
return (IniKey)m_keys[sKey];
}
return null;
}
// Sets the section name, returns true on success, fails if the section
// name sSection already exists
public bool SetName(string sSection)
{
sSection = sSection.Trim();
if (sSection.Length != 0)
{
// Get existing section if it even exists...
IniSection s = m_pIniFile.GetSection(sSection);
if (s != this && s != null) return false;
try
{
// Remove the current section
m_pIniFile.m_sections.Remove(m_sSection);
// Set the new section name to this object
m_pIniFile.m_sections[sSection] = this;
// Set the new section name
m_sSection = sSection;
return true;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
return false;
}
// Returns the section name
public string GetName()
{
return m_sSection;
}
// IniKey class
public class IniKey
{
// Name of the Key
private string m_sKey;
// Value associated
private string m_sValue;
// Pointer to the parent CIniSection
private IniSection m_section;
// Constuctor so objects are internally managed
protected internal IniKey(IniSection parent, string sKey)
{
m_section = parent;
m_sKey = sKey;
}
// Returns the name of the Key
public string Name
{
get
{
return m_sKey;
}
}
// Sets or Gets the Value of the key
public string Value
{
get
{
return m_sValue;
}
set
{
m_sValue = value;
}
}
// Sets the Value of the key
public void SetValue(string sValue)
{
m_sValue = sValue;
}
// Returns the Value of the Key
public string GetValue()
{
return m_sValue;
}
// Sets the key name
// Returns true on success, fails if the section name sKey already exists
public bool SetName(string sKey)
{
sKey = sKey.Trim();
if (sKey.Length != 0)
{
IniKey k = m_section.GetKey(sKey);
if (k != this && k != null) return false;
try
{
// Remove the current key
m_section.m_keys.Remove(m_sKey);
// Set the new key name to this object
m_section.m_keys[sKey] = this;
// Set the new key name
m_sKey = sKey;
return true;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
return false;
}
// Returns the name of the Key
public string GetName()
{
return m_sKey;
}
} // End of IniKey class
} // End of IniSection class
} // End of IniFile class
+70
View File
@@ -0,0 +1,70 @@
using System.IO;
namespace EgwProxy.Icoel.Test.INI
{
public class Settaggi
{
#region Public Constructors
public Settaggi()
{
_sett = new IniFile();
}
#endregion Public Constructors
#region Public Properties
public string IndirizzoIpSizer
{
get { return _sett.GetKeyValue("Sizer", "IndirizzoIp"); }
set { _sett.SetKeyValue("Sizer", "IndirizzoIp", value); }
}
public string IndirizzoIpSizerClient
{
get { return _sett.GetKeyValue("Sizer", "IndirizzoIpTracciabilità"); }
set { _sett.SetKeyValue("Sizer", "IndirizzoIpTracciabilità", value); }
}
public string SizerTcpPort
{
get { return _sett.GetKeyValue("Sizer", "TcpPort"); }
set { _sett.SetKeyValue("Sizer", "TcpPort", value); }
}
public string TcpPortSizerClient
{
get { return _sett.GetKeyValue("Sizer", "TcpPortTracciabilità"); }
set { _sett.SetKeyValue("Sizer", "TcpPortTracciabilità", value); }
}
#endregion Public Properties
#region Public Methods
public void Load()
{
if (!File.Exists(NameFile))
{
var fs = File.Create(NameFile);
fs.Close();
}
_sett.Load(NameFile, false);
}
public void Save()
{
_sett.Save(NameFile);
}
#endregion Public Methods
#region Private Fields
private const string NameFile = "conf.ini";
private readonly IniFile _sett;
#endregion Private Fields
}
}
+385
View File
@@ -0,0 +1,385 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using EgwProxy.Icoel.SizerService;
//using EgwProxy.Icoel.Test.INI;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
namespace EgwProxy.Icoel.Test
{
internal class Program
{
#region Internal Methods
/// <summary>
/// Mostra tutte le metriche di performance ricevute
/// </summary>
/// <param name="perfMeter"></param>
internal static void DisplayPerfMeter(Dictionary<string, double> perfMeter)
{
// mostra tutti i parametri rilevati...
foreach (var item in perfMeter)
{
Console.WriteLine($"{item.Key} | {item.Value:N2}");
}
}
/// <summary>
/// Mostra tutte le metriche di performance ricevute
/// </summary>
/// <param name="currData"></param>
internal static void DisplayCurrBatch(Dictionary<string, string> currData)
{
// mostra tutti i parametri rilevati...
foreach (var item in currData)
{
Console.WriteLine($"{item.Key} | {item.Value}");
}
}
/// <summary>
/// Generazione di una list di info sui dati variety
/// </summary>
/// <param name="varietiesList"></param>
/// <returns></returns>
internal static void DisplayVariety(Variety[] varietyData)
{
foreach (var item in varietyData)
{
Console.WriteLine("--------------------------");
Console.WriteLine($"Variety Id: {item.Id} | Variety Name: {item.Name}");
Console.WriteLine(" - Qualities");
foreach (var quality in item.Qualities)
{
Console.WriteLine($" Name: {quality.Name}");
}
Console.WriteLine(" - Grades");
foreach (var grade in item.Grades)
{
Console.WriteLine($" Name: {grade.Name}");
}
Console.WriteLine(" - Sizes");
foreach (var size in item.SizingMaps)
{
Console.WriteLine($" Name: {size.Name}");
}
}
}
/// <summary>
/// Generazione di una list di info sui dati variety
/// </summary>
/// <param name="varietiesList"></param>
/// <returns></returns>
internal static void DisplayVarietyLayout(Dictionary<Variety, Layout[]> varietyData)
{
foreach (var item in varietyData)
{
Console.WriteLine("--------------------------");
Console.WriteLine($"Variety Id: {item.Key.Id} | Variety Name: {item.Key.Name}");
Console.WriteLine(" - Qualities");
foreach (var quality in item.Key.Qualities)
{
Console.WriteLine($" Name: {quality.Name}");
}
Console.WriteLine(" - Grades");
foreach (var grade in item.Key.Grades)
{
Console.WriteLine($" Name: {grade.Name}");
}
Console.WriteLine(" - Sizes");
foreach (var size in item.Key.SizingMaps)
{
Console.WriteLine($" Name: {size.Name}");
}
Console.WriteLine(" - LAYOUTS");
foreach (var layout in item.Value)
{
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
Console.WriteLine(" - Products");
foreach (var product in layout.Products)
{
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
}
}
}
}
/// <summary>
/// Mostra elenco variety e quanod utente seleziona restituisce varGuid
/// </summary>
/// <returns></returns>
internal static Guid selLayout(Connector IcoelSizer, Guid varGuid)
{
int idxLay = -1;
Guid layGuid = Guid.NewGuid();
// recupero layout della varietà
var layoutList = IcoelSizer.GetLayoutForVariety(varGuid);
Console.WriteLine("--------------------");
Console.WriteLine("Layout disponibili:");
Console.WriteLine("--------------------");
DisplayLayout(layoutList);
// recupero layout x varietà
while (idxLay <= 0)
{
Console.WriteLine("");
Console.WriteLine("indicare layout");
var rawData = Console.ReadLine();
if (!string.IsNullOrEmpty(rawData))
{
int.TryParse(rawData, out idxLay);
// verifico sia valida..
if (layoutList.Length >= idxLay && idxLay > 0)
{
layGuid = layoutList[idxLay - 1].Id;
}
else
{
idxLay = -1;
}
}
}
return layGuid;
}
/// <summary>
/// Mostra elenco variety e quanod utente seleziona restituisce varGuid
/// </summary>
/// <returns></returns>
internal static Guid selVariety(Connector IcoelSizer)
{
int idxVar = -1;
Guid varGuid = Guid.NewGuid();
var varList = IcoelSizer.GetVarietyList(true);
Console.WriteLine("--------------------");
Console.WriteLine("Varietà disponibili:");
Console.WriteLine("--------------------");
DisplayVariety(varList);
// chiedo di selezionare
while (idxVar <= 0)
{
Console.WriteLine("");
Console.WriteLine("indicare varietà richiesta (#)");
var rawData = Console.ReadLine();
if (!string.IsNullOrEmpty(rawData))
{
int.TryParse(rawData, out idxVar);
// verifico sia valida..
if (varList.Length >= idxVar && idxVar > 0)
{
varGuid = varList[idxVar - 1].Id;
}
else
{
idxVar = -1;
}
}
}
return varGuid;
}
#endregion Internal Methods
#region Private Methods
/// <summary>
/// Generazione di una list di layout dato elenco
/// </summary>
/// <param name="layoutList"></param>
/// <exception cref="NotImplementedException"></exception>
internal static void DisplayLayout(Layout[] layoutList)
{
foreach (var layout in layoutList)
{
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
Console.WriteLine(" - Products");
foreach (var product in layout.Products)
{
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
}
}
}
/// <summary>
/// legge conf in formato stringa
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
protected static string ReadSetting(string key)
{
string answ = "";
try
{
answ = $"{ConfigurationManager.AppSettings[key]}" ?? "";
}
catch (Exception exc)
{
Console.Write("Eccezione in ReadSettings");
Console.Write(exc.Message);
}
return answ;
}
/// <summary>
/// Programma principale
/// </summary>
/// <param name="args"></param>
private static void Main(string[] args)
{
// leggo conf da file ini (ip/port)
Console.WriteLine("Loading Files...");
string userInput = "";
Console.WriteLine("------------ Test DB ------------");
EgwProxy.Icoel.DbProxy dbProxy = new DbProxy(ReadSetting("SyncState"));
Console.WriteLine();
Console.WriteLine("--- SyncState ---");
bool needRedo = true;
int numTry = 1;
//int numTry = 3;
var elencoSyncState = dbProxy.DataController.SyncStateGetAll();
while (needRedo && numTry >= 0)
{
Console.WriteLine(" --- PRE --- ");
if (elencoSyncState != null)
{
foreach (var item in elencoSyncState)
{
Console.WriteLine($"TAB: {item.TableName} | IdxIN / IdxLocal {item.LastIdxIn} / {item.LastIdx} | NumIn / NumLocal {item.NumRecIn} / {item.NumRec}");
// verifico se serva redo..
}
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
Stopwatch sw = new Stopwatch();
sw.Start();
elencoSyncState = dbProxy.DataController.SyncStateDoImportAll();
sw.Stop();
Console.WriteLine($" process time: {sw.ElapsedMilliseconds} ms ");
Console.WriteLine(" --- POST --- ");
if (elencoSyncState != null)
{
foreach (var item in elencoSyncState)
{
Console.WriteLine($"TAB: {item.TableName} | IdxIN / IdxLocal {item.LastIdxIn} / {item.LastIdx} | NumIn / NumLocal {item.NumRecIn} / {item.NumRec}");
// verifico se serva redo..
}
}
// processo
needRedo = testNeedRedo(elencoSyncState);
numTry--;
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
// oggetto x connessione al sizer icoel
Connector IcoelSizer = new Connector(ReadSetting("IndirizzoIpSizer"), ReadSetting("SizerTcpPort"));
//Connector IcoelSizer = new Connector(setup.IndirizzoIpSizer, setup.SizerTcpPort);
Console.WriteLine("------------ Parametri CurrBatch rilevati ------------");
var cBatch = IcoelSizer.GetCurrBatchData();
if (cBatch != null)
{
DisplayCurrBatch(cBatch);
}
// ora effettua un pò di letture/scritture
try
{
Console.WriteLine("------------ TUTTE variety ------------");
var varList = IcoelSizer.GetVarietyList(false);
var varietyData = IcoelSizer.GetLayoutForVarietyList(varList);
if (varietyData != null)
{
DisplayVarietyLayout(varietyData);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
userInput = Console.ReadLine();
Console.WriteLine("------------ Parametri velocità rilevati ------------");
var perfMeter = IcoelSizer.GetPerfMeters();
if (perfMeter != null)
{
DisplayPerfMeter(perfMeter);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
userInput = Console.ReadLine();
// solo attive
Console.WriteLine("------------ solo attive ------------");
varList = IcoelSizer.GetVarietyList();
varietyData = IcoelSizer.GetLayoutForVarietyList(varList);
if (varietyData != null)
{
DisplayVarietyLayout(varietyData);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
userInput = Console.ReadLine();
Console.WriteLine("------------ BATCH correnti ------------");
var currBatch = IcoelSizer.GetCurrentBatch();
foreach (var item in currBatch)
{
string lato = item.Key == 1 ? "SX" : "DX";
Console.WriteLine($"[{item.Key}-{lato}] Grower code: {item.Value.GrowerCode} | Layout Name: {item.Value.LayoutName} | Totalling: [{item.Value.TotallingVarietyCode}] {item.Value.TotallingVariety} | Sizing: {item.Value.SizingProfileName} | Start {item.Value.StartTime} | End {item.Value.EndTime}");
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
userInput = Console.ReadLine();
Console.WriteLine("------------ Prova invio BATCH ------------");
// recupero GUID x variety e layout
var varGuid = selVariety(IcoelSizer);
var layGuid = selLayout(IcoelSizer, varGuid);
GrowerInfo GrowerData = new GrowerInfo();
IcoelSizer.EnqueueBatch(GrowerData, varGuid, layGuid);
currBatch = IcoelSizer.GetCurrentBatch();
foreach (var item in currBatch)
{
string lato = item.Key == 1 ? "SX" : "DX";
Console.WriteLine($"[{item.Key}-{lato}] Grower code: {item.Value.GrowerCode} | Layout Name: {item.Value.LayoutName} | Totalling: [{item.Value.TotallingVarietyCode}] {item.Value.TotallingVariety} | Sizing: {item.Value.SizingProfileName} | Start {item.Value.StartTime} | End {item.Value.EndTime}");
}
Console.WriteLine("Test completato");
Console.WriteLine("Premere un tasto x chiudere");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("ECCEZIONE" + ex.Message + ex.StackTrace);
Console.ReadKey();
}
}
/// <summary>
/// Verifico necessità di rifare sync
/// </summary>
/// <param name="elencoSyncState"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private static bool testNeedRedo(List<SyncStateModel> elencoSyncState)
{
bool answ = false;
foreach (var item in elencoSyncState)
{
answ = answ || (item.NumRecIn > item.NumRec || item.LastIdxIn > item.LastIdx);
}
return answ;
}
#endregion Private Methods
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("EgwProxy.Icoel.Test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Icoel.Test")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("a655a6ac-5997-46f9-9752-8c621b80516c")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+6
View File
@@ -0,0 +1,6 @@
[Batch]
GrowerCode=02
GrowerName=Egalware
Comment1=Prova Invio
Comment2=Console app
Comment3=Selezionato Variety e layout
+3
View File
@@ -0,0 +1,3 @@
[Sizer]
IndirizzoIp=192.168.137.50
TcpPort=8001
+37
View File
@@ -0,0 +1,37 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32421.90
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Icoel", "EgwProxy.Icoel\EgwProxy.Icoel.csproj", "{C45F5E6E-866B-4A34-A598-29AAB2D178AD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Icoel.Test", "EgwProxy.Icoel.Test\EgwProxy.Icoel.Test.csproj", "{A655A6AC-5997-46F9-9752-8C621B80516C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EgwProxy.Icoel.DataLayer", "EgwProxy.Icoel.DataLayer\EgwProxy.Icoel.DataLayer.csproj", "{E36544CB-D699-48D8-9F81-C2758E7C7D19}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{C45F5E6E-866B-4A34-A598-29AAB2D178AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C45F5E6E-866B-4A34-A598-29AAB2D178AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C45F5E6E-866B-4A34-A598-29AAB2D178AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C45F5E6E-866B-4A34-A598-29AAB2D178AD}.Release|Any CPU.Build.0 = Release|Any CPU
{A655A6AC-5997-46F9-9752-8C621B80516C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A655A6AC-5997-46F9-9752-8C621B80516C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A655A6AC-5997-46F9-9752-8C621B80516C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A655A6AC-5997-46F9-9752-8C621B80516C}.Release|Any CPU.Build.0 = Release|Any CPU
{E36544CB-D699-48D8-9F81-C2758E7C7D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E36544CB-D699-48D8-9F81-C2758E7C7D19}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E36544CB-D699-48D8-9F81-C2758E7C7D19}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E36544CB-D699-48D8-9F81-C2758E7C7D19}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {E2472E21-58D3-4EAD-BC4A-BC3915B18BEF}
EndGlobalSection
EndGlobal
+59
View File
@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_ISizerService">
<security mode="None" />
</binding>
</netNamedPipeBinding>
<wsHttpBinding>
<binding name="WSHttpBinding_ISizerService" maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8001/SizerService/" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISizerService" contract="SizerService.ISizerService" name="WSHttpBinding_ISizerService" />
<endpoint address="net.pipe://localhost/Compac/8001/SizerService" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISizerService" contract="SizerService.ISizerService" name="NetNamedPipeBinding_ISizerService" />
</client>
</system.serviceModel>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
+107
View File
@@ -0,0 +1,107 @@
# Appunti impiego connesisoni ICOEL
## Icoel SOAP
Oltre ai metodi legati al batch, ci sono questi metodi x recuperare informazioni specifiche di produttività
| Metodo | Descrizione |
| ---------- | ---------- |
| GetMachineTonnesPH() | valore tonnellate/ora di velocità impianto |
| GetMachineTotalFPM() | valore frutti per minuto |
| GetMachineRodsPM() | velocità catena (carrellini / minuto) |
| GetMachineCupfill() | percentuale riempimento carrellini (100% = 1 frutto x ogni carrellino) |
## Icoel DB
Appunti sulla gestione tabelle di frontiera
### Products total
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP (1000) [SizerBatchId]
,[Index]
,[Nome]
,[Qualities]
,[Grado]
,[Calibro]
,[NumeroFrutti]
,[Decigrammi]
FROM [IcoelExport].[dbo].[ProductsTotals]
### Entrata Ciliegie
SELECT *
FROM [frontiera].[dbo].[ENTRATACILIEGIE]
-- utilizzare codice e descrizione prodotto...
### Fine lavorazione
select top 100 *
from ProductsTotals
/*
SizerBatch id = id del batch da WS SOAP
Index = indice di prodotto FINITO, di cui ho il NOME
- prodotti da matrice: colonne = gradi, righe = taglie(sizes)
- grado a colore rosso
- do il nome prodotto rosse 26- (che sono da 22 a 26 in grado A)
- colonna qualities = è la "somma dei qualities" ovvero le colonne che passano nelcontrollo prodotto
- codice in 3 parametri, che sono a,b,c
- a = qualità interna (SEMPRE NULL x le ciliegie)
- b grado = qualità esterna del frutto, es rosse, nere, con stelo... ricircolo = scarto per cattiva disposizione
- c : calibri che mi definiscono la dimensione, tipicamente 22..32
si scrive tutto quando è chiuso il lotto
inizialmente 1 solo lotto x entrambe le linee
*/
### Conferimento MES
<code>
SELECT *
FROM DettagliConferimentoMES
where FillingId = 31729
order by PackId
</code>
/*
Numero lotto = sigla giorno
sigla lotto: incrementale giornaliero
in particoalre x il prodotto grosso --> seleziono da + fornitori (es fornitori grossi)
PackId = id univoco scatoletta
FillingId / FillingRow NON USATI: li posso ignorare, si applicano al caso "travaso" da bins ingresso / bins uscita "tipizzati" --> serve x precalibrare
scaricoId = operazione di scannerizzazione ( è il barcode letto)
codice a barre è letto x ogni etichetta di conferimento
codice e nome fornitore = grower
codice e descrizione prodotto : sono il GREZZO specifico
cdice prodotto grezzo è il "ceppo" / famiglia
sigla e numero lotto: colonna di entrata ciliegie (frontiera)
idem x data e qta entrata
*/
### Confezioni Mes
<code>
SELECT *
FROM DettagliConfezioniMES
</code>
pack id = singola cassetta/scatoal/cartone
ean = barcode in uscita
batch id / batch name = dati tracciabilità, legato ai lotti in entrata sul sizer
lane [1/2]sizerBatchId = lotti del sizer
pesoDecigram = peso netto confezionato (tolleranza +/-10g...20gr)
tabella scritta dal momento in cui arriva il cartone/cassetta per iniziare riempimento
dati live li vediamo dal sizer
*/
+253
View File
@@ -0,0 +1,253 @@
using EgwProxy.Icoel.SizerService;
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace EgwProxy.Icoel.Compac
{
/// <summary>
/// Classe di comunicazione x
/// </summary>
public class ComClient : IDisposable
{
#region Public Constructors
/// <summary>
/// Oggetto client comunicazione con sizer ICOEL per invio/recupero informazioni di
/// produzione (batch)
/// </summary>
/// <param name="sizerIp">Indirizzo IP del server SIZER</param>
/// <param name="port">Porta di connessione del sizer (def: 8001)</param>
public ComClient(string sizerIp, string port)
{
// Salvo IP e porta
ipAddress = sizerIp;
tcpPort = port;
// inizializzazione servizio comunicazione
var url = "http://" + sizerIp + ":" + port + "/SizerService/";
EndpointAddress epa = new EndpointAddress(new Uri(url));
SSClient = new SizerServiceClient("WSHttpBinding_ISizerService", epa);
}
#endregion Public Constructors
#region Public Properties
/// <summary>
/// Status di connessione del client
/// </summary>
public bool connected
{
get
{
bool answ = false;
if (SSClient != null)
{
answ = SSClient.State == CommunicationState.Opened;
}
return answ;
}
}
#endregion Public Properties
#region Public Methods
/// <summary>
/// Dispose dell'oggetto
/// </summary>
public void Dispose()
{
Close();
}
#endregion Public Methods
#region Internal Properties
/// <summary>
/// Inidirizzo IP
/// </summary>
internal string ipAddress { get; set; } = "127.0.0.1";
/// <summary>
/// Porta del webservice (SOAP)
/// </summary>
internal string tcpPort { get; set; } = "8001";
#endregion Internal Properties
#region Internal Methods
/// <summary>
/// Verifica del grower da codice/nome con eventuale creazione se mancante
/// </summary>
/// <param name="growerCode">Codice del produttore</param>
/// <param name="growerName">Denominazione del produttore</param>
internal void CheckGrower(string growerCode, string growerName)
{
var grower = SSClient.GetGrower(growerCode);
if (grower == null)
{
var nuovo = new Grower() { Code = growerCode, Name = growerName };
SSClient.AddGrower(nuovo);
}
}
/// <summary>
/// Effettua chiusura del proxy di comunicazione
/// </summary>
internal void Close()
{
if (SSClient.State != CommunicationState.Closed)
{
SSClient.Close();
}
}
/// <summary>
/// Elenco dei layout attivi della varietà
/// </summary>
/// <param name="VarietyId">Guid della varietà</param>
/// <returns>Oggetto Lyout attivo</returns>
internal Layout GetActiveLayout(Guid VarietyId)
{
return SSClient.GetActiveLayout(VarietyId);
}
/// <summary>
/// Elenco varietà attive
/// </summary>
/// <returns>Array Variety attive</returns>
internal Variety[] GetActiveVarieties()
{
return SSClient.GetActiveVarieties();
}
/// <summary>
/// Elenco varietà (tutte)
/// </summary>
/// <returns></returns>
internal Variety[] GetAllVarieties()
{
return SSClient.GetAllVarieties();
}
/// <summary>
/// Recupera il batch corrente (se monolinea)
/// </summary>
/// <returns>Batch corrente (singolo)</returns>
internal Batch GetCurrentBatch()
{
return SSClient.GetCurrentBatch();
}
/// <summary>
/// Recupera il batch corrente data la linea
/// </summary>
/// <param name="lineNum">Numero della linea 1=sx/2=dx</param>
/// <returns>Batch della linea selezionata</returns>
internal Batch GetCurrentBatchByLane(int lineNum)
{
return SSClient.GetCurrentBatchByLane(lineNum);
}
/// <summary>
/// Elenco dei layout della varietà
/// </summary>
/// <param name="VarietyId">Guid della varietà</param>
/// <returns>Layout della Variety</returns>
internal Layout[] GetLayouts(Guid VarietyId)
{
return SSClient.GetLayouts(VarietyId);
}
/// <summary>
/// Effettua chiamata per mettere in coda il lotto richiesto
/// </summary>
/// <param name="batch">Oggetto Batch completamente popolato da accodare in richiesta</param>
internal void MettiLottoInCoda(Batch batch)
{
SSClient.AddBatch(batch);
}
/// <summary>
/// Recupera elenco parametri performance impianto
/// </summary>
/// <returns>Dizionario delle variabili di performance dell'impianto in formato Dictionary<string,double></returns>
internal Dictionary<string, double> GetPerfMeters()
{
Dictionary<string, double> answ = new Dictionary<string, double>();
// velocità processo indicata in tonnellate /oOra
double velTonnOra = SSClient.GetMachineTonnesPH();
// velocità espressa in frutti/minuto
double velFruttiMinuto = SSClient.GetMachineTotalFPM();
// percentuale riempimento carrellini
double percRiemp = SSClient.GetMachineCupfill();
// Numero confezioni/ora
double numPackOra = SSClient.GetMachinePacksPH();
// accodo i valori ricavati
answ.Add("NumPacksOra", numPackOra);
answ.Add("PercRiemp", percRiemp);
answ.Add("VelFruttiMinuto", velFruttiMinuto);
answ.Add("VelTonnOra", velTonnOra);
return answ;
}
#endregion Internal Methods
#region Private Properties
/// <summary>
/// Client che inoltra le richieste al Sizer
/// </summary>
private SizerServiceClient SSClient { get; set; }
#endregion Private Properties
}
[Serializable]
internal class IcoelSizerException : Exception
{
#region Public Constructors
public IcoelSizerException()
{
}
public IcoelSizerException(Exception ex)
{
this.ex = ex;
}
public IcoelSizerException(string message) : base(message)
{
}
public IcoelSizerException(string message, Exception innerException) : base(message, innerException)
{
}
#endregion Public Constructors
#region Protected Constructors
protected IcoelSizerException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
#endregion Protected Constructors
#region Private Fields
private Exception ex;
#endregion Private Fields
}
}
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="uri:Compac.Services.Sizer.Service" />
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:complexType name="ArrayOfint">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="int" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfint" nillable="true" type="tns:ArrayOfint" />
<xs:complexType name="ArrayOfdouble">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="double" type="xs:double" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfdouble" nillable="true" type="tns:ArrayOfdouble" />
<xs:complexType name="ArrayOfstring">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfstring" nillable="true" type="tns:ArrayOfstring" />
<xs:complexType name="ArrayOfKeyValueOfstringint">
<xs:annotation>
<xs:appinfo>
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfstringint">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" nillable="true" type="xs:string" />
<xs:element name="Value" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfKeyValueOfstringint" />
<xs:complexType name="ArrayOfArrayOfKeyValueOfstringint">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="ArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfKeyValueOfstringint" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfArrayOfKeyValueOfstringint" />
<xs:complexType name="ArrayOfKeyValueOfOutletProductZE8EwetR">
<xs:annotation>
<xs:appinfo>
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfOutletProductZE8EwetR">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q1="uri:Compac.Services.Sizer.Service" name="Key" nillable="true" type="q1:Outlet" />
<xs:element xmlns:q2="uri:Compac.Services.Sizer.Service" name="Value" nillable="true" type="q2:Product" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfKeyValueOfOutletProductZE8EwetR" nillable="true" type="tns:ArrayOfKeyValueOfOutletProductZE8EwetR" />
<xs:complexType name="ArrayOfKeyValueOfstringstring">
<xs:annotation>
<xs:appinfo>
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfstringstring">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" nillable="true" type="xs:string" />
<xs:element name="Value" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfKeyValueOfstringstring" nillable="true" type="tns:ArrayOfKeyValueOfstringstring" />
<xs:complexType name="ArrayOfguid">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="guid" type="ser:guid" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfguid" nillable="true" type="tns:ArrayOfguid" />
<xs:complexType name="ArrayOfKeyValueOfintint">
<xs:annotation>
<xs:appinfo>
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfintint">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" type="xs:int" />
<xs:element name="Value" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfKeyValueOfintint" nillable="true" type="tns:ArrayOfKeyValueOfintint" />
</xs:schema>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="urn:clr:Compac.Services.Core" elementFormDefault="qualified" targetNamespace="urn:clr:Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.datacontract.org/2004/07/Compac.Services.Core" />
<xs:element name="GetVersion">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="GetVersionResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/Compac.Services.Core" minOccurs="0" name="GetVersionResult" nillable="true" type="q1:ServiceVersion" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/Compac.Services.Core" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.datacontract.org/2004/07/System" />
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xs:complexType name="ServiceVersion">
<xs:sequence>
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/System" minOccurs="0" name="InterfaceVersion" nillable="true" type="q1:Version" />
<xs:element minOccurs="0" name="ProviderName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ProviderVersion" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="ServiceVersion" nillable="true" type="tns:ServiceVersion" />
<xs:complexType name="ServiceEvent">
<xs:sequence>
<xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="EventArgs" nillable="true" type="q2:ArrayOfKeyValueOfstringstring" />
<xs:element minOccurs="0" name="EventName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="EventTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="Id" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="ServiceEvent" nillable="true" type="tns:ServiceEvent" />
</xs:schema>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://Compac.Services.Core" elementFormDefault="qualified" targetNamespace="http://Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="ArgumentFault">
<xs:sequence>
<xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Value" nillable="true" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArgumentFault" nillable="true" type="tns:ArgumentFault" />
</xs:schema>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,373 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="uri:Compac.Services.Sizer.Service" elementFormDefault="qualified" targetNamespace="uri:Compac.Services.Sizer.Service" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:complexType name="ArrayOfBatch">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Batch" nillable="true" type="tns:Batch" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfBatch" nillable="true" type="tns:ArrayOfBatch" />
<xs:complexType name="Batch">
<xs:sequence>
<xs:element minOccurs="0" name="AvoidLayoutChange" type="xs:boolean" />
<xs:element minOccurs="0" name="AvoidSavingOldLayouts" type="xs:boolean" />
<xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Comments" nillable="true" type="q1:ArrayOfstring" />
<xs:element minOccurs="0" name="EndTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="GrowerCode" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Id" type="xs:int" />
<xs:element minOccurs="0" name="IsFinalized" type="xs:boolean" />
<xs:element minOccurs="0" name="LaneGroups" nillable="true" type="tns:ArrayOfLaneGroup" />
<xs:element minOccurs="0" name="LayoutId" type="ser:guid" />
<xs:element minOccurs="0" name="LayoutName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="OverrideLayoutConflicts" type="xs:boolean" />
<xs:element minOccurs="0" name="SampleName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="SizingProfileName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="StartTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="TotallingVariety" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TotallingVarietyCode" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="VarietyId" type="ser:guid" />
<xs:element minOccurs="0" name="VarietyName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="VisionMap" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="Batch" nillable="true" type="tns:Batch" />
<xs:complexType name="ArrayOfLaneGroup">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="LaneGroup" nillable="true" type="tns:LaneGroup" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfLaneGroup" nillable="true" type="tns:ArrayOfLaneGroup" />
<xs:complexType name="LaneGroup">
<xs:sequence>
<xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Lanes" nillable="true" type="q2:ArrayOfint" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="LaneGroup" nillable="true" type="tns:LaneGroup" />
<xs:complexType name="ArrayOfLayout">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Layout" nillable="true" type="tns:Layout" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfLayout" nillable="true" type="tns:ArrayOfLayout" />
<xs:complexType name="Layout">
<xs:sequence>
<xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Assignments" nillable="true" type="q3:ArrayOfKeyValueOfOutletProductZE8EwetR" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Products" nillable="true" type="tns:ArrayOfProduct" />
</xs:sequence>
</xs:complexType>
<xs:element name="Layout" nillable="true" type="tns:Layout" />
<xs:complexType name="Outlet">
<xs:sequence>
<xs:element minOccurs="0" name="CurrentProductId" type="ser:guid" />
<xs:element minOccurs="0" name="DeliveredFruitPerMinute" type="xs:double" />
<xs:element minOccurs="0" name="Id" type="xs:int" />
<xs:element minOccurs="0" name="LastDeliveredBatchId" type="xs:int" />
<xs:element minOccurs="0" name="MaxRateSquareCMPerMinute" type="xs:int" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="PendingProductId" nillable="true" type="ser:guid" />
<xs:element minOccurs="0" name="Status" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Outlet" nillable="true" type="tns:Outlet" />
<xs:complexType name="Product">
<xs:sequence>
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Elements" nillable="true" type="tns:ArrayOfElement" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Pack" nillable="true" type="tns:Pack" />
<xs:element minOccurs="0" name="SpecialInstructions" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TargetFill" nillable="true" type="tns:PackTargetFill" />
</xs:sequence>
</xs:complexType>
<xs:element name="Product" nillable="true" type="tns:Product" />
<xs:complexType name="ArrayOfElement">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Element" nillable="true" type="tns:Element" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfElement" nillable="true" type="tns:ArrayOfElement" />
<xs:complexType name="Element">
<xs:sequence>
<xs:element minOccurs="0" name="Grade" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Label" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Quality" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Size" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Element" nillable="true" type="tns:Element" />
<xs:complexType name="Pack">
<xs:sequence>
<xs:element minOccurs="0" name="BoxType" nillable="true" type="tns:PackBoxType" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="PackControl" nillable="true" type="tns:PackControl" />
<xs:element minOccurs="0" name="Style" nillable="true" type="tns:PackingStyle" />
<xs:element minOccurs="0" name="TargetFill" nillable="true" type="tns:PackTargetFill" />
<xs:element minOccurs="0" name="UserCode" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="Pack" nillable="true" type="tns:Pack" />
<xs:complexType name="PackBoxType">
<xs:sequence>
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Type" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="PackBoxType" nillable="true" type="tns:PackBoxType" />
<xs:complexType name="PackControl">
<xs:sequence>
<xs:element minOccurs="0" name="NumberOfSteps" type="xs:int" />
<xs:element minOccurs="0" name="PackChangeTime" type="xs:int" />
<xs:element minOccurs="0" name="PackLength" type="xs:int" />
<xs:element minOccurs="0" name="StepDelay" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="PackControl" nillable="true" type="tns:PackControl" />
<xs:complexType name="PackingStyle">
<xs:sequence>
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="PackingStyle" nillable="true" type="tns:PackingStyle" />
<xs:complexType name="PackTargetFill">
<xs:sequence>
<xs:element minOccurs="0" name="FillMode" type="tns:PackFillMode" />
<xs:element minOccurs="0" name="Quantity" type="xs:int" />
<xs:element minOccurs="0" name="WeightDecigram" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
<xs:element name="PackTargetFill" nillable="true" type="tns:PackTargetFill" />
<xs:simpleType name="PackFillMode">
<xs:restriction base="xs:string">
<xs:enumeration value="Weight" />
<xs:enumeration value="Quantity" />
<xs:enumeration value="WeightAndQuantity" />
</xs:restriction>
</xs:simpleType>
<xs:element name="PackFillMode" nillable="true" type="tns:PackFillMode" />
<xs:complexType name="ArrayOfProduct">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Product" nillable="true" type="tns:Product" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfProduct" nillable="true" type="tns:ArrayOfProduct" />
<xs:complexType name="Variety">
<xs:sequence>
<xs:element minOccurs="0" name="Grades" nillable="true" type="tns:ArrayOfGrade" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Qualities" nillable="true" type="tns:ArrayOfQuality" />
<xs:element minOccurs="0" name="SizingMaps" nillable="true" type="tns:ArrayOfSizingMap" />
</xs:sequence>
</xs:complexType>
<xs:element name="Variety" nillable="true" type="tns:Variety" />
<xs:complexType name="ArrayOfGrade">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Grade" nillable="true" type="tns:Grade" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfGrade" nillable="true" type="tns:ArrayOfGrade" />
<xs:complexType name="Grade">
<xs:sequence>
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Grade" nillable="true" type="tns:Grade" />
<xs:complexType name="ArrayOfQuality">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Quality" nillable="true" type="tns:Quality" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfQuality" nillable="true" type="tns:ArrayOfQuality" />
<xs:complexType name="Quality">
<xs:sequence>
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Quality" nillable="true" type="tns:Quality" />
<xs:complexType name="ArrayOfSizingMap">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SizingMap" nillable="true" type="tns:SizingMap" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfSizingMap" nillable="true" type="tns:ArrayOfSizingMap" />
<xs:complexType name="SizingMap">
<xs:sequence>
<xs:element minOccurs="0" name="CoveredQualityGrades" nillable="true" type="tns:ArrayOfQualityGradePair" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Sizes" nillable="true" type="tns:ArrayOfSize" />
</xs:sequence>
</xs:complexType>
<xs:element name="SizingMap" nillable="true" type="tns:SizingMap" />
<xs:complexType name="ArrayOfQualityGradePair">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="QualityGradePair" nillable="true" type="tns:QualityGradePair" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfQualityGradePair" nillable="true" type="tns:ArrayOfQualityGradePair" />
<xs:complexType name="QualityGradePair">
<xs:sequence>
<xs:element minOccurs="0" name="Grade" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Quality" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="QualityGradePair" nillable="true" type="tns:QualityGradePair" />
<xs:complexType name="ArrayOfSize">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Size" nillable="true" type="tns:Size" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfSize" nillable="true" type="tns:ArrayOfSize" />
<xs:complexType name="Size">
<xs:sequence>
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Settings" nillable="true" type="q4:ArrayOfKeyValueOfstringstring" />
</xs:sequence>
</xs:complexType>
<xs:element name="Size" nillable="true" type="tns:Size" />
<xs:complexType name="ArrayOfVariety">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Variety" nillable="true" type="tns:Variety" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfVariety" nillable="true" type="tns:ArrayOfVariety" />
<xs:complexType name="ArrayOfPack">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Pack" nillable="true" type="tns:Pack" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfPack" nillable="true" type="tns:ArrayOfPack" />
<xs:complexType name="ArrayOfLabel">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Label" nillable="true" type="tns:Label" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfLabel" nillable="true" type="tns:ArrayOfLabel" />
<xs:complexType name="Label">
<xs:sequence>
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Label" nillable="true" type="tns:Label" />
<xs:complexType name="ArrayOfOutlet">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Outlet" nillable="true" type="tns:Outlet" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfOutlet" nillable="true" type="tns:ArrayOfOutlet" />
<xs:simpleType name="AlarmPriority">
<xs:restriction base="xs:string">
<xs:enumeration value="Low" />
<xs:enumeration value="Medium" />
<xs:enumeration value="High" />
<xs:enumeration value="Critical" />
</xs:restriction>
</xs:simpleType>
<xs:element name="AlarmPriority" nillable="true" type="tns:AlarmPriority" />
<xs:complexType name="Grower">
<xs:sequence>
<xs:element minOccurs="0" name="Address1" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Address2" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Code" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ContactName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Country" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="EmailAddress" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Fax" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Mobile" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Phone" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="State" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TownCity" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TraceabilityId" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ZipCode" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Grower" nillable="true" type="tns:Grower" />
<xs:complexType name="ArrayOfGrower">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Grower" nillable="true" type="tns:Grower" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfGrower" nillable="true" type="tns:ArrayOfGrower" />
<xs:complexType name="AbstractSamplingConfiguration">
<xs:sequence />
</xs:complexType>
<xs:element name="AbstractSamplingConfiguration" nillable="true" type="tns:AbstractSamplingConfiguration" />
<xs:complexType name="ElementSamplingConfiguration">
<xs:complexContent mixed="false">
<xs:extension base="tns:AbstractSamplingConfiguration">
<xs:sequence>
<xs:element minOccurs="0" name="BatchId" type="xs:int" />
<xs:element minOccurs="0" name="Elements" nillable="true" type="tns:ArrayOfElement" />
<xs:element minOccurs="0" name="Limit" nillable="true" type="xs:decimal" />
<xs:element minOccurs="0" name="LimitUnit" type="tns:SamplingMeasurementUnit" />
<xs:element minOccurs="0" name="Ratio" nillable="true" type="tns:Ratio" />
<xs:element minOccurs="0" name="RatioRightUnit" type="tns:RatioMeasurementUnit" />
<xs:element xmlns:q5="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="LaneNumbers" nillable="true" type="q5:ArrayOfint" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ElementSamplingConfiguration" nillable="true" type="tns:ElementSamplingConfiguration" />
<xs:simpleType name="SamplingMeasurementUnit">
<xs:restriction base="xs:string">
<xs:enumeration value="Pieces" />
<xs:enumeration value="Decigrams" />
</xs:restriction>
</xs:simpleType>
<xs:element name="SamplingMeasurementUnit" nillable="true" type="tns:SamplingMeasurementUnit" />
<xs:complexType name="Ratio">
<xs:sequence>
<xs:element minOccurs="0" name="Numerator" type="xs:int" />
<xs:element minOccurs="0" name="Denominator" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="Ratio" nillable="true" type="tns:Ratio" />
<xs:simpleType name="RatioMeasurementUnit">
<xs:restriction base="xs:string">
<xs:enumeration value="Pieces" />
<xs:enumeration value="CartonEquivalents" />
</xs:restriction>
</xs:simpleType>
<xs:element name="RatioMeasurementUnit" nillable="true" type="tns:RatioMeasurementUnit" />
<xs:complexType name="ProductSamplingConfiguration">
<xs:complexContent mixed="false">
<xs:extension base="tns:AbstractSamplingConfiguration">
<xs:sequence>
<xs:element minOccurs="0" name="BatchId" type="xs:int" />
<xs:element xmlns:q6="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="LaneNumbers" nillable="true" type="q6:ArrayOfint" />
<xs:element minOccurs="0" name="Limit" nillable="true" type="xs:decimal" />
<xs:element minOccurs="0" name="LimitUnit" type="tns:SamplingMeasurementUnit" />
<xs:element minOccurs="0" name="ProductId" type="ser:guid" />
<xs:element minOccurs="0" name="Ratio" nillable="true" type="tns:Ratio" />
<xs:element minOccurs="0" name="RatioRightUnit" type="tns:RatioMeasurementUnit" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ProductSamplingConfiguration" nillable="true" type="tns:ProductSamplingConfiguration" />
<xs:complexType name="ArrayOfSamplingProgress">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SamplingProgress" nillable="true" type="tns:SamplingProgress" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfSamplingProgress" nillable="true" type="tns:ArrayOfSamplingProgress" />
<xs:complexType name="SamplingProgress">
<xs:sequence>
<xs:element minOccurs="0" name="CurrentCount" type="xs:decimal" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TargetCount" nillable="true" type="xs:decimal" />
<xs:element minOccurs="0" name="Unit" type="tns:SamplingMeasurementUnit" />
</xs:sequence>
</xs:complexType>
<xs:element name="SamplingProgress" nillable="true" type="tns:SamplingProgress" />
</xs:schema>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="AbstractSamplingConfiguration" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.AbstractSamplingConfiguration, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Batch" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Batch, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="GetVersionResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.GetVersionResponse, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Grower" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Grower, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Label" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Label, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="LaneGroup" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.LaneGroup, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Layout" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Layout, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Outlet" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Outlet, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Pack" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Pack, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Product" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Product, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

Some files were not shown because too many files have changed in this diff Show More