diff --git a/IOB-UT/IOB-UT.csproj b/IOB-UT/IOB-UT.csproj index ba2880eb..b3d47ca0 100644 --- a/IOB-UT/IOB-UT.csproj +++ b/IOB-UT/IOB-UT.csproj @@ -52,15 +52,34 @@ ..\packages\SharpZipLib.0.86.0\lib\20\ICSharpCode.SharpZipLib.dll + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll + + + ..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll + ..\packages\NLog.4.6.7\lib\net40-client\NLog.dll + + ..\packages\Microsoft.Bcl.1.1.8\lib\net40\System.IO.dll + + + + ..\packages\Microsoft.Bcl.1.1.8\lib\net40\System.Runtime.dll + + + ..\packages\Microsoft.Bcl.1.1.8\lib\net40\System.Threading.Tasks.dll + @@ -81,7 +100,13 @@ + + + + + + \ No newline at end of file diff --git a/IOB-UT/app.config b/IOB-UT/app.config new file mode 100644 index 00000000..3c737829 --- /dev/null +++ b/IOB-UT/app.config @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/IOB-UT/baseUtils.cs b/IOB-UT/baseUtils.cs index 0c97d111..3e9876f6 100644 --- a/IOB-UT/baseUtils.cs +++ b/IOB-UT/baseUtils.cs @@ -8,6 +8,7 @@ using System.IO; using System.Linq; using System.Net; using System.Net.NetworkInformation; +using System.Threading.Tasks; namespace IOB_UT { @@ -496,6 +497,13 @@ namespace IOB_UT return answ; } + public static string callUrlAsync(string URL) + { + // Chiamo in modalità task... + var resp = TaskEx.Run(() => callUrl(URL)); + return resp.Result; + } + /// /// provvede a verificare la dim della cartella dei log e cancella i + vecchi fino a restare a dim inferiori a _logMaxMb /// diff --git a/IOB-UT/packages.config b/IOB-UT/packages.config index c5f6abc9..bf329431 100644 --- a/IOB-UT/packages.config +++ b/IOB-UT/packages.config @@ -1,5 +1,8 @@  + + + \ No newline at end of file diff --git a/IOB-WIN/AdapterForm.Designer.cs b/IOB-WIN/AdapterForm.Designer.cs index c149238a..4907662b 100644 --- a/IOB-WIN/AdapterForm.Designer.cs +++ b/IOB-WIN/AdapterForm.Designer.cs @@ -93,6 +93,9 @@ this.chkEdit = new System.Windows.Forms.CheckBox(); this.btnSendPLC = new System.Windows.Forms.Button(); this.btnOpenLog = new System.Windows.Forms.Button(); + this.lblQueueLenTop = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.lblQueueFLogLen = new System.Windows.Forms.Label(); this.statusStrip1.SuspendLayout(); this.tableLayoutPanel1.SuspendLayout(); this.tabData.SuspendLayout(); @@ -143,22 +146,24 @@ // this.tableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.tableLayoutPanel1.ColumnCount = 8; + this.tableLayoutPanel1.ColumnCount = 9; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 32F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 70F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 70F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 70F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 54F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 54F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 32F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 32F)); this.tableLayoutPanel1.Controls.Add(this.restart, 0, 0); this.tableLayoutPanel1.Controls.Add(this.stop, 2, 0); - this.tableLayoutPanel1.Controls.Add(this.nLines, 6, 0); + this.tableLayoutPanel1.Controls.Add(this.nLines, 7, 0); this.tableLayoutPanel1.Controls.Add(this.start, 1, 0); this.tableLayoutPanel1.Controls.Add(this.bIN, 0, 0); - this.tableLayoutPanel1.Controls.Add(this.bOUT, 7, 0); + this.tableLayoutPanel1.Controls.Add(this.bOUT, 8, 0); this.tableLayoutPanel1.Controls.Add(this.chkForceDequeue, 4, 0); + this.tableLayoutPanel1.Controls.Add(this.lblQueueLenTop, 6, 0); this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 0); this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); this.tableLayoutPanel1.Name = "tableLayoutPanel1"; @@ -449,7 +454,7 @@ // this.lblComStats.AutoSize = true; this.lblComStats.Font = new System.Drawing.Font("Arial Narrow", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblComStats.Location = new System.Drawing.Point(140, 154); + this.lblComStats.Location = new System.Drawing.Point(140, 166); this.lblComStats.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lblComStats.Name = "lblComStats"; this.lblComStats.Size = new System.Drawing.Size(19, 17); @@ -459,7 +464,7 @@ // label11 // this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(19, 153); + this.label11.Location = new System.Drawing.Point(19, 165); this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label11.Name = "label11"; this.label11.Size = new System.Drawing.Size(83, 17); @@ -470,7 +475,7 @@ // this.lblStatus.AutoSize = true; this.lblStatus.Font = new System.Drawing.Font("Arial Narrow", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblStatus.Location = new System.Drawing.Point(140, 122); + this.lblStatus.Location = new System.Drawing.Point(140, 134); this.lblStatus.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lblStatus.Name = "lblStatus"; this.lblStatus.Size = new System.Drawing.Size(17, 17); @@ -480,7 +485,7 @@ // label10 // this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(19, 122); + this.label10.Location = new System.Drawing.Point(19, 134); this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label10.Name = "label10"; this.label10.Size = new System.Drawing.Size(48, 17); @@ -491,7 +496,7 @@ // this.lblQueueLen.AutoSize = true; this.lblQueueLen.Font = new System.Drawing.Font("Arial Narrow", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblQueueLen.Location = new System.Drawing.Point(140, 90); + this.lblQueueLen.Location = new System.Drawing.Point(140, 81); this.lblQueueLen.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lblQueueLen.Name = "lblQueueLen"; this.lblQueueLen.Size = new System.Drawing.Size(26, 17); @@ -502,7 +507,7 @@ // this.lblDataProc.AutoSize = true; this.lblDataProc.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblDataProc.Location = new System.Drawing.Point(140, 61); + this.lblDataProc.Location = new System.Drawing.Point(140, 54); this.lblDataProc.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.lblDataProc.Name = "lblDataProc"; this.lblDataProc.Size = new System.Drawing.Size(26, 17); @@ -512,17 +517,17 @@ // label9 // this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(19, 91); + this.label9.Location = new System.Drawing.Point(19, 82); this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(98, 17); + this.label9.Size = new System.Drawing.Size(114, 17); this.label9.TabIndex = 81; - this.label9.Text = "Queue lenght:"; + this.label9.Text = "Event Queue len"; // // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(19, 61); + this.label8.Location = new System.Drawing.Point(19, 54); this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label8.Name = "label8"; this.label8.Size = new System.Drawing.Size(113, 17); @@ -589,6 +594,8 @@ // panel1 // this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.panel1.Controls.Add(this.label21); + this.panel1.Controls.Add(this.lblQueueFLogLen); this.panel1.Controls.Add(this.lblStatus); this.panel1.Controls.Add(this.lblComStats); this.panel1.Controls.Add(this.label1); @@ -853,6 +860,39 @@ this.btnOpenLog.UseVisualStyleBackColor = true; this.btnOpenLog.Click += new System.EventHandler(this.BtnOpenLog_Click); // + // lblQueueLenTop + // + this.lblQueueLenTop.AutoEllipsis = true; + this.lblQueueLenTop.AutoSize = true; + this.lblQueueLenTop.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblQueueLenTop.Location = new System.Drawing.Point(353, 0); + this.lblQueueLenTop.Name = "lblQueueLenTop"; + this.lblQueueLenTop.Size = new System.Drawing.Size(861, 37); + this.lblQueueLenTop.TabIndex = 81; + this.lblQueueLenTop.Text = "000"; + this.lblQueueLenTop.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(18, 110); + this.label21.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(110, 17); + this.label21.TabIndex = 88; + this.label21.Text = "FLog Queue len"; + // + // lblQueueFLogLen + // + this.lblQueueFLogLen.AutoSize = true; + this.lblQueueFLogLen.Font = new System.Drawing.Font("Arial Narrow", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblQueueFLogLen.Location = new System.Drawing.Point(139, 109); + this.lblQueueFLogLen.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.lblQueueFLogLen.Name = "lblQueueFLogLen"; + this.lblQueueFLogLen.Size = new System.Drawing.Size(26, 17); + this.lblQueueFLogLen.TabIndex = 89; + this.lblQueueFLogLen.Text = "###"; + // // AdapterForm // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); @@ -959,5 +999,8 @@ private System.Windows.Forms.TextBox txtItemCode; private System.Windows.Forms.Label label13; private System.Windows.Forms.Button btnOpenLog; + private System.Windows.Forms.Label lblQueueLenTop; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.Label lblQueueFLogLen; } } \ No newline at end of file diff --git a/IOB-WIN/AdapterForm.cs b/IOB-WIN/AdapterForm.cs index 982cca6e..e182a752 100644 --- a/IOB-WIN/AdapterForm.cs +++ b/IOB-WIN/AdapterForm.cs @@ -277,7 +277,7 @@ namespace IOB_WIN if (iobObj.checkServerAlive) { // segnalo reboot (programma)... - iobObj.callUrl(iobObj.urlReboot); + iobObj.callUrl(iobObj.urlReboot, true); } else { @@ -440,7 +440,8 @@ namespace IOB_WIN private void refreshFormData() { // aggiorno visualizzazioni varie in form... - queueLenLabel = iobObj.QueueIN.Count.ToString(); + evQueueLen = iobObj.QueueIN.Count; + flQueueLen = iobObj.QueueFLog.Count; } private void gather_Tick(object sender, EventArgs e) { @@ -604,7 +605,7 @@ namespace IOB_WIN // inizializzio conf IOB IOBConf = new IobConfiguration { - pingMsTimeout = fIni.ReadInteger("IOB", "PING_MS_TIMEOUT", 250), + pingMsTimeout = fIni.ReadInteger("IOB", "PING_MS_TIMEOUT", 500), vendor = curVendor, model = curModel, tipoIob = tipoScelto, @@ -795,7 +796,8 @@ namespace IOB_WIN { stop.Enabled = false; - queueLenLabel = "ND"; + evQueueLen = 0; + flQueueLen = 0; nLine2show = utils.CRI("numRowConsole"); } /// @@ -874,6 +876,9 @@ namespace IOB_WIN slowCount = utils.CRI("slowCount"); verySlowCount = utils.CRI("verySlowCount"); displayTaskAndLog("Adapter Running..."); + // init max queue + maxEvQueue = 1; + maxFlQueue = 1; // forzo check allarmi.. iobObj.forceAlarmCheck(); @@ -1017,18 +1022,60 @@ namespace IOB_WIN lblDataProc.Text = value; } } - /// - /// label del numero di record processati (libera) - /// - public string queueLenLabel + protected int maxEvQueue { get; set; } + protected int maxFlQueue { get; set; } + + protected int qEvLen { get; set; } + protected int qFlLen { get; set; } + + public int evQueueLen { - get - { - return lblQueueLen.Text; - } set { - lblQueueLen.Text = value; + qEvLen = value; + lblQueueLen.Text = qEvLen.ToString(); + int totQueue = qEvLen + qFlLen; + lblQueueLenTop.Text = totQueue == 0 ? "realtime" : $"{totQueue} (waiting)"; + // se supero max precedente, ed è > 10... loggo! + if (qEvLen > maxEvQueue && qEvLen > 10) + { + maxEvQueue = qEvLen; + lgInfo($"[WARN] Coda EV di {value} record"); + } + else + { + maxEvQueue--; + maxEvQueue = maxEvQueue < qEvLen ? qEvLen : maxEvQueue; + } + } + get + { + return qEvLen; + } + } + public int flQueueLen + { + set + { + qFlLen = value; + lblQueueFLogLen.Text = qFlLen.ToString(); + int totQueue = qEvLen + qFlLen; + lblQueueLenTop.Text = totQueue == 0 ? "realtime" : $"{totQueue} (waiting)"; + // se supero max precedente, ed è > 10... loggo! + if (qFlLen > maxFlQueue && qFlLen > 10) + { + maxFlQueue = qFlLen; + lgInfo($"[WARN] Coda FLog di {value} record"); + } + else + { + maxFlQueue--; + maxFlQueue = maxFlQueue < qFlLen ? qFlLen : maxFlQueue; + } + } + get + { + return qFlLen; } } /// diff --git a/IOB-WIN/App.config b/IOB-WIN/App.config index 232e8354..70db9513 100644 --- a/IOB-WIN/App.config +++ b/IOB-WIN/App.config @@ -17,7 +17,7 @@ - + @@ -29,12 +29,12 @@ - + - + diff --git a/IOB-WIN/DATA/CONF/MAIN.ini b/IOB-WIN/DATA/CONF/MAIN.ini index 876ec774..42e007a0 100644 --- a/IOB-WIN/DATA/CONF/MAIN.ini +++ b/IOB-WIN/DATA/CONF/MAIN.ini @@ -20,19 +20,26 @@ CMDIOB2CALL=/IOB/getIob2call?GWIP= ;STARTLIST=3018,3019 ;STARTLIST=WPS -;LASCO -;STARTLIST=VL22 - -;SAET FORNO -;STARTLIST=VL22 - ;SAET TEMPRA ;STARTLIST=VL20 ;COMUR DENTA -STARTLIST=VL22 +;STARTLIST=VL21 -;STARTLIST=SIMUL_01 +;LASCO +;STARTLIST=VL22 + +;PRESSOIL CEI +;STARTLIST=VL23 + +;SAET FORNO +;STARTLIST=VL24 + +;AUTOMAZIONE INGENIA +;STARTLIST=VL25 + + +STARTLIST=SIMUL_01 ;STARTLIST=SIM_DP_02 ;STARTLIST=SIMUL_03,SIMUL_04,SIMUL_05,SIMUL_06,SIMUL_07,SIMUL_08 diff --git a/IOB-WIN/DATA/CONF/SIMUL_01.ini b/IOB-WIN/DATA/CONF/SIMUL_01.ini index 5bb9c80f..8a98e466 100644 --- a/IOB-WIN/DATA/CONF/SIMUL_01.ini +++ b/IOB-WIN/DATA/CONF/SIMUL_01.ini @@ -12,9 +12,9 @@ IP=127.0.0.1 PORT=0000 [SERVER] -MPIP=http://192.168.1.4 +;MPIP=http://192.168.1.4 ;MPIP=http://192.168.214.4 -;MPIP=http://10.74.82.218 +MPIP=http://10.74.82.218 MPURL=/MP/IO CMDBASE=/IOB/input/ CMDFLOG=/IOB/flog/ @@ -47,7 +47,7 @@ SIM_MANU=50|6 ; indica gestione e simulazione bit 5 --> slow/emergenza SIM_SLOW=3600|20 ; indica simulazione delle funzionalità power ON/ OFF -SIM_POW_ON_OFF=true +SIM_POW_ON_OFF=false T_ON=7 T_OFF=22 diff --git a/IOB-WIN/IobGeneric.cs b/IOB-WIN/IobGeneric.cs index b0e5f19e..46b9773b 100644 --- a/IOB-WIN/IobGeneric.cs +++ b/IOB-WIN/IobGeneric.cs @@ -9,6 +9,7 @@ using System.IO; using System.Linq; using System.Net; using System.Net.NetworkInformation; +using System.Threading.Tasks; namespace IOB_WIN { @@ -459,7 +460,7 @@ namespace IOB_WIN { } } - + /// /// Effettua logging INFO corretto impostanto anche la variabile IOB prima di scrivere... /// @@ -1831,10 +1832,24 @@ namespace IOB_WIN /// Effettua chiamata URL e restituisce risultato /// /// + /// invio in modalità async (NON GARANTITO ordine...) /// - public string callUrl(string URL) + public string callUrl(string URL, bool doAsync) { - return utils.callUrl(URL); + string answ = ""; + // Chiamata ASINCRONA + if (doAsync) + { + //Task resp = utils.callUrlAsync(URL); + //answ = resp.Result; + answ = utils.callUrlAsync(URL); + } + // chiamata SOLO NORMALE SINCRONA... + else + { + answ = utils.callUrl(URL); + } + return answ; } /// /// test ping all'indirizzo impostato nei parametri @@ -1880,7 +1895,7 @@ namespace IOB_WIN try { // chiamo URL, se restituisce "OK" è alive! - string callResp = callUrl(urlAlive); + string callResp = callUrl(urlAlive, true); answ = (callResp == "OK"); } catch (Exception exc) @@ -1910,6 +1925,7 @@ namespace IOB_WIN else { lgInfo($"SERVER NOT RESPONDING (PING at {cIobConf.serverData.MPIP})"); + MPOnline = false; // imposto un veto per pauseSendMSec int pauseSendMSec = utils.CRI("pauseSendMSec"); // aggiungo NOISE... +/- 33% @@ -1941,7 +1957,7 @@ namespace IOB_WIN try { // chiamo URL, se restituisce "OK" è enabled! - answ = (callUrl(urlIobEnabled) == "OK"); + answ = (callUrl(urlIobEnabled, true) == "OK"); } catch { } @@ -1990,7 +2006,25 @@ namespace IOB_WIN // invio pacchetto di dati (max da conf) for (int i = 0; i < nMaxSend; i++) { - trySendQueuedVal(); + if (QueueIN.Count > 0) + { + // recupero ed aggiorno ULTIMO valore... + lastSignInVal = QueueIN.Dequeue(); + // se ERA online provo + if (MPOnline) + { + // INVIO!!! + sendToMoonPro(urlType.SignIN, lastSignInVal); + } + else + { + break; + } + } + else + { + break; + } } } else @@ -2014,20 +2048,6 @@ namespace IOB_WIN } } } - /// - /// Invio del + vecchio valore in coda (se c'è) - /// - private void trySendQueuedVal() - { - // SE ho qualcosa in coda... - if (QueueIN.Count > 0) - { - // recupero ed aggiorno ULTIMO valore... - lastSignInVal = QueueIN.Dequeue(); - // INVIO!!! - sendToMoonPro(urlType.SignIN, lastSignInVal); - } - } /// /// Processo la coda FLog... @@ -2058,8 +2078,19 @@ namespace IOB_WIN // SE ho qualcosa in coda... if (QueueFLog.Count > 0) { - // INVIO!!! - sendToMoonPro(urlType.FLog, QueueFLog.Dequeue()); + if (MPOnline) + { + // INVIO!!! + sendToMoonPro(urlType.FLog, QueueFLog.Dequeue()); + } + else + { + break; + } + } + else + { + break; } } } @@ -2741,7 +2772,7 @@ namespace IOB_WIN if (checkServerAlive) { // chiamo URL! - string answ = callUrl(lastUrl); + string answ = callUrl(lastUrl, false); // loggo! lgInfo(string.Format("[SEND] {0} -> {1}", queueVal, answ)); // se "OK" verde, altrimenti errore --> ROSSO diff --git a/IOB-WIN/IobSimula.cs b/IOB-WIN/IobSimula.cs index 02c8b75c..19ed4463 100644 --- a/IOB-WIN/IobSimula.cs +++ b/IOB-WIN/IobSimula.cs @@ -138,7 +138,7 @@ namespace IOB_WIN string rawDataInizio = ""; if (!isMulti) { - rawDataInizio = callUrl(urlInizioOdlIob); + rawDataInizio = callUrl(urlInizioOdlIob, true); DateTime.TryParse(rawDataInizio, out inizioOdl); } else @@ -148,7 +148,7 @@ namespace IOB_WIN foreach (var item in elencoMulti) { fullUrl = $"{urlInizioOdlIob}|{item}"; - rawDataInizio = callUrl(fullUrl); + rawDataInizio = callUrl(fullUrl, true); DateTime.TryParse(rawDataInizio, out tmpData); inizioOdl = (tmpData < inizioOdl) ? tmpData : inizioOdl; } @@ -161,7 +161,7 @@ namespace IOB_WIN if (!isMulti) { // controllo SE sono fermo (spento o in manuale) per il periodo minimo richiesto... - rawIdle = callUrl(urlIdleTime); + rawIdle = callUrl(urlIdleTime, true); int.TryParse(rawIdle, out idlePeriod); } else @@ -171,7 +171,7 @@ namespace IOB_WIN foreach (var item in elencoMulti) { fullUrl = $"{urlIdleTime}|{item}"; - rawIdle = callUrl(fullUrl); + rawIdle = callUrl(fullUrl, true); int.TryParse(rawIdle, out tmpIdle); idlePeriod = tmpIdle > idlePeriod ? tmpIdle : idlePeriod; } @@ -206,7 +206,7 @@ namespace IOB_WIN if (!isMulti) { // invio chiamata URL x reset ODL su macchina - rawSplit = callUrl(urlForceSplit); + rawSplit = callUrl(urlForceSplit, false); fatto = (rawSplit == "OK") ? true : false; } else @@ -215,7 +215,7 @@ namespace IOB_WIN { // invio chiamata URL x reset ODL su macchina, ATTENZIONE scriviamo | al posto di "#" che in URL sarebbe filtrato... fullUrl = $"{urlForceSplit}|{item}"; - rawSplit = callUrl(fullUrl); + rawSplit = callUrl(fullUrl, true); } fatto = (rawSplit == "OK") ? true : false; }