Inizio definizione oggetti da impiegare con MongoDb

This commit is contained in:
Samuele E. Locatelli
2019-11-15 22:22:31 +01:00
parent 04fb6b3951
commit 2879377108
2 changed files with 104 additions and 0 deletions
+10
View File
@@ -49,6 +49,16 @@
/// </summary>
String
}
/// <summary>
/// Finestra temporale di aggregazione dati VC
/// </summary>
public enum timeWindow
{
hour,
day,
week,
month
}
/// <summary>
/// Elenco task ammessi (x IOB-WIN da eseguire...)
+94
View File
@@ -215,6 +215,100 @@ namespace MapoSDK
public Dictionary<string, dataConfTSVC> mMapRead = new Dictionary<string, dataConfTSVC>();
}
/// <summary>
/// Classe oggetto base TimeSeries
/// </summary>
public class tsData
{
/// <summary>
/// Nome della Var Casuale
/// </summary>
public string vcName { get; set; } = "";
/// <summary>
/// Data-Ora riferimento campione
/// </summary>
public DateTime timeStamp { get; set; } = DateTime.Now;
/// <summary>
/// Tipo di valore gestito
/// </summary>
[JsonConverter(typeof(StringEnumConverter))]
public plcDataType vcType { get; set; } = plcDataType.Int;
/// <summary>
/// Valore in formato stringa (che può venire customizzato)
/// </summary>
public string strValue { get; set; } = "";
/// <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 intero
/// </summary>
public int intVal { get; set; } = 0;
/// <summary>
/// Valore float
/// </summary>
public float floatVal { get; set; } = 0;
}
/// <summary>
/// Aggregazione dati VC
/// </summary>
public class tsGrouped
{
/// <summary>
/// Nome della Var Casuale
/// </summary>
public string vcName { get; set; } = "";
/// <summary>
/// Data-Ora riferimento campione
/// </summary>
public DateTime timeStamp { get; set; } = DateTime.Now;
/// <summary>
/// Valore medio (NON definito)
/// </summary>
public object avgValue { get; set; } = null;
/// <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; }
}
#endregion