Cambio logica controllo MP-IO presente e IOB enabled x send (un solo check)
This commit is contained in:
+1
-1
@@ -38,6 +38,7 @@
|
||||
<!--gestione invio dati in blocchi Json-->
|
||||
<add key="minJsonData" value="2" />
|
||||
<add key="maxJsonData" value="10" />
|
||||
<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" />
|
||||
@@ -70,7 +71,6 @@
|
||||
<!--logging-->
|
||||
<add key="recTime" value="true" />
|
||||
<add key="verbose" value="true" />
|
||||
<!--<add key="verbose" value="false"/>-->
|
||||
<add key="logEvery" value="100" />
|
||||
<add key="zipLogOldDay" value="1" />
|
||||
<add key="maxLogDirSize" value="400" />
|
||||
|
||||
+91
-108
@@ -350,7 +350,7 @@ namespace IOB_WIN
|
||||
/// </summary>
|
||||
public bool IobOnline;
|
||||
/// <summary>
|
||||
/// stato Online/Offline della IOB
|
||||
/// stato Online/Offline del server MP IO
|
||||
/// </summary>
|
||||
public bool MPOnline;
|
||||
/// <summary>
|
||||
@@ -1012,19 +1012,45 @@ namespace IOB_WIN
|
||||
/// </summary>
|
||||
private void trySendValues()
|
||||
{
|
||||
// verificare come gestire il task secondario senza interferenza (chiamate update su FORM da thread secondari danno errori)
|
||||
if (false)
|
||||
// verifico se risponde il server...
|
||||
if (checkServerAlive)
|
||||
{
|
||||
// test con thread separato...
|
||||
Task taskSigIN = TaskEx.Run(() => svuotaCodaSignIN());
|
||||
Task taskFlog = TaskEx.Run(() => svuotaCodaFLog());
|
||||
// verifico SE posso inviare dati
|
||||
if (checkIobEnabled)
|
||||
{
|
||||
// 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 = TaskEx.Run(() => svuotaCodaSignIN());
|
||||
Task taskFlog = TaskEx.Run(() => svuotaCodaFLog());
|
||||
}
|
||||
else
|
||||
{
|
||||
// gestione queue SignalIN (invio, display)
|
||||
svuotaCodaSignIN();
|
||||
// gestione queue FluxLog (invio, display)
|
||||
svuotaCodaFLog();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// mostro VETO-SEND x invio... GIALLO
|
||||
parentForm.sOUT = Semaforo.SG;
|
||||
if (periodicLog)
|
||||
{
|
||||
lgInfo("IOB - VETO SEND");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// gestione queue SignalIN (invio, display)
|
||||
svuotaCodaSignIN();
|
||||
// gestione queue FluxLog (invio, display)
|
||||
svuotaCodaFLog();
|
||||
// mostro SERVER KO x invio... ROSSO
|
||||
parentForm.sOUT = Semaforo.SR;
|
||||
if (periodicLog)
|
||||
{
|
||||
lgInfo("IOB - SERVER NOT READY");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2218,58 +2244,33 @@ namespace IOB_WIN
|
||||
// verifico SE la coda abbia dei valori...
|
||||
if (QueueIN.Count > 0)
|
||||
{
|
||||
// verifico se risponde il server...
|
||||
if (checkServerAlive)
|
||||
// invio pacchetto di dati (max da conf)
|
||||
for (int i = 0; i < nMaxSend; i++)
|
||||
{
|
||||
// verifico SE posso inviare dati
|
||||
if (checkIobEnabled)
|
||||
if (QueueIN.Count > 0)
|
||||
{
|
||||
// invio pacchetto di dati (max da conf)
|
||||
for (int i = 0; i < nMaxSend; i++)
|
||||
{
|
||||
if (QueueIN.Count > 0)
|
||||
{
|
||||
// recupero ed aggiorno ULTIMO valore...
|
||||
QueueIN.TryDequeue(out lastSignInVal);
|
||||
// recupero ed aggiorno ULTIMO valore...
|
||||
QueueIN.TryDequeue(out lastSignInVal);
|
||||
#if false
|
||||
lastSignInVal = QueueIN.Dequeue();
|
||||
#endif
|
||||
// se ERA online provo
|
||||
if (MPOnline)
|
||||
{
|
||||
// INVIO!!!
|
||||
sendToMoonPro(urlType.SignIN, lastSignInVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
// se ERA online provo
|
||||
if (MPOnline)
|
||||
{
|
||||
// INVIO!!!
|
||||
sendToMoonPro(urlType.SignIN, lastSignInVal);
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// mostro VETO-SEND x invio... GIALLO
|
||||
parentForm.sOUT = Semaforo.SG;
|
||||
if (periodicLog)
|
||||
{
|
||||
lgInfo("IOB - VETO SEND");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// mostro SERVER KO x invio... ROSSO
|
||||
parentForm.sOUT = Semaforo.SR;
|
||||
if (periodicLog)
|
||||
{
|
||||
lgInfo("IOB - SERVER NOT READY");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2290,86 +2291,68 @@ namespace IOB_WIN
|
||||
// verifico SE la coda abbia dei valori...
|
||||
if (QueueFLog.Count > 0)
|
||||
{
|
||||
// verifico se risponde il server...
|
||||
if (checkServerAlive)
|
||||
// invio pacchetto di dati (max da conf)
|
||||
for (int i = 0; i < nMaxSend; i++)
|
||||
{
|
||||
// verifico SE posso inviare dati
|
||||
if (checkIobEnabled)
|
||||
// SE ho qualcosa in coda...
|
||||
if (QueueFLog.Count > 0)
|
||||
{
|
||||
// invio pacchetto di dati (max da conf)
|
||||
for (int i = 0; i < nMaxSend; i++)
|
||||
if (MPOnline)
|
||||
{
|
||||
// SE ho qualcosa in coda...
|
||||
if (QueueFLog.Count > 0)
|
||||
{
|
||||
if (MPOnline)
|
||||
{
|
||||
|
||||
// se ho + di 2 elementi in coda --> uso invio JSON in blocco...
|
||||
if (QueueFLog.Count > 1)
|
||||
// se ho + di 2 elementi in coda --> uso invio JSON in blocco...
|
||||
if (QueueFLog.Count > 1)
|
||||
{
|
||||
List<string> listaValori = new List<string>();
|
||||
// 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++)
|
||||
{
|
||||
List<string> listaValori = new List<string>();
|
||||
// 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++)
|
||||
{
|
||||
QueueFLog.TryDequeue(out currVal);
|
||||
listaValori.Add(currVal);
|
||||
QueueFLog.TryDequeue(out currVal);
|
||||
listaValori.Add(currVal);
|
||||
#if false
|
||||
listaValori.Add(QueueFLog.Dequeue());
|
||||
#endif
|
||||
}
|
||||
sendDataBlock(urlType.FLog, listaValori);
|
||||
}
|
||||
else
|
||||
{
|
||||
// invio in blocco
|
||||
listaValori = QueueFLog.ToList();
|
||||
// invio
|
||||
sendDataBlock(urlType.FLog, listaValori);
|
||||
// svuoto!
|
||||
QueueFLog = new ConcurrentQueue<string>();
|
||||
#if false
|
||||
QueueFLog.Clear();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// INVIO SINGOLO...!!!
|
||||
string currVal = "";
|
||||
QueueFLog.TryDequeue(out currVal);
|
||||
sendToMoonPro(urlType.FLog, currVal);
|
||||
#if false
|
||||
sendToMoonPro(urlType.FLog, QueueFLog.Dequeue());
|
||||
#endif
|
||||
}
|
||||
sendDataBlock(urlType.FLog, listaValori);
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
// invio in blocco
|
||||
listaValori = QueueFLog.ToList();
|
||||
// invio
|
||||
sendDataBlock(urlType.FLog, listaValori);
|
||||
// svuoto!
|
||||
QueueFLog = new ConcurrentQueue<string>();
|
||||
#if false
|
||||
QueueFLog.Clear();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
// INVIO SINGOLO...!!!
|
||||
string currVal = "";
|
||||
QueueFLog.TryDequeue(out currVal);
|
||||
sendToMoonPro(urlType.FLog, currVal);
|
||||
#if false
|
||||
sendToMoonPro(urlType.FLog, QueueFLog.Dequeue());
|
||||
#endif
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// mostro VETO-SEND x invio... GIALLO
|
||||
parentForm.sOUT = Semaforo.SG;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// mostro SERVER KO x invio... ROSSO
|
||||
parentForm.sOUT = Semaforo.SR;
|
||||
}
|
||||
}
|
||||
}
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user