Merge branch 'develop' into IobMan

This commit is contained in:
Samuele E. Locatelli
2020-02-05 09:55:40 +01:00
5 changed files with 73 additions and 109 deletions
+4 -4
View File
@@ -6,10 +6,10 @@
<appSettings>
<add key="appName" value="IOB-MAN" />
<add key="appNameExt" value="IOB-WIN" />
<add key="checkPeriod" value="250" />
<add key="chekMult" value="3" />
<add key="watchDogMult" value="60" />
<add key="forceCheckMult" value="10" />
<add key="checkPeriod" value="100" />
<add key="chekMult" value="7" />
<add key="watchDogMult" value="150" />
<add key="forceCheckMult" value="50" />
<add key="autoRestartTimeoutMin" value="15" />
<add key="autoStartProc" value="true" />
<add key="closeOnChildUpdate" value="true" />
+1
View File
@@ -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";
+61 -98
View File
@@ -85,10 +85,9 @@ namespace IOB_MAN
/// semaforo check...
/// </summary>
protected bool checkRunning = false;
protected bool doTaskRun = true;
protected bool doParallel = true;
/// <summary>
/// Init classe
/// </summary>
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
/// <param name="e"></param>
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
}
}
}
/// <summary>
/// Controllo periodico dei processi attivi
/// </summary>
private void checkProcessStatus()
{
chekMult--;
if (chekMult < 0)
{
// reset variabili appoggio
chekMult = utils.CRI("chekMult");
checkRunning = true;
// eseguo task!
checkRunningchild();
updateStatus();
checkRunning = false;
}
}
/// <summary>
/// Controllo periodico dei processi attivi
/// </summary>
@@ -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();
}), "");
}
/// <summary>
@@ -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<iobAdapt> 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)
+6 -6
View File
@@ -54,7 +54,7 @@ namespace IOB_MAN
/// <summary>
/// Calcola uptime processo...
/// </summary>
[DisplayName("Uptime")]
[DisplayName("Uptime Total")]
public string uptime
{
get
@@ -71,7 +71,7 @@ namespace IOB_MAN
/// <summary>
/// Verifica se il processo sia in RUN
/// </summary>
[DisplayName("Running")]
[DisplayName("Run")]
public bool isRunning { get; set; }
/// <summary>
/// Gestore processi redis
@@ -91,7 +91,7 @@ namespace IOB_MAN
/// <summary>
/// Counter dell'IOB
/// </summary>
[DisplayName("pz IOB")]
[DisplayName("pz.IOB")]
public int iobCounter
{
get
@@ -102,7 +102,7 @@ namespace IOB_MAN
/// <summary>
/// Counter del CNC
/// </summary>
[DisplayName("pz MAC")]
[DisplayName("pz.CNC")]
public int cncCounter
{
get
@@ -113,7 +113,7 @@ namespace IOB_MAN
/// <summary>
/// lunghezza coda EVENTI
/// </summary>
[DisplayName("coda EV")]
[DisplayName("# EV")]
public int queueElLen
{
get
@@ -124,7 +124,7 @@ namespace IOB_MAN
/// <summary>
/// lunghezza coda FLog
/// </summary>
[DisplayName("coda FL")]
[DisplayName("# FL")]
public int queueFlLen
{
get
Vendored
+1 -1
View File
@@ -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'