From 93b3ddec79548b5fd4c660f6e3738ebe6c3f2309 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Thu, 8 Jun 2023 13:01:00 +0200 Subject: [PATCH 1/3] - gestito sinclock su lista ThreadCommand in Supervisor --- .../LeftPanel/LeftPanelVM.vb | 4 ++-- EgtBEAMWALL.Supervisor/MDIPage/MDIPageVM.vb | 2 +- .../MachCommandMessagePanelVM.vb | 16 ++++++------- .../MachManagingThread/MachManaging.vb | 24 ++++++++++++++++--- .../MachManagingThread/MachManagingThread.vb | 16 +++++++++++++ EgtBEAMWALL.Supervisor/MainMenu/MainMenuVM.vb | 16 ++++++------- .../MainWindow/MainWindowVM.vb | 2 +- .../VariablesList/VariablesListVM.vb | 2 +- 8 files changed, 58 insertions(+), 24 deletions(-) diff --git a/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb b/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb index 86a10f05..3a584eb4 100644 --- a/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb +++ b/EgtBEAMWALL.Supervisor/LeftPanel/LeftPanelVM.vb @@ -40,7 +40,7 @@ Public Class LeftPanelVM Return m_SelChannel End Get Set(ByVal value As IdNameStruct) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETCHANNEL, value.Id)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETCHANNEL, value.Id)) m_SelChannel = value End Set End Property @@ -86,7 +86,7 @@ Public Class LeftPanelVM Return m_SelOPMode End Get Set(ByVal value As OPState) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE, value.Id)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE, value.Id)) ' se MDI If value.Id = OPModes.Mdi Then ' mostro pagina comandi MDI diff --git a/EgtBEAMWALL.Supervisor/MDIPage/MDIPageVM.vb b/EgtBEAMWALL.Supervisor/MDIPage/MDIPageVM.vb index 7a51acd9..ff27b773 100644 --- a/EgtBEAMWALL.Supervisor/MDIPage/MDIPageVM.vb +++ b/EgtBEAMWALL.Supervisor/MDIPage/MDIPageVM.vb @@ -163,7 +163,7 @@ Public Class MDIPageVM ''' Friend Sub SendMDI() If Not String.IsNullOrWhiteSpace(m_sMDICommand_Text) Then - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.MDI, m_sMDICommand_Text)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.MDI, m_sMDICommand_Text)) End If End Sub diff --git a/EgtBEAMWALL.Supervisor/MachCommandMessagePanel/MachCommandMessagePanelVM.vb b/EgtBEAMWALL.Supervisor/MachCommandMessagePanel/MachCommandMessagePanelVM.vb index 4a920b97..7182a374 100644 --- a/EgtBEAMWALL.Supervisor/MachCommandMessagePanel/MachCommandMessagePanelVM.vb +++ b/EgtBEAMWALL.Supervisor/MachCommandMessagePanel/MachCommandMessagePanelVM.vb @@ -427,11 +427,11 @@ Public Class MachCommandMessagePanelVM End Property Public Sub Disconnect() - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT)) End Sub Public Sub SetOPState(OpState As Integer) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETOPMODE)) End Sub Public ReadOnly Property Start_Command As ICommand @@ -442,7 +442,7 @@ Public Class MachCommandMessagePanelVM End Property Public Sub Start(ByVal param As Object) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.START)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.START)) End Sub Public ReadOnly Property Stop_Command As ICommand @@ -453,7 +453,7 @@ Public Class MachCommandMessagePanelVM End Property Public Sub [Stop](ByVal param As Object) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOP_)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOP_)) End Sub Public ReadOnly Property Reset_Command As ICommand @@ -464,7 +464,7 @@ Public Class MachCommandMessagePanelVM End Property Public Sub Reset(ByVal param As Object) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.RESET)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.RESET)) ' annullo stato di pronto ad essere lavorato di tutti i programmi If Not IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM) Then Map.refProjectVM.SupervisorMachGroupPanelVM.ResetAllMachGroups() End Sub @@ -477,7 +477,7 @@ Public Class MachCommandMessagePanelVM End Property Public Sub [Step](ByVal param As Object) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STEP_)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STEP_)) End Sub Public ReadOnly Property SetPoint_Command As ICommand @@ -488,7 +488,7 @@ Public Class MachCommandMessagePanelVM End Property Public Sub SetPoint(ByVal param As Object) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETPOINT)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.SETPOINT)) End Sub @@ -500,7 +500,7 @@ Public Class MachCommandMessagePanelVM End Property Public Sub DeleteAlarms(ByVal param As Object) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DELETEALARMS)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DELETEALARMS)) End Sub Public Function GetVarPathByName(Name As String) As String diff --git a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb index 0e92d822..2968fde5 100644 --- a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb +++ b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb @@ -10,6 +10,9 @@ Imports EgtBEAMWALL.Supervisor.CommVar Public Class MachManaging + ' lock per aggiunta elemento a lista MachGroup + Private Shared Lock_CommandList As New Object + Private m_bConnected As Boolean = False Public ReadOnly Property bConnected As Boolean Get @@ -53,6 +56,17 @@ Public Class MachManaging Return m_CommandList End Get End Property + Friend Shared Sub AddToCommandList(value As ThreadCommand) + SyncLock Lock_CommandList + For CommandIndex = m_CommandList.Count - 1 To 0 Step -1 + Dim Command As ThreadCommand = m_CommandList(CommandIndex) + If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.DONE Then + m_CommandList.Remove(Command) + End If + Next + CommandList.Add(value) + End SyncLock + End Sub Private m_bStartPending As Boolean = False Public ReadOnly Property StartPending As Boolean @@ -771,9 +785,13 @@ Public Class MachManaging Private Sub CommandList_CollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs) If Not IsNothing(e.NewItems) Then - For Each Command In e.NewItems - ExecuteCommand(DirectCast(Command, ThreadCommand)) - m_CommandList.Remove(Command) + For CommandIndex = 0 To e.NewItems.Count - 1 + Dim Command As ThreadCommand = e.NewItems(CommandIndex) + If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.WAITING Then + Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.PROCESSING) + ExecuteCommand(DirectCast(Command, ThreadCommand)) + Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.DONE) + End If Next End If End Sub diff --git a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManagingThread.vb b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManagingThread.vb index 555b29f4..fcab3cb0 100644 --- a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManagingThread.vb +++ b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManagingThread.vb @@ -54,6 +54,12 @@ End Class Public Class ThreadCommand + Public Enum ProcessingStatuses + WAITING = 1 + PROCESSING = 2 + DONE = 3 + End Enum + Private m_CommandType As CommandTypes Public ReadOnly Property CommandType As CommandTypes Get @@ -95,6 +101,16 @@ Public Class ThreadCommand End Get End Property + Private m_ProcessingStatus As ProcessingStatuses = ProcessingStatuses.WAITING + Public ReadOnly Property ProcessingStatus As ProcessingStatuses + Get + Return m_ProcessingStatus + End Get + End Property + Friend Sub SetProcessingStatus(value As ProcessingStatuses) + m_ProcessingStatus = value + End Sub + Protected Sub New() End Sub diff --git a/EgtBEAMWALL.Supervisor/MainMenu/MainMenuVM.vb b/EgtBEAMWALL.Supervisor/MainMenu/MainMenuVM.vb index 709d9840..90bd998e 100644 --- a/EgtBEAMWALL.Supervisor/MainMenu/MainMenuVM.vb +++ b/EgtBEAMWALL.Supervisor/MainMenu/MainMenuVM.vb @@ -277,31 +277,31 @@ Public Class MainMenuVM Private Function InitINPUTS() As Boolean ' fermo e riavvio lettura variabili per includere quelle della pagina input - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM)) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM)) Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage)) Return True End Function Private Function ExitINPUTS() As Boolean ' fermo e riavvio lettura variabili per includere quelle della pagina input - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM)) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM)) Return True End Function Private Function InitOUTPUTS() As Boolean ' fermo e riavvio lettura variabili per includere quelle della pagina input - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM)) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM)) Map.refMainWindowVM.NotifyPropertyChanged(NameOf(Map.refMainWindowVM.nSelTabPage)) Return True End Function Private Function ExitOUTPUTS() As Boolean ' fermo e riavvio lettura variabili per includere quelle della pagina input - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM)) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.STOPREAD_NUMFLEXIUM)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.READ_NUMFLEXIUM)) Return True End Function diff --git a/EgtBEAMWALL.Supervisor/MainWindow/MainWindowVM.vb b/EgtBEAMWALL.Supervisor/MainWindow/MainWindowVM.vb index 66ccbc46..a1d1188c 100644 --- a/EgtBEAMWALL.Supervisor/MainWindow/MainWindowVM.vb +++ b/EgtBEAMWALL.Supervisor/MainWindow/MainWindowVM.vb @@ -234,7 +234,7 @@ Public Class MainWindowVM Return End If ' disconnetto comunicazione con macchina - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT)) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT)) ' termino thread di comunicazione con Db ed altri programmi ViewerOptimizerCommThread.StopThread() ' Verifico modifica parametri in Configurazione e chiedo il salvataggio diff --git a/EgtBEAMWALL.Supervisor/VariablesList/VariablesListVM.vb b/EgtBEAMWALL.Supervisor/VariablesList/VariablesListVM.vb index ab12b278..c541e01d 100644 --- a/EgtBEAMWALL.Supervisor/VariablesList/VariablesListVM.vb +++ b/EgtBEAMWALL.Supervisor/VariablesList/VariablesListVM.vb @@ -64,7 +64,7 @@ Public Class Variable Return CommVar.sValue End Get Set(value As String) - MachManaging.CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.WRITE, {CommVar.nType}, Nothing, {CommVar.sAddress, value})) + MachManaging.AddToCommandList(ThreadCommand.CreateCommand(CommandTypes.WRITE, {CommVar.nType}, Nothing, {CommVar.sAddress, value})) NotifyPropertyChanged(NameOf(sValue)) End Set End Property From c968befafb96f8fc43c3dbdab2d1eed1e088d006 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Fri, 9 Jun 2023 12:21:58 +0200 Subject: [PATCH 2/3] - aggiunta log --- .../MachManagingThread/MachManaging.vb | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb index 2968fde5..5310dee3 100644 --- a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb +++ b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb @@ -58,13 +58,18 @@ Public Class MachManaging End Property Friend Shared Sub AddToCommandList(value As ThreadCommand) SyncLock Lock_CommandList + EgtOutLog("Inizio ciclo rimozioni") For CommandIndex = m_CommandList.Count - 1 To 0 Step -1 Dim Command As ThreadCommand = m_CommandList(CommandIndex) If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.DONE Then + EgtOutLog("Inizio rimozione comando") m_CommandList.Remove(Command) + EgtOutLog("Fine rimozione comando") End If Next + EgtOutLog("Fine ciclo rimozioni") CommandList.Add(value) + EgtOutLog("Count dopo aggiunta: " & CommandList.Count) End SyncLock End Sub @@ -785,7 +790,9 @@ Public Class MachManaging Private Sub CommandList_CollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs) If Not IsNothing(e.NewItems) Then - For CommandIndex = 0 To e.NewItems.Count - 1 + EgtOutLog("Inizio ciclo esecuzione comandi") + Dim nCommandCount As Integer = e.NewItems.Count + For CommandIndex = 0 To nCommandCount - 1 Dim Command As ThreadCommand = e.NewItems(CommandIndex) If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.WAITING Then Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.PROCESSING) @@ -793,6 +800,7 @@ Public Class MachManaging Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.DONE) End If Next + EgtOutLog("Fine ciclo esecuzione di " & nCommandCount & " comandi") End If End Sub From 3787b4e1f5348bd47a2dd33febf1fc1ceef7cc00 Mon Sep 17 00:00:00 2001 From: Emmanuele Sassi Date: Mon, 12 Jun 2023 09:16:44 +0200 Subject: [PATCH 3/3] - commentati log --- .../MachManagingThread/MachManaging.vb | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb index 5310dee3..cd7b8d82 100644 --- a/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb +++ b/EgtBEAMWALL.Supervisor/MachManagingThread/MachManaging.vb @@ -58,18 +58,18 @@ Public Class MachManaging End Property Friend Shared Sub AddToCommandList(value As ThreadCommand) SyncLock Lock_CommandList - EgtOutLog("Inizio ciclo rimozioni") + ' EgtOutLog("Inizio ciclo rimozioni") For CommandIndex = m_CommandList.Count - 1 To 0 Step -1 Dim Command As ThreadCommand = m_CommandList(CommandIndex) If Command.ProcessingStatus = ThreadCommand.ProcessingStatuses.DONE Then - EgtOutLog("Inizio rimozione comando") + ' EgtOutLog("Inizio rimozione comando") m_CommandList.Remove(Command) - EgtOutLog("Fine rimozione comando") + ' EgtOutLog("Fine rimozione comando") End If Next - EgtOutLog("Fine ciclo rimozioni") + ' EgtOutLog("Fine ciclo rimozioni") CommandList.Add(value) - EgtOutLog("Count dopo aggiunta: " & CommandList.Count) + ' EgtOutLog("Count dopo aggiunta: " & CommandList.Count) End SyncLock End Sub @@ -657,7 +657,7 @@ Public Class MachManaging ' se non impostata data start If MachGroup.dtStartTime = DateTime.MinValue Then - EgtOutLog("Start date not set on Prod " & nP_Prod & " Machgroup " & nP_Machgroup) + ' EgtOutLog("Start date not set on Prod " & nP_Prod & " Machgroup " & nP_Machgroup) Dim dtStart As DateTime = MachGroup.dtEndTime - TimeSpan.FromSeconds(60) ' provo a recuperare tempo stimato If MachGroup.nCALC_TIME > 0 Then @@ -741,7 +741,7 @@ Public Class MachManaging End Function Private Function SendNextProgram() As Boolean - EgtOutLog("Inizio SendNextProgram") + ' EgtOutLog("Inizio SendNextProgram") Dim bSent As Boolean = False If (CurrentMachine.NCType = NCTypes.TPA AndAlso Not m_bStartPending AndAlso Tpa.opState = MachineOperatingState.Pending) OrElse (CurrentMachine.NCType = NCTypes.NUM_FLEXIUM AndAlso Not Num_Flexium.bIsTransferActive) OrElse @@ -749,20 +749,20 @@ Public Class MachManaging (CurrentMachine.NCType = NCTypes.NUM_AXIUM_PCTOOLKIT AndAlso Not Num_Axium_PCToolkit.bIsTransferActive) Then ' Or Tpa.opState = MachineOperatingState.Start) Then ' verifico se c'e' un programma da lanciare If Not IsNothing(Map.refProjectVM.SupervisorMachGroupPanelVM) Then - EgtOutLog("Start " & DateTime.Now()) + ' EgtOutLog("Start " & DateTime.Now()) Dim bMachGroupNotReady As Boolean = False SyncLock m_Lock_SendProgram For Each MyMachGroup As MyMachGroupVM In Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList - EgtOutLog("Ciclo su name: " & MyMachGroup.Name & " id: " & MyMachGroup.Id) + ' EgtOutLog("Ciclo su name: " & MyMachGroup.Name & " id: " & MyMachGroup.Id) If Not MyMachGroup.bSentToMachine AndAlso (MyMachGroup.dtStartTime = DateTime.MinValue OrElse (Map.refSupervisorManagerVM.CurrProd.nType = BWType.WALL AndAlso MyMachGroup.bResetWhileCutting)) Then - EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " è da fare") + ' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " è da fare") ' verifico se ricalcolo finito If MyMachGroup.bReadyForMachining AndAlso If(CurrentMachine.NCType = NCTypes.NUM_FLEXIUM Or CurrentMachine.NCType = NCTypes.NUM_AXIUM_APSERVER OrElse CurrentMachine.NCType = NCTypes.NUM_AXIUM_PCTOOLKIT, Not MyMachGroup.bSendingToMachine, True) Then - EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " pronto per essere lavorato") + ' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " pronto per essere lavorato") ' lo lancio bSent = SendProgram(MyMachGroup.CnFilePath(), MyMachGroup.Name) - EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " mandato " & DateTime.Now() & " " & MyMachGroup.Name & " " & bSent.ToString()) + ' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " mandato " & DateTime.Now() & " " & MyMachGroup.Name & " " & bSent.ToString()) Select Case CurrentMachine.NCType Case NCTypes.TPA MyMachGroup.SetSentToMachine(bSent) @@ -774,7 +774,7 @@ Public Class MachManaging Else ' programma non ancora pronto, esco per attendere bMachGroupNotReady = True - EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " non ancora pronto per essere mandato") + ' EgtOutLog(MyMachGroup.Name & " id: " & MyMachGroup.Id & " non ancora pronto per essere mandato") Exit For 'Return False End If @@ -782,7 +782,7 @@ Public Class MachManaging Next End SyncLock If bMachGroupNotReady Then Return False - EgtOutLog("End " & DateTime.Now()) + ' EgtOutLog("End " & DateTime.Now()) End If End If Return bSent @@ -790,7 +790,7 @@ Public Class MachManaging Private Sub CommandList_CollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs) If Not IsNothing(e.NewItems) Then - EgtOutLog("Inizio ciclo esecuzione comandi") + ' EgtOutLog("Inizio ciclo esecuzione comandi") Dim nCommandCount As Integer = e.NewItems.Count For CommandIndex = 0 To nCommandCount - 1 Dim Command As ThreadCommand = e.NewItems(CommandIndex) @@ -800,7 +800,7 @@ Public Class MachManaging Command.SetProcessingStatus(ThreadCommand.ProcessingStatuses.DONE) End If Next - EgtOutLog("Fine ciclo esecuzione di " & nCommandCount & " comandi") + ' EgtOutLog("Fine ciclo esecuzione di " & nCommandCount & " comandi") End If End Sub @@ -1070,7 +1070,7 @@ Public Class MachManaging Num_Axium_APServer.StartTransfer() Return True Case NCTypes.NUM_AXIUM_PCTOOLKIT - EgtOutLog("Pre Download") + ' EgtOutLog("Pre Download") Dim nFileType As Integer = 0 If Integer.TryParse(ProgramId, nFileType) AndAlso nFileType > 0 Then Num_Axium_PCToolkit.FileDownload(nFileType * 10, ProgramPath)