Files
MoonPro.net/MapoSDK/Objects.cs
T
2019-11-08 11:32:37 +01:00

223 lines
5.3 KiB
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
namespace MapoSDK
{
#region oggetti per scambio dati IO - IOB
public class fileEmbed
{
/// <summary>
/// Array di file da inviare
/// </summary>
public List<smallFile> fileList { get; set; } = new List<smallFile>();
}
/// <summary>
/// Classe x definire un file (corto) inviato come Json tramite httpost
/// </summary>
public class smallFile
{
public string fileName { get; set; } = "";
public string content { get; set; } = "";
}
/// <summary>
/// Array elementi tipo KeyValuePair inviati come JSon che indicano lo stato LIVE dell'IOB
/// </summary>
public class liveIOB
{
public List<KeyValuePair<string, string>> dataList { get; set; }
}
/// <summary>
/// Array valori tipo flogData inviati come JSon
/// </summary>
public class flogJson
{
public List<flogData> fluxData { get; set; }
}
/// <summary>
/// Tracciato FluxLog in formato JSON valido
/// </summary>
public class flogData
{
/// <summary>
/// nome del flusso
/// </summary>
public string flux { get; set; } = "ND";
/// <summary>
/// Valore del dato di flusso registrato
/// </summary>
public string valore { get; set; } = "-";
/// <summary>
/// DataOra evento
/// </summary>
public DateTime dtEve { get; set; } = DateTime.Now;
/// <summary>
/// DataOra corrente della trasmissione
/// </summary>
public DateTime dtCurr { get; set; } = DateTime.Now;
/// <summary>
/// Contatore incrementale x riordino invio (opzionale)
/// </summary>
public int cnt { get; set; } = 0;
}
/// <summary>
/// Dati resoconto IOB
/// </summary>
public class IOB_data
{
public string name;
public string IP;
public IobType iType;
public string typeCss;
public bool CNC_Counter;
}
/// <summary>
/// Struttura conf tipo dati
/// </summary>
public class dataConf
{
/// <summary>
/// NOME parametro
/// </summary>
public string name { get; set; } = "none";
/// <summary>
/// DESCRIZIONE parametro
/// </summary>
public string description { get; set; } = "";
/// <summary>
/// Tipo di dato
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public plcDataType tipoMem { get; set; } = plcDataType.Int;
/// <summary>
/// Indice nell'area di memoria (da valore iniziale = 0)
/// </summary>
public int index { get; set; } = 0;
/// <summary>
/// Nome "assoluto" della posizione nell'area di memoria (anche diverso da indice)
/// </summary>
public string memAddr { get; set; } = "";
/// <summary>
/// Size in byte
/// </summary>
public int size { get; set; } = 0;
/// <summary>
/// Fattore per eventuale divisione (es leggo 1234 --> 12,34 con factor=100)
/// </summary>
public int factor { get; set; } = 1;
/// <summary>
/// Valore parametro (come stringa, decimali con ",")
/// </summary>
public string value { get; set; } = "0";
/// <summary>
/// Valore minimo ammesso (ove usato, es simulazione)
/// </summary>
public int minVal { get; set; } = 0;
/// <summary>
/// Valore massimo ammesso (ove usato, es simulazione)
/// </summary>
public int maxVal { get; set; } = 9999;
}
/// <summary>
/// Struttura conf tipo dati
/// </summary>
public class dataConfTSVC : dataConf
{
/// <summary>
/// Tipo di funzione da applicare al dato
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public VC_func func { get; set; } = VC_func.MAX;
/// <summary>
/// Periodo campionamento
/// </summary>
public int period { get; set; } = 60;
}
/// <summary>
/// Struttura conf memorie PLC (inizialmente SIEMENS)
/// </summary>
public class plcMemMap
{
/// <summary>
/// Parametri ammessi per IOB x scrittura
/// </summary>
public Dictionary<string, dataConf> mMapWrite = new Dictionary<string, dataConf>();
/// <summary>
/// Parametri ammessi per IOB x lettura
/// </summary>
public Dictionary<string, dataConfTSVC> mMapRead = new Dictionary<string, dataConfTSVC>();
}
#endregion
#if false
/// <summary>
/// Classe definizione parametri singolo ordine produzione
/// </summary>
public class OrdineProdArt
{
/// <summary>
/// Codice univoco ordine
/// </summary>
public string OrdNum;
/// <summary>
/// Articolo associato ad ordine
/// </summary>
public Articolo ArtOrd;
/// <summary>
/// Quantità Articolo
/// </summary>
public int Qta;
}
/// <summary>
/// Oggetto generico articolo
/// </summary>
public class Articolo
{
/// <summary>
/// Codice articolo
/// </summary>
public string Codice;
/// <summary>
/// Descrizione Articolo
/// </summary>
public string Descrizione;
}
/// <summary>
/// Classe definizione parametri ordine x KIT di articoli
/// </summary>
public class OrdineProdKit
{
/// <summary>
/// Codice univoco ordine
/// </summary>
public string OrdNum;
/// <summary>
/// Codice KIT
/// </summary>
public string Codice;
/// <summary>
/// Vettore ordini articolo associati a KIT
/// </summary>
public List<OrdineProdArt> OrdiniArt;
/// <summary>
/// Quantità KIT
/// </summary>
public int Qta;
}
#endif
}