Continuo fix helper datetime

This commit is contained in:
Samuele Locatelli
2026-05-23 21:41:04 +02:00
parent bd1d95112b
commit 2a19e3c425
11 changed files with 73 additions and 97 deletions
-46
View File
@@ -228,31 +228,11 @@ namespace IOB_UT_NEXT.Iob
/// </summary>
public Stopwatch sw = new Stopwatch();
/// <summary>
/// Imposta veto lettura dati (es per DB a 2 sec)
/// </summary>
public DateTime vetoDataRead = DateTime.Now;
/// <summary>
/// Imposta veto SYNC dati (es per DB 2 DB a 10 sec)
/// </summary>
public DateTime vetoDataSync = DateTime.Now;
/// <summary>
/// Veto (in sec) a nuovi ping (x IOB PING, FTP...)
/// </summary>
public int vetoPingSec = 1;
/// <summary>
/// Veto specifico per la gestione (svuotamento) coda contapezzi (es in fase di attrezzaggio e reset lenti)
/// Tipicamente impostato a DelayReadPzCountSetup dopo attrezzaggio...
/// </summary>
public DateTime vetoQueuePzCount = DateTime.Now;
/// <summary>
/// Imposta veto chiamata split (durante chiamata, per 60 sec)
/// </summary>
public DateTime vetoSplit = DateTime.Now.AddMinutes(1);
/// <summary>
/// alias booleano true = W
@@ -273,32 +253,6 @@ namespace IOB_UT_NEXT.Iob
/// </summary>
public static bool DemoOut => utils.CRB("DemoOut");
/// <summary>
/// Indicazione VETO PING a server sino alla data-ora indicata
/// </summary>
public static DateTime dtVetoPing
{
get => utils.dtVetoPing;
set => utils.dtVetoPing = value;
}
/// <summary>
/// Indicazione VETO accodamento valori INGRESSI/EVENTI sino alla data-ora indicata
/// </summary>
public static DateTime dtVetoQueueIN
{
get => utils.dtVetoQueueIN;
set => utils.dtVetoQueueIN = value;
}
/// <summary>
/// Indicazione VETO invio a server sino alla data-ora indicata
/// </summary>
public static DateTime dtVetoSend
{
get => utils.dtVetoSend;
set => utils.dtVetoSend = value;
}
/// <summary>
/// Verifica se sia abilitato test lettura blocchi memoria all'avvio
+23 -1
View File
@@ -1,4 +1,5 @@
using System;
using IOB_UT_NEXT.Services.Files;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -98,6 +99,27 @@ namespace IOB_UT_NEXT.Iob
/// </summary>
public DateTime VetoCheckSyncRecipe = DateTime.Now.AddHours(-1);
/// <summary>
/// Imposta veto lettura dati (es per DB a 2 sec)
/// </summary>
public DateTime vetoDataRead = DateTime.Now;
/// <summary>
/// Imposta veto SYNC dati (es per DB 2 DB a 10 sec)
/// </summary>
public DateTime vetoDataSync = DateTime.Now;
/// <summary>
/// Veto specifico per la gestione (svuotamento) coda contapezzi (es in fase di attrezzaggio e reset lenti)
/// Tipicamente impostato a DelayReadPzCountSetup dopo attrezzaggio...
/// </summary>
public DateTime vetoQueuePzCount = DateTime.Now;
/// <summary>
/// Imposta veto chiamata split (durante chiamata, per 60 sec)
/// </summary>
public DateTime vetoSplit = DateTime.Now.AddMinutes(1);
#endregion Public Fields
}
}
+3 -3
View File
@@ -53,17 +53,17 @@ namespace IOB_UT
/// <summary>
/// Indicazione VETO PING a server sino alla data-ora indicata
/// </summary>
public static DateTime dtVetoPing = DateTime.Now;
public static DateTime DtHelp.dtVetoPing = DateTime.Now;
#if false
{
get
{
return redisMan.servStatus.dtVetoPing;
return redisMan.servStatus.DtHelp.dtVetoPing;
}
set
{
var currData = redisMan.servStatus;
currData.dtVetoPing = value;
currData.DtHelp.dtVetoPing = value;
redisMan.servStatus = currData;
}
}
+2 -2
View File
@@ -117,10 +117,10 @@ namespace IOB_WIN_FILE.IobFile
if (connectionOk)
{
// controllo veto checkDB
if (adesso > vetoDataRead)
if (adesso > DtHelp.vetoDataRead)
{
// predispongo prox veto...
vetoDataRead = adesso.AddSeconds(vetoReadFileSec);
DtHelp.vetoDataRead = adesso.AddSeconds(vetoReadFileSec);
// semaforo
currDispData.semIn = Semaforo.SV;
// verifico SignLog e processo
+18 -18
View File
@@ -96,8 +96,8 @@ namespace IOB_WIN_FORM.Iob
checkShrinkDir();
// imposto veto invio per i prossimi sec
dtVetoQueueIN = DateTime.Now.AddSeconds(vetoQueueIn);
string msgVeto = $"Impostato veto QUEUE-IN a {vetoQueueIn}s | fino alle {dtVetoQueueIN:yyyy.MM.dd HH:mm:ss}";
utils.dtVetoQueueIN = DateTime.Now.AddSeconds(vetoQueueIn);
string msgVeto = $"Impostato veto QUEUE-IN a {vetoQueueIn}s | fino alle {utils.dtVetoQueueIN:yyyy.MM.dd HH:mm:ss}";
lgInfoStartup(msgVeto);
lgInfo(msgVeto);
@@ -648,7 +648,7 @@ namespace IOB_WIN_FORM.Iob
public bool CheckServerAlive() // Rimosso async, restituisce bool
{
// 1. Controllo Veto (Sincrono)
if (dtVetoPing >= DateTime.Now) return MPOnline;
if (utils.dtVetoPing >= DateTime.Now) return MPOnline;
if (DemoOut) return true;
// 2. Eseguo la parte asincrona forzando l'attesa
@@ -670,7 +670,7 @@ namespace IOB_WIN_FORM.Iob
public async Task<bool> CheckServerAliveAsync()
{
// 1. Controllo Veto (Sincrono)
if (dtVetoPing >= DateTime.Now) return MPOnline;
if (utils.dtVetoPing >= DateTime.Now) return MPOnline;
if (DemoOut) return true;
bool isAlive = await ExecuteApiCheckWithRetryAsync(maxRetries: 7);
@@ -686,7 +686,7 @@ namespace IOB_WIN_FORM.Iob
/// </summary>
public void checkVetoQueueIn()
{
queueInEnabCurr = dtVetoQueueIN < DateTime.Now;
queueInEnabCurr = utils.dtVetoQueueIN < DateTime.Now;
}
/// <summary>
@@ -1095,7 +1095,7 @@ namespace IOB_WIN_FORM.Iob
taskVal = $"NO DATA MEM, SET task: {iKey} --> {item.Value}";
}
// imposto reset gestione pzcount da parametri
vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup);
DtHelp.vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup);
dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount);
}
else
@@ -1173,7 +1173,7 @@ namespace IOB_WIN_FORM.Iob
{
lgDebug($"Generic.executeTasks {tName} | resetContapezziPLC");
taskOk = resetContapezziPLC(codTav);
vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup);
DtHelp.vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup);
dtVetoReadPzCount = DateTime.Now.AddMinutes(delayMinReadPzCount);
}
taskVal = taskOk ? "startSetup | RESET: SETUP START" : "startSetup | PZ RESET DISABLED | NO EXEC";
@@ -1289,11 +1289,11 @@ namespace IOB_WIN_FORM.Iob
public async Task<bool> forceSplitOdl()
{
bool fatto = false;
if (vetoSplit < DateTime.Now)
if (DtHelp.vetoSplit < DateTime.Now)
{
lgInfo("Richiesto forceSplitOdl");
// imposto veto x 1 minuto ad altre chiamate...
vetoSplit = DateTime.Now.AddMinutes(1);
DtHelp.vetoSplit = DateTime.Now.AddMinutes(1);
// eseguo SOLO SE sono online...
if (MPOnline && IobOnline)
{
@@ -3370,11 +3370,11 @@ namespace IOB_WIN_FORM.Iob
setDefaults(resetQueue);
adpTryRestart = true;
// sistemo altri check avvio
dtVetoQueueIN = DateTime.Now.AddSeconds(vetoQueueIn);
utils.dtVetoQueueIN = DateTime.Now.AddSeconds(vetoQueueIn);
queueInEnabCurr = false;
string msgVeto = $"Impostato veto QUEUE-IN a {vetoQueueIn}s | fino alle {dtVetoQueueIN:yyyy.MM.dd HH:mm:ss}";
string msgVeto = $"Impostato veto QUEUE-IN a {vetoQueueIn}s | fino alle {utils.dtVetoQueueIN:yyyy.MM.dd HH:mm:ss}";
lgInfoStartup(msgVeto);
lgDebug($"startAdapter completed | veto queueIn impostato per {vetoQueueIn}s fino alle {dtVetoQueueIN:yyyy.MM.dd HH:mm:ss}");
lgDebug($"startAdapter completed | veto queueIn impostato per {vetoQueueIn}s fino alle {utils.dtVetoQueueIN:yyyy.MM.dd HH:mm:ss}");
}
/// <summary>
@@ -3797,20 +3797,20 @@ namespace IOB_WIN_FORM.Iob
if (currentAlive)
{
lgInfo("SERVER ONLINE");
dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 10);
utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 10);
}
else
{
lgError("SERVER OFFLINE");
// Veto standard per server offline
dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 20);
utils.dtVetoSend = dtVetoPing;
utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 20);
utils.dtVetoSend = utils.dtVetoPing;
}
}
else
{
// Se lo stato è invariato (es. era online e resta online), allunghiamo il prossimo controllo
dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 30);
utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 30);
}
}
@@ -9162,9 +9162,9 @@ namespace IOB_WIN_FORM.Iob
private async Task SvuotaCodaContapezziAsync()
{
// verifico non sia impedita la gestione contapezzi (per evitare invio su macchine lente nel reset all'attrezzaggio)
if (DateTime.Now <= vetoQueuePzCount)
if (DateTime.Now <= DtHelp.vetoQueuePzCount)
{
lgInfo($"Ciclo SvuotaCodaContapezziAsync DISABILITATO fino a {vetoQueuePzCount}");
lgInfo($"Ciclo SvuotaCodaContapezziAsync DISABILITATO fino a {DtHelp.vetoQueuePzCount}");
}
else
{
+1 -1
View File
@@ -114,7 +114,7 @@ namespace IOB_WIN_OPC_UA.IobOpc
if (addResetPzCount)
{
// imposto reset gestione pzcount da parametri
vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup);
DtHelp.vetoQueuePzCount = DateTime.Now.AddMinutes(IOBConfFull.General.DelayReadPzCountSetup);
// se è una doppia tavola aggiungo anche tag "processOtherInfo"...
if (isMulti)
{
+2 -2
View File
@@ -117,10 +117,10 @@ namespace IOB_WIN_SQL.IobFile
if (connectionOk)
{
// controllo veto checkDB
if (adesso > vetoDataRead)
if (adesso > DtHelp.vetoDataRead)
{
// predispongo prox veto...
vetoDataRead = adesso.AddSeconds(vetoReadFileSec);
DtHelp.vetoDataRead = adesso.AddSeconds(vetoReadFileSec);
// semaforo
currDispData.semIn = Semaforo.SV;
// verifico SignLog e processo
+4 -4
View File
@@ -253,15 +253,15 @@ namespace IOB_WIN_SQL.IobSql
if (connectionOk)
{
// controllo veto checkDB
if (adesso > vetoDataRead)
if (adesso > DtHelp.vetoDataRead)
{
// predispongo prox veto...
vetoDataRead = adesso.AddSeconds(vetoReadDbSec);
if (adesso > vetoDataSync)
DtHelp.vetoDataRead = adesso.AddSeconds(vetoReadDbSec);
if (adesso > DtHelp.vetoDataSync)
{
// effettua sync
execImportAll();
vetoDataSync = adesso.AddSeconds(VetoSyncDbSec);
DtHelp.vetoDataSync = adesso.AddSeconds(VetoSyncDbSec);
}
// semaforo
+4 -4
View File
@@ -253,15 +253,15 @@ namespace IOB_WIN_SQL.IobSql
if (connectionOk)
{
// controllo veto checkDB
if (adesso > vetoDataRead)
if (adesso > DtHelp.vetoDataRead)
{
// predispongo prox veto...
vetoDataRead = adesso.AddSeconds(vetoReadDbSec);
if (adesso > vetoDataSync)
DtHelp.vetoDataRead = adesso.AddSeconds(vetoReadDbSec);
if (adesso > DtHelp.vetoDataSync)
{
// effettua sync
execImportAll();
vetoDataSync = adesso.AddSeconds(VetoSyncDbSec);
DtHelp.vetoDataSync = adesso.AddSeconds(VetoSyncDbSec);
}
// semaforo
+11 -11
View File
@@ -332,7 +332,7 @@ namespace IOB_WIN
/// <summary>
/// Imposta veto chiamata split (durante chiamata, per 60 sec)
/// </summary>
public DateTime vetoSplit = DateTime.Now.AddMinutes(1);
public DateTime DtHelp.vetoSplit = DateTime.Now.AddMinutes(1);
/// <summary>
/// alias booleano true = W
@@ -690,15 +690,15 @@ namespace IOB_WIN
/// <summary>
/// Indicazione VETO PING a server sino alla data-ora indicata
/// </summary>
public static DateTime dtVetoPing
public static DateTime DtHelp.dtVetoPing
{
get
{
return utils.dtVetoPing;
return utils.DtHelp.dtVetoPing;
}
set
{
utils.dtVetoPing = value;
utils.DtHelp.dtVetoPing = value;
}
}
@@ -741,7 +741,7 @@ namespace IOB_WIN
{
bool answ = false;
// controllo se ho un VETO all'invio...
if (dtVetoPing < DateTime.Now)
if (DtHelp.dtVetoPing < DateTime.Now)
{
if (DemoOut)
{
@@ -810,7 +810,7 @@ namespace IOB_WIN
{
lgInfo("SERVER ONLINE in checkServerAlive");
parentForm.commSrvActive = 1;
dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec);
DtHelp.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec);
}
else
{
@@ -823,7 +823,7 @@ namespace IOB_WIN
else
{
// allungo periodo controllo...
dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 3);
DtHelp.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 3);
}
}
else
@@ -831,8 +831,8 @@ namespace IOB_WIN
lgInfo($"SERVER NOT RESPONDING (PING at {cIobConf.serverData.MPIP})");
MPOnline = false;
// imposto veto a 10 volte reinvio dati standard...
dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 3);
utils.dtVetoSend = dtVetoPing;
DtHelp.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 3);
utils.dtVetoSend = DtHelp.dtVetoPing;
}
}
}
@@ -3070,10 +3070,10 @@ namespace IOB_WIN
public bool forceSplitOdl()
{
bool fatto = false;
if (vetoSplit < DateTime.Now)
if (DtHelp.vetoSplit < DateTime.Now)
{
// imposto veto x 1 minuto ad altre chiamate...
vetoSplit = DateTime.Now.AddMinutes(1);
DtHelp.vetoSplit = DateTime.Now.AddMinutes(1);
// eseguo SOLO SE sono online...
if (MPOnline && IobOnline)
{
+5 -5
View File
@@ -321,7 +321,7 @@ namespace IOB_WIN
bool answ = false;
if (!string.IsNullOrEmpty(MPIP))
{
if (utils.dtVetoPing < DateTime.Now)
if (utils.DtHelp.dtVetoPing < DateTime.Now)
{
IPStatus pingStatus = testPingServer;
// se passa il ping faccio il resto...
@@ -344,7 +344,7 @@ namespace IOB_WIN
if (answ)
{
lgInfo("SERVER ONLINE");
utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec);
utils.DtHelp.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec);
}
else
{
@@ -356,7 +356,7 @@ namespace IOB_WIN
else
{
// allungo periodo controllo...
utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 3);
utils.DtHelp.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 3);
}
}
else
@@ -365,8 +365,8 @@ namespace IOB_WIN
utils.MPIO_Online = false;
updateComStats(0, 0, false);
// imposto veto a 10 volte reinvio dati standard...
utils.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 10);
utils.dtVetoSend = utils.dtVetoPing;
utils.DtHelp.dtVetoPing = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 10);
utils.dtVetoSend = utils.DtHelp.dtVetoPing;
}
}
else