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; - } } } ///