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