diff --git a/IOB-WIN/App.config b/IOB-WIN/App.config
index de55efd7..1ae3d120 100644
--- a/IOB-WIN/App.config
+++ b/IOB-WIN/App.config
@@ -38,6 +38,7 @@
+
@@ -70,7 +71,6 @@
-
diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs
index d6a9de8d..937bd013 100644
--- a/IOB-WIN/IobGeneric.cs
+++ b/IOB-WIN/IobGeneric.cs
@@ -350,7 +350,7 @@ namespace IOB_WIN
///
public bool IobOnline;
///
- /// stato Online/Offline della IOB
+ /// stato Online/Offline del server MP IO
///
public bool MPOnline;
///
@@ -1012,19 +1012,45 @@ namespace IOB_WIN
///
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 listaValori = new List();
+ // 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 listaValori = new List();
- // 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();
-#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();
+#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;
- }
}
}
///