diff --git a/IOB-WIN-FANUC/DATA/CONF/MAIN.ini b/IOB-WIN-FANUC/DATA/CONF/MAIN.ini index d5d79425..7f8a742a 100644 --- a/IOB-WIN-FANUC/DATA/CONF/MAIN.ini +++ b/IOB-WIN-FANUC/DATA/CONF/MAIN.ini @@ -36,5 +36,4 @@ CLI_INST=SteamWareSim ;STARTLIST=LVF762 STARTLIST=3021 -MAXCNC=10 - +MAXCNC=10 \ No newline at end of file diff --git a/IOB-WIN-FORM/AdapterForm.cs b/IOB-WIN-FORM/AdapterForm.cs index 89a2fc48..ae041ba8 100644 --- a/IOB-WIN-FORM/AdapterForm.cs +++ b/IOB-WIN-FORM/AdapterForm.cs @@ -852,7 +852,8 @@ namespace IOB_WIN_FORM displayTaskAndLog($"Caricata conf per adapter {tipoScelto}"); - if (!ShouldUpdateUI()) return; + // tolto: altrimenti partendo minimizzata non salva le info... + //if (!ShouldUpdateUI()) return; lblCNC.Text = $"CNC: {IOBConfFull.General.IobType} [{IOBConfFull.Device.Connect.IpAddr}:{IOBConfFull.Device.Connect.Port}]"; lblSrvUrl.Text = $"SRV: {IOBConfFull.MapoMes.IpAddr} | BaseURL: {IOBConfFull.MapoMes.ApiUrl("")}"; } @@ -1162,12 +1163,12 @@ namespace IOB_WIN_FORM { if (File.Exists(defConfFilePathYaml)) { - loadYamlFile(defConfFilePathYaml); + await loadYamlFile(defConfFilePathYaml); await sendConfFile(defConfFilePathYaml); } else { - loadIniFile(defConfFilePath); + await loadIniFile(defConfFilePath); await sendConfFile(defConfFilePath); } lgInfo("INI LOADED"); @@ -1181,9 +1182,9 @@ namespace IOB_WIN_FORM if (IOBConfFull == null || !utils.CRB("autoLoadConf")) { IOBConfFull = new IobConfTree(); - await loadIobType(); - displayTaskAndLog("Waiting for config file selection"); } + await loadIobType(); + displayTaskAndLog("Waiting for config file selection"); // ricarica stats da redis string callKey = iobObj.redisMan.redHash($"IOB:Status:{IOBConfFull.General.FilenameIOB}:CallStats"); @@ -1886,7 +1887,7 @@ namespace IOB_WIN_FORM /// Carica file ini della configurazione richiesta /// /// - private void loadIniFile(string iniConfFile) + private async Task loadIniFile(string iniConfFile) { // out di cosa faccio... displayTaskAndLog($"[STARTUP] Loading ConfFile: {iniConfFile}"); @@ -1906,8 +1907,13 @@ namespace IOB_WIN_FORM // salvo anche yaml... IOBConfFull.SaveYaml(fullPath.Replace("iob", "yaml")); - // carico IOB - _ = loadIobType(); + // carico IOB: AWAIT l'init async (NON fire-and-forget) prima di usare iobObj + await loadIobType(); + if (iobObj == null) + { + lgError("loadIniFile: iobObj non inizializzato (init fallito), salto invio conf e avvio"); + return; + } // verifico x invio string sendKey = "SendConfYaml"; @@ -1935,7 +1941,7 @@ namespace IOB_WIN_FORM /// Carica file yaml della configurazione richiesta /// /// - private void loadYamlFile(string yamlConfFile) + private async Task loadYamlFile(string yamlConfFile) { // out di cosa faccio... displayTaskAndLog($"[STARTUP] Loading yamlConfFile: {yamlConfFile}"); @@ -1964,7 +1970,14 @@ namespace IOB_WIN_FORM } var appVers = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; - _ = loadIobType(); + // carico IOB: AWAIT l'init async (NON fire-and-forget) prima di usare iobObj + await loadIobType(); + if (iobObj == null) + { + lgError("loadYamlFile: iobObj non inizializzato (IOBConfFull mancante o init fallito), salto avvio"); + return; + } + // avvio macchina con adapter specificato... if (utils.CRB("autoStartOnLoad")) { @@ -2037,7 +2050,7 @@ namespace IOB_WIN_FORM displayTaskAndLog("Adapter Form SHOWN (Adapter)", true); } - private void mLoadConf_Click(object sender, EventArgs e) + private async void mLoadConf_Click(object sender, EventArgs e) { // mostro selettore file x leggere adapter.. OpenFileDialog openFileDial = new OpenFileDialog(); @@ -2056,8 +2069,15 @@ namespace IOB_WIN_FORM if (userClickedOK == DialogResult.OK) { string iniConfFile = openFileDial.FileName; - loadIniFile(iniConfFile); - lgInfo("INI LOADED"); + try + { + await loadIniFile(iniConfFile); + lgInfo("INI LOADED"); + } + catch (Exception exc) + { + lgError($"Eccezione in mLoadConf_Click: {exc}"); + } } } @@ -2153,7 +2173,7 @@ namespace IOB_WIN_FORM /// /// /// - private void restart_Click(object sender, EventArgs e) + private async void restart_Click(object sender, EventArgs e) { string message = "Attenzione: con l'operazione di reset veranno persi (e non inviati) i dati eventualmente accumulati (indipendentemente dalla selezione del checkbox 'svuota coda')."; string caption = "Conferma Reset Dati IOB"; @@ -2168,12 +2188,19 @@ namespace IOB_WIN_FORM // faccio stop... SENZA inviare fermaAdapter(false, false, true); displayTaskAndLog("RESTARTING: Adapter Stopped", true); - // rileggo INI - loadIniFile(defConfFilePath); - displayTaskAndLog("RESTARTING: Ini File Reloaded", true); - // faccio start... CON RESET delle code - AvviaAdapter(true); - displayTaskAndLog("RESTARTING: Adapter Started", true); + // rileggo INI (await init prima di riavviare) + try + { + await loadIniFile(defConfFilePath); + displayTaskAndLog("RESTARTING: Ini File Reloaded", true); + // faccio start... CON RESET delle code + AvviaAdapter(true); + displayTaskAndLog("RESTARTING: Adapter Started", true); + } + catch (Exception exc) + { + lgError($"Eccezione in restart_Click: {exc}"); + } // resetto i data monitor... ClearLog(0); ClearLog(1); diff --git a/IOB-WIN-FORM/Iob/Generic.cs b/IOB-WIN-FORM/Iob/Generic.cs index c1f89a49..f524307b 100644 --- a/IOB-WIN-FORM/Iob/Generic.cs +++ b/IOB-WIN-FORM/Iob/Generic.cs @@ -9140,7 +9140,14 @@ namespace IOB_WIN_FORM.Iob pzCountDelay = IOBConfFull.Device.PzCountDelay; enablePrgName = IOBConfFull.Device.EnabProgName; enablePzCountByApp = IOBConfFull.Device.EnabPzCount; - mem2trace = IOBConfFull.Special.BankConf != null ? IOBConfFull.Special.BankConf.Mem2Trace : ""; + if (IOBConfFull.Special != null && IOBConfFull.Special.BankConf != null) + { + mem2trace = IOBConfFull.Special.BankConf != null ? IOBConfFull.Special.BankConf.Mem2Trace : ""; + } + else + { + mem2trace = ""; + } numArtCharTrim = IOBConfFull.Device.NumArtCharTrim; // valore standard divieto accodamento segnali IN diff --git a/IOB-WIN-PING/DATA/CONF/3023-PING.ini b/IOB-WIN-PING/DATA/CONF/3023-PING.ini index 80e1b769..3fe56197 100644 --- a/IOB-WIN-PING/DATA/CONF/3023-PING.ini +++ b/IOB-WIN-PING/DATA/CONF/3023-PING.ini @@ -10,7 +10,7 @@ MODEL=WATCHDOG [CNC] IP=192.168.1.151 -;IP=192.168.1.8 +;IP=192.168.0.73 PORT=0000 [SERVER] diff --git a/IOB-WIN-PING/DATA/CONF/MAIN.ini b/IOB-WIN-PING/DATA/CONF/MAIN.ini index 3166f188..bcb51159 100644 --- a/IOB-WIN-PING/DATA/CONF/MAIN.ini +++ b/IOB-WIN-PING/DATA/CONF/MAIN.ini @@ -17,7 +17,7 @@ CLI_INST=SteamWareSim ;STARTLIST=3023-PING,3024-PING ;STARTLIST=SIMUL_08 ;STARTLIST=SIMUL_01 -;STARTLIST=3023-PING -STARTLIST=i658R_PING +STARTLIST=3023-PING +;STARTLIST=i658R_PING -MAXCNC=10 +MAXCNC=10 \ No newline at end of file diff --git a/IOB-WIN-PING/IOB-WIN-PING.csproj b/IOB-WIN-PING/IOB-WIN-PING.csproj index 60f779a4..8500bc2f 100644 --- a/IOB-WIN-PING/IOB-WIN-PING.csproj +++ b/IOB-WIN-PING/IOB-WIN-PING.csproj @@ -158,9 +158,7 @@ Always - - Always - + Always diff --git a/IOB-WIN-PING/postBuildTgt.bat b/IOB-WIN-PING/postBuildTgt.bat index 2c33b496..fddceaad 100644 --- a/IOB-WIN-PING/postBuildTgt.bat +++ b/IOB-WIN-PING/postBuildTgt.bat @@ -46,8 +46,8 @@ REM ROBOCOPY %2 \\10.51.90.5\Steamware\IOB-WIN-PING-DEB /MIR /log:RobocopyTransf REM ROBOCOPY %2 Z:\IOB-WIN-PING-DEB /MIR REM ROBOCOPY %2 \\10.51.90.10\Steamware\IOB-WIN-PING-DEB /MIR REM ROBOCOPY %2 \\10.51.90.16\Steamware\IOB-WIN-PING-DEB /MIR -ROBOCOPY %2 \\10.51.90.13\Steamware\IOB-WIN-PING-DEB /MIR -REM ROBOCOPY %2 \\10.51.90.9\Steamware\IOB-WIN-PING-DEB /MIR +REM ROBOCOPY %2 \\10.51.90.13\Steamware\IOB-WIN-PING-DEB /MIR +ROBOCOPY %2 \\10.51.90.9\Steamware\IOB-WIN-PING-DEB /MIR goto END