Update metodi x scrittura/ lettura array parametri
This commit is contained in:
@@ -354,7 +354,42 @@ namespace MP_IO.Controllers
|
||||
answ = JsonConvert.SerializeObject(currParams);
|
||||
}
|
||||
}
|
||||
catch(Exception exc)
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in getCurrParams{Environment.NewLine}{exc}");
|
||||
answ = "NO";
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
/// <summary>
|
||||
/// restituisce elenco parametri CHE RICHIEDONO scrittura su PLC come una List Json di oggetti objItem
|
||||
/// GET: IOB/getObjItems2Write/SIMUL_03
|
||||
/// </summary>
|
||||
/// <param name="id">ID dell'IOB</param>
|
||||
/// <returns></returns>
|
||||
public string getObjItems2Write(string id)
|
||||
{
|
||||
string answ = "";
|
||||
if (string.IsNullOrWhiteSpace(id))
|
||||
{
|
||||
answ = "Missing IOB";
|
||||
}
|
||||
else
|
||||
{
|
||||
// procedo a recuperare l'oggetto...
|
||||
List<objItem> currParams = new List<objItem>();
|
||||
try
|
||||
{
|
||||
// deserializzo.
|
||||
currParams = DataLayer.getCurrObjItemsPendigWrite(id);
|
||||
// se != null --> salvo!
|
||||
if (currParams != null)
|
||||
{
|
||||
answ = JsonConvert.SerializeObject(currParams);
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Errore in getCurrParams{Environment.NewLine}{exc}");
|
||||
answ = "NO";
|
||||
|
||||
+43
-10
@@ -1028,19 +1028,51 @@ namespace MapoDb
|
||||
public static List<objItem> getCurrObjItems(string idxMacchina)
|
||||
{
|
||||
string serVal = memLayer.ML.getRSV(currParametersHash(idxMacchina));
|
||||
List<objItem> currParameters = new List<objItem>();
|
||||
List<objItem> actValues = new List<objItem>();
|
||||
if (serVal != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
currParameters = JsonConvert.DeserializeObject<List<objItem>>(serVal);
|
||||
actValues = JsonConvert.DeserializeObject<List<objItem>>(serVal);
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Eccezione in deserializzazione getIobCurrParam{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return currParameters;
|
||||
return actValues;
|
||||
}
|
||||
/// <summary>
|
||||
/// GET elenco parametri che richiedono una WRITE x IOB
|
||||
/// </summary>
|
||||
/// <param name="idxMacchina"></param>
|
||||
/// <returns></returns>
|
||||
public static List<objItem> getCurrObjItemsPendigWrite(string idxMacchina)
|
||||
{
|
||||
string serVal = memLayer.ML.getRSV(currParametersHash(idxMacchina));
|
||||
List<objItem> actValues = new List<objItem>();
|
||||
List<objItem> writeValues = new List<objItem>();
|
||||
if (serVal != null)
|
||||
{
|
||||
try
|
||||
{
|
||||
actValues = JsonConvert.DeserializeObject<List<objItem>>(serVal);
|
||||
// cerco e rimuovo parametri sola lettura o SENZA richieste scrittura
|
||||
foreach (var item in actValues)
|
||||
{
|
||||
objItem trovato = actValues.Find(obj => obj.writable == true && !string.IsNullOrEmpty(obj.reqValue));
|
||||
if (trovato != null)
|
||||
{
|
||||
writeValues.Add(trovato);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
logger.lg.scriviLog($"Eccezione in deserializzazione getIobCurrParam{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return writeValues;
|
||||
}
|
||||
/// <summary>
|
||||
/// SET elenco parametri correnti x IOB
|
||||
@@ -1072,18 +1104,19 @@ namespace MapoDb
|
||||
// leggo i valori attuali...
|
||||
List<objItem> actValues = getCurrObjItems(idxMacchina);
|
||||
// per ogni valore passatomi faccio insert o update
|
||||
foreach (var item in innovations)
|
||||
foreach (var item in actValues)
|
||||
{
|
||||
objItem trovato = actValues.Find(obj => obj.uid == item.uid);
|
||||
if (trovato != null)
|
||||
// cerco nelle innovazioni SE CI SIA un valore act
|
||||
objItem trovato = innovations.Find(obj => obj.uid == item.uid);
|
||||
// se non trovato...
|
||||
if (trovato == null)
|
||||
{
|
||||
actValues.Remove(trovato);
|
||||
// aggiungo
|
||||
innovations.Add(item);
|
||||
}
|
||||
// aggiungo
|
||||
actValues.Add(item);
|
||||
}
|
||||
// serializzo e salvo
|
||||
string serVal = JsonConvert.SerializeObject(actValues);
|
||||
string serVal = JsonConvert.SerializeObject(innovations);
|
||||
memLayer.ML.setRSV(currParametersHash(idxMacchina), serVal);
|
||||
}
|
||||
return answ;
|
||||
|
||||
Reference in New Issue
Block a user