refresh oggetti vari

This commit is contained in:
Samuele Locatelli
2021-06-30 12:40:51 +02:00
parent 0e2646c739
commit 70e2c06ae5
3 changed files with 164 additions and 5 deletions
+70 -1
View File
@@ -1,4 +1,5 @@
using MongoDB.Driver;
using System.Linq;
using MongoDB.Driver;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using NKC_SDK;
@@ -62,6 +63,7 @@ namespace AppData
public static string redOrders = "NKC:SERV:ORDERS";
public static string redOutPath = "NKC:SERV:BREQ";
public static string redProdAnsw = "NKC:PROD:BUNKS";
public static string redProdMachStateData = "NKC:PROD:MACHSTATE";
public static string redProdReq = "NKC:SERV:BUNKS";
/// <summary>
@@ -1784,6 +1786,73 @@ namespace AppData
return answ;
}
/// <summary>
/// Restituisce stato amcchina (da Redis)
/// </summary>
/// <returns></returns>
public static List<MachineStatData> prodMachStateDataGet()
{
List<MachineStatData> answ = new List<MachineStatData>();
string redVal = memLayer.ML.getRSV(redProdMachStateData);
if (!string.IsNullOrEmpty(redVal))
{
answ = JsonConvert.DeserializeObject<List<MachineStatData>>(redVal);
}
return answ;
}
/// <summary>
/// Salva gli stati macchina ricevuti sul DB e poi salva ultimo su redis
/// Do x scontato tutti singola macchina
/// </summary>
/// <returns></returns>
public static bool prodMachStateDataInsert(MachineStatData updateRecords)
{
List<MachineStatData> currData = new List<MachineStatData>();
// FIXME TODO: salvare TUTTO sul DB !!!
// leggo stato attuale...
string redVal = memLayer.ML.getRSV(redProdMachStateData);
if (!string.IsNullOrEmpty(redVal))
{
currData = JsonConvert.DeserializeObject<List<MachineStatData>>(redVal);
// certo info x macchina corrente
var machRecord = currData.Where(x => x.Machine == updateRecords.Machine).FirstOrDefault();
// recupero ultimo stato
var lastRecord = updateRecords.Records.OrderByDescending(x => x.DtRecord).ToList();
//var lastRecord = newData.Records.OrderByDescending(x => x.DtRecord).Take(1).ToList();
if (machRecord != null)
{
machRecord.Records = lastRecord;
}
// aggiungo
else
{
currData.Add(new MachineStatData() { Machine = updateRecords.Machine, Records = lastRecord });
}
}
// serializzo
string rawData = JsonConvert.SerializeObject(currData);
// salvo!
bool answ = memLayer.ML.setRSV(redProdMachStateData, rawData);
return answ;
}
/// <summary>
/// Reset stati macchina registrati
/// </summary>
/// <returns></returns>
public static bool prodMachStateDataReset()
{
bool answ = memLayer.ML.setRSV(redProdMachStateData, "", 1);
return answ;
}
/// <summary>
/// Leggo il Takt inviato
/// </summary>
+44 -4
View File
@@ -29,7 +29,7 @@ namespace NKC_SDK
{
_baseIp = baseIp;
_baseUrl = baseUrl;
_codPost = codPost;
_machine = codPost;
}
#endregion Public Constructors
@@ -52,7 +52,7 @@ namespace NKC_SDK
/// <summary>
/// COD macchina x cui si effettua chiamata
/// </summary>
protected string _codPost { get; set; } = "";
protected string _machine { get; set; } = "";
protected string urlAlive
{
@@ -82,7 +82,20 @@ namespace NKC_SDK
{
get
{
return $"{_baseUrl}api/Sheet/{_codPost}";
return $"{_baseUrl}api/Sheet/{_machine}";
}
}
/// <summary>
/// URL x salvataggio dati MachineStat
/// </summary>
/// <returns></returns>
protected string urlPutMachStat
{
get
{
return $"{_baseUrl}api/MachineStat";
//return $"{_baseUrl}api/MachineStat/{_machine}";
}
}
@@ -94,7 +107,7 @@ namespace NKC_SDK
{
get
{
return $"{_baseUrl}api/Sheet/{_codPost}";
return $"{_baseUrl}api/Sheet/{_machine}";
}
}
@@ -323,6 +336,31 @@ namespace NKC_SDK
return answ;
}
/// <summary>
/// Effettua salvataggio dell'elenco info stati/eventi su NKC
/// </summary>
/// <param name="updatedInfo"></param>
public bool saveMachStatRecords(MachineStatData updatedInfo)
{
bool answ = false;
string rawdata = "";
try
{
// aggiungo macchina nel codice dei fogli...
updatedInfo.Machine = _machine;
// serializzo oggetto
rawdata = JsonConvert.SerializeObject(updatedInfo);
// invio con metodo put!
putData(urlPutMachStat, rawdata);
answ = true;
}
catch (Exception exc)
{
Log.Instance.Error($"Eccezione durante saveMachStatRecords, ricevuto {rawdata}{Environment.NewLine}{exc}");
}
return answ;
}
/// <summary>
/// Effettua salvataggio dell'elenco dei fogli (1..n) su NKC
/// </summary>
@@ -333,6 +371,8 @@ namespace NKC_SDK
string rawdata = "";
try
{
// aggiungo macchina nel codice dei fogli...
updatedSheetList.Machine = _machine;
// serializzo oggetto
rawdata = JsonConvert.SerializeObject(updatedSheetList);
// invio con metodo put!
+50
View File
@@ -233,6 +233,51 @@ namespace NKC_SDK
#endregion Public Properties
}
public class MachineStatData
{
#region Public Properties
/// <summary>
/// Codice macchina
/// </summary>
public string Machine { get; set; } = "WRK000";
/// <summary>
/// record registrati dalla macchina
/// </summary>
public List<MachineStatRecord> Records { get; set; } = new List<MachineStatRecord>();
#endregion Public Properties
}
public class MachineStatRecord
{
#region Public Properties
/// <summary>
/// Codice evento/stato
/// 00 = KeepAlive --> imposto dataora/drift
/// </summary>
public string Code { get; set; } = "";
/// <summary>
/// DataOra dell'informazione (clock mittente)
/// </summary>
public DateTime DtRecord { get; set; } = DateTime.Now;
/// <summary>
/// Valore / carico associato all'invio (opzionale)
/// </summary>
public string Payload { get; set; } = "";
/// <summary>
/// Codice postazione
/// </summary>
public string Station { get; set; } = "";
#endregion Public Properties
}
/// <summary>
/// Definizione classe x materiali
/// </summary>
@@ -861,6 +906,11 @@ namespace NKC_SDK
{
#region Public Properties
/// <summary>
/// Codice impianto/macchina
/// </summary>
public string Machine { get; set; } = "WRK000";
/// <summary>
/// Numero di Sheets da lavorare
/// </summary>