diff --git a/IOB-UT-NEXT/baseUtils.cs b/IOB-UT-NEXT/baseUtils.cs
index c1bab73f..9ad2a84e 100644
--- a/IOB-UT-NEXT/baseUtils.cs
+++ b/IOB-UT-NEXT/baseUtils.cs
@@ -22,6 +22,11 @@ namespace IOB_UT_NEXT
///
public static DateTime dtVetoPing = DateTime.Now;
+ ///
+ /// Indicazione VETO accodamento INGRESSI/EVENTI sino alla data-ora indicata
+ ///
+ public static DateTime dtVetoQueueIN = DateTime.Now;
+
///
/// Indicazione VETO invio a server sino alla data-ora indicata
///
diff --git a/IOB-WIN-NEXT/DATA/CONF/PING.ini b/IOB-WIN-NEXT/DATA/CONF/PING.ini
index de8135e3..dcf81672 100644
--- a/IOB-WIN-NEXT/DATA/CONF/PING.ini
+++ b/IOB-WIN-NEXT/DATA/CONF/PING.ini
@@ -34,6 +34,7 @@ MAX_COUNTER_BLINK = 15
BLINK_FILT=0
[OPTPAR]
+VETO_QUEUE_IN=15
AUTO_CHANGE_ODL=false
POWEROFF_TIMEOUT_SEC=60
diff --git a/IOB-WIN-NEXT/Iob/Generic.cs b/IOB-WIN-NEXT/Iob/Generic.cs
index d39ae9b1..fc6a3527 100644
--- a/IOB-WIN-NEXT/Iob/Generic.cs
+++ b/IOB-WIN-NEXT/Iob/Generic.cs
@@ -337,6 +337,8 @@ namespace IOB_WIN_NEXT.Iob
// checkLogDir x shrink!
checkShrinkDir();
+ // imposto veto invio per i prossimi sec
+ dtVetoQueueIN = DateTime.Now.AddSeconds(vetoQueueIn);
// concluso!
lgInfoStartup("Istanziata classe preliminare IOBGeneric");
}
@@ -396,6 +398,21 @@ namespace IOB_WIN_NEXT.Iob
}
}
+ ///
+ /// Indicazione VETO accodamento valori INGRESSI/EVENTI sino alla data-ora indicata
+ ///
+ public static DateTime dtVetoQueueIN
+ {
+ get
+ {
+ return utils.dtVetoQueueIN;
+ }
+ set
+ {
+ utils.dtVetoQueueIN = value;
+ }
+ }
+
///
/// Indicazione VETO invio a server sino alla data-ora indicata
///
@@ -1696,6 +1713,7 @@ namespace IOB_WIN_NEXT.Iob
///
public void accodaSigIN(ref newDisplayData currDispData)
{
+ DateTime adesso = DateTime.Now;
// mostro dati variati letti...
displayInData(ref currDispData);
// verifico veto a invio status macchina
@@ -1706,10 +1724,18 @@ namespace IOB_WIN_NEXT.Iob
}
else
{
- // --> accodo (valore già formattato)!
- QueueIN.Enqueue(qEncodeIN);
- // loggo!
- lgDebug($"[QUEUE-IN] {qEncodeIN}");
+ // verifico non sia in veto invio iniziale...
+ if (dtVetoQueueIN >= adesso)
+ {
+ lgDebug($"[VETO FOR QUEUE-IN] | {qEncodeIN} - MESSAGE NOT SENT | {adesso:yyyyMMdd_HHmmss}");
+ }
+ else
+ {
+ // --> accodo (valore già formattato)!
+ QueueIN.Enqueue(qEncodeIN);
+ // loggo!
+ lgDebug($"[QUEUE-IN] {qEncodeIN}");
+ }
}
// aggiorno counters ed eventuale reset
nReadFilt++;
@@ -2102,6 +2128,8 @@ namespace IOB_WIN_NEXT.Iob
return valTransl;
}
+
+
///
/// effettua recupero dati ed invio valori modificati...
///
@@ -4360,6 +4388,11 @@ namespace IOB_WIN_NEXT.Iob
///
protected int[] i_counters;
+ ///
+ /// Durata in secondi del divieto accodamento segnali IN alla fase di startup
+ ///
+ protected int vetoQueueIn = 1;
+
///
/// Indica impianto IN SETUP (fino a quando SMETTE di esserlo...)
///
@@ -8143,6 +8176,12 @@ namespace IOB_WIN_NEXT.Iob
lastPeriodicLog = DateTime.Now;
// fix parametri generali...
enablePrgName = true;
+ // valore standard divieto accodamento segnali IN
+ string VETO_QUEUE_IN = getOptPar("VETO_QUEUE_IN");
+ if (!string.IsNullOrEmpty(VETO_QUEUE_IN))
+ {
+ int.TryParse(VETO_QUEUE_IN, out vetoQueueIn);
+ }
}
private void svuotaCodaContapezzi()
diff --git a/IOB-WIN-NEXT/IobFile/IobFileSoitaab.cs b/IOB-WIN-NEXT/IobFile/IobFileSoitaab.cs
index bfa3b5f0..4f617e33 100644
--- a/IOB-WIN-NEXT/IobFile/IobFileSoitaab.cs
+++ b/IOB-WIN-NEXT/IobFile/IobFileSoitaab.cs
@@ -528,14 +528,22 @@ namespace IOB_WIN_NEXT.IobFile
int valInt = decodeSoitaabLog(sLog2send.valString);
string currVal = getEncodSigLog(sLog2send.dtRif, valInt, counterSigIN);
- // --> accodo (valore già formattato)!
- QueueIN.Enqueue(currVal);
- // loggo!
- lgTrace(string.Format("[QUEUE-IN] {0}", currVal));
- counterSigIN++;
- if (counterSigIN > 9999)
+ // verifico non sia in veto invio iniziale...
+ if (dtVetoQueueIN >= adesso)
{
- counterSigIN = 0;
+ lgDebug($"[VETO FOR QUEUE-IN] | {currVal} - MESSAGE NOT SENT | {adesso:yyyyMMdd_HHmmss}");
+ }
+ else
+ {
+ // --> accodo (valore già formattato)!
+ QueueIN.Enqueue(currVal);
+ // loggo!
+ lgTrace(string.Format("[QUEUE-IN] {0}", currVal));
+ counterSigIN++;
+ if (counterSigIN > 9999)
+ {
+ counterSigIN = 0;
+ }
}
}
diff --git a/IOB-WIN-NEXT/IobSql/SqlServPama.cs b/IOB-WIN-NEXT/IobSql/SqlServPama.cs
index fbd754a3..a0427b47 100644
--- a/IOB-WIN-NEXT/IobSql/SqlServPama.cs
+++ b/IOB-WIN-NEXT/IobSql/SqlServPama.cs
@@ -639,14 +639,22 @@ namespace IOB_WIN_NEXT.IobSql
foreach (var sLog2send in data2send)
{
string currVal = getEncodSigLog(sLog2send.DtEve, sLog2send.ValInt, counterSigIN);
- // --> accodo (valore già formattato)!
- QueueIN.Enqueue(currVal);
- // loggo!
- lgTrace(string.Format("[QUEUE-IN] {0}", currVal));
- counterSigIN++;
- if (counterSigIN > 9999)
+ // verifico non sia in veto invio iniziale...
+ if (dtVetoQueueIN >= adesso)
{
- counterSigIN = 0;
+ lgDebug($"[VETO FOR QUEUE-IN] | {currVal} - MESSAGE NOT SENT | {adesso:yyyyMMdd_HHmmss}");
+ }
+ else
+ {
+ // --> accodo (valore già formattato)!
+ QueueIN.Enqueue(currVal);
+ // loggo!
+ lgTrace(string.Format("[QUEUE-IN] {0}", currVal));
+ counterSigIN++;
+ if (counterSigIN > 9999)
+ {
+ counterSigIN = 0;
+ }
}
}
}