From e8f39b11cac08d6f1fb66550cb4b922e2c09888f Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 5 Feb 2020 09:55:36 +0100 Subject: [PATCH] UPdate IobMan 663 --- IOB-MAN/App.config | 8 +- IOB-MAN/IOBManPanel.Designer.cs | 1 + IOB-MAN/IOBManPanel.cs | 159 ++++++++++++-------------------- IOB-MAN/iobAdapt.cs | 12 +-- Jenkinsfile | 2 +- 5 files changed, 73 insertions(+), 109 deletions(-) diff --git a/IOB-MAN/App.config b/IOB-MAN/App.config index a1a2ef03..8817939a 100644 --- a/IOB-MAN/App.config +++ b/IOB-MAN/App.config @@ -6,10 +6,10 @@ - - - - + + + + diff --git a/IOB-MAN/IOBManPanel.Designer.cs b/IOB-MAN/IOBManPanel.Designer.cs index 81d0bef7..0ad7af30 100644 --- a/IOB-MAN/IOBManPanel.Designer.cs +++ b/IOB-MAN/IOBManPanel.Designer.cs @@ -330,6 +330,7 @@ this.dgvManagedItems.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); + this.dgvManagedItems.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; this.dgvManagedItems.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvManagedItems.Location = new System.Drawing.Point(3, 3); this.dgvManagedItems.Name = "dgvManagedItems"; diff --git a/IOB-MAN/IOBManPanel.cs b/IOB-MAN/IOBManPanel.cs index 637b238e..05787af7 100644 --- a/IOB-MAN/IOBManPanel.cs +++ b/IOB-MAN/IOBManPanel.cs @@ -85,10 +85,9 @@ namespace IOB_MAN /// semaforo check... /// protected bool checkRunning = false; - - protected bool doTaskRun = true; - protected bool doParallel = true; - + /// + /// Init classe + /// public IOBManPanel() { InitializeComponent(); @@ -104,14 +103,14 @@ namespace IOB_MAN lblVers.Text = string.Format(" v.{0}", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version); // init prog bar tsProgBar.Maximum = 100; - tsProgBar.Step = 2; + tsProgBar.Step = 4; // gestione eventi binding source ElencoIOB.AddingNew += ElencoIOB_AddingNew; ElencoIOB.ListChanged += ElencoIOB_ListChanged; // collego tab a binding dgvManagedItems.DataSource = ElencoIOB; - MainTimer.Interval = checkPeriod; loadConfig(); + MainTimer.Interval = checkPeriod; MainTimer.Start(); utils.lgInfo("Timer started"); if (utils.CRB("autoStartProc")) @@ -376,18 +375,11 @@ namespace IOB_MAN /// private void MainTimer_Tick(object sender, EventArgs e) { - updateProgBar(); - if (!checkRunning && forceCheckMult > 0) + updateProgBarAsync(); + if (!checkRunning || forceCheckMult > 0) { forceCheckMult = utils.CRI("forceCheckMult"); - if (doTaskRun) - { - checkProcessStatusAsync(); - } - else - { - checkProcessStatus(); - } + checkProcessStatusAsync(); checkWatchdog(); } else @@ -450,25 +442,6 @@ namespace IOB_MAN } } } - - /// - /// Controllo periodico dei processi attivi - /// - private void checkProcessStatus() - { - chekMult--; - if (chekMult < 0) - { - // reset variabili appoggio - chekMult = utils.CRI("chekMult"); - checkRunning = true; - // eseguo task! - checkRunningchild(); - updateStatus(); - checkRunning = false; - } - } - /// /// Controllo periodico dei processi attivi /// @@ -483,21 +456,28 @@ namespace IOB_MAN // eseguo task! //var taskRes = Task.Run(() => checkRunningchild()); //taskRes.Wait(); - await Task.Run(() => checkRunningchild()).ConfigureAwait(false); - updateStatus(); checkRunning = false; } } - private void updateProgBar() + private async Task updateProgBarAsync() { - tsProgBar.PerformStep(); - if (tsProgBar.Value >= tsProgBar.Maximum) + await Task.Run(() => performBarAdvance()).ConfigureAwait(false); + } + + private void performBarAdvance() + { + synchronizationContext.Post(new SendOrPostCallback(o => { - tsProgBar.Value = 0; - } + tsProgBar.PerformStep(); + if (tsProgBar.Value >= tsProgBar.Maximum) + { + tsProgBar.Value = 0; + } + tsProgBar.Invalidate(); + }), ""); } /// @@ -513,69 +493,52 @@ namespace IOB_MAN // 2020.02.01 passato chiamata specifica x leggere in 1 sola volta TUTTO elenco processi (x nome)... Process[] processList = Process.GetProcessesByName(TargetName); - if (doParallel) + + // ciclo + Parallel.ForEach(allItems, item => { - // ciclo - Parallel.ForEach(allItems, item => + needRem = checkIstance(item, item2rem, processList); + } + ); + // aggiorno datagrid! + dgvManagedItems.Invalidate(); + } + + private bool checkIstance(iobAdapt item, List item2rem, Process[] processList) + { + bool needRem; + // verifico se esista il processo... + try + { + if (processList.Length > 0) { - // verifico se esista il processo... - try - { - if (processList.Length > 0) - { - Process p = myGetProcByID(processList, item.pID); - needRem = p.HasExited; - } - else - { - needRem = true; - } - } - catch - { - needRem = true; - } - if (needRem) - { - item2rem.Add(item); - item.isRunning = false; - numProcRunning--; - } - else - { - item.isRunning = true; - } + Process p = myGetProcByID(processList, item.pID); + needRem = p.HasExited; } - ); + else + { + needRem = true; + } + } + catch + { + needRem = true; + } + if (needRem) + { + if (!item2rem.Contains(item)) + { + item2rem.Add(item); + } + item.isRunning = false; + numProcRunning--; } else { - foreach (iobAdapt item in allItems) - { - // verifico se esista il processo... - try - { - Process p = myGetProcByID(processList, item.pID); - needRem = p.HasExited; - } - catch - { - needRem = true; - } - if (needRem) - { - item2rem.Add(item); - item.isRunning = false; - numProcRunning--; - } - else - { - item.isRunning = true; - } - } + item.isRunning = true; } - // aggiorno datagrid! - dgvManagedItems.Invalidate(); + + return needRem; } private void IOBManPanel_FormClosing(object sender, FormClosingEventArgs e) diff --git a/IOB-MAN/iobAdapt.cs b/IOB-MAN/iobAdapt.cs index 69d68fac..0aeb1112 100644 --- a/IOB-MAN/iobAdapt.cs +++ b/IOB-MAN/iobAdapt.cs @@ -54,7 +54,7 @@ namespace IOB_MAN /// /// Calcola uptime processo... /// - [DisplayName("Uptime")] + [DisplayName("Uptime Total")] public string uptime { get @@ -71,7 +71,7 @@ namespace IOB_MAN /// /// Verifica se il processo sia in RUN /// - [DisplayName("Running")] + [DisplayName("Run")] public bool isRunning { get; set; } /// /// Gestore processi redis @@ -91,7 +91,7 @@ namespace IOB_MAN /// /// Counter dell'IOB /// - [DisplayName("pz IOB")] + [DisplayName("pz.IOB")] public int iobCounter { get @@ -102,7 +102,7 @@ namespace IOB_MAN /// /// Counter del CNC /// - [DisplayName("pz MAC")] + [DisplayName("pz.CNC")] public int cncCounter { get @@ -113,7 +113,7 @@ namespace IOB_MAN /// /// lunghezza coda EVENTI /// - [DisplayName("coda EV")] + [DisplayName("# EV")] public int queueElLen { get @@ -124,7 +124,7 @@ namespace IOB_MAN /// /// lunghezza coda FLog /// - [DisplayName("coda FL")] + [DisplayName("# FL")] public int queueFlLen { get diff --git a/Jenkinsfile b/Jenkinsfile index d5b2d8ec..c02d6638 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,7 +9,7 @@ pipeline { steps { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=661']) { + withEnv(['NEXT_BUILD_NUMBER=663']) { // env.versionNumber = VersionNumber(versionNumberString : '3.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true) env.versionNumber = VersionNumber(versionNumberString : '3.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}') env.APP_NAME = 'MAPO-IOB-WIN'