using IOB_UT_NEXT.Services.Files;
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 DateTime impiegati
/// ...da validare...
///
public class DateTimeHelper
{
#region Public Fields
///
/// DataOra ultimo avvio adapter x watchdog
///
public DateTime adpStartRun;
///
/// Data/ora ultimo avvio adapter
///
public DateTime AvvioAdp = DateTime.Now;
///
/// Veto x esecuzione task AutoDossier
///
public DateTime dtVetoAutoDossier = DateTime.Now;
///
/// Veto x lettura contapezzi (in caso di autoODL con attesa reset ad esempio...)
///
public DateTime dtVetoReadPzCount = DateTime.Now;
///
/// DataOra x veto all'invio dataItem
///
public DateTime dtVetoSenDataItem = DateTime.Now;
///
/// Veto x esecuzione Task2Exe troppo frequenti
///
public DateTime dtVetoTask2Exe = DateTime.Now;
///
/// indica che è richiesto forzatamente reset contapezzi
///
public DateTime forcePzResetUntil = DateTime.Now.AddMinutes(-1);
///
/// ultimo tentativo connessione...
///
public DateTime lastConnectTry;
///
/// dataOra ultima verifica CNC disconnesso...
///
public DateTime lastDisconnCheck;
///
/// ultimo controllo decremento eventi
///
public DateTime lastEvCheck;
///
/// Data/ora ultima volta che IOB è stato dichiarato online
///
public DateTime lastIobOnline = DateTime.Now.AddHours(-1);
///
/// Ultima verifica status IOB x forzare display status SRV
///
public DateTime lastIobStatusDisplUpdate = DateTime.Now;
///
/// Ultimo LOG registrazione avvio (x ridurre log notturni...)
///
public DateTime lastLogStartup = DateTime.Today.AddHours(-1);
///
/// dataOra ultimo log periodico...
///
public DateTime lastPeriodicLog;
///
/// dataOra ultimo PING inviato verso il PLC...
///
public DateTime lastPING = DateTime.Now.AddHours(-1);
///
/// Ultimo controllo ping x evitare ping flood...
///
public DateTime lastPingConn = DateTime.Now.AddMinutes(-10);
///
/// Ultimo invio contapezzi (x invio delayed)
///
public DateTime lastPzCountSend;
///
/// DataOra ultima lettura da PLC
///
public DateTime lastReadPLC;
///
/// Ultimo istante in cui sono stati ridotti dati simulazione duration
///
public DateTime lastRedDuration;
///
/// DateTime Ultimo valore simulazione generato
///
public DateTime lastSim;
///
/// Ultimo istante in cui sono stati generati dati di simulazione
///
public DateTime lastSimData;
///
/// Ultima registrazione warning x ODL mancante (x scrivere solo ogni 15 secondi)
///
public DateTime lastWarnODL;
///
/// dataOra ultimo segnale inviato al SERVER...
///
public DateTime lastWatchDog;
///
/// dataOra ultimo segnale inviato a macchina/PLC...
///
public DateTime lastWatchDogPLC = DateTime.Now;
///
/// ultima data-ora invio parametri write x ribadire status
///
public DateTime lastWriteParamsUpsert = DateTime.Now;
///
/// DataOra avvio Programma x check avvio
///
public DateTime prgStarted = 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);
///
/// Imposta veto lettura dati (es per DB a 2 sec)
///
public DateTime vetoDataRead = DateTime.Now;
///
/// Imposta veto SYNC dati (es per DB 2 DB a 10 sec)
///
public DateTime vetoDataSync = DateTime.Now;
///
/// Veto specifico per la gestione (svuotamento) coda contapezzi (es in fase di attrezzaggio e reset lenti)
/// Tipicamente impostato a DelayReadPzCountSetup dopo attrezzaggio...
///
public DateTime vetoQueuePzCount = DateTime.Now;
///
/// Imposta veto chiamata split (durante chiamata, per 60 sec)
///
public DateTime vetoSplit = DateTime.Now.AddMinutes(1);
#endregion Public Fields
}
}