Merge branch 'release/FixFanucThreadComm_02'

This commit is contained in:
Samuele Locatelli
2026-08-12 16:49:10 +02:00
7 changed files with 63 additions and 32 deletions
+1 -2
View File
@@ -36,5 +36,4 @@ CLI_INST=SteamWareSim
;STARTLIST=LVF762
STARTLIST=3021
MAXCNC=10
MAXCNC=10
+47 -20
View File
@@ -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
/// </summary>
/// <param name="iniConfFile"></param>
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
/// </summary>
/// <param name="yamlConfFile"></param>
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
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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);
+8 -1
View File
@@ -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
+1 -1
View File
@@ -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]
+3 -3
View File
@@ -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
+1 -3
View File
@@ -158,9 +158,7 @@
<None Include="DATA\CONF\3023-PING.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\i658R_PING.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\i658R_PING.ini" />
<None Include="DATA\CONF\SIMUL_07.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
+2 -2
View File
@@ -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