diff --git a/MP.MONO.Core/CONF/BaseAlarmConf.cs b/MP.MONO.Core/CONF/BaseAlarmConf.cs index 7348fc1..9738936 100644 --- a/MP.MONO.Core/CONF/BaseAlarmConf.cs +++ b/MP.MONO.Core/CONF/BaseAlarmConf.cs @@ -66,12 +66,10 @@ namespace MP.MONO.Core.CONF /// public List messages { get; set; } = new List(); - /// /// Dictionary calcolato allarmi /// - public Dictionary messagesMap { get; set; } = new Dictionary(); -#if false + public Dictionary messagesMap //{ get; set; } = new Dictionary(); { get { @@ -85,8 +83,22 @@ namespace MP.MONO.Core.CONF } return map; } - } -#endif + } + + public bool isSilenced(int messIndex) + { + //decremento: รจ base 1 mi serve base 0... + messIndex--; + bool answ = false; + int bank = (messIndex) / 16; + if (silenceMask != null && silenceMask.Length >= bank) + { + var testVal = 1 << messIndex; + answ = !((silenceMask[bank] & testVal) == testVal); + } + return answ; + } + /// /// Size in byte /// @@ -223,6 +235,7 @@ namespace MP.MONO.Core.CONF idx = 0; } } +#if false // sistemo messaggi come dizionario... Dictionary map = new Dictionary(); if (messages != null) @@ -232,7 +245,8 @@ namespace MP.MONO.Core.CONF map.Add(map.Count + 1, item); } } - messagesMap = map; + messagesMap = map; +#endif } /// diff --git a/MP.MONO.UI/Components/AlarmsSetup.razor b/MP.MONO.UI/Components/AlarmsSetup.razor index 9e2e561..5a8d42b 100644 --- a/MP.MONO.UI/Components/AlarmsSetup.razor +++ b/MP.MONO.UI/Components/AlarmsSetup.razor @@ -6,9 +6,6 @@ @inject CurrentDataService MMDataService
-
-

Alarm List

-
@if (ListRecords == null) { @@ -16,7 +13,7 @@ } else if (ListRecords.Count == 0) { -
No record found
+
No record found
} else { @@ -24,7 +21,7 @@
    @foreach (var item in ListRecords) { -
  • +
  • @item.description
  • } @@ -32,23 +29,22 @@ }
- @if (AlarmMap == null || AlarmMap.Count == 0) + @if (AlarmMap == null) { -
Select Bank First
+
Select Bank First
} else {
    - @foreach (var item in AlarmMap) + @foreach (var item in AlarmMap.messagesMap) { -
  • +
  • @item.Value
  • }
} - dettaglio allarmi - click to mute(unmute alarms + click to mute/unmute alarms
diff --git a/MP.MONO.UI/Components/AlarmsSetup.razor.cs b/MP.MONO.UI/Components/AlarmsSetup.razor.cs index 860e759..50b6a96 100644 --- a/MP.MONO.UI/Components/AlarmsSetup.razor.cs +++ b/MP.MONO.UI/Components/AlarmsSetup.razor.cs @@ -1,32 +1,53 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Components; -using System.Net.Http; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Components.Authorization; -using Microsoft.AspNetCore.Components.Forms; -using Microsoft.AspNetCore.Components.Routing; -using Microsoft.AspNetCore.Components.Web; -using Microsoft.AspNetCore.Components.Web.Virtualization; -using Microsoft.JSInterop; -using MP.MONO.UI; -using MP.MONO.UI.Shared; -using MP.MONO.UI.Components; using MP.MONO.Core.CONF; namespace MP.MONO.UI.Components { public partial class AlarmsSetup { + #region Protected Fields + protected List? ListRecords = null; - protected Dictionary? AlarmMap { get; set; } = null; + + #endregion Protected Fields + + #region Protected Properties + + protected BaseAlarmConf? AlarmMap { get; set; } = null; + + #endregion Protected Properties + + #region Protected Methods + + protected string cssActive(string memAddr) + { + string answ = ""; + if (AlarmMap != null) + { + answ = AlarmMap.memAddr.Equals(memAddr) ? "bg-dark text-light" : ""; + } + return answ; + } + protected string cssSilenced(int messIndex) + { + string answ = ""; + if (AlarmMap != null) + { + answ = AlarmMap.isSilenced(messIndex) ? "text-secondary" : "text-dark"; + } + return answ; + } + protected override async Task OnInitializedAsync() { await ReloadData(); } + protected async Task raiseSelect(BaseAlarmConf selBank) + { + AlarmMap = selBank; + await Task.Delay(1); + } + protected async Task ReloadData() { ListRecords = null; @@ -35,15 +56,29 @@ namespace MP.MONO.UI.Components await Task.Delay(1); } - protected async Task raiseSelect(Dictionary selMap) + protected async Task toggleMute(int alarmIndex) { - AlarmMap = selMap; + // base 1 --> base 0 + alarmIndex--; + int bank = alarmIndex / 16; + // calcolo inverso del valore richiesto + if (ListRecords != null && AlarmMap != null) + { + AlarmMap.silenceMask[bank] = AlarmMap.silenceMask[bank] ^ (uint)(1 << alarmIndex); + // sostituisco... + var currObj = ListRecords.FirstOrDefault(x => x.memAddr == AlarmMap.memAddr); + if (currObj != null) + { + currObj.silenceMask = AlarmMap.silenceMask; + // salvo su redis... + await MMDataService.setAlarmSetup(ListRecords); + } + } + await Task.Delay(1); + await ReloadData(); await Task.Delay(1); } - protected async Task toggleMute(int alarmIndex) - { - await Task.Delay(1); - } + #endregion Protected Methods } } \ No newline at end of file diff --git a/MP.MONO.UI/Components/ParamOverview.razor.cs b/MP.MONO.UI/Components/ParamOverview.razor.cs index b0b7526..0867f6b 100644 --- a/MP.MONO.UI/Components/ParamOverview.razor.cs +++ b/MP.MONO.UI/Components/ParamOverview.razor.cs @@ -16,21 +16,17 @@ namespace MP.MONO.UI.Components #region Private Methods [Parameter] - public List SelVal { get; set; } = new List(); - - + public List SelVal { get; set; } = new List(); [Parameter] public EventCallback EC_SelValue { get; set; } protected string cssActive(string ParamName) { - string answ = SelVal.Contains(ParamName) ? "bg-dark text-light": ""; + string answ = SelVal.Contains(ParamName) ? "bg-dark text-light" : ""; return answ; - } - private void ParametersPipe_EA_NewMessage(object? sender, EventArgs e) { PubSubEventArgs currArgs = (PubSubEventArgs)e; @@ -80,10 +76,10 @@ namespace MP.MONO.UI.Components { SelVal.Add(SelectedValue); } - + EC_SelValue.InvokeAsync(SelectedValue); } - } + #endregion Protected Methods -} +} \ No newline at end of file diff --git a/MP.MONO.UI/Data/CurrentDataService.cs b/MP.MONO.UI/Data/CurrentDataService.cs index b0b80cb..5bd60cf 100644 --- a/MP.MONO.UI/Data/CurrentDataService.cs +++ b/MP.MONO.UI/Data/CurrentDataService.cs @@ -155,6 +155,15 @@ namespace MP.MONO.UI.Data return await Task.FromResult(dbResult); } + public async Task setAlarmSetup(List alarmConf) + { + bool answ = false; + string cacheKey = Constants.ALARMS_CONF_KEY; + string rawData = JsonConvert.SerializeObject(alarmConf); + await redisDb.StringSetAsync(cacheKey, rawData); + return await Task.FromResult(answ); + } + public async Task> getEventHist() { List? dbResult = new List();