diff --git a/IOB-WIN-NEXT/DATA/CONF/PING.ini b/IOB-WIN-NEXT/DATA/CONF/PING.ini index 454d25cf..de8135e3 100644 --- a/IOB-WIN-NEXT/DATA/CONF/PING.ini +++ b/IOB-WIN-NEXT/DATA/CONF/PING.ini @@ -10,8 +10,8 @@ VENDOR=STEAMWARE MODEL=WATCHDOG [CNC] -;IP=10.74.83.112 -IP=10.74.82.253 +IP=10.74.83.183 +;IP=10.74.82.253 PORT=0000 [SERVER] diff --git a/IOB-WIN-NEXT/IobNet/Ping.cs b/IOB-WIN-NEXT/IobNet/Ping.cs index 90be9780..322519c3 100644 --- a/IOB-WIN-NEXT/IobNet/Ping.cs +++ b/IOB-WIN-NEXT/IobNet/Ping.cs @@ -2,6 +2,7 @@ using MapoSDK; using System; using System.Net.NetworkInformation; +using System.Threading; namespace IOB_WIN_NEXT.IobNet { @@ -41,7 +42,7 @@ namespace IOB_WIN_NEXT.IobNet //lastPING = adesso; lastReadPLC = adesso; lastDisconnCheck = adesso; - // faccio un primo check + // faccio un primo check POST ritardo tryConnect(); } @@ -89,15 +90,18 @@ namespace IOB_WIN_NEXT.IobNet { connectionOk = true; lastReadPLC = DateTime.Now; + lastWatchDog = DateTime.Now; } else { - connectionOk = false; + numFailMax = 10; + checkMaxPingFail(); } if (connectionOk) { B_input = 1; + //numFailCurr = 0; } else { @@ -111,15 +115,38 @@ namespace IOB_WIN_NEXT.IobNet { currDispData.semIn = Semaforo.SR; } + // attesa extra di 1 sec... + Thread.Sleep(1000); } + private void checkMaxPingFail() + { + numFailCurr++; + if (numFailCurr >= numFailMax) + { + lgInfo($"PING: Reached numFailMax: {numFailMax}"); + connectionOk = false; + numFailCurr = 0; + } + } + + /// + /// Max num ping falliti prima di demordere + /// + protected int numFailMax = 3; + /// + /// Num ping falliti corrente + /// + protected int numFailCurr = 0; + + /// /// Override connessione /// public override void tryConnect() { bool doLog = (verboseLog || periodicLog); - lgDebug("PING: tryConnect step 01"); + lgDebug($"PING: tryConnect step 01 | connectionOk: {connectionOk}"); if (!connectionOk) { // controllo che il ping sia stato tentato almeno pingTestSec fa... @@ -142,8 +169,9 @@ namespace IOB_WIN_NEXT.IobNet else { // loggo no risposta ping ... - connectionOk = false; lgError("PING KO"); + numFailMax = 2; + checkMaxPingFail(); } } }