bozza modifica con lista thread safe...

This commit is contained in:
Samuele E. Locatelli
2022-10-22 23:25:29 +02:00
parent 0284b50997
commit 32efb52d9d
10 changed files with 23 additions and 23 deletions
+1 -1
View File
@@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Platforms>AnyCPU;x86;x64</Platforms>
<Version>1.2.2210.2222</Version>
<Version>1.2.2210.2223</Version>
</PropertyGroup>
<ItemGroup>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>MAPO-MONO</i>
<h4>Version: 1.2.2210.2222</h4>
<h4>Version: 1.2.2210.2223</h4>
<br /> Release Note:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
1.2.2210.2222
1.2.2210.2223
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>1.2.2210.2222</version>
<version>1.2.2210.2223</version>
<url>http://nexus.steamware.net/repository/SWS/MP.MONO.ANALYZER/stable/LAST/MP.Mon.zip</url>
<changelog>http://nexus.steamware.net/repository/SWS/MP.MONO.ANALYZER/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>
+1 -1
View File
@@ -51,7 +51,7 @@
<logger name="*" minlevel="Debug" writeTo="f" />
-->
<!--<logger name="Microsoft.*" maxlevel="Info" final="true" />-->
<logger name="*" minlevel="Debug" writeTo="consoleTarget" />
<logger name="*" minlevel="Info" writeTo="consoleTarget" />
<logger name="*" minlevel="Info" writeTo="fileTarget" />
</rules>
</nlog>
+14 -14
View File
@@ -669,8 +669,6 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
// decodifico allarmi ricevuti
var alarmListRaw = JsonConvert.DeserializeObject<List<string>>(currArgs.newMessage);
Log.Debug($"Ricezione update allarmi | count {alarmListRaw.Count}");
// effettuo selezione dei SOLI allarmi distinct (in caso di cambio posizione...)
List<string> alarmList = new List<string>();
if (alarmListRaw != null && alarmListRaw.Count > 0)
@@ -681,6 +679,7 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
.OrderBy(x => x)
.ToList();
}
Log.Info($"Ricezione update allarmi | {alarmListRaw.Count} --> {alarmList.Count}");
// salvo set allarmi correnti...
setAlarms("LastReceived", alarmList);
@@ -699,9 +698,12 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
}
// rileggo da REDIS la conf attuale allarmi già attivi da area ALARM_CURR_KEY
// FIXME TODO !!! usare una lista thread safe?!?!?
List<string> lastAlarms = getAlarms("Sent");
List<string> startedAlarms = new List<string>();
List<string> ceasedAlarms = new List<string>();
string serAlarms = "";
// ciclo x ogni allarme ricevuto x vedere se sia INIZIATO o vada filtrato x muted
if (alarmList != null)
@@ -753,6 +755,7 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
};
alarmRecList.Add(newAlarmRec);
startedAlarms.Add(currNewAlarm);
lastAlarms.Add(currNewAlarm);
needsWrite = true;
}
}
@@ -767,6 +770,11 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
}
}
// salvo
serAlarms = JsonConvert.SerializeObject(lastAlarms);
// invio sulla message pipeline corretta TUTTI gli allarmi serializzati
alarmsSendPipe.saveAndSendMessage(Constants.ALARM_CURR_KEY, serAlarms);
// calcolo allarmi cessati...
if (lastAlarms != null)
{
@@ -790,12 +798,6 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
}
}
// se ho NUOVI allarmi iniziati li aggiungo all'ultimo elenco e invio + registro
foreach (var item in startedAlarms)
{
lastAlarms.Add(item);
}
Log.Debug($"Stato lastAlarms | count {lastAlarms.Count}");
// gli allarmi cessati avvio un task di verifica dopo periodo di blink
@@ -811,8 +813,8 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
MemAddress = "ND",
Index = 0,
// usare alarmList o lastAlarms
Status = (uint)lastAlarms.Count,
ValDecoded = lastAlarms.Count > 0 ? string.Join(", ", lastAlarms) : "All OK"
Status = (uint)alarmList.Count,
ValDecoded = alarmList.Count > 0 ? string.Join(", ", alarmList) : "All OK"
};
alarmLogList.Add(newAlarmLog);
}
@@ -821,7 +823,7 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
{
lastAlarms = lastAlarms.OrderBy(x => x).ToList();
// serializzo l'elenco allarmi...
string serAlarms = JsonConvert.SerializeObject(lastAlarms);
serAlarms = JsonConvert.SerializeObject(lastAlarms);
// se vuoto metto controllo x chiusura
if (lastAlarms.Count() == 0)
@@ -831,9 +833,7 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e)
await checkCloseAllAlarm();
});
}
#if false
string serAlarms = JsonConvert.SerializeObject(alarmList);
#endif
// invio sulla message pipeline corretta TUTTI gli allarmi serializzati
alarmsSendPipe.saveAndSendMessage(Constants.ALARM_CURR_KEY, serAlarms);
+1 -1
View File
@@ -6,7 +6,7 @@
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<Platforms>AnyCPU;x86;x64</Platforms>
<Version>1.2.2210.2222</Version>
<Version>1.2.2210.2223</Version>
</PropertyGroup>
<ItemGroup>
+1 -1
View File
@@ -1,6 +1,6 @@
<body>
<i>MAPO-MONO</i>
<h4>Version: 1.2.2210.2222</h4>
<h4>Version: 1.2.2210.2223</h4>
<br /> Release Note:
<ul>
<li>
+1 -1
View File
@@ -1 +1 @@
1.2.2210.2222
1.2.2210.2223
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<item>
<version>1.2.2210.2222</version>
<version>1.2.2210.2223</version>
<url>http://nexus.steamware.net/repository/SWS/MP.MONO.SIM/stable/LAST/MP.Mon.zip</url>
<changelog>http://nexus.steamware.net/repository/SWS/MP.MONO.SIM/stable/LAST/ChangeLog.html</changelog>
<mandatory>false</mandatory>