208 lines
5.4 KiB
C#
208 lines
5.4 KiB
C#
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Converters;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace MapoSDK
|
|
{
|
|
/// <summary>
|
|
/// Raccolta dati di storici sintetici per Macchina e Variabile
|
|
/// </summary>
|
|
public class histData
|
|
{
|
|
#region Public Properties
|
|
|
|
/// <summary>
|
|
/// Data riferimento campione in formato YMD = yyyyMMdd
|
|
/// </summary>
|
|
public int dateYMD { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Macchina
|
|
/// </summary>
|
|
public string macName { get; set; } = "";
|
|
|
|
/// <summary>
|
|
/// Periodo di aggregazione di riferimento
|
|
/// </summary>
|
|
//[JsonConverter(typeof(StringEnumConverter))]
|
|
public timeWindow period { get; set; } = timeWindow.day;
|
|
|
|
/// <summary>
|
|
/// Statistiche raccolte nel periodo
|
|
/// </summary>
|
|
public List<varStats> stats { get; set; } = null;
|
|
|
|
/// <summary>
|
|
/// Tipo di valore registrato (internamente è string)
|
|
/// </summary>
|
|
//[JsonConverter(typeof(StringEnumConverter))]
|
|
public plcDataType varType { get; set; } = plcDataType.Int;
|
|
|
|
#endregion Public Properties
|
|
}
|
|
|
|
/// <summary>
|
|
/// Classe oggetto base TimeSeries
|
|
/// </summary>
|
|
public class tsData
|
|
{
|
|
#region Public Properties
|
|
|
|
/// <summary>
|
|
/// In base al tipo di oggetto restituisce il valore cona deguata conversione......
|
|
/// </summary>
|
|
public object actValue
|
|
{
|
|
get
|
|
{
|
|
object answ = null;
|
|
bool currBool = false;
|
|
int currInt = 0;
|
|
double currDouble = 0;
|
|
switch (vcType)
|
|
{
|
|
case plcDataType.Boolean:
|
|
_ = bool.TryParse(strValue, out currBool);
|
|
answ = currBool;
|
|
break;
|
|
|
|
case plcDataType.Int:
|
|
case plcDataType.DInt:
|
|
_ = int.TryParse(strValue, out currInt);
|
|
answ = currInt;
|
|
break;
|
|
|
|
case plcDataType.Real:
|
|
_ = double.TryParse(strValue, out currDouble);
|
|
answ = currDouble;
|
|
break;
|
|
|
|
case plcDataType.String:
|
|
default:
|
|
answ = strValue;
|
|
break;
|
|
}
|
|
return answ;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Valore float
|
|
/// </summary>
|
|
public float floatVal { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Valore intero
|
|
/// </summary>
|
|
public int intVal { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Valore in formato stringa (che può venire customizzato)
|
|
/// </summary>
|
|
public string strValue { get; set; } = "";
|
|
|
|
/// <summary>
|
|
/// Data-Ora riferimento campione
|
|
/// </summary>
|
|
public DateTime timeStamp { get; set; } = DateTime.Now;
|
|
|
|
/// <summary>
|
|
/// Nome Macchina
|
|
/// </summary>
|
|
public string vcMachine { get; set; } = "";
|
|
|
|
/// <summary>
|
|
/// Nome della Var Casuale
|
|
/// </summary>
|
|
public string vcName { get; set; } = "";
|
|
|
|
/// <summary>
|
|
/// Tipo di valore gestito
|
|
/// </summary>
|
|
[JsonConverter(typeof(StringEnumConverter))]
|
|
public plcDataType vcType { get; set; } = plcDataType.Int;
|
|
|
|
#endregion Public Properties
|
|
}
|
|
|
|
/// <summary>
|
|
/// Aggregazione dati VC
|
|
/// </summary>
|
|
public class tsGrouped
|
|
{
|
|
#region Public Properties
|
|
|
|
/// <summary>
|
|
/// Valore medio (NON definito)
|
|
/// </summary>
|
|
public object avgValue { get; set; }
|
|
|
|
/// <summary>
|
|
/// Periodo di aggregazione di riferimento
|
|
/// </summary>
|
|
public timeWindow period { get; set; } = timeWindow.hour;
|
|
|
|
/// <summary>
|
|
/// Campioni effettivi nel periodo
|
|
/// </summary>
|
|
public List<tsData> samples { get; set; }
|
|
|
|
/// <summary>
|
|
/// Data-Ora riferimento campione
|
|
/// </summary>
|
|
public DateTime timeStamp { get; set; } = DateTime.Now;
|
|
|
|
/// <summary>
|
|
/// Unità di Misura
|
|
/// </summary>
|
|
public string UM { get; set; } = "#";
|
|
|
|
/// <summary>
|
|
/// Nome Macchina
|
|
/// </summary>
|
|
public string vcMachine { get; set; } = "";
|
|
|
|
/// <summary>
|
|
/// Nome della Var Casuale
|
|
/// </summary>
|
|
public string vcName { get; set; } = "";
|
|
|
|
#endregion Public Properties
|
|
}
|
|
|
|
/// <summary>
|
|
/// Classe oggetto statistiche sui dati
|
|
/// </summary>
|
|
public class varStats
|
|
{
|
|
#region Public Properties
|
|
|
|
/// <summary>
|
|
/// Valore medio/mediano
|
|
/// </summary>
|
|
public float avg { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Valore max
|
|
/// </summary>
|
|
public float max { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Valore min
|
|
/// </summary>
|
|
public float min { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Num record
|
|
/// </summary>
|
|
public int numRec { get; set; } = 0;
|
|
|
|
/// <summary>
|
|
/// Nome della Variabile tracciata
|
|
/// </summary>
|
|
public string varName { get; set; } = "";
|
|
|
|
#endregion Public Properties
|
|
}
|
|
} |