Messo conda concorrente...

This commit is contained in:
Samuele E. Locatelli
2019-11-03 13:49:36 +01:00
parent f98a32f700
commit ce409ed097
3 changed files with 55 additions and 15 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ CMDIOB2CALL=/IOB/getIob2call?GWIP=
; SIMULAZIONE verso server ufficio
STARTLIST=SIMUL_01
STARTLIST=SIMUL_01,SIMUL_02,SIMUL_03,SIMUL_04
;STARTLIST=SIM_DP_02
;STARTLIST=SIMUL_03,SIMUL_04,SIMUL_05,SIMUL_06,SIMUL_07,SIMUL_08
+53 -13
View File
@@ -3,6 +3,7 @@ using Newtonsoft.Json;
using NLog;
using System;
using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
@@ -36,7 +37,7 @@ namespace IOB_WIN
/// <summary>
/// Indicazione VETO check status IOB x evitare loop troppo stretti...
/// </summary>
public static DateTime dtVetoCheckIOB = DateTime.Now;
public DateTime dtVetoCheckIOB = DateTime.Now;
/// <summary>
/// Contapezzi attuale
/// </summary>
@@ -116,19 +117,19 @@ namespace IOB_WIN
/// <summary>
/// Oggetto della coda degli elementi letti (e non ancora trasmessi)
/// </summary>
public Queue<string> QueueIN = new Queue<string>();
public ConcurrentQueue<string> QueueIN = new ConcurrentQueue<string>();
/// <summary>
/// Oggetto della coda degli elementi letti di tipo FluxLog (e non ancora trasmessi)
/// </summary>
public Queue<string> QueueFLog = new Queue<string>();
public ConcurrentQueue<string> QueueFLog = new ConcurrentQueue<string>();
/// <summary>
/// Coda valori simulazione deterministica...
/// </summary>
public Queue<int> QueueSIM = new Queue<int>();
public ConcurrentQueue<int> QueueSIM = new ConcurrentQueue<int>();
/// <summary>
/// Coda valori letti x DEBUG...
/// </summary>
public Queue<int> QueueDebug = new Queue<int>();
public ConcurrentQueue<int> QueueDebug = new ConcurrentQueue<int>();
/// <summary>
/// valore booleano di check se sia in fase di COMUNICAZIONE ATTIVA con il PLC/NC
@@ -437,9 +438,15 @@ namespace IOB_WIN
// svuoto code se richiesto
if (resetQueue)
{
QueueIN = new ConcurrentQueue<string>();
QueueFLog = new ConcurrentQueue<string>();
QueueSIM = new ConcurrentQueue<int>();
#if false
// non permresso clear --> creo nuove code!
QueueIN.Clear();
QueueFLog.Clear();
QueueSIM.Clear();
QueueSIM.Clear();
#endif
}
// imposto contatori blink a zero...
i_counters = new int[32];
@@ -781,7 +788,12 @@ namespace IOB_WIN
while (QueueIN.Count > 0)
{
// INVIO COMUNQUE...!!!
sendToMoonPro(urlType.SignIN, QueueIN.Dequeue());
string valore = "";
QueueIN.TryDequeue(out valore);
sendToMoonPro(urlType.SignIN, valore);
#if false
sendToMoonPro(urlType.SignIN, QueueIN.Dequeue());
#endif
}
parentForm.displayTaskAndLog("Svuotamento FORZATO coda FluxLOG...");
// se ho + di 2 elementi in coda --> uso invio JSON in blocco...
@@ -793,10 +805,15 @@ namespace IOB_WIN
// se ho + di maxJsonData elementi --> invio un set di dati alla volta
if (QueueFLog.Count > maxJsonData)
{
string currVal = "";
// prendoi primi maxJsonDataValori
for (int i = 0; i < maxJsonData; i++)
{
listaValori.Add(QueueFLog.Dequeue());
QueueIN.TryDequeue(out currVal);
listaValori.Add(currVal);
#if false
listaValori.Add(QueueFLog.Dequeue());
#endif
}
sendDataBlock(urlType.FLog, listaValori);
}
@@ -807,17 +824,25 @@ namespace IOB_WIN
// invio
sendDataBlock(urlType.FLog, listaValori);
// svuoto!
QueueFLog.Clear();
QueueFLog = new ConcurrentQueue<string>();
#if false
QueueFLog.Clear();
#endif
}
}
// HO FINITO invio di FLog...
}
else
{
string currVal = "";
while (QueueFLog.Count > 0)
{
// INVIO COMUNQUE...!!!
sendToMoonPro(urlType.FLog, QueueFLog.Dequeue());
QueueFLog.TryDequeue(out currVal);
sendToMoonPro(urlType.FLog, currVal);
#if false
sendToMoonPro(urlType.FLog, QueueFLog.Dequeue());
#endif
}
}
}
@@ -2186,7 +2211,10 @@ namespace IOB_WIN
if (QueueIN.Count > 0)
{
// recupero ed aggiorno ULTIMO valore...
lastSignInVal = QueueIN.Dequeue();
QueueIN.TryDequeue(out lastSignInVal);
#if false
lastSignInVal = QueueIN.Dequeue();
#endif
// se ERA online provo
if (MPOnline)
{
@@ -2265,10 +2293,15 @@ namespace IOB_WIN
// se ho + di maxJsonData elementi --> invio un set di dati alla volta
if (QueueFLog.Count > maxJsonData)
{
string currVal = "";
// prendoi primi maxJsonDataValori
for (int j = 0; j < maxJsonData; j++)
{
listaValori.Add(QueueFLog.Dequeue());
QueueFLog.TryDequeue(out currVal);
listaValori.Add(currVal);
#if false
listaValori.Add(QueueFLog.Dequeue());
#endif
}
sendDataBlock(urlType.FLog, listaValori);
}
@@ -2279,14 +2312,21 @@ namespace IOB_WIN
// invio
sendDataBlock(urlType.FLog, listaValori);
// svuoto!
QueueFLog = new ConcurrentQueue<string>();
#if false
QueueFLog.Clear();
// HO FINITO invio di FLog...
#endif
}
}
else
{
// INVIO SINGOLO...!!!
string currVal = "";
QueueFLog.TryDequeue(out currVal);
sendToMoonPro(urlType.FLog, currVal);
#if false
sendToMoonPro(urlType.FLog, QueueFLog.Dequeue());
#endif
}
}
else
Vendored
+1 -1
View File
@@ -16,7 +16,7 @@ pipeline {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=486']) {
withEnv(['NEXT_BUILD_NUMBER=487']) {
// env.versionNumber = VersionNumber(versionNumberString : '2.3.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '2.3.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'MAPO-IOB-WIN'