diff --git a/IOB-UT-NEXT/IOB-UT-NEXT.csproj b/IOB-UT-NEXT/IOB-UT-NEXT.csproj index 9b160f6d..c05344f2 100644 --- a/IOB-UT-NEXT/IOB-UT-NEXT.csproj +++ b/IOB-UT-NEXT/IOB-UT-NEXT.csproj @@ -156,6 +156,7 @@ + diff --git a/IOB-UT-NEXT/Iob/BaseObj.cs b/IOB-UT-NEXT/Iob/BaseObj.cs index 38bfb956..46d5e478 100644 --- a/IOB-UT-NEXT/Iob/BaseObj.cs +++ b/IOB-UT-NEXT/Iob/BaseObj.cs @@ -100,24 +100,9 @@ namespace IOB_UT_NEXT.Iob public bool doStartMemDump; /// - /// Data/ora ultimo avvio adapter + /// Collettore di tutte le variabili scadenza DateTime /// - public DateTime dtAvvioAdp = DateTime.Now; - - /// - /// Data/ora ultimo spegnimento adapter - /// - public DateTime dtStopAdp = DateTime.Now; - - /// - /// Indicazione VETO check status IOB x evitare loop troppo stretti... - /// - public DateTime dtVetoCheckIOB = DateTime.Now.AddDays(-1); - - /// - /// Indicazione VETO check sync ricette x evitare loop troppo stretti... - /// - public DateTime dtVetoCheckSyncRecipe = DateTime.Now.AddHours(-1); + public DateTimeHelper DtHelp; /// /// Abilitazione lettura PrgName diff --git a/IOB-UT-NEXT/Iob/DateTimeHelper.cs b/IOB-UT-NEXT/Iob/DateTimeHelper.cs new file mode 100644 index 00000000..482b7555 --- /dev/null +++ b/IOB-UT-NEXT/Iob/DateTimeHelper.cs @@ -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 +{ + /// + /// Classe helper di tutti gli oggetti scadenze DateTime impiegate + /// + public class DateTimeHelper + { + + /// + /// Data/ora ultimo avvio adapter + /// + public DateTime AvvioAdp = DateTime.Now; + + /// + /// Data/ora ultimo spegnimento adapter + /// + public DateTime StopAdp = DateTime.Now; + + /// + /// Indicazione VETO check status IOB x evitare loop troppo stretti... + /// + public DateTime VetoCheckIOB = DateTime.Now.AddDays(-1); + + /// + /// Indicazione VETO check sync ricette x evitare loop troppo stretti... + /// + public DateTime VetoCheckSyncRecipe = DateTime.Now.AddHours(-1); + + + } +} diff --git a/IOB-WIN-FANUC/Iob/Fanuc.cs b/IOB-WIN-FANUC/Iob/Fanuc.cs index 14716a33..47d50602 100644 --- a/IOB-WIN-FANUC/Iob/Fanuc.cs +++ b/IOB-WIN-FANUC/Iob/Fanuc.cs @@ -1581,7 +1581,7 @@ namespace IOB_WIN_FANUC.Iob if (connectionOk) { checkVetoQueueIn(); - dtAvvioAdp = DateTime.Now; + DtHelp.AvvioAdp = DateTime.Now; if (adpRunning) { lgInfo("Connessione OK"); diff --git a/IOB-WIN-FORM/AdapterForm.cs b/IOB-WIN-FORM/AdapterForm.cs index 7e67bab7..2a2292ba 100644 --- a/IOB-WIN-FORM/AdapterForm.cs +++ b/IOB-WIN-FORM/AdapterForm.cs @@ -2153,7 +2153,7 @@ namespace IOB_WIN_FORM Dictionary setPar = new Dictionary(); 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() { diff --git a/IOB-WIN-FORM/Iob/Generic.cs b/IOB-WIN-FORM/Iob/Generic.cs index 5eaf25dc..3acbcff3 100644 --- a/IOB-WIN-FORM/Iob/Generic.cs +++ b/IOB-WIN-FORM/Iob/Generic.cs @@ -309,7 +309,7 @@ namespace IOB_WIN_FORM.Iob /// /// Determina se il contapezzi plc sia valido (lo è se data avvio adapter è prima di ultimo dato registrato in contapezzi) /// - public bool plcPzCountValid => machineCommService.GetLastObservedData() > dtAvvioAdp; + public bool plcPzCountValid => machineCommService.GetLastObservedData() > DtHelp.AvvioAdp; /// @@ -609,7 +609,7 @@ namespace IOB_WIN_FORM.Iob public async Task 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 /// 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 diff --git a/IOB-WIN-MITSUBISHI/Iob/Mitsubishi.cs b/IOB-WIN-MITSUBISHI/Iob/Mitsubishi.cs index 950de20b..f9b041a0 100644 --- a/IOB-WIN-MITSUBISHI/Iob/Mitsubishi.cs +++ b/IOB-WIN-MITSUBISHI/Iob/Mitsubishi.cs @@ -936,7 +936,7 @@ namespace IOB_WIN_MITSUBISHI.Iob if (connectionOk) { checkVetoQueueIn(); - dtAvvioAdp = DateTime.Now; + DtHelp.AvvioAdp = DateTime.Now; if (adpRunning) { lgInfo("Connessione OK"); diff --git a/IOB-WIN-OSAI/Iob/OSAI.cs b/IOB-WIN-OSAI/Iob/OSAI.cs index 3ca99a89..4d5e9dac 100644 --- a/IOB-WIN-OSAI/Iob/OSAI.cs +++ b/IOB-WIN-OSAI/Iob/OSAI.cs @@ -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) { diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs index 8b1c1a87..5910479e 100644 --- a/IOB-WIN/IobGeneric.cs +++ b/IOB-WIN/IobGeneric.cs @@ -192,17 +192,17 @@ namespace IOB_WIN /// /// Data/ora ultimo avvio adapter /// - public DateTime dtAvvioAdp = DateTime.Now; + public DateTime DtHelp.AvvioAdp = DateTime.Now; /// /// Data/ora ultimo spegnimento adapter /// - public DateTime dtStopAdp = DateTime.Now; + public DateTime DtHelp.StopAdp = DateTime.Now; /// /// Indicazione VETO check status IOB x evitare loop troppo stretti... /// - public DateTime dtVetoCheckIOB = DateTime.Now.AddDays(-1); + public DateTime DtHelp.VetoCheckIOB = DateTime.Now.AddDays(-1); /// /// 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 /// public virtual void tryConnect() { - dtAvvioAdp = DateTime.Now; + DtHelp.AvvioAdp = DateTime.Now; } /// diff --git a/IOB-WIN/IobOSAI.cs b/IOB-WIN/IobOSAI.cs index fb7cd067..83dd2ced 100644 --- a/IOB-WIN/IobOSAI.cs +++ b/IOB-WIN/IobOSAI.cs @@ -674,7 +674,7 @@ namespace IOB_WIN // refresh stato allarmi!!! if (connectionOk) { - dtAvvioAdp = DateTime.Now; + DtHelp.AvvioAdp = DateTime.Now; if (adpRunning) { lgInfo("Connessione OK");