Files
2026-04-15 12:35:51 +02:00

89 lines
2.6 KiB
C#

using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using static MP.Core.Objects.Enums;
namespace MP.Core.DTO
{
/// <summary>
/// Struttura conf tipo dati
/// </summary>
public class DataConfDto
{
#region Public Properties
/// <summary>
/// Struttura Valore composto a partire da altre variabili read/write esistenti
/// </summary>
public string ComposedVal { get; set; } = "";
/// <summary>
/// Decodifica per tipoMem = BitMap:
/// Array di valori assegnati ai singoli bit
/// </summary>
public List<string> decodeMap { get; set; } = new List<string>();
/// <summary>
/// DESCRIZIONE parametro
/// </summary>
public string description { get; set; } = "";
/// <summary>
/// Valore per determinare Display Ordinal
/// </summary>
public int displOrdinal { get; set; } = 0;
/// <summary>
/// Fattore di MOLTIPLICA per eventuale scalatura
/// es: leggo 1'234 con factor=0.01 --> 12.34, con factor=100 --> 123'400
/// </summary>
public double factor { get; set; } = 1;
/// <summary>
/// Indice nell'area di memoria (da valore iniziale = 0)
/// </summary>
public int index { get; set; } = 0;
/// <summary>
/// Valore massimo ammesso (ove usato, es simulazione)
/// </summary>
public double maxVal { get; set; } = 9999;
/// <summary>
/// Nome "assoluto" della posizione nell'area di memoria (anche diverso da indice)
/// </summary>
public string memAddr { get; set; } = "";
/// <summary>
/// Valore minimo ammesso (ove usato, es simulazione)
/// </summary>
public double minVal { get; set; } = 0;
/// <summary>
/// NOME parametro
/// </summary>
public string name { get; set; } = "none";
/// <summary>
/// Size in byte
/// </summary>
public int size { get; set; } = 0;
/// <summary>
/// Tipo di dato
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public plcDataType tipoMem { get; set; } = plcDataType.Int;
/// <summary>
/// Unità di misura del parametro
/// </summary>
public string unit { get; set; } = "";
/// <summary>
/// Valore parametro (come stringa, decimali con ",", default VUOTO), poi LETTO da PLC (o appena scritto)
/// </summary>
public string value { get; set; } = "";
#endregion Public Properties
}
}