From ccbb6fa64432e3d4d54f22d7c056eaff3211918d Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Sat, 19 Mar 2022 16:33:51 +0100 Subject: [PATCH] Update gestione SIM e DECODER x allarmi (NON ancora OK) --- MP.MONO.ADAPTER/conf/AlarmList.json | 18 +++--- MP.MONO.Core/CONF/BaseAlarmConf.cs | 12 ---- MP.MONO.DECODER/AlarmManager.cs | 29 ++++++++-- MP.MONO.DECODER/Program.cs | 42 ++++++++------ MP.MONO.DECODER/README.txt | 18 +++++- MP.MONO.DECODER/lua/AlarmDecoder.lua | 45 ++++++++------- MP.MONO.Data/MP - Backup.MONO.Data.csproj | 12 ++-- MP.MONO.Data/MP.MONO.Data.csproj | 12 ++-- MP.MONO.Data/MessagePipe.cs | 56 +++++++++++++++---- .../20220315084318_AddAlarmLog.Designer.cs | 2 +- .../MapoMonoContextModelSnapshot.cs | 2 +- MP.MONO.SIM/Program.cs | 42 +++++++------- MP.MONO.SIM/appsettings.json | 3 +- MP.MONO.UI/MP - Backup.MONO.UI.csproj | 4 +- MP.MONO.UI/MP.MONO.UI.csproj | 4 +- 15 files changed, 184 insertions(+), 117 deletions(-) diff --git a/MP.MONO.ADAPTER/conf/AlarmList.json b/MP.MONO.ADAPTER/conf/AlarmList.json index 66b658b..47037b0 100644 --- a/MP.MONO.ADAPTER/conf/AlarmList.json +++ b/MP.MONO.ADAPTER/conf/AlarmList.json @@ -14,10 +14,10 @@ "Alarm 006", "Alarm 007", "Alarm 008", - "##Alarm 009", - "##Alarm 010", - "##Alarm 011", - "##Alarm 012", + "Alarm 009", + "Alarm 010", + "Alarm 011", + "Alarm 012", "##Alarm 013", "##Alarm 014", "##Alarm 015", @@ -37,12 +37,12 @@ "Warning 004", "Warning 005", "Warning 006", - "##Warning 007", - "##Warning 008", + "Warning 007", + "Warning 008", "##Warning 009", - "Warning 010", - "Warning 011", - "Warning 012", + "##Warning 010", + "##Warning 011", + "##Warning 012", "Warning 013", "Warning 014", "Warning 015", diff --git a/MP.MONO.Core/CONF/BaseAlarmConf.cs b/MP.MONO.Core/CONF/BaseAlarmConf.cs index 9738936..a592708 100644 --- a/MP.MONO.Core/CONF/BaseAlarmConf.cs +++ b/MP.MONO.Core/CONF/BaseAlarmConf.cs @@ -235,18 +235,6 @@ namespace MP.MONO.Core.CONF idx = 0; } } -#if false - // sistemo messaggi come dizionario... - Dictionary map = new Dictionary(); - if (messages != null) - { - foreach (var item in messages) - { - map.Add(map.Count + 1, item); - } - } - messagesMap = map; -#endif } /// diff --git a/MP.MONO.DECODER/AlarmManager.cs b/MP.MONO.DECODER/AlarmManager.cs index 64ff587..eeea835 100644 --- a/MP.MONO.DECODER/AlarmManager.cs +++ b/MP.MONO.DECODER/AlarmManager.cs @@ -22,32 +22,49 @@ namespace MP.MONO.DECODER { // !!!FIXME TODO +#if false // fare vero setup da file... x ora è fake - for (int i = 1; i < 9; i++) + for (int i = 1; i < 16; i++) { AlarmList.Add($"Allarme{i:00}"); - } + } +#endif currAlarmStatus.Add(0); // preparo variabile x avvisare script che il modo è da NLua luaPath = Path.Combine(Directory.GetCurrentDirectory(), "lua", "AlarmDecoder.lua"); - state.DoString(" callMode = 'NLua' "); +#if FALSE state["alarmList"] = AlarmList; - state["numAlarm"] = AlarmList.Count; + state["numAlarm"] = AlarmList.Count; +#endif + state.DoString(" callMode = 'NLua' "); // initi 0/0 +#if false + state.DoString(" lastVal = 0 "); + state.DoString(" currVal = 0 "); +#endif +#if true state["lastVal"] = 0; - state["currVal"] = 0; + state["currVal"] = 0; +#endif Log.Info("AlarmManager OK"); Console.WriteLine("AlarmManager OK"); } - public static List processData(int newStatus) + public static List processData(string prefix, List alarmList, uint muteMask, uint disableMask, uint newStatus) { + state["prefix"] = prefix; + state["alarmList"] = alarmList; + state["numAlarm"] = alarmList.Count; + state["muteMask"] = muteMask; + state["disableMask"] = disableMask; + List answ = new List(); // invio dati aggiornati a LUA state["currVal"] = newStatus; + // FIXME TODO!!! fare invio banco allarmi correnti (SE fossero + banchi da config) state.DoFile(luaPath); alarmStatus = state.GetString("alarmStatus"); diff --git a/MP.MONO.DECODER/Program.cs b/MP.MONO.DECODER/Program.cs index 36702f4..48a518b 100644 --- a/MP.MONO.DECODER/Program.cs +++ b/MP.MONO.DECODER/Program.cs @@ -123,7 +123,7 @@ void AlarmValPipe_EA_NewMessage(object? sender, EventArgs e) try { // verifico codici allarmi ricevuti - var alarmList = JsonConvert.DeserializeObject>(currArgs.newMessage); + var alarmList = JsonConvert.DeserializeObject>(currArgs.newMessage); if (alarmList != null) { // variabili accessorie @@ -143,24 +143,30 @@ void AlarmValPipe_EA_NewMessage(object? sender, EventArgs e) { currAlarmsConf = alarmsConf; } - - // ciclo x ogni bank di allarmi configurato - foreach (var bankVal in alarmList) + if (currAlarmsConf != null) { - var bankAlarmList = AlarmManager.processData(bankVal); - // aggiungo... - activeAlarmList.AddRange(bankAlarmList); - // preparo OBJ x DB - AlarmLogModel newAlarm = new AlarmLogModel() + // ciclo x ogni bank di allarmi configurato + foreach (var alarmData in currAlarmsConf) { - MachineId = MachineId, - DtRif = DateTime.Now, - MemAddress = "SIM.DB", - Index = 0, - Status = (uint)bankVal, - ValDecoded = activeAlarmList.Count > 0 ? JsonConvert.SerializeObject(activeAlarmList) : "All OK" - }; - alarmLogList.Add(newAlarm); + // recupero valore allarme + var bankVal = alarmList.FirstOrDefault(x => x.Key == alarmData.memAddr); + uint actVal = !string.IsNullOrEmpty(bankVal.Key) ? bankVal.Value : 0; + // valutare se dividere in 2 da 16... FIXME TODO + var bankAlarmList = AlarmManager.processData(alarmData.memAddr, alarmData.messages, alarmData.silenceMask[0], alarmData.disableMask[0], actVal); + // aggiungo... + activeAlarmList.AddRange(bankAlarmList); + + AlarmLogModel newAlarm = new AlarmLogModel() + { + MachineId = MachineId, + DtRif = DateTime.Now, + MemAddress = bankVal.Key, + Index = alarmData != null ? alarmData.index : 0, + Status = alarmData != null ? (uint)bankVal.Value & alarmData.silenceMask[0] & alarmData.disableMask[0] : (uint)bankVal.Value, + ValDecoded = bankAlarmList.Count > 0 ? string.Join(", ", bankAlarmList) : "All OK" + }; + alarmLogList.Add(newAlarm); + } } // serializzo... string serAlarms = "All OK"; @@ -169,7 +175,7 @@ void AlarmValPipe_EA_NewMessage(object? sender, EventArgs e) serAlarms = JsonConvert.SerializeObject(activeAlarmList); } // invio sulla message pipeline corretta TUTTI gli allarmi serializzati - alarmPipe.sendMessage(serAlarms); + alarmPipe.saveAndSendMessage(Constants.ALARM_CURR_KEY, serAlarms); if (dbController != null) { // salvo nel DB lo stato dei bank di allarme diff --git a/MP.MONO.DECODER/README.txt b/MP.MONO.DECODER/README.txt index efabc7f..cdf32de 100644 --- a/MP.MONO.DECODER/README.txt +++ b/MP.MONO.DECODER/README.txt @@ -1,5 +1,17 @@ -Per installare il simulatore come servizio impiegare nssm come gestore servizio. +------------------------------- +- SDK +------------------------------- -IN particolare installare con +Va installato pacchetto dotnet core hosting (che installa anche i runtime di dotnetcore) +choco install dotnet-windowshosting -nssm.exe install MP-MONO-SIM \ No newline at end of file + +(Se non bastasse bisogna installare prima SDK dotnet core choco install dotnet-6.0-sdk) + +------------------------------- +- SERVIZIO +------------------------------- + +Per installare il DECODER come servizio impiegare nssm come gestore servizio. In particolare installare con + +nssm.exe install MP-MONO-SIM diff --git a/MP.MONO.DECODER/lua/AlarmDecoder.lua b/MP.MONO.DECODER/lua/AlarmDecoder.lua index 0df26c5..4269804 100644 --- a/MP.MONO.DECODER/lua/AlarmDecoder.lua +++ b/MP.MONO.DECODER/lua/AlarmDecoder.lua @@ -5,32 +5,35 @@ Variabili IN: - alarmList(array/tabella) (elenco allarmi gestiti a bitmap, se ## = silenziati) - currVal(INT) stato corrente - lastVal(INT) ultimo stato (oppure 0) - opzionale -- muteMap(INT) valore BITMASK x silenziamento allarmi (xFF default = tutto attivo, ogni bit a 0 è silenziato) - opzionale +- muteMask(INT) valore disableMask x silenziamento allarmi (xFF default = tutto attivo, ogni bit a 0 è silenziato) - opzionale Variabili OUT: - alarmStatus (stirng con status finale risultato allarmi attivi) -Viene calcolato internamente la bitmask dall'elenco allarmi +Viene calcolato internamente la disableMask dall'elenco allarmi -----------------------------------------------------]] -- ricezione da codice tab status allarmi, attenzione da C# è 0 based, qui è 1 based --> fix costruzione tabella -- variabile semaforo callMode (locali o remote da NLua) -callMode = callMode or '' -currVal = currVal or 0 -lastVal = lastVal or 0 -muteMap = muteMap or 0Xff -bitMask = bitMask or 0x00 -valueChanged = false +callMode = callMode or '' +currVal = currVal or 0 +lastVal = lastVal or 0 +muteMask = muteMask or 0XFF +disableMask = disableMask or 0xFF +--disableMask = disableMask or 0x00 -- caso calcolato internamente +valueChanged = false +prefix = prefix or 'AREA' -- se non è da NLua inizializzo variabili accessorie local function checkInit() if(callMode ~= 'NLua') then - alarmList = {"##Allarme01", "Allarme02", "Allarme03", "##Allarme04", "Allarme05", "Allarme06", "Allarme07", "##Allarme08"} + alarmList = {"Allarme01", "Allarme02", "Allarme03", "Allarme04", "Allarme05", "Allarme06", "Allarme07", "Allarme08", "##Allarme09", "##Allarme10", "##Allarme11", "##Allarme12", "##Allarme13", "##Allarme14", "##Allarme15", "##Allarme16"} numAlarm = #alarmList -- valori status da testare lastVal = 0 currVal = 255 + disableMask = 0x00 end end @@ -43,12 +46,12 @@ local function testBit(testVal, i) end local function valMask(testVal) - return testVal & bitMask + return testVal & disableMask & muteMask end local function setupTable() if numAlarm > 0 and alarmList[0] ~= nil then - bitMask = 0 + disableMask = 0 for i = numAlarm,1, -1 do alarmListTable[i] = alarmList[i-1] end @@ -57,13 +60,15 @@ local function setupTable() end end -- calcolo maschera... -local function setupBitMask() - for i = 1, numAlarm,1 do - if(string.sub(alarmListTable[i],0,2)~='##') then - bitMask = bitMask + 2^(i-1) - end +local function setupdisableMask() + if(callMode ~= 'NLua') then + for i = 1, numAlarm,1 do + if(string.sub(alarmListTable[i],0,2)~='##') then + disableMask = disableMask + 2^(i-1) + end + end + disableMask = math.tointeger(disableMask) end - bitMask = math.tointeger(bitMask) end -- confronto lastVal e currVal @@ -87,7 +92,7 @@ local function checkActiveAlarms() for i = 1, numAlarm do bTest = testBit(valMask(currVal),i) if(bTest) then - alarmListActive[#alarmListActive+1]=string.format("%03d",i) ..' - '.. alarmListTable[i] + alarmListActive[#alarmListActive+1]= '[' .. prefix ..'.' .. string.format("%02d",i) ..'] '.. alarmListTable[i] hasAlarms = 1 end end @@ -113,7 +118,7 @@ end local function displayTestInfo() if(callMode ~= 'NLua') then - print('muteMap: '.. muteMap .. ' | bitMask: '.. bitMask) + print('muteMask: '.. muteMask .. ' | disableMask: '.. disableMask) print(alarmStatus) --print('------------------------------') --for i,val in pairs(alarmListTable) do @@ -130,7 +135,7 @@ alarmStatus = "" checkInit() setupTable() -setupBitMask() +setupdisableMask() checkVariation() checkActiveAlarms() calcStatusVar() diff --git a/MP.MONO.Data/MP - Backup.MONO.Data.csproj b/MP.MONO.Data/MP - Backup.MONO.Data.csproj index 9ed4297..33ee352 100644 --- a/MP.MONO.Data/MP - Backup.MONO.Data.csproj +++ b/MP.MONO.Data/MP - Backup.MONO.Data.csproj @@ -16,15 +16,15 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/MP.MONO.Data/MP.MONO.Data.csproj b/MP.MONO.Data/MP.MONO.Data.csproj index 08cf5ca..718bd88 100644 --- a/MP.MONO.Data/MP.MONO.Data.csproj +++ b/MP.MONO.Data/MP.MONO.Data.csproj @@ -17,15 +17,15 @@ - - - - + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/MP.MONO.Data/MessagePipe.cs b/MP.MONO.Data/MessagePipe.cs index 364ada5..fac1ac2 100644 --- a/MP.MONO.Data/MessagePipe.cs +++ b/MP.MONO.Data/MessagePipe.cs @@ -1,4 +1,5 @@ -using StackExchange.Redis; +using NLog; +using StackExchange.Redis; namespace MP.MONO.Data { @@ -6,18 +7,27 @@ namespace MP.MONO.Data { #region Private Fields + private bool enableLog = false; + private DateTime LastSend = DateTime.Now.AddMinutes(-5); private IConnectionMultiplexer redis; - private bool enableConsoleLog = false; + private IDatabase? redisDb; #endregion Private Fields + #region Protected Fields + + protected static Logger Log = LogManager.GetCurrentClassLogger(); + + #endregion Protected Fields + #region Public Constructors public MessagePipe(IConnectionMultiplexer redisConn, string channelName, bool enableLog = false) { _channel = channelName; redis = redisConn; - enableConsoleLog = enableLog; + redisDb = redis.GetDatabase(); + this.enableLog = enableLog; // aggiungo sottoscrittore setupSubscriber(); } @@ -47,11 +57,8 @@ namespace MP.MONO.Data //Subscribe to the channel named messages sub.Subscribe(_channel, (channel, message) => { - // Se abilitato Output messaggio ricevuto - if (enableConsoleLog) - { - Console.WriteLine($"[{DateTime.Now:HH:mm:ss}] {message}"); - } + Log.Info($"[{DateTime.Now:HH:mm:ss}] {message}"); + // messaggio PubSubEventArgs mea = new PubSubEventArgs(message); // se qualcuno ascolta sollevo evento nuovo valore... if (EA_NewMessage != null) @@ -59,13 +66,37 @@ namespace MP.MONO.Data EA_NewMessage(this, mea); } }); - Console.WriteLine($"Subscribed {_channel}"); + Log.Info($"Subscribed {_channel}"); } #endregion Private Methods #region Public Methods + public bool saveAndSendMessage(string memKey, string message) + { + bool answ = false; + // invio notifica tramite il canale richiesto + answ = sendMessage(message); + // effettuo la scrittura nell'area di memoria indicata SE passato intervallo minimo + bool doSend = true; + if (DateTime.Now.Subtract(LastSend).TotalSeconds < 60) + { + doSend = false; + } + + if (doSend && redisDb != null) + { + redisDb.StringSetAsync(memKey, message); + LastSend = DateTime.Now; + if (enableLog) + { + Log.Info($"Redis Cache Key: {memKey}"); + } + } + return answ; + } + /// /// Invio messaggio sul canale /// @@ -74,13 +105,18 @@ namespace MP.MONO.Data public bool sendMessage(string newMess) { bool answ = false; - ISubscriber sub = redis.GetSubscriber(); sub.Publish(_channel, newMess); return answ; } #endregion Public Methods + + /// + /// Invio messaggio sul canale + salvataggio in cache REDIS + /// + /// Chiave REDIS x salvare valore + /// } public class PubSubEventArgs : EventArgs diff --git a/MP.MONO.Data/Migrations/20220315084318_AddAlarmLog.Designer.cs b/MP.MONO.Data/Migrations/20220315084318_AddAlarmLog.Designer.cs index 88c14f1..0de5a8e 100644 --- a/MP.MONO.Data/Migrations/20220315084318_AddAlarmLog.Designer.cs +++ b/MP.MONO.Data/Migrations/20220315084318_AddAlarmLog.Designer.cs @@ -18,7 +18,7 @@ namespace MP.MONO.Data.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "6.0.3") + .HasAnnotation("ProductVersion", "6.0.2") .HasAnnotation("Relational:MaxIdentifierLength", 64); modelBuilder.Entity("MP.MONO.Data.DbModels.AlarmLogModel", b => diff --git a/MP.MONO.Data/Migrations/MapoMonoContextModelSnapshot.cs b/MP.MONO.Data/Migrations/MapoMonoContextModelSnapshot.cs index 65fdaac..5a0b7df 100644 --- a/MP.MONO.Data/Migrations/MapoMonoContextModelSnapshot.cs +++ b/MP.MONO.Data/Migrations/MapoMonoContextModelSnapshot.cs @@ -16,7 +16,7 @@ namespace MP.MONO.Data.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "6.0.3") + .HasAnnotation("ProductVersion", "6.0.2") .HasAnnotation("Relational:MaxIdentifierLength", 64); modelBuilder.Entity("MP.MONO.Data.DbModels.AlarmLogModel", b => diff --git a/MP.MONO.SIM/Program.cs b/MP.MONO.SIM/Program.cs index 04884e8..da3f9c2 100644 --- a/MP.MONO.SIM/Program.cs +++ b/MP.MONO.SIM/Program.cs @@ -182,7 +182,7 @@ void logError(string msg, bool log2file = true, bool log2console = false) } } -void saveAndSendMessage(string memKey, string value, string notifyChannel, string message) +void saveAndSendMessage(string memKey, string notifyChannel, string message) { // effettuo la scrittura nell'area di memoria indicata SE passato intervallo minimo bool doSend = true; @@ -199,17 +199,16 @@ void saveAndSendMessage(string memKey, string value, string notifyChannel, strin } if (doSend) { - redisDb.StringSetAsync(memKey, value); + redisDb.StringSetAsync(memKey, message); LastSend[memKey] = DateTime.Now; logInfo($"Redis Cache Key: {memKey}"); } - //redisDb.SetAdd(memKey, value); // invio notifica tramite il canale richiesto sub.Publish(notifyChannel, message); if (verboseLog) { - logInfo($"[{notifyChannel}] key: {memKey} | val: {value} | message: {message}"); + logInfo($"[{notifyChannel}] key: {memKey} | val/message: {message}"); } else { @@ -253,23 +252,26 @@ void saveAndSendMessage(string memKey, string value, string notifyChannel, strin void simAlarms() { - int minPeriod = 5000; - int maxPeriod = 10000; + int minPeriod = 3000; + int maxPeriod = 9000; + int percAllarmi = config.GetValue("percAllarmi"); do { - Dictionary currAlarmsVal = new Dictionary(); - int alarmCode = 0; + Dictionary currAlarmsVal = new Dictionary(); + uint alarmCode = 0; + bool hasAlarm; // ciclo x numero banchi da config... foreach (var item in alarmsConf) { - alarmCode = rand.Next(0, 65535); - // se >= 128 --> 0 (no alarm) - alarmCode = alarmCode <= 32768 ? alarmCode : 0; + // limito allarmi al percAllarmi/100 dei casi + hasAlarm = rand.Next(0, 100) <= percAllarmi; + // allarme libero SE in condizione allarme + alarmCode = hasAlarm ? (uint)rand.Next(0, 65535) : 0; currAlarmsVal.Add(item.memAddr, alarmCode); } string rawDataVal = JsonConvert.SerializeObject(currAlarmsVal); - saveAndSendMessage(Constants.ALARM_ACT_KEY, rawDataVal, Constants.ALARM_ACT_VAL, rawDataVal); + saveAndSendMessage(Constants.ALARM_ACT_KEY, Constants.ALARM_ACT_VAL, rawDataVal); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); } while (true); @@ -284,7 +286,7 @@ void simParameters() { var newParams = currSimGen.getParameters(); string rawData = JsonConvert.SerializeObject(newParams); - saveAndSendMessage(Constants.PARAMS_CURR_KEY, rawData, Constants.PARAMS_M_QUEUE, rawData); + saveAndSendMessage(Constants.PARAMS_CURR_KEY, Constants.PARAMS_M_QUEUE, rawData); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); } while (true); @@ -300,7 +302,7 @@ void simStatus() // recupero uno stato simulato var newStatus = currSimGen.getStatus(); string rawData = JsonConvert.SerializeObject(newStatus); - saveAndSendMessage(Constants.STATUS_CURR_KEY, rawData, Constants.STATUS_M_QUEUE, rawData); + saveAndSendMessage(Constants.STATUS_CURR_KEY, Constants.STATUS_M_QUEUE, rawData); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); @@ -317,7 +319,7 @@ void simProd() // recupero uno stato simulato var newStatus = currSimGen.getProd(); string rawData = JsonConvert.SerializeObject(newStatus); - saveAndSendMessage(Constants.PROD_CURR_KEY, rawData, Constants.PROD_M_QUEUE, rawData); + saveAndSendMessage(Constants.PROD_CURR_KEY, Constants.PROD_M_QUEUE, rawData); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); @@ -334,7 +336,7 @@ void simMachStat() // recupero uno stato simulato var newVal = currSimGen.getProdStats(); string rawData = JsonConvert.SerializeObject(newVal); - saveAndSendMessage(Constants.MACH_STATS_CURR_KEY, rawData, Constants.MACH_STATS_M_QUEUE, rawData); + saveAndSendMessage(Constants.MACH_STATS_CURR_KEY, Constants.MACH_STATS_M_QUEUE, rawData); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); @@ -351,7 +353,7 @@ void simMaint() // recupero uno stato simulato var newVal = currSimGen.getMaint(); string rawData = JsonConvert.SerializeObject(newVal); - saveAndSendMessage(Constants.MAINT_STATS_CURR_KEY, rawData, Constants.MAINT_STATS_M_QUEUE, rawData); + saveAndSendMessage(Constants.MAINT_STATS_CURR_KEY, Constants.MAINT_STATS_M_QUEUE, rawData); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); @@ -368,7 +370,7 @@ void simTools() // recupero uno stato simulato var newVal = currSimGen.getTools(); string rawData = JsonConvert.SerializeObject(newVal); - saveAndSendMessage(Constants.TOOLS_CURR_KEY, rawData, Constants.TOOLS_M_QUEUE, rawData); + saveAndSendMessage(Constants.TOOLS_CURR_KEY, Constants.TOOLS_M_QUEUE, rawData); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); @@ -385,7 +387,7 @@ void simEvents() // recupero uno stato simulato var newVal = currSimGen.getEvents(); string rawData = JsonConvert.SerializeObject(newVal); - saveAndSendMessage(Constants.EVENT_LOG_CURR_KEY, rawData, Constants.EVENT_LOG_M_QUEUE, rawData); + saveAndSendMessage(Constants.EVENT_LOG_CURR_KEY, Constants.EVENT_LOG_M_QUEUE, rawData); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); @@ -402,7 +404,7 @@ void simActivityLog() // recupero uno stato simulato var newVal = currSimGen.getActLog(); string rawData = JsonConvert.SerializeObject(newVal); - saveAndSendMessage(Constants.ACT_LOG_CURR_KEY, rawData, Constants.ACT_LOG_M_QUEUE, rawData); + saveAndSendMessage(Constants.ACT_LOG_CURR_KEY, Constants.ACT_LOG_M_QUEUE, rawData); // attesa random Thread.Sleep(rand.Next(minPeriod, maxPeriod)); diff --git a/MP.MONO.SIM/appsettings.json b/MP.MONO.SIM/appsettings.json index 6a7c459..09456c4 100644 --- a/MP.MONO.SIM/appsettings.json +++ b/MP.MONO.SIM/appsettings.json @@ -7,7 +7,7 @@ }, "AllowedHosts": "*", "ConnectionStrings": { - "Redis": "nkcredis.steamware.net:6379,DefaultDatabase=7,connectTimeout=5000,syncTimeout=5000,asyncTimeout=5000,abortConnect=false,ssl=false,password=nkc.password", + "Redis": "nkcredis.steamware.net:6379,DefaultDatabase=7,connectTimeout=30000,syncTimeout=30000,asyncTimeout=30000,abortConnect=false,ssl=false,password=nkc.password", "AuthConnection": "Server=localhost;port=3306;database=GWMS;user=GWMS;pwd=GWMS_secret_pwd;sslmode=None;", "DefaultConnection": "Server=localhost;port=3306;database=MAPO.MONO;user=GWMS;pwd=GWMS_secret_pwd;sslmode=None;", "AdminConnection": "Server=localhost;port=3306;database=MAPO.MONO;user=root;pwd=Egalware_24068!;sslmode=None;", @@ -19,6 +19,7 @@ "sKey": "M3T@n0-CH4" }, "maxRecord": 15, + "percAllarmi": 40, "ExternalProviders": { "MailKit": { "SMTP": { diff --git a/MP.MONO.UI/MP - Backup.MONO.UI.csproj b/MP.MONO.UI/MP - Backup.MONO.UI.csproj index e1c233b..6ab1ec6 100644 --- a/MP.MONO.UI/MP - Backup.MONO.UI.csproj +++ b/MP.MONO.UI/MP - Backup.MONO.UI.csproj @@ -21,8 +21,8 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/MP.MONO.UI/MP.MONO.UI.csproj b/MP.MONO.UI/MP.MONO.UI.csproj index 0b4cbde..365f423 100644 --- a/MP.MONO.UI/MP.MONO.UI.csproj +++ b/MP.MONO.UI/MP.MONO.UI.csproj @@ -16,8 +16,8 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive