Merge branch 'release/SprintToVers3.9_03'
This commit is contained in:
@@ -31,5 +31,20 @@ namespace IOB_UT_NEXT.Config.Base
|
||||
/// </summary>
|
||||
public bool ResetOnStopSetup { get; set; } = false;
|
||||
|
||||
/// <summary>
|
||||
/// Abilita invio di più pezzi alla volta (IdxEv: 120)
|
||||
/// </summary>
|
||||
public bool EnabSendPzcBlock { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Numero minimo pezzi x invio in blocco
|
||||
/// </summary>
|
||||
public int SendPzcBlockMin { get; set; } = 0;
|
||||
|
||||
/// <summary>
|
||||
/// Numero massimo x invio in blocco
|
||||
/// </summary>
|
||||
public int SendPzcBlockMax { get; set; } = 100;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,11 @@ namespace IOB_UT_NEXT.Config.Base
|
||||
/// </summary>
|
||||
public bool DisabWDST { get; set; } = true;
|
||||
|
||||
/// <summary>
|
||||
/// Tempo massimo di WatchDog dopo cui inviare un segnale x evitare C101
|
||||
/// </summary>
|
||||
public int WatchDogSec { get; set; } = 60;
|
||||
|
||||
/// <summary>
|
||||
/// Abilita salvataggio coda eventi su redis (ritentiva)
|
||||
/// </summary>
|
||||
|
||||
@@ -112,7 +112,8 @@ namespace IOB_UT_NEXT.Config
|
||||
EnabRedisQue = bool.Parse(fIni.ReadString("IOB", "EnableRedisQueue", "true")),
|
||||
MinDeltaSec = fIni.ReadInteger("IOB", "MinDeltaSec", 6),
|
||||
RelVers = $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Version}",
|
||||
WaitRecMsec = Convert.ToInt32(fIni.ReadString("OPTPAR", "WAIT_REC_MSEC", "90000"))
|
||||
WaitRecMsec = Convert.ToInt32(fIni.ReadString("OPTPAR", "WAIT_REC_MSEC", "90000")),
|
||||
DisabWDST = bool.Parse(fIni.ReadString("OPTPAR", "DISABLE_SEND_WDST", "true"))
|
||||
};
|
||||
// da togliere da conf app...
|
||||
int uiTimer = utils.CRI("timerIntMs");
|
||||
@@ -137,6 +138,7 @@ namespace IOB_UT_NEXT.Config
|
||||
};
|
||||
|
||||
exclOptPar.Add("WAIT_REC_MSEC");
|
||||
exclOptPar.Add("DISABLE_SEND_WDST");
|
||||
exclOptPar.Add("timerIntMs");
|
||||
|
||||
// tipo adapter// verifico tipo adapter
|
||||
@@ -206,11 +208,17 @@ namespace IOB_UT_NEXT.Config
|
||||
newConfObj.Counters.EnableSetPzReq = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_PZ_REQ", "false"));
|
||||
newConfObj.Counters.ResetOnStartSetup = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_PZ_RESET", "false"));
|
||||
newConfObj.Counters.ResetOnStopSetup = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_PZ_RESET_stopSetup", "false"));
|
||||
newConfObj.Counters.EnabSendPzcBlock = bool.Parse(fIni.ReadString("OPTPAR", "ENABLE_SEND_PZC_BLOCK", "false"));
|
||||
newConfObj.Counters.SendPzcBlockMin = int.Parse(fIni.ReadString("OPTPAR", "MIN_SEND_PZC_BLOCK", "0"));
|
||||
newConfObj.Counters.SendPzcBlockMax = int.Parse(fIni.ReadString("OPTPAR", "MAX_SEND_PZC_BLOCK", "100"));
|
||||
|
||||
exclOptPar.Add("ENABLE_PZ_CNT");
|
||||
exclOptPar.Add("ENABLE_PZ_REQ");
|
||||
exclOptPar.Add("ENABLE_PZ_RESET");
|
||||
exclOptPar.Add("ENABLE_PZ_RESET_stopSetup");
|
||||
exclOptPar.Add("ENABLE_SEND_PZC_BLOCK");
|
||||
exclOptPar.Add("MIN_SEND_PZC_BLOCK");
|
||||
exclOptPar.Add("MAX_SEND_PZC_BLOCK");
|
||||
|
||||
// gestione ODL
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@
|
||||
<!-- watchdog, ping, check disconnesso -->
|
||||
<add key="nMaxSend" value="10" />
|
||||
<add key="pingTestSec" value="5" />
|
||||
<add key="watchdogMaxSec" value="90" />
|
||||
<add key="disconMaxSec" value="30" />
|
||||
<add key="defIOB" value="2999" />
|
||||
<add key="pauseSendMSec" value="2000" />
|
||||
@@ -51,7 +50,6 @@
|
||||
<add key="maxReadErrors" value="20" />
|
||||
<!--parametri SIM-->
|
||||
<add key="waitSimPar" value="30" />
|
||||
<!--<add key="waitSimPar" value="45" />-->
|
||||
<!--gestione REDIS-->
|
||||
<add key="RedisConn" value="localhost,abortConnect=false,ssl=false" />
|
||||
<add key="RedisConnAdmin" value="localhost,abortConnect=false,ssl=false" />
|
||||
@@ -61,7 +59,6 @@
|
||||
<add key="maxJsonData" value="100" />
|
||||
<add key="maxJsonDataEv" value="25" />
|
||||
<!--gestione multithread-->
|
||||
<add key="sendDataByThread" value="false" />
|
||||
<!--Modalità DEMO: DemoOUT indica che NON invia davvero al server e DemoIN che simula e NON legge da PLC-->
|
||||
<add key="DemoIn" value="false" />
|
||||
<add key="DemoInSample" value="false" />
|
||||
@@ -87,8 +84,6 @@
|
||||
<add key="resxPath" value="Resources" />
|
||||
<add key="mainConfFile" value="MAIN.ini" />
|
||||
<add key="defaultPersLayerFile" value="PersistData.dat" />
|
||||
<!--<add key="simDataFile" value="SimData.dat" />-->
|
||||
<!--<add key="memDumpFile" value="MemoryDump.dat" />-->
|
||||
<add key="numSim" value="1" />
|
||||
<add key="AUpdAsAdm" value="true" />
|
||||
<add key="ConfToCloud" value="false" />
|
||||
|
||||
@@ -947,13 +947,6 @@ namespace IOB_WIN_FORM
|
||||
|
||||
#region Protected Fields
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// contatore veloce
|
||||
/// </summary>
|
||||
protected int fastCount;
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Data-Ora prima apertura FORM...
|
||||
/// </summary>
|
||||
@@ -974,13 +967,6 @@ namespace IOB_WIN_FORM
|
||||
/// </summary>
|
||||
protected DateTime lastStartTry;
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// contatore normale
|
||||
/// </summary>
|
||||
protected int normCount;
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Oggetto connessioen REDIS
|
||||
/// </summary>
|
||||
@@ -1001,18 +987,6 @@ namespace IOB_WIN_FORM
|
||||
/// </summary>
|
||||
protected bool sendStartFLog = false;
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// contatore lento
|
||||
/// </summary>
|
||||
protected int slowCount;
|
||||
|
||||
/// <summary>
|
||||
/// contatore sync allarmi
|
||||
/// </summary>
|
||||
protected int verySlowCount;
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Temnpo attesa std in MS
|
||||
/// </summary>
|
||||
@@ -1570,16 +1544,6 @@ namespace IOB_WIN_FORM
|
||||
}
|
||||
// controllo TUTTE le scadenze...
|
||||
checkScad();
|
||||
#if false
|
||||
// check esecuzione FastTask
|
||||
checkScad(gatherCycle.HF);
|
||||
// check esecuzione NormTask
|
||||
checkScad(gatherCycle.MF);
|
||||
// check esecuzione SlowTask
|
||||
checkScad(gatherCycle.LF);
|
||||
// check esecuzione AlarmSync
|
||||
checkScad(gatherCycle.VLF);
|
||||
#endif
|
||||
if (utils.CRI("waitEndCycle") > 0)
|
||||
{
|
||||
Thread.Sleep(utils.CRI("waitEndCycle"));
|
||||
|
||||
@@ -24,15 +24,6 @@ namespace IOB_WIN_FORM.Iob
|
||||
/// <param name="args"></param>
|
||||
public void lgError(string message, params object[] args)
|
||||
{
|
||||
#if false
|
||||
try
|
||||
{
|
||||
}
|
||||
catch
|
||||
{
|
||||
readErrorCurr++;
|
||||
}
|
||||
#endif
|
||||
bool doVeto = checkLogVeto(2, ref message);
|
||||
// se non ho veto --> loggo
|
||||
if (!doVeto)
|
||||
@@ -377,49 +368,5 @@ namespace IOB_WIN_FORM.Iob
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Verifica se ci sia veto log attivo e gestisce casistiche
|
||||
/// </summary>
|
||||
/// <param name="vetoSec"></param>
|
||||
/// <param name="message"></param>
|
||||
/// <returns></returns>
|
||||
protected bool checkLogVeto(int vetoSec, ref string message)
|
||||
{
|
||||
//verifico SE si debba fare log, altrimenti metto in coda...
|
||||
bool doVeto = true;
|
||||
DateTime adesso = DateTime.Now;
|
||||
if (VetoLog.ContainsKey(message))
|
||||
{
|
||||
// conteggio num veto a +1...
|
||||
if (VetoLogCount.ContainsKey(message))
|
||||
{
|
||||
VetoLogCount[message]++;
|
||||
}
|
||||
else
|
||||
{
|
||||
VetoLogCount.Add(message, 1);
|
||||
}
|
||||
// controllo scadenza, quando superata soglia aggiorno messaggio con {n} x {messaggio}
|
||||
if (adesso.Subtract(VetoLog[message]).TotalSeconds > vetoSec)
|
||||
{
|
||||
doVeto = false;
|
||||
string newMessage = $"{VetoLogCount[message]} x {message}";
|
||||
VetoLog.Remove(message);
|
||||
VetoLogCount.Remove(message);
|
||||
message = newMessage;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// primo --> loggo
|
||||
doVeto = false;
|
||||
VetoLog.Add(message, adesso.AddSeconds(vetoSec));
|
||||
VetoLogCount.Add(message, 0);
|
||||
}
|
||||
// restituisco esito!
|
||||
return doVeto;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
+23
-67
@@ -3615,13 +3615,6 @@ namespace IOB_WIN_FORM.Iob
|
||||
/// </summary>
|
||||
protected bool enablePzCountByApp = true;
|
||||
|
||||
#if false
|
||||
/// <summary>
|
||||
/// Boolean x indicare contapezzi abilitato forzatamente da IOB
|
||||
/// </summary>
|
||||
protected bool enablePzCountByIob = true;
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// Abilitazione gestione slow data
|
||||
/// </summary>
|
||||
@@ -5490,24 +5483,13 @@ namespace IOB_WIN_FORM.Iob
|
||||
}
|
||||
else
|
||||
{
|
||||
string currPar = "";
|
||||
lgInfo("loadMemConf.01");
|
||||
lgInfoStartup("BEGIN loadMemConf");
|
||||
// variabili x gestione send contapezzi in blocco
|
||||
string currPar = getOptPar("ENABLE_SEND_PZC_BLOCK");
|
||||
if (!string.IsNullOrEmpty(currPar))
|
||||
{
|
||||
bool.TryParse(currPar, out enableSendPzCountBlock);
|
||||
// se abilitato leggo num pezzi da reinviare in blocco
|
||||
if (enableSendPzCountBlock)
|
||||
{
|
||||
int.TryParse(getOptPar("MAX_SEND_PZC_BLOCK"), out maxSendPzCountBlock);
|
||||
int.TryParse(getOptPar("MIN_SEND_PZC_BLOCK"), out minSendPzCountBlock);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lgError("loadMemConf: parametro ENABLE_SEND_PZC_BLOCK non trovato, verificare anche MAX_SEND_PZC_BLOCK e MIN_SEND_PZC_BLOCK");
|
||||
}
|
||||
enableSendPzCountBlock = IOBConfFull.Counters.EnabSendPzcBlock;
|
||||
minSendPzCountBlock = IOBConfFull.Counters.SendPzcBlockMin;
|
||||
maxSendPzCountBlock = IOBConfFull.Counters.SendPzcBlockMax;
|
||||
lgInfo("loadMemConf.02");
|
||||
currPar = getOptPar("MIN_RESP_TIME_MS");
|
||||
if (!string.IsNullOrEmpty(currPar))
|
||||
@@ -5527,13 +5509,7 @@ namespace IOB_WIN_FORM.Iob
|
||||
}
|
||||
|
||||
// abilitazione invio WDST disabilitazione controllo range valori DynData
|
||||
if (!string.IsNullOrEmpty(getOptPar("DISABLE_SEND_WDST")))
|
||||
{
|
||||
bool checkDisWdst = false;
|
||||
bool.TryParse(getOptPar("DISABLE_SEND_WDST"), out checkDisWdst);
|
||||
disableWdst = checkDisWdst;
|
||||
}
|
||||
|
||||
disableWdst = IOBConfFull.General.DisabWDST;
|
||||
// disabilitazione controllo range valori DynData
|
||||
if (!string.IsNullOrEmpty(getOptPar("disDynDataRangeCheck")))
|
||||
{
|
||||
@@ -7217,47 +7193,27 @@ namespace IOB_WIN_FORM.Iob
|
||||
if (checkServerAlive)
|
||||
{
|
||||
bool iobOk = false;
|
||||
if (utils.CRB("sendDataByThread"))
|
||||
{
|
||||
Task taskCheck = Task.Run(() => iobOk = checkIobEnabled);
|
||||
}
|
||||
else
|
||||
{
|
||||
iobOk = checkIobEnabled;
|
||||
}
|
||||
iobOk = checkIobEnabled;
|
||||
// verifico SE posso inviare dati
|
||||
if (iobOk)
|
||||
{
|
||||
currDispData.semOut = Semaforo.SV;
|
||||
// verificare come gestire il task secondario senza interferenza (chiamate
|
||||
// update su FORM da thread secondari danno errori)
|
||||
if (utils.CRB("sendDataByThread"))
|
||||
{
|
||||
// invio con thread separato...
|
||||
Task taskSigIN = Task.Run(() => svuotaCodaSignIN());
|
||||
Task taskFLog = Task.Run(() => svuotaCodaFLog());
|
||||
Task taskRawTransf = Task.Run(() => svuotaCodaRawTransf());
|
||||
Task taskULog = Task.Run(() => svuotaCodaULog());
|
||||
}
|
||||
else
|
||||
{
|
||||
// gestione queue SignalIN (invio, display)
|
||||
svuotaCodaSignIN();
|
||||
currDispData.counter = contapezziIOB;
|
||||
raiseRefresh(currDispData);
|
||||
// provo a svuotare coda contapezzi
|
||||
svuotaCodaContapezzi();
|
||||
currDispData.counter = contapezziIOB;
|
||||
raiseRefresh(currDispData);
|
||||
// gestione queue FluxLog (invio, display)
|
||||
svuotaCodaFLog();
|
||||
// coda RawTransf
|
||||
svuotaCodaRawTransf();
|
||||
// coda UserLog
|
||||
svuotaCodaULog();
|
||||
// refresh
|
||||
raiseRefresh(currDispData);
|
||||
}
|
||||
// gestione queue SignalIN (invio, display)
|
||||
svuotaCodaSignIN();
|
||||
currDispData.counter = contapezziIOB;
|
||||
raiseRefresh(currDispData);
|
||||
// provo a svuotare coda contapezzi
|
||||
svuotaCodaContapezzi();
|
||||
currDispData.counter = contapezziIOB;
|
||||
raiseRefresh(currDispData);
|
||||
// gestione queue FluxLog (invio, display)
|
||||
svuotaCodaFLog();
|
||||
// coda RawTransf
|
||||
svuotaCodaRawTransf();
|
||||
// coda UserLog
|
||||
svuotaCodaULog();
|
||||
// refresh
|
||||
raiseRefresh(currDispData);
|
||||
// se arrivo è tutto ok...
|
||||
currSendErrors = 0;
|
||||
}
|
||||
@@ -8380,7 +8336,7 @@ namespace IOB_WIN_FORM.Iob
|
||||
{
|
||||
bool sendOnMachineOff = false;
|
||||
// controllo se è passato oltre watchdog e non ho inviato nulla --> RE-INVIO (ultimo inviato)!!!!
|
||||
if (DateTime.Now.Subtract(lastWatchDog).TotalSeconds > utils.CRI("watchdogMaxSec"))
|
||||
if (DateTime.Now.Subtract(lastWatchDog).TotalSeconds > IOBConfFull.General.WatchDogSec)
|
||||
{
|
||||
string wdStatus = "elapsed";
|
||||
string sVal = string.Format("[WDST]{0}", wdStatus);
|
||||
|
||||
Reference in New Issue
Block a user