using Newtonsoft.Json; using Newtonsoft.Json.Converters; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace GWMS.Data { public class IobObjects { #region Public Classes /// /// Struttura conf tipo dati /// public class dataConf { #region Public Properties /// /// DESCRIZIONE parametro /// public string description { get; set; } = ""; /// /// Fattore per eventuale divisione (es leggo 1234 --> 12,34 con factor=100) /// public int factor { get; set; } = 1; /// /// Indice nell'area di memoria (da valore iniziale = 0) /// public int index { get; set; } = 0; /// /// Valore massimo ammesso (ove usato, es simulazione) /// public int maxVal { get; set; } = 9999; /// /// Nome "assoluto" della posizione nell'area di memoria (anche diverso da indice) /// public string memAddr { get; set; } = ""; /// /// Valore minimo ammesso (ove usato, es simulazione) /// public int minVal { get; set; } = 0; /// /// NOME parametro /// public string name { get; set; } = "none"; /// /// Size in byte /// public int size { get; set; } = 0; /// /// Tipo di dato /// [JsonConverter(typeof(StringEnumConverter))] public plcDataType tipoMem { get; set; } = plcDataType.Int; /// /// Valore parametro (come stringa, decimali con ",", default VUOTO), poi LETTO da PLC (o appena scritto) /// public string value { get; set; } = ""; #endregion Public Properties } /// /// Struttura conf tipo dati /// public class dataConfTSVC : dataConf { #region Public Properties /// /// Tipo di funzione da applicare al dato /// [JsonConverter(typeof(StringEnumConverter))] public VC_func func { get; set; } = VC_func.MAX; /// /// Periodo campionamento /// public int period { get; set; } = 60; #endregion Public Properties } /// /// Tracciato InputEvents in formato JSON valido /// Derivato da input realtime valore=3&dtEve=20181206180600000&dtCurr=20181206180600000&cnt=999 /// public class evData { #region Public Properties /// /// Contatore incrementale x riordino invio (opzionale) /// public int cnt { get; set; } = 0; /// /// DataOra corrente della trasmissione /// public DateTime dtCurr { get; set; } = DateTime.Now; /// /// DataOra evento /// public DateTime dtEve { get; set; } = DateTime.Now; /// /// Valore del dato di flusso registrato /// public string valore { get; set; } = "-"; #endregion Public Properties } /// /// Array valori tipo evData inviati come JSon /// public class evJsonPayload { #region Public Properties public List eventList { get; set; } #endregion Public Properties } /// /// Tracciato FluxLog in formato JSON valido /// public class flogData : evData { #region Public Properties /// /// nome del flusso /// public string flux { get; set; } = "ND"; #endregion Public Properties } /// /// Array valori tipo flogData inviati come JSon /// public class flogJsonPayload { #region Public Properties public List fluxData { get; set; } #endregion Public Properties } /// /// Struttura conf memorie PLC (inizialmente SIEMENS) /// public class plcMemMap { #region Public Fields /// /// Parametri ammessi per IOB x lettura /// public Dictionary mMapRead = new Dictionary(); /// /// Parametri ammessi per IOB x scrittura /// public Dictionary mMapWrite = new Dictionary(); #endregion Public Fields } #endregion Public Classes } }