Merge branch 'release/FixParamReloadOnBoot01'

This commit is contained in:
Samuele Locatelli
2023-09-19 11:19:13 +02:00
13 changed files with 72 additions and 17 deletions
+24 -5
View File
@@ -62,10 +62,9 @@ namespace IOB_WIN_NEXT.Iob
// setup currProdData & last prod data
currProdData = redisMan.redGetHashDict(rKeyCurrProdData);
// aggiungo altri defaults
setDefaults(true);
// imposta valori memoria (e resetta parametri su server)
setParamPlc();
// checkLogDir x shrink!
@@ -74,6 +73,9 @@ namespace IOB_WIN_NEXT.Iob
// imposto veto invio per i prossimi sec
dtVetoQueueIN = DateTime.Now.AddSeconds(vetoQueueIn);
lgInfoStartup($"Impostato veto QUEUE-IN a {vetoQueueIn}s | fino alle {dtVetoQueueIN:yyyy.MM.dd HH:mm:ss}");
// verifico invio parametri se encessario
processMem2Write();
// concluso!
lgInfoStartup("Istanziata classe preliminare IOBGeneric");
}
@@ -5115,6 +5117,7 @@ namespace IOB_WIN_NEXT.Iob
/// <summary>
/// Metodo da overridare x scrivere DAVVERO i parametri sul PLC
/// NB: deve resettare reqValue
/// </summary>
/// <param name="updatedPar"></param>
protected virtual void plcWriteParams(ref List<objItem> updatedPar)
@@ -5278,7 +5281,7 @@ namespace IOB_WIN_NEXT.Iob
// sistemo valori
item.value = item.reqValue;
lgInfo($"Richiesta update parametro {item.uid} | actVal = {item.value} | reqVal = {item.reqValue}");
item.reqValue = "";
//item.reqValue = "";
// salvo in lista da ritrasmettere
updatedPar.Add(item);
}
@@ -6075,9 +6078,16 @@ namespace IOB_WIN_NEXT.Iob
// salvo ANCHE come parametri i valori...
objItem currItem = new objItem();
List<objItem> allParam = new List<objItem>();
string currValore = "";
// valori WRITE
foreach (var item in memMap.mMapWrite)
{
currValore = "";
//se ho valori current li impiego...
if (currProdData.ContainsKey(item.Value.name))
{
currValore = currProdData[item.Value.name];
}
currItem = new objItem()
{
uid = item.Value.name,
@@ -6087,6 +6097,7 @@ namespace IOB_WIN_NEXT.Iob
UM = item.Value.unit,
valMin = item.Value.minVal,
valMax = item.Value.maxVal,
value = currValore,
displOrdinal = item.Value.displOrdinal
};
allParam.Add(currItem);
@@ -6098,6 +6109,12 @@ namespace IOB_WIN_NEXT.Iob
var trovato = allParam.FirstOrDefault(x => x.uid == item.Value.name);
if (trovato == null)
{
currValore = "";
//se ho valori current li impiego...
if (currProdData.ContainsKey(item.Value.name))
{
currValore = currProdData[item.Value.name];
}
currItem = new objItem()
{
uid = item.Value.name,
@@ -6107,12 +6124,13 @@ namespace IOB_WIN_NEXT.Iob
UM = item.Value.unit,
valMin = item.Value.minVal,
valMax = item.Value.maxVal,
value = currValore,
displOrdinal = item.Value.displOrdinal
};
allParam.Add(currItem);
}
}
// invio su cloud parametri SE sono connesso alla macchina...
// invio su cloud parametri SE sono connesso alla macchina... in pratica reset parametri...
if (serverOk)
{
string tipoCall = urlSaveAllParams;
@@ -7069,7 +7087,8 @@ namespace IOB_WIN_NEXT.Iob
uid = item.Key,
name = item.Key,
description = memMap.mMapWrite[item.Key].description,
reqValue = memMap.mMapWrite[item.Key].value,
//reqValue = memMap.mMapWrite[item.Key].value,
reqValue = item.Value,
value = item.Value,
lastRequest = DateTime.Now,
writable = true,
+13 -4
View File
@@ -595,25 +595,29 @@ namespace IOB_WIN_NEXT.Iob
switch (item.uid)
{
case "kgRich":
int.TryParse(item.value, out valInt);
// 2023.09.19 value --> reqValue
int.TryParse(item.reqValue, out valInt);
pesoRichiesto = valInt;
readBackVal = pesoRichiesto.ToString();
break;
case "kgLotto":
int.TryParse(item.value, out valInt);
// 2023.09.19 value --> reqValue
int.TryParse(item.reqValue, out valInt);
quantitaLotto = valInt;
readBackVal = quantitaLotto.ToString();
break;
case "portata":
int.TryParse(item.value, out valInt);
// 2023.09.19 value --> reqValue
int.TryParse(item.reqValue, out valInt);
portata = valInt;
readBackVal = portata.ToString();
break;
case "setComm":
commessa = item.value;
// 2023.09.19 value --> reqValue
commessa = item.reqValue;
readBackVal = commessa;
break;
@@ -625,6 +629,11 @@ namespace IOB_WIN_NEXT.Iob
{
lgError($"Errore in plcWriteParams: uid {item.uid} | Wrote {item.value} | ReadBack {readBackVal}");
}
// 2023.09.19 resetto richiesta
else
{
item.reqValue = "";
}
}
}
}
+15 -6
View File
@@ -210,8 +210,11 @@ namespace IOB_WIN_NEXT.Iob
case taskType.setComm:
case taskType.setProg:
case taskType.setPzComm:
#if false
memMap.mMapWrite[item.Key].value = item.Value;
taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | UPDATED memMap.mMapWrite";
taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | UPDATED memMap.mMapWrite";
#endif
taskVal = processMemWriteRequests();
break;
case taskType.setParameter:
@@ -738,8 +741,10 @@ namespace IOB_WIN_NEXT.Iob
byteSize = currMem.size;
memAddrWrite = currMem.memAddr;
MemBlock = new byte[byteSize];
#if false
// faccio preliminarmente upsertKey...
upsertKey(currMem.name, currMem.value);
upsertKey(currMem.name, currMem.value);
#endif
serObj = JsonConvert.SerializeObject(item, Formatting.Indented);
lgInfo($"Inizio processing plcWriteParams per {currMem.name} | valore richiesto {currMem.value}{Environment.NewLine}---------------UPDATED PARAM---------------{Environment.NewLine}{serObj}{Environment.NewLine}---------------");
serObj = JsonConvert.SerializeObject(currMem, Formatting.Indented);
@@ -749,10 +754,8 @@ namespace IOB_WIN_NEXT.Iob
// registro x invio
item.value = item.reqValue;
item.reqValue = "";
// invio su server i parametri aggiornati!
string rawData = JsonConvert.SerializeObject(updatedPar);
lgInfo("Notifica a server scrittura parametri");
utils.callUrl($"{urlUpdateWriteParams}", rawData);
// salvo
upsertKey(item.uid, item.value);
}
else
@@ -765,6 +768,12 @@ namespace IOB_WIN_NEXT.Iob
lgError($"Eccezione in fase di plcWriteParams per item {item.uid} con valore {item.value}{Environment.NewLine}{exc}");
}
}
#if false
// invio su server i parametri aggiornati!
string rawData = JsonConvert.SerializeObject(updatedPar);
lgInfo("Notifica a server scrittura parametri");
utils.callUrl($"{urlUpdateWriteParams}", rawData);
#endif
}
}
+3
View File
@@ -364,6 +364,9 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
// 2023.09.19 resetto richiesta
item.reqValue = "";
}
else
{
+2
View File
@@ -344,6 +344,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
// 2023.09.19 resetto richiesta
item.reqValue = "";
}
else
{
@@ -83,6 +83,7 @@ namespace IOB_WIN_NEXT.IobOpc
// accodo x scrittura
nodes2Write.Add(commWriteVal);
lgInfo($"richiesta scrittura valore | nodeId: {commWriteVal.NodeId} | targetPar: {item.TargetParam} | val {commWriteVal.Value.Value}");
}
// x ora NON eseguo
+2
View File
@@ -193,6 +193,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
// 2023.09.19 resetto richiesta
item.reqValue = "";
}
else
{
+2
View File
@@ -340,6 +340,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
// 2023.09.19 resetto richiesta
item.reqValue = "";
}
else
{
+2
View File
@@ -353,6 +353,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
// 2023.09.19 resetto richiesta
item.reqValue = "";
}
else
{
+2
View File
@@ -344,6 +344,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
// 2023.09.19 resetto richiesta
item.reqValue = "";
}
else
{
+2
View File
@@ -345,6 +345,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
// 2023.09.19 resetto richiesta
item.reqValue = "";
}
else
{
+2
View File
@@ -340,6 +340,8 @@ namespace IOB_WIN_NEXT.IobOpc
if (!string.IsNullOrEmpty(memAddrWrite))
{
nodes2Write.Add(commWriteVal);
// 2023.09.19 resetto richiesta
item.reqValue = "";
}
else
{
+2 -2
View File
@@ -367,7 +367,7 @@ namespace IOB_WIN_NEXT.IobSoap
// se è OK
if (fatto)
{
item.value = answ.feedback;
item.value = $"{answ.feedback} | {answ.notes}";
item.reqValue = "";
item.lastRead = DateTime.Now;
item.UM = "";
@@ -376,7 +376,7 @@ namespace IOB_WIN_NEXT.IobSoap
}
else
{
item.value = answ.feedback;
item.value = $"{answ.feedback} | {answ.notes}";
item.reqValue = "";
lgError($"reqWeight | Errore in richiesta peso GOMBA | {answ.feedback} | {answ.notes}");
}