From 140b4abb5d0416f97f114ef67f013b26241d2e2d Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 6 Mar 2020 15:20:39 +0100 Subject: [PATCH] Modifica metodo chiusura proc fermi da IOB-MAN --- IOB-MAN/IOBManPanel.cs | 39 ++++++++++++++++++++++++++++++++++++--- Jenkinsfile | 2 +- 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/IOB-MAN/IOBManPanel.cs b/IOB-MAN/IOBManPanel.cs index f777c021..9c3a1aa8 100644 --- a/IOB-MAN/IOBManPanel.cs +++ b/IOB-MAN/IOBManPanel.cs @@ -450,10 +450,16 @@ namespace IOB_MAN { // verifico se ci siano processi (da ARGS LIST) NON running --> li riavvio! List proc2restart = new List(); + List proc2close = new List(); foreach (iobAdapt item in ElencoIOB.List) { - // se NON E' running oppure se ultimo comunicazione è > 5 minuti fa... - if (!item.isRunning || !item.plcOnline) + // se NON comunica da troppo (ultima comunicazione è > 5 minuti fa...) + if (!item.plcOnline) + { + proc2close.Add(item); + } + // se NON E' running + if (!item.isRunning) { // segno da eliminare e riavviare proc2restart.Add(item); @@ -463,11 +469,20 @@ namespace IOB_MAN // SE abilitato autorestart... if (chkAutoRestart.Checked) { + // in primis processo quelli che non comunicano e mi limito a chiuderli... + foreach (var item in proc2close) + { + ElencoIOB.Remove(item); + utils.lgInfo($"Chiusura processo non in PLC-Online | IOB: {item.CodIOB} | pid: {item.pID}"); + // chiudo! + closeSingleChild(item); + } + // se ho da riavviare... elimino! foreach (var item in proc2restart) { ElencoIOB.Remove(item); - utils.lgInfo($"Chiusura processo non running / online | IOB: {item.CodIOB} | pid: {item.pID}"); + utils.lgInfo($"Chiusura processo non in running | IOB: {item.CodIOB} | pid: {item.pID}"); } // li faccio ripartire! foreach (var item in proc2restart) @@ -611,6 +626,24 @@ namespace IOB_MAN UI_Timer.Dispose(); } + /// + /// Chiude il PID selezionato + /// + /// Chiude item richiesto + private void closeSingleChild(iobAdapt item) + { + // rimuovo item + ElencoIOB.Remove(item); + try + { + Process p = Process.GetProcessById(item.pID); + p.CloseMainWindow(); + } + catch + { } + // update! + updateStatus(); + } /// /// Chiude tutti i child /// diff --git a/Jenkinsfile b/Jenkinsfile index de41f3f5..756b22a3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -9,7 +9,7 @@ pipeline { steps { /* calcolo numero versione... diverso x branch MASTER/DEVELOP */ script { - withEnv(['NEXT_BUILD_NUMBER=684']) { + withEnv(['NEXT_BUILD_NUMBER=685']) { // 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'