Inizio spostamento variabili DateTime in helper DateTimeHelper

This commit is contained in:
Samuele Locatelli
2026-05-23 21:17:07 +02:00
parent ee31322dda
commit eaed03bb1f
10 changed files with 71 additions and 48 deletions
+1
View File
@@ -156,6 +156,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Iob\DateTimeHelper.cs" />
<Compile Include="Iob\Services\CommunicationService.cs" />
<Compile Include="Iob\Services\Machine\MachineCommunicationService.cs" />
<Compile Include="Iob\Services\Networking\ServerCommunicationService.cs" />
+2 -17
View File
@@ -100,24 +100,9 @@ namespace IOB_UT_NEXT.Iob
public bool doStartMemDump;
/// <summary>
/// Data/ora ultimo avvio adapter
/// Collettore di tutte le variabili scadenza DateTime
/// </summary>
public DateTime dtAvvioAdp = DateTime.Now;
/// <summary>
/// Data/ora ultimo spegnimento adapter
/// </summary>
public DateTime dtStopAdp = DateTime.Now;
/// <summary>
/// Indicazione VETO check status IOB x evitare loop troppo stretti...
/// </summary>
public DateTime dtVetoCheckIOB = DateTime.Now.AddDays(-1);
/// <summary>
/// Indicazione VETO check sync ricette x evitare loop troppo stretti...
/// </summary>
public DateTime dtVetoCheckSyncRecipe = DateTime.Now.AddHours(-1);
public DateTimeHelper DtHelp;
/// <summary>
/// Abilitazione lettura PrgName
+37
View File
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IOB_UT_NEXT.Iob
{
/// <summary>
/// Classe helper di tutti gli oggetti scadenze DateTime impiegate
/// </summary>
public class DateTimeHelper
{
/// <summary>
/// Data/ora ultimo avvio adapter
/// </summary>
public DateTime AvvioAdp = DateTime.Now;
/// <summary>
/// Data/ora ultimo spegnimento adapter
/// </summary>
public DateTime StopAdp = DateTime.Now;
/// <summary>
/// Indicazione VETO check status IOB x evitare loop troppo stretti...
/// </summary>
public DateTime VetoCheckIOB = DateTime.Now.AddDays(-1);
/// <summary>
/// Indicazione VETO check sync ricette x evitare loop troppo stretti...
/// </summary>
public DateTime VetoCheckSyncRecipe = DateTime.Now.AddHours(-1);
}
}
+1 -1
View File
@@ -1581,7 +1581,7 @@ namespace IOB_WIN_FANUC.Iob
if (connectionOk)
{
checkVetoQueueIn();
dtAvvioAdp = DateTime.Now;
DtHelp.AvvioAdp = DateTime.Now;
if (adpRunning)
{
lgInfo("Connessione OK");
+1 -1
View File
@@ -2153,7 +2153,7 @@ namespace IOB_WIN_FORM
Dictionary<string, string> setPar = new Dictionary<string, string>();
setPar.Add("IP", iobObj.IOBConfFull.Device.Connect.IpAddr);
setPar.Add("PORT", iobObj.IOBConfFull.Device.Connect.Port);
string note = $"{iobObj.IOBConfFull.General.FilenameIOB} | DT ultimo avvio: {iobObj.dtAvvioAdp}";
string note = $"{iobObj.IOBConfFull.General.FilenameIOB} | DT ultimo avvio: {iobObj.DtHelp.AvvioAdp}";
// verifico IOB status
IobWinStatus currIobStatus = new IobWinStatus()
{
+11 -11
View File
@@ -309,7 +309,7 @@ namespace IOB_WIN_FORM.Iob
/// <summary>
/// Determina se il contapezzi plc sia valido (lo è se data avvio adapter è prima di ultimo dato registrato in contapezzi)
/// </summary>
public bool plcPzCountValid => machineCommService.GetLastObservedData() > dtAvvioAdp;
public bool plcPzCountValid => machineCommService.GetLastObservedData() > DtHelp.AvvioAdp;
/// <summary>
@@ -609,7 +609,7 @@ namespace IOB_WIN_FORM.Iob
public async Task<bool> CheckIobEnabled()
{
// 1. Controllo Veto (Sincrono)
if (dtVetoCheckIOB >= DateTime.Now)
if (DtHelp.VetoCheckIOB >= DateTime.Now)
return IobOnline;
bool currentAnsw = false;
@@ -1899,16 +1899,16 @@ namespace IOB_WIN_FORM.Iob
// loggo SOLO se del mio IOB corrente...
if (item.classCall == IOBConfFull.General.FilenameIOB)
{
lgInfo("{4}|Chiamate {0}: effettuate {1}, tempo medio {2:N2} msec | impegno canale {3:P3}", item.codCall, item.numCall, item.avgMsec, item.totMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds, IOBConfFull.General.CodIOB);
lgInfo("{4}|Chiamate {0}: effettuate {1}, tempo medio {2:N2} msec | impegno canale {3:P3}", item.codCall, item.numCall, item.avgMsec, item.totMsec.TotalSeconds / DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalSeconds, IOBConfFull.General.CodIOB);
globNumCall += item.numCall;
globAvgMsec += item.totMsec;
}
}
// riporto conteggio medio al secondo...
lgInfo("{4}|Chiamate GLOBALI: {0}, periodo: {1:N2} minuti.cent, tempo medio {2:N2} msec | impegno canale {3:P3}", globNumCall, DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds, IOBConfFull.General.CodIOB);
lgInfo("{4}|Chiamate GLOBALI: {0}, periodo: {1:N2} minuti.cent, tempo medio {2:N2} msec | impegno canale {3:P3}", globNumCall, DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalMinutes, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalSeconds, IOBConfFull.General.CodIOB);
lgInfo("{0}--------------- STOP TIMING DATA ---------------{0}", Environment.NewLine);
// mostro in form statistiche globali!
parentForm.updateComStats(string.Format("Periodo: {0:N2}min | {1} x {2:N2}ms | canale {3:P3}", DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globNumCall, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds));
parentForm.updateComStats(string.Format("Periodo: {0:N2}min | {1} x {2:N2}ms | canale {3:P3}", DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalMinutes, globNumCall, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalSeconds));
}
}
@@ -3360,7 +3360,7 @@ namespace IOB_WIN_FORM.Iob
maxJsonDataEv = utils.CRI("maxJsonDataEv");
parentForm.commPlcActive = false;
adpRunning = true;
dtAvvioAdp = adesso;
DtHelp.AvvioAdp = adesso;
lastWatchDog = scaduto;
lastPING = scaduto;
lastReadPLC = scaduto;
@@ -3480,7 +3480,7 @@ namespace IOB_WIN_FORM.Iob
// chiudo la connessione all'adapter...
tryDisconnect();
dtStopAdp = DateTime.Now;
DtHelp.StopAdp = DateTime.Now;
adpTryRestart = tryRestart;
adpRunning = false;
// chiudo!
@@ -3570,7 +3570,7 @@ namespace IOB_WIN_FORM.Iob
/// </summary>
public virtual void tryConnect()
{
dtAvvioAdp = DateTime.Now;
DtHelp.AvvioAdp = DateTime.Now;
queueInEnabCurr = true;
}
@@ -6057,12 +6057,12 @@ namespace IOB_WIN_FORM.Iob
{
DateTime adesso = DateTime.Now;
// verifico veto sync ricette (x non ripetere troppo spesso)
if (adesso > dtVetoCheckSyncRecipe)
if (adesso > DtHelp.VetoCheckSyncRecipe)
{
// effettua sync eventuali NUOVI file ricette
bool okSync = RecipeDoSyncRecipe();
// imposto veto a 1h...
dtVetoCheckSyncRecipe = adesso.AddHours(1);
DtHelp.VetoCheckSyncRecipe = adesso.AddHours(1);
}
}
return answ;
@@ -9451,7 +9451,7 @@ namespace IOB_WIN_FORM.Iob
// Imposto il veto per il prossimo controllo (se ConnOk + rapido sennò meno rapido)
var msWait = baseUtils.nextPauseSendMSec * (connectionOk ? 12 : 150);
dtVetoCheckIOB = adesso.AddMilliseconds(msWait);
DtHelp.VetoCheckIOB = adesso.AddMilliseconds(msWait);
}
#endregion Private Methods
+1 -1
View File
@@ -936,7 +936,7 @@ namespace IOB_WIN_MITSUBISHI.Iob
if (connectionOk)
{
checkVetoQueueIn();
dtAvvioAdp = DateTime.Now;
DtHelp.AvvioAdp = DateTime.Now;
if (adpRunning)
{
lgInfo("Connessione OK");
+1 -1
View File
@@ -491,7 +491,7 @@ namespace IOB_WIN_OSAI.Iob
// refresh stato allarmi!!!
if (connectionOk)
{
dtAvvioAdp = DateTime.Now;
DtHelp.AvvioAdp = DateTime.Now;
queueInEnabCurr = true;
if (adpRunning)
{
+15 -15
View File
@@ -192,17 +192,17 @@ namespace IOB_WIN
/// <summary>
/// Data/ora ultimo avvio adapter
/// </summary>
public DateTime dtAvvioAdp = DateTime.Now;
public DateTime DtHelp.AvvioAdp = DateTime.Now;
/// <summary>
/// Data/ora ultimo spegnimento adapter
/// </summary>
public DateTime dtStopAdp = DateTime.Now;
public DateTime DtHelp.StopAdp = DateTime.Now;
/// <summary>
/// Indicazione VETO check status IOB x evitare loop troppo stretti...
/// </summary>
public DateTime dtVetoCheckIOB = DateTime.Now.AddDays(-1);
public DateTime DtHelp.VetoCheckIOB = DateTime.Now.AddDays(-1);
/// <summary>
/// Abilitazione lettura PrgName
@@ -418,7 +418,7 @@ namespace IOB_WIN
{
bool answ = false;
// controllo se ho veto al check...
if (dtVetoCheckIOB < DateTime.Now)
if (DtHelp.VetoCheckIOB < DateTime.Now)
{
if (DemoOut)
{
@@ -466,7 +466,7 @@ namespace IOB_WIN
{
lastIobOnline = DateTime.Now;
}
dtVetoCheckIOB = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 5);
DtHelp.VetoCheckIOB = DateTime.Now.AddMilliseconds(baseUtils.nextPauseSendMSec * 5);
}
catch
{ }
@@ -3554,16 +3554,16 @@ namespace IOB_WIN
// loggo SOLO se del mio IOB corrente...
if (item.classCall == cIobConf.codIOB)
{
lgInfo("{4}|Chiamate {0}: effettuate {1}, tempo medio {2:N2} msec | impegno canale {3:P3}", item.codCall, item.numCall, item.avgMsec, item.totMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds, cIobConf.codIOB);
lgInfo("{4}|Chiamate {0}: effettuate {1}, tempo medio {2:N2} msec | impegno canale {3:P3}", item.codCall, item.numCall, item.avgMsec, item.totMsec.TotalSeconds / DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalSeconds, cIobConf.codIOB);
globNumCall += item.numCall;
globAvgMsec += item.totMsec;
}
}
// riporto conteggio medio al secondo...
lgInfo("{4}|Chiamate GLOBALI: {0}, periodo: {1:N2} minuti.cent, tempo medio {2:N2} msec | impegno canale {3:P3}", globNumCall, DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds, cIobConf.codIOB);
lgInfo("{4}|Chiamate GLOBALI: {0}, periodo: {1:N2} minuti.cent, tempo medio {2:N2} msec | impegno canale {3:P3}", globNumCall, DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalMinutes, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalSeconds, cIobConf.codIOB);
lgInfo("{0}--------------- STOP TIMING DATA ---------------{0}", Environment.NewLine);
// mostro in form statistiche globali!
parentForm.updateComStats(string.Format("Periodo: {0:N2}min | {1} x {2:N2}ms | canale {3:P3}", DateTime.Now.Subtract(dtAvvioAdp).TotalMinutes, globNumCall, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(dtAvvioAdp).TotalSeconds));
parentForm.updateComStats(string.Format("Periodo: {0:N2}min | {1} x {2:N2}ms | canale {3:P3}", DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalMinutes, globNumCall, globAvgMsec.TotalMilliseconds / globNumCall, globAvgMsec.TotalSeconds / DateTime.Now.Subtract(DtHelp.AvvioAdp).TotalSeconds));
}
}
@@ -4436,11 +4436,11 @@ namespace IOB_WIN
maxJsonDataEv = utils.CRI("maxJsonDataEv");
parentForm.commPlcActive = false;
adpRunning = true;
dtAvvioAdp = DateTime.Now;
lastWatchDog = dtAvvioAdp;
lastPING = dtAvvioAdp;
lastReadPLC = dtAvvioAdp.AddMinutes(-1);
lastDisconnCheck = dtAvvioAdp;
DtHelp.AvvioAdp = DateTime.Now;
lastWatchDog = DtHelp.AvvioAdp;
lastPING = DtHelp.AvvioAdp;
lastReadPLC = DtHelp.AvvioAdp.AddMinutes(-1);
lastDisconnCheck = DtHelp.AvvioAdp;
TimingData.resetData();
// aggiungo altri defaults
setDefaults(resetQueue);
@@ -4515,7 +4515,7 @@ namespace IOB_WIN
// chiudo la connessione all'adapter...
tryDisconnect();
dtStopAdp = DateTime.Now;
DtHelp.StopAdp = DateTime.Now;
adpTryRestart = tryRestart;
adpRunning = false;
// chiudo!
@@ -4602,7 +4602,7 @@ namespace IOB_WIN
/// </summary>
public virtual void tryConnect()
{
dtAvvioAdp = DateTime.Now;
DtHelp.AvvioAdp = DateTime.Now;
}
/// <summary>
+1 -1
View File
@@ -674,7 +674,7 @@ namespace IOB_WIN
// refresh stato allarmi!!!
if (connectionOk)
{
dtAvvioAdp = DateTime.Now;
DtHelp.AvvioAdp = DateTime.Now;
if (adpRunning)
{
lgInfo("Connessione OK");