Aggiunto veto accodamento QUEUE-IN:

- default 1 sec
- configurabile in OPCPAR come VETO_QUEUE_IN=15
- indica num secondi x cui NON accoda info IN per l'invio
This commit is contained in:
Samuele Locatelli
2023-09-08 15:22:38 +02:00
parent d0dd2707b3
commit 83e971f1e9
5 changed files with 79 additions and 18 deletions
+5
View File
@@ -22,6 +22,11 @@ namespace IOB_UT_NEXT
/// </summary>
public static DateTime dtVetoPing = DateTime.Now;
/// <summary>
/// Indicazione VETO accodamento INGRESSI/EVENTI sino alla data-ora indicata
/// </summary>
public static DateTime dtVetoQueueIN = DateTime.Now;
/// <summary>
/// Indicazione VETO invio a server sino alla data-ora indicata
/// </summary>
+1
View File
@@ -34,6 +34,7 @@ MAX_COUNTER_BLINK = 15
BLINK_FILT=0
[OPTPAR]
VETO_QUEUE_IN=15
AUTO_CHANGE_ODL=false
POWEROFF_TIMEOUT_SEC=60
+43 -4
View File
@@ -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
}
}
/// <summary>
/// Indicazione VETO accodamento valori INGRESSI/EVENTI sino alla data-ora indicata
/// </summary>
public static DateTime dtVetoQueueIN
{
get
{
return utils.dtVetoQueueIN;
}
set
{
utils.dtVetoQueueIN = value;
}
}
/// <summary>
/// Indicazione VETO invio a server sino alla data-ora indicata
/// </summary>
@@ -1696,6 +1713,7 @@ namespace IOB_WIN_NEXT.Iob
/// </summary>
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;
}
/// <summary>
/// effettua recupero dati ed invio valori modificati...
/// </summary>
@@ -4360,6 +4388,11 @@ namespace IOB_WIN_NEXT.Iob
/// </summary>
protected int[] i_counters;
/// <summary>
/// Durata in secondi del divieto accodamento segnali IN alla fase di startup
/// </summary>
protected int vetoQueueIn = 1;
/// <summary>
/// Indica impianto IN SETUP (fino a quando SMETTE di esserlo...)
/// </summary>
@@ -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()
+15 -7
View File
@@ -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;
}
}
}
+15 -7
View File
@@ -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;
}
}
}
}