Continuo modifica x eliminare SamplerMSE singoli
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using MP.Data.DatabaseModels;
|
||||
using MP.Data;
|
||||
using MP.Data.Services;
|
||||
using MP_TAB3.Shared;
|
||||
using NLog.Fluent;
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace MP_TAB3.Pages
|
||||
{
|
||||
public partial class Index : IDisposable
|
||||
@@ -18,16 +26,6 @@ namespace MP_TAB3.Pages
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
@page "/status-map"
|
||||
|
||||
<MseSampler SampleMult="1.5" E_Updated="SaveData"></MseSampler>
|
||||
@* <MseSampler SampleMult="1.5" E_Updated="SaveData"></MseSampler> *@
|
||||
<div class="pe-2">
|
||||
<div class="row mb-2">
|
||||
@if (ListMSE == null || ListMSE.Count == 0 || isCalcSize)
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
using global::Microsoft.AspNetCore.Components;
|
||||
using Microsoft.JSInterop;
|
||||
using MP.Data;
|
||||
using MP.Data.Conf;
|
||||
using MP.Data.DatabaseModels;
|
||||
using MP.Data.Services;
|
||||
using MP_TAB3.Shared;
|
||||
using Newtonsoft.Json;
|
||||
using NLog;
|
||||
using System.Runtime.ExceptionServices;
|
||||
|
||||
@@ -16,6 +18,8 @@ namespace MP_TAB3.Pages
|
||||
public void Dispose()
|
||||
{
|
||||
ListMSE = null;
|
||||
TDFeeder.dataPipe.EA_NewMessage -= DataPipe_EA_NewMessage;
|
||||
TDFeeder.blinkPipe.EA_NewMessage -= BlinkPipe_EA_NewMessage;
|
||||
GC.Collect();
|
||||
}
|
||||
|
||||
@@ -39,8 +43,6 @@ namespace MP_TAB3.Pages
|
||||
|
||||
protected bool _showCard = false;
|
||||
|
||||
protected int maxCol = 6;
|
||||
|
||||
protected string showArt = "";
|
||||
|
||||
#endregion Protected Fields
|
||||
@@ -79,6 +81,9 @@ namespace MP_TAB3.Pages
|
||||
[Inject]
|
||||
protected TabDataService TabDServ { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected TabDataFeeder TDFeeder { get; set; } = null!;
|
||||
|
||||
protected int Width { get; set; } = 0;
|
||||
|
||||
#endregion Protected Properties
|
||||
@@ -129,10 +134,15 @@ namespace MP_TAB3.Pages
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
setDefaults();
|
||||
ListMSE = null;
|
||||
setDefaults();
|
||||
TDFeeder.dataPipe.EA_NewMessage += DataPipe_EA_NewMessage;
|
||||
TDFeeder.blinkPipe.EA_NewMessage += BlinkPipe_EA_NewMessage;
|
||||
Random rnd = new Random();
|
||||
await Task.Delay(rnd.Next(10, 20));
|
||||
SetupConf();
|
||||
var LastOpenedPage = await MsgServ.LastOpenedPageGet();
|
||||
var currMacc = await MsgServ.IdxMaccGet();
|
||||
@@ -143,7 +153,6 @@ namespace MP_TAB3.Pages
|
||||
{
|
||||
NavMan.NavigateTo(LastOpenedPage);
|
||||
}
|
||||
//NavMan.NavigateTo($"machine-detail");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -158,11 +167,14 @@ namespace MP_TAB3.Pages
|
||||
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
private bool doBlink = false;
|
||||
|
||||
#endregion Private Fields
|
||||
|
||||
#region Private Properties
|
||||
|
||||
private string baseLang { get; set; } = "";
|
||||
|
||||
private List<MappaStatoExpl>? ListMSE { get; set; } = null;
|
||||
|
||||
private string tcMode { get; set; } = "";
|
||||
@@ -171,6 +183,80 @@ namespace MP_TAB3.Pages
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private void BlinkPipe_EA_NewMessage(object? sender, EventArgs e)
|
||||
{
|
||||
PubSubEventArgs currArgs = (PubSubEventArgs)e;
|
||||
// conversione on-the-fly List<string> --> allarmi
|
||||
if (!string.IsNullOrEmpty(currArgs.newMessage))
|
||||
{
|
||||
try
|
||||
{
|
||||
var dataRaw = JsonConvert.DeserializeObject<string>(currArgs.newMessage);
|
||||
if (dataRaw != null)
|
||||
{
|
||||
bool.TryParse($"{dataRaw}", out doBlink);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
InvokeAsync(() =>
|
||||
{
|
||||
StateHasChanged();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Ricevuto nuovi dati da mostrare!
|
||||
/// </summary>
|
||||
/// <param name="sender"></param>
|
||||
/// <param name="e"></param>
|
||||
/// <exception cref="NotImplementedException"></exception>
|
||||
private void DataPipe_EA_NewMessage(object? sender, EventArgs e)
|
||||
{
|
||||
PubSubEventArgs currArgs = (PubSubEventArgs)e;
|
||||
// conversione on-the-fly List<string> --> allarmi
|
||||
if (!string.IsNullOrEmpty(currArgs.newMessage))
|
||||
{
|
||||
try
|
||||
{
|
||||
List<MappaStatoExpl>? dataList = JsonConvert.DeserializeObject<List<MappaStatoExpl>>(currArgs.newMessage);
|
||||
if (dataList != null)
|
||||
{
|
||||
#if false
|
||||
// se ho filtro macchine --> tengo solo quelle che mi tornano...
|
||||
if (listMacchine != null && listMacchine.Count > 0)
|
||||
{
|
||||
List<MappaStatoExpl> listaFilt = new List<MappaStatoExpl>();
|
||||
foreach (var item in listMacchine)
|
||||
{
|
||||
var rigaFilt = dataList.FirstOrDefault(x => x.IdxMacchina == item.IdxMacchina);
|
||||
if (rigaFilt != null)
|
||||
{
|
||||
listaFilt.Add(rigaFilt);
|
||||
}
|
||||
}
|
||||
dataList = listaFilt;
|
||||
}
|
||||
ListMSE = dataList;
|
||||
#endif
|
||||
SaveData(dataList);
|
||||
}
|
||||
}
|
||||
catch
|
||||
{ }
|
||||
}
|
||||
InvokeAsync(() =>
|
||||
{
|
||||
#if false
|
||||
// attesa random 0-50ms...
|
||||
Random rnd = new Random();
|
||||
Task.Delay(rnd.Next(5, 50));
|
||||
#endif
|
||||
StateHasChanged();
|
||||
});
|
||||
}
|
||||
|
||||
private void setDefaults()
|
||||
{
|
||||
string df = MsgServ.UserPrefSetup("DefCardMode", "full");
|
||||
@@ -180,12 +266,12 @@ namespace MP_TAB3.Pages
|
||||
isCalcSize = true;
|
||||
}
|
||||
|
||||
|
||||
private void SetupConf()
|
||||
{
|
||||
// sistemo i parametri opzionali...
|
||||
TabDServ.ConfigGetVal("MON_maxCol", ref maxCol);
|
||||
TabDServ.ConfigGetVal("sART", ref showArt);
|
||||
Log.Info($"setupConf | Effettuato setup parametri | MaxCol: {maxCol}");
|
||||
Log.Info($"setupConf | Effettuato setup parametri | showArt: {showArt}");
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
@@ -26,6 +26,9 @@ builder.Services.AddSingleton<IConnectionMultiplexer>(redisMultiplexer);
|
||||
builder.Services.AddRazorPages();
|
||||
builder.Services.AddServerSideBlazor();
|
||||
|
||||
builder.Services.AddSingleton<IConnectionMultiplexer>(redisMultiplexer);
|
||||
builder.Services.AddSingleton<TabDataFeeder>();
|
||||
|
||||
builder.Services.AddSingleton<StatusData>();
|
||||
builder.Services.AddSingleton<ListSelectDataSrv>();
|
||||
builder.Services.AddSingleton<OrderDataSrv>();
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
"MP.Mag": "Server=SQL2016DEV;Database=MoonPro_MAG; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=MP.TAB3;"
|
||||
},
|
||||
"OptConf": {
|
||||
"msRefresh": "4000",
|
||||
"msRefresh": "1100",
|
||||
"BaseAddr": "https://localhost:7295/MP/TAB3/",
|
||||
"BaseUrl": "/MP/TAB3",
|
||||
"ImgBasePath": "https://iis01.egalware.com/MP/images/macchine/small/",
|
||||
|
||||
@@ -113,7 +113,10 @@ namespace MP.Data
|
||||
//Subscribe to the channel named messages
|
||||
sub.Subscribe(_channel, (channel, message) =>
|
||||
{
|
||||
Log.Trace($"req setup ch {channel} | {message}");
|
||||
if (enableLog)
|
||||
{
|
||||
Log.Trace($"req setup ch {channel} | {message}");
|
||||
}
|
||||
// messaggio
|
||||
PubSubEventArgs mea = new PubSubEventArgs(message);
|
||||
// se qualcuno ascolta sollevo evento nuovo valore...
|
||||
@@ -122,7 +125,10 @@ namespace MP.Data
|
||||
EA_NewMessage(this, mea);
|
||||
}
|
||||
});
|
||||
Log.Info($"Subscribed {_channel}");
|
||||
if (enableLog)
|
||||
{
|
||||
Log.Info($"Subscribed {_channel}");
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
@@ -266,7 +266,7 @@ namespace MP.Data.Services
|
||||
result = await Task.FromResult(dbController.MseGetAll(maxAge));
|
||||
// serializzp e salvo...
|
||||
rawData = JsonConvert.SerializeObject(result);
|
||||
await redisDb.StringSetAsync(Constants.redisMseKey, rawData, FastCache);
|
||||
await redisDb.StringSetAsync(Constants.redisMseKey, rawData, UltraFastCache);
|
||||
}
|
||||
if (result == null)
|
||||
{
|
||||
@@ -304,6 +304,10 @@ namespace MP.Data.Services
|
||||
/// Cache breve durata
|
||||
/// </summary>
|
||||
private TimeSpan FastCache = TimeSpan.FromSeconds(5);
|
||||
/// <summary>
|
||||
/// Cache brevissima durata
|
||||
/// </summary>
|
||||
private TimeSpan UltraFastCache = TimeSpan.FromMilliseconds(1000);
|
||||
|
||||
/// <summary>
|
||||
/// Cache lunga durata
|
||||
|
||||
@@ -15,8 +15,8 @@ namespace MP.Data.Services
|
||||
{
|
||||
|
||||
// setup canali pub/sub
|
||||
dataPipe = new MessagePipe(redisConn, Constants.TAB_ACT_MSE_DATA_KEY);
|
||||
blinkPipe = new MessagePipe(redisConn, Constants.TAB_ACT_BLINK_KEY);
|
||||
dataPipe = new MessagePipe(redisConn, Constants.TAB_ACT_MSE_DATA_KEY, false);
|
||||
blinkPipe = new MessagePipe(redisConn, Constants.TAB_ACT_BLINK_KEY, false);
|
||||
|
||||
// avvio timers...
|
||||
startTimers();
|
||||
@@ -40,16 +40,6 @@ namespace MP.Data.Services
|
||||
stopTimers();
|
||||
}
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Richiesta attivazione --> sposto avanti 1 minuto il periodo limite x fast running
|
||||
/// </summary>
|
||||
public void doActivate()
|
||||
{
|
||||
fastLimit = DateTime.Now.AddMinutes(1);
|
||||
}
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Impostazione forzata timer refresh
|
||||
/// </summary>
|
||||
@@ -85,15 +75,8 @@ namespace MP.Data.Services
|
||||
|
||||
private static System.Timers.Timer fastTimer = new System.Timers.Timer(4000);
|
||||
|
||||
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
|
||||
private static Logger Log = LogManager.GetCurrentClassLogger();
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Limite in formato data-ora per inviare dati rapidamente (incrementato come now + 1 min
|
||||
/// ad ogni chiamata client)
|
||||
/// </summary>
|
||||
private DateTime fastLimit = DateTime.Now;
|
||||
#endif
|
||||
|
||||
private int fastRefreshMs = 1000;
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@ namespace MP.Mon.Pages
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
MMDataService.dataPipe.EA_NewMessage -= DataPipe_EA_NewMessage;
|
||||
MMDataService.blinkPipe.EA_NewMessage -= BlinkPipe_EA_NewMessage;
|
||||
disposeTimers();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user