From b12c890e66720dd2380718548bc08c49ec8abb1e Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sat, 21 Oct 2017 10:17:49 +0200 Subject: [PATCH] va testato meglio in debug, ma SEMBRA OK il prefiltraggio dati... --- IOB-WIN/IOB-WIN/App.config | 2 +- IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat | 680 ++++++++++++++++++++++++++- IOB-WIN/IOB-WIN/IobGeneric.cs | 25 +- 3 files changed, 676 insertions(+), 31 deletions(-) diff --git a/IOB-WIN/IOB-WIN/App.config b/IOB-WIN/IOB-WIN/App.config index 6ba23a6..f12e24e 100644 --- a/IOB-WIN/IOB-WIN/App.config +++ b/IOB-WIN/IOB-WIN/App.config @@ -10,7 +10,7 @@ - + diff --git a/IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat b/IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat index 8a845fe..c59e482 100644 --- a/IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat +++ b/IOB-WIN/IOB-WIN/DATA/DAT/SimData.dat @@ -23,33 +23,131 @@ 1 ; allarme (BLINK) 9 -1 +9 +9 +9 9 1 -9 +1 +1 +1 +1 1 9 +9 +9 +9 +9 +1 +1 +1 +1 +1 +19 +9 +9 +9 +9 +1 +1 +1 +1 +1 1 ; allarme manuale (2 blink, periodo diverso) 25 -17 -9 -1 25 17 -9 -1 -25 17 9 +9 +1 +1 +25 +25 +17 +17 +9 +9 +1 +1 +25 +25 +17 +17 +9 +9 +1 +1 +25 +25 +17 +17 +9 +9 +1 +1 +25 +25 +17 +17 +9 +9 +1 1 ; indico manuale 17 17 +17 +17 +17 +17 +17 +17 +17 +17 +1 +1 +1 +1 +1 +1 1 1 17 17 +17 +17 +17 +17 +17 +17 +17 +17 +1 +1 +1 +1 +1 +1 +1 +1 +17 +17 +17 +17 +17 +17 +17 +17 +17 +17 +1 +1 +1 +1 +1 +1 1 1 ; RUN! @@ -97,9 +195,47 @@ 3 ; contapezzo 7 +7 +7 +7 +7 +3 +3 +3 +3 3 3 7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 3 3 ; RUN @@ -147,11 +283,49 @@ 3 ; contapezzo 7 -3 -3 +7 +7 +7 7 3 3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 ; RUN 3 3 @@ -195,38 +369,300 @@ 3 3 3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +; contapezzo +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +; RUN +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 ; allarme (BLINK) 9 -1 +9 +9 +9 9 1 -9 +1 +1 +1 +1 1 9 +9 +9 +9 +9 +1 +1 +1 +1 +1 +19 +9 +9 +9 +9 +1 +1 +1 +1 +1 1 ; allarme manuale (2 blink, periodo diverso) 25 -17 -9 -1 25 17 -9 -1 -25 17 9 +9 +1 +1 +25 +25 +17 +17 +9 +9 +1 +1 +25 +25 +17 +17 +9 +9 +1 +1 +25 +25 +17 +17 +9 +9 +1 +1 +25 +25 +17 +17 +9 +9 +1 1 ; indico manuale 17 17 -1 -1 +17 +17 +17 +17 +17 +17 17 17 1 1 -; RUN +1 +1 +1 +1 +1 +1 +17 +17 +17 +17 +17 +17 +17 +17 +17 +17 +1 +1 +1 +1 +1 +1 +1 +1 +17 +17 +17 +17 +17 +17 +17 +17 +17 +17 +1 +1 +1 +1 +1 +1 +1 +1 +; RUN! 3 3 3 @@ -271,9 +707,47 @@ 3 ; contapezzo 7 +7 +7 +7 +7 +3 +3 +3 +3 3 3 7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 3 3 ; RUN @@ -318,4 +792,168 @@ 3 3 3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +; contapezzo +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +7 +7 +7 +7 +7 +3 +3 +3 +3 +3 +3 +; RUN +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 +3 3 \ No newline at end of file diff --git a/IOB-WIN/IOB-WIN/IobGeneric.cs b/IOB-WIN/IOB-WIN/IobGeneric.cs index ff2d22d..7813a02 100644 --- a/IOB-WIN/IOB-WIN/IobGeneric.cs +++ b/IOB-WIN/IOB-WIN/IobGeneric.cs @@ -1165,7 +1165,7 @@ namespace IOB_WIN /// Esegue filtraggio dati x bit blinking!!! /// private void filterData() - { + { // effettuo filtraggio dei valori letti... inizializzo OUT! B_output = 0; // in primis verifico SE ci siano bit blinkng... se non ci sono OUT=IN... @@ -1181,11 +1181,9 @@ namespace IOB_WIN int iBlink = B_input & currIobConf.BLINK_FILT; // ...aggiungo i "bit che passano" B_output += iBlink; - - // calcolo fronte di salita (0 --> 1 dei bit BLINK) - int iFronte = (B_input & ~B_previous) & currIobConf.BLINK_FILT; + // calcolo QUALI valori (tra quelli blink) siano PASSATI da 0 a 1 --> init counters... - BitArray bBlinkStart = new BitArray(new byte[] { Convert.ToByte(iFronte) }); + BitArray bBlinkStart = new BitArray(new byte[] { Convert.ToByte(iBlink) }); int[] bitsUp = bBlinkStart.Cast().Select(bit => bit ? 1 : 0).ToArray(); for (int i = 0; i < bitsUp.Length; i++) { @@ -1193,7 +1191,10 @@ namespace IOB_WIN if (bitsUp[i] == 1) { // se era zero indico START blink... - if(i_counters[i]==0) lg.Info("START BLINK: B{0}", i); + if (i_counters[i] == 0) + { + lg.Info("START BLINK: B{0}", i); + } // imposto comunque contatore al cambio fronte... i_counters[i] = currIobConf.MAX_COUNTER_BLINK; } @@ -1213,6 +1214,8 @@ namespace IOB_WIN { // decremento! i_counters[i] -= 1; + if (countSim == 0) + { } // se è zero NON faccio nulla, altrimenti SOMMO... if (i_counters[i] > 0) { @@ -1361,7 +1364,12 @@ namespace IOB_WIN } // processo la coda di simulazione (stacco ed accodo 1 valore...) B_input = QueueSIM.Dequeue(); - //Strobes = BitConverter.GetBytes(QueueSIM.Dequeue()); + countSim++; + // ogni 5 loggo... + if (countSim % 5 == 0) + { + lg.Info("Read {0} sim data", countSim); + } } else { @@ -1375,8 +1383,7 @@ namespace IOB_WIN { countSim++; if (countSim > 255) countSim = 0; - B_input =countSim; - //Strobes = BitConverter.GetBytes(countSim); + B_input = countSim; } lastSim = DateTime.Now; }