From 81f9ff357aac5fb8646b6509489f45b64dd76527 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Wed, 9 Mar 2022 12:05:15 +0100 Subject: [PATCH] Update gestione accumulo dati da plottare --- MP.MONO.UI/Components/AlarmsOverview.razor.cs | 22 ------ MP.MONO.UI/Components/ParamPlot.razor | 27 ++++---- MP.MONO.UI/Components/ParamPlot.razor.cs | 68 ++++++++++++++++++- MP.MONO.UI/Pages/Parameters.razor | 3 +- MachineSim/Program.cs | 4 +- 5 files changed, 83 insertions(+), 41 deletions(-) diff --git a/MP.MONO.UI/Components/AlarmsOverview.razor.cs b/MP.MONO.UI/Components/AlarmsOverview.razor.cs index 7f6d601..8de322c 100644 --- a/MP.MONO.UI/Components/AlarmsOverview.razor.cs +++ b/MP.MONO.UI/Components/AlarmsOverview.razor.cs @@ -33,28 +33,6 @@ namespace MP.MONO.UI.Components private void AlarmPipe_EA_NewMessage(object? sender, EventArgs e) { PubSubEventArgs currArgs = (PubSubEventArgs)e; -#if false - if (currArgs.newMessage == "reset") - { - ListRecords = new List(); - } - else - { - DisplayDataDTO newRec = new DisplayDataDTO() - { - Title = $"{DateTime.Now:yyyy-MM-dd HH:mm:ss}", - Value = currArgs.newMessage, - IsNumeric = false, - Order = ListRecords == null ? 0 : ListRecords.Count - }; - if (ListRecords == null) - { - ListRecords = new List(); - } - ListRecords.Add(newRec); - ListRecords = ListRecords.OrderByDescending(x => x.Order).ToList(); - } -#endif // conversione on-the-fly List --> allarmi if (!string.IsNullOrEmpty(currArgs.newMessage)) { diff --git a/MP.MONO.UI/Components/ParamPlot.razor b/MP.MONO.UI/Components/ParamPlot.razor index 5ccf635..19a855a 100644 --- a/MP.MONO.UI/Components/ParamPlot.razor +++ b/MP.MONO.UI/Components/ParamPlot.razor @@ -4,18 +4,19 @@ @inject CurrentDataService MMDataService -
- @if (ListRecords == null || ListRecords.Count == 0) - { - - } - else - { - - } +
+
+ @SelectedParam - @(LevelVal.Count) rec +
+
+ @if (LevelVal == null || LevelVal.Count == 0) + { + + } + else + { + + } +
- -@code { - -} diff --git a/MP.MONO.UI/Components/ParamPlot.razor.cs b/MP.MONO.UI/Components/ParamPlot.razor.cs index d48c8c1..0728efd 100644 --- a/MP.MONO.UI/Components/ParamPlot.razor.cs +++ b/MP.MONO.UI/Components/ParamPlot.razor.cs @@ -7,10 +7,74 @@ namespace MP.MONO.UI.Components { public partial class ParamPlot { - //protected string selParam { get; set; } = ""; - private List? ListRecords { get; set; } = null; protected List LevelVal = new List(); + protected DateTime lastRec = DateTime.Now.AddMinutes(-1); + + protected int sampleSecMin = 2; + + + protected string _selParam { get; set; } = ""; + + [Parameter] + public string SelectedParam + { + get + { + return _selParam; + } + set + { + // controllo se รจ variato + if (_selParam != value) + { + // salvo + _selParam = value; + // resetto TimeSerie + LevelVal = new List(); + } + } + } + + protected override async Task OnInitializedAsync() + { + //await ReloadData(); + await Task.Delay(1); + MMDataService.parametersPipe.EA_NewMessage += ParametersPipe_EA_NewMessage; + } + + private void ParametersPipe_EA_NewMessage(object? sender, EventArgs e) + { + DateTime adesso = DateTime.Now; + if (lastRec.AddSeconds(sampleSecMin) < adesso) + { + PubSubEventArgs currArgs = (PubSubEventArgs)e; + if (!string.IsNullOrEmpty(currArgs.newMessage)) + { + try + { + var ListRecords = JsonConvert.DeserializeObject>(currArgs.newMessage); + // prendo SOLO il dato della TS richiesta + if (ListRecords != null) + { + var newData = ListRecords.Where(x => x.Title == SelectedParam).FirstOrDefault(); + // lo accodo + if (newData != null) + { + LevelVal.Add(new chartJsData.chartJsTSerie() { x = adesso, y = newData.ValueNum }); + } + } + } + catch + { } + } + lastRec = adesso; + } + InvokeAsync(() => + { + StateHasChanged(); + }); + } } } diff --git a/MP.MONO.UI/Pages/Parameters.razor b/MP.MONO.UI/Pages/Parameters.razor index 32756c8..48f2305 100644 --- a/MP.MONO.UI/Pages/Parameters.razor +++ b/MP.MONO.UI/Pages/Parameters.razor @@ -25,8 +25,7 @@ } else { -

HERE the plot for @selParam

- + }
diff --git a/MachineSim/Program.cs b/MachineSim/Program.cs index 85a05de..35a41d6 100644 --- a/MachineSim/Program.cs +++ b/MachineSim/Program.cs @@ -95,8 +95,8 @@ void simAlarms() } void simParameters() { - int minPeriod = 50; - int maxPeriod = 300; + int minPeriod = 250; + int maxPeriod = 500; do {