From 7d077b65761b23f2d5409900def273d9e0a4b574 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Sat, 29 Mar 2025 15:34:58 +0100 Subject: [PATCH] Update gestione letture sync/async MSE --- MP-TAB3/MP-TAB3.csproj | 2 +- MP-TAB3/Pages/RegNewDevice.razor | 9 +- MP-TAB3/Pages/RegNewDevice.razor.cs | 10 +- MP-TAB3/Pages/StatusMap.razor.cs | 260 +++++++++++++++------------- MP-TAB3/Resources/ChangeLog.html | 2 +- MP-TAB3/Resources/VersNum.txt | 2 +- MP-TAB3/Resources/manifest.xml | 2 +- MP.Data/Services/TabDataFeeder.cs | 64 +++---- 8 files changed, 186 insertions(+), 165 deletions(-) diff --git a/MP-TAB3/MP-TAB3.csproj b/MP-TAB3/MP-TAB3.csproj index 4e3739c2..6d27d4a1 100644 --- a/MP-TAB3/MP-TAB3.csproj +++ b/MP-TAB3/MP-TAB3.csproj @@ -3,7 +3,7 @@ net6.0 enable - 6.16.2503.2909 + 6.16.2503.2915 enable MP_TAB3 diff --git a/MP-TAB3/Pages/RegNewDevice.razor b/MP-TAB3/Pages/RegNewDevice.razor index b827597f..fe2a3c09 100644 --- a/MP-TAB3/Pages/RegNewDevice.razor +++ b/MP-TAB3/Pages/RegNewDevice.razor @@ -12,16 +12,15 @@ @if (ShowScanBarcode) { - - +
@@ -39,7 +38,7 @@
- + } @if (oprList.Count > 0) diff --git a/MP-TAB3/Pages/RegNewDevice.razor.cs b/MP-TAB3/Pages/RegNewDevice.razor.cs index d7d00b95..34dc1c5b 100644 --- a/MP-TAB3/Pages/RegNewDevice.razor.cs +++ b/MP-TAB3/Pages/RegNewDevice.razor.cs @@ -15,10 +15,13 @@ namespace MP_TAB3.Pages public void Dispose() { + barcodeReaderCustom.Stop(); + barcodeReaderCustom.CloseScan(); + ShowScanBarcode = false; txtError = ""; matrOpr = 0; oprList = new List(); - //GC.Collect(); + GC.Collect(); } #endregion Public Methods @@ -135,8 +138,11 @@ namespace MP_TAB3.Pages await TDService.RegDichiarInsert(ulRec); } + // nascondo scanner... + ShowScanBarcode = false; + // passo a status map - await Task.Delay(150); + await Task.Delay(50); NavMan.NavigateTo("status-map", true); } else diff --git a/MP-TAB3/Pages/StatusMap.razor.cs b/MP-TAB3/Pages/StatusMap.razor.cs index 1707d8c2..4d6d7fe9 100644 --- a/MP-TAB3/Pages/StatusMap.razor.cs +++ b/MP-TAB3/Pages/StatusMap.razor.cs @@ -10,32 +10,6 @@ namespace MP_TAB3.Pages { public partial class StatusMap : IDisposable { - #region Public Methods - - public void Dispose() - { - ListMSE = null; - TDFeeder.dataPipe.EA_NewMessage -= DataPipe_EA_NewMessage; - TDFeeder.blinkPipe.EA_NewMessage -= BlinkPipe_EA_NewMessage; - GC.Collect(); - } - - #endregion Public Methods - - #region Public Classes - - public class WindowDimension - { - #region Public Properties - - public int Height { get; set; } - public int Width { get; set; } - - #endregion Public Properties - } - - #endregion Public Classes - #region Protected Fields protected bool _showCard = false; @@ -44,6 +18,14 @@ namespace MP_TAB3.Pages #endregion Protected Fields + #region Private Fields + + private static Logger Log = LogManager.GetCurrentClassLogger(); + + private bool doBlink = false; + + #endregion Private Fields + #region Protected Properties [Inject] @@ -56,6 +38,43 @@ namespace MP_TAB3.Pages [Inject] protected IJSRuntime JSRuntime { get; set; } = null!; + /// + /// Numero colonne mappa: calcolato larghezza riga... + /// + protected int mapNCol + { + get + { + int answ = 2; + if (Width > 450) + { + if (Width < 1024) + { + answ = (int)Math.Floor((decimal)Width / 200); + } + else + { + answ = (int)Math.Floor((decimal)Width / 220) - 1; + } + } + return answ; + } + } + + /// + /// Numero righe mappa: calcolato da num elementi e numMax x riga... + /// + protected int mapNRow + { + get + { + int answ = 1; + int numElems = ListMSE != null ? ListMSE.Count : 1; + answ = (int)Math.Ceiling((double)numElems / mapNCol); + return answ; + } + } + [Inject] protected StatusData MDataService { get; set; } = null!; @@ -85,6 +104,37 @@ namespace MP_TAB3.Pages #endregion Protected Properties + #region Private Properties + + private List? AllDataMSE { get; set; } = null; + + private string baseLang { get; set; } = ""; + + private List? ListMachineEnabled { get; set; } = null; + + private List? ListMSE { get; set; } = null; + + private int MatrOpr + { + get => MsgServ.MatrOpr; + } + + private string tcMode { get; set; } = ""; + + #endregion Private Properties + + #region Public Methods + + public void Dispose() + { + ListMSE = null; + TDFeeder.dataPipe.EA_NewMessage -= DataPipe_EA_NewMessage; + TDFeeder.blinkPipe.EA_NewMessage -= BlinkPipe_EA_NewMessage; + GC.Collect(); + } + + #endregion Public Methods + #region Protected Methods /// @@ -108,58 +158,6 @@ namespace MP_TAB3.Pages return answ; } - /// - /// Numero righe mappa: calcolato da num elementi e numMax x riga... - /// - protected int mapNRow - { - get - { - int answ = 1; - int numElems = ListMSE != null ? ListMSE.Count : 1; - answ = (int)Math.Ceiling((double)numElems / mapNCol); - return answ; - } - } - - /// - /// restituisce MSE dato indice - /// - /// Indice MSE richiesto - /// - protected MappaStatoExpl? MseById(int mseIdx) - { - MappaStatoExpl? answ = null; - if (ListMSE != null && ListMSE.Count > mseIdx) - { - answ = ListMSE[mseIdx]; - } - return answ; - } - - /// - /// Numero colonne mappa: calcolato larghezza riga... - /// - protected int mapNCol - { - get - { - int answ = 2; - if (Width > 450) - { - if (Width < 1024) - { - answ = (int)Math.Floor((decimal)Width / 200); - } - else - { - answ = (int)Math.Floor((decimal)Width / 220) - 1; - } - } - return answ; - } - } - protected async Task DoLogout() { string tgtUrl = "logout"; @@ -197,6 +195,21 @@ namespace MP_TAB3.Pages return answ; } + /// + /// restituisce MSE dato indice + /// + /// Indice MSE richiesto + /// + protected MappaStatoExpl? MseById(int mseIdx) + { + MappaStatoExpl? answ = null; + if (ListMSE != null && ListMSE.Count > mseIdx) + { + answ = ListMSE[mseIdx]; + } + return answ; + } + protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) @@ -208,10 +221,10 @@ namespace MP_TAB3.Pages { ListMachineEnabled = await TabDServ.MacchineByMatrOper(MatrOpr); } - AllDataMSE = await MDataService.MseGetAll(true); - FiltOprMse(); await InvokeAsync(StateHasChanged); } + // rileggo macchina e pagina + await RestoreMaccPage(); if (ListMSE != null) { // salvo in LocalStorage... @@ -224,27 +237,19 @@ namespace MP_TAB3.Pages // ora resetto il resto ListMSE = null; setDefaults(); + await LoadMseData(); + SetupConf(); TDFeeder.dataPipe.EA_NewMessage += DataPipe_EA_NewMessage; TDFeeder.blinkPipe.EA_NewMessage += BlinkPipe_EA_NewMessage; - Random rnd = new Random(); - await Task.Delay(rnd.Next(1, 5)); - SetupConf(); - var LastOpenedPage = await MsgServ.LastOpenedPageGet(); - var currMacc = await MsgServ.IdxMaccGet(); - if (currMacc != "" && currMacc != null) - { - await MsgServ.IdxMaccSet(currMacc); - if (LastOpenedPage != "" && LastOpenedPage != null) - { - NavMan.NavigateTo(LastOpenedPage); - } - } } protected override async Task OnParametersSetAsync() { - // x prima cosa elenco macchine operatore... - ListMachineEnabled = await TabDServ.MacchineByMatrOper(MatrOpr); + // x prima cosa elenco macchine operatore... se mancasse + if (ListMachineEnabled == null || ListMachineEnabled.Count == 0) + { + ListMachineEnabled = await TabDServ.MacchineByMatrOper(MatrOpr); + } } protected async Task SaveData(List newList) @@ -262,33 +267,6 @@ namespace MP_TAB3.Pages #endregion Protected Methods - #region Private Fields - - private static Logger Log = LogManager.GetCurrentClassLogger(); - - private bool doBlink = false; - - #endregion Private Fields - - #region Private Properties - - private List? AllDataMSE { get; set; } = null; - - private string baseLang { get; set; } = ""; - - private List? ListMachineEnabled { get; set; } = null; - - private List? ListMSE { get; set; } = null; - - private int MatrOpr - { - get => MsgServ.MatrOpr; - } - - private string tcMode { get; set; } = ""; - - #endregion Private Properties - #region Private Methods /// @@ -367,6 +345,30 @@ namespace MP_TAB3.Pages } } + private async Task LoadMseData() + { + AllDataMSE = await MDataService.MseGetAll(true); + FiltOprMse(); + } + + /// + /// Restore della macchina + pagina selezionate da info di sessione browser + /// + /// + private async Task RestoreMaccPage() + { + var LastOpenedPage = await MsgServ.LastOpenedPageGet(); + var currMacc = await MsgServ.IdxMaccGet(); + if (currMacc != "" && currMacc != null) + { + await MsgServ.IdxMaccSet(currMacc); + if (LastOpenedPage != "" && LastOpenedPage != null) + { + NavMan.NavigateTo(LastOpenedPage); + } + } + } + private void setDefaults() { string df = MsgServ.UserPrefSetup("DefCardMode", "full"); @@ -384,5 +386,19 @@ namespace MP_TAB3.Pages } #endregion Private Methods + + #region Public Classes + + public class WindowDimension + { + #region Public Properties + + public int Height { get; set; } + public int Width { get; set; } + + #endregion Public Properties + } + + #endregion Public Classes } } \ No newline at end of file diff --git a/MP-TAB3/Resources/ChangeLog.html b/MP-TAB3/Resources/ChangeLog.html index 33502969..315c5b6e 100644 --- a/MP-TAB3/Resources/ChangeLog.html +++ b/MP-TAB3/Resources/ChangeLog.html @@ -1,6 +1,6 @@ Modulo MAPOSPEC -

Versione: 6.16.2503.2909

+

Versione: 6.16.2503.2915


Note di rilascio:
  • diff --git a/MP-TAB3/Resources/VersNum.txt b/MP-TAB3/Resources/VersNum.txt index 033f5627..2f24b11f 100644 --- a/MP-TAB3/Resources/VersNum.txt +++ b/MP-TAB3/Resources/VersNum.txt @@ -1 +1 @@ -6.16.2503.2909 +6.16.2503.2915 diff --git a/MP-TAB3/Resources/manifest.xml b/MP-TAB3/Resources/manifest.xml index 9c4fa659..ab0be4ce 100644 --- a/MP-TAB3/Resources/manifest.xml +++ b/MP-TAB3/Resources/manifest.xml @@ -1,6 +1,6 @@ - 6.16.2503.2909 + 6.16.2503.2915 https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/MP-TAB3.zip https://nexus.steamware.net/repository/SWS/MP-TAB3/stable/LAST/ChangeLog.html false diff --git a/MP.Data/Services/TabDataFeeder.cs b/MP.Data/Services/TabDataFeeder.cs index 42c08282..7189b7d8 100644 --- a/MP.Data/Services/TabDataFeeder.cs +++ b/MP.Data/Services/TabDataFeeder.cs @@ -9,6 +9,16 @@ namespace MP.Data.Services { public class TabDataFeeder : StatusData, IDisposable { + #region Private Fields + + private static System.Timers.Timer fastTimer = new System.Timers.Timer(4000); + + private static Logger Log = LogManager.GetCurrentClassLogger(); + + private int fastRefreshMs = 1000; + + #endregion Private Fields + #region Public Constructors public TabDataFeeder(IConfiguration configuration) : base(configuration) @@ -70,16 +80,6 @@ namespace MP.Data.Services #endregion Public Methods - #region Private Fields - - private static System.Timers.Timer fastTimer = new System.Timers.Timer(4000); - - private static Logger Log = LogManager.GetCurrentClassLogger(); - - private int fastRefreshMs = 1000; - - #endregion Private Fields - #region Private Methods private void ElapsedFastTimer(object? source, System.Timers.ElapsedEventArgs e) @@ -87,28 +87,28 @@ namespace MP.Data.Services try { var pUpd = Task.Run(async () => - { - // secondi pari --> blink, secondi dispari --> ricarica - DateTime adesso = DateTime.Now; - int resto = 0; - Math.DivRem(adesso.Second, 2, out resto); - if (resto == 0) - { - // invio in channel blink il segnale - blinkPipe.sendMessage("true"); - Log.Debug("Elapsed Fast Timer Blink"); - } - else - { - // invio in channel blink segnale false - blinkPipe.sendMessage("false"); - // rileggo dati... - var newData = await MseGetAll(); - // invio tramite la pipe... - dataPipe.sendMessage(JsonConvert.SerializeObject(newData)); - Log.Debug("Elapsed Fast Timer reload"); - } - }); + { + // secondi pari --> blink, secondi dispari --> ricarica + DateTime adesso = DateTime.Now; + int resto = 0; + Math.DivRem(adesso.Second, 2, out resto); + if (resto == 0) + { + // invio in channel blink il segnale + blinkPipe.sendMessage("true"); + Log.Trace("Elapsed Fast Timer Blink"); + } + else + { + // invio in channel blink segnale false + blinkPipe.sendMessage("false"); + // rileggo dati... + var newData = await MseGetAll(); + // invio tramite la pipe... + dataPipe.sendMessage(JsonConvert.SerializeObject(newData)); + Log.Trace("Elapsed Fast Timer reload"); + } + }); pUpd.Wait(); } catch (Exception exc)