using IOB_UT_NEXT.Config.Special;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace IOB_UT_NEXT.Config.Base
{
///
/// Dati espliciti relativi al device di riferimento
///
public class DeviceDto
{
///
/// Costruttore
///
public string Vendor { get; set; } = "ACME";
///
/// Codice modello
///
public string Model { get; set; } = "NONE";
///
/// Indica se sia multi pallet
///
public bool IsMulti { get; set; } = false;
///
/// Codice dei vari codici aggiuntivi IOB multi x funzioni slave (es autoOdl)
///
public string MultiIobListRaw { get; set; } = "";
///
/// Lista dei vari IOB multi x funzioni slave (es autoOdl)
///
public List MultiIobList { get; set; }
///
/// Dati configurazione CNC
///
public ConnectionDto Connect { get; set; } = new ConnectionDto();
///
/// Indica che sono disabilitati i Task2Exe (tipicamente gestione scrittura verso PLC)
///
public bool DisabExeTask { get; set; } = false;
///
/// Disabilitazione ping al Device
///
public bool DisabPing { get; set; } = false;
///
/// Disabilitazione SignalIn dal Device
///
public bool DisabSigIn { get; set; } = false;
///
/// Indica che sono disabilitati i resend alla scadenza del periodo di controllo anche in mancanza di variazione (tipicametne x gli adapter secondari come PING)
///
public bool DisabResendScaduto { get; set; } = false;
///
/// Indica che sono disabilitate le fasi controllo stato/semafori (tipicamente x impianti
/// con PLC "suddivisi", PLC + HMI)
///
public bool DisabStateCh { get; set; } = false;
///
/// Abilita riscrittura memoria se trova differenze lettura/richiesti
///
public bool EnabMemRewrite { get; set; } = true;
///
/// Disabilitazione controlli dipendenti da check su exe mode (es Cimolai)
///
public bool ExeModeCheckBypass { get; set; } = false;
///
/// Abilitazione gestione contatori
///
public bool EnabPzCount { get; set; } = true;
///
/// Indica se si voglia recuperare il PROG NAME dal CNC
///
public bool EnabProgName { get; set; } = false;
///
/// Tempo minimo di refresh ammesso (es: per current da MTConnect)
///
public int MinRefreshPeriodSec { get; set; } = 20;
///
/// Tempo minimo ammissibile di risposta (es x errori ModBus che risponde troppo in fretta) in millisec
///
public int MinRespTimeMs { get; set; } = 5;
///
/// Indica se usare la parte numerica di un articolo come codice INT
///
public bool NumArtCharTrim { get; set; } = false;
///
/// Conf x scritttura NumArticolo
///
public string NumArtMode { get; set; } = "";
///
/// Conf x scritttura NumOdl
///
public string NumOdlMode { get; set; } = "";
///
/// Timeout in sec x dichiarare Poweroff (tipicamente IOB PING)
///
public int PoweroffTimeOutSec { get; set; } = 100;
///
/// Modalità gestione lettura cadenza
///
public string PzCadMode { get; set; } = "";
///
/// Delay prima di iniziare a gestire il contapezzi, per evitare falsi zeri in inizializzazione sw
///
public int PzCountDelay { get; set; } = 2000;
///
/// Modalità gestione contapezzi
///
public string PzCountMode { get; set; } = "";
///
/// Definizione Memoria x pezzi richiesti
///
public string PzReqMode { get; set; } = "";
///
/// Definizione Memoria x pezzi totali (NON ressettabile)
///
public string PzTotMode { get; set; } = "";
///
/// Durata in secondi del divieto accodamento segnali IN alla fase di startup
///
public int StartupVetoQueueIN { get; set; } = 5;
///
/// Numero massimo errori lettura prima di disconnettere
///
public int ReadErrorMax { get; set; } = 10;
///
/// Tempo attesa prima id rivalutare errori lettura
///
public int ReadErrorSleepTime { get; set; } = 15000;
///
/// Configurazione SigLUT con regole decodifica valori (es FANUC/Siemens con BIT0...BIT7...)
///
public Dictionary SigLUT { get; set; } = new Dictionary();
}
}