diff --git a/EgtBEAMWALL.Core/MachGroupModel/MyMachGroupPanelM.vb b/EgtBEAMWALL.Core/MachGroupModel/MyMachGroupPanelM.vb index 607cec6b..2920d598 100644 --- a/EgtBEAMWALL.Core/MachGroupModel/MyMachGroupPanelM.vb +++ b/EgtBEAMWALL.Core/MachGroupModel/MyMachGroupPanelM.vb @@ -98,7 +98,7 @@ Public Class MyMachGroupPanelM While nId <> GDB_ID.NULL Dim UpdateUI As Integer = 0 If EgtGetInfo(nId, "UPDATEUI", UpdateUI) AndAlso UpdateUI = 1 Then - LoadMyMachGroupFromId(nId, MachineList) + TempList.Add(LoadMyMachGroupFromId(nId, MachineList)) ' rimuovo info EgtRemoveInfo(nId, "UPDATEUI") End If diff --git a/EgtBEAMWALL.Supervisor/Comms/NUMFlexiumComm.vb b/EgtBEAMWALL.Supervisor/Comms/NUMFlexiumComm.vb index 4557a852..2da67f37 100644 --- a/EgtBEAMWALL.Supervisor/Comms/NUMFlexiumComm.vb +++ b/EgtBEAMWALL.Supervisor/Comms/NUMFlexiumComm.vb @@ -37,6 +37,7 @@ Public Class NUMFlexiumComm Private objDMdiCommand As FXServer.DMdiCommand Private objDVariables As FXServer.DVariables Private objDCncMode As FXServer.DCncMode + Private objDReadOperatorMessage As FXServer.DReadOperatorMessage Private m_IsFlexiumPlus As Boolean = False Friend ReadOnly Property IsFlexiumPlus As Boolean @@ -172,13 +173,19 @@ Public Class NUMFlexiumComm AddHandler objDVariables.VariableWritten2, AddressOf objDVariables_VariableWritten2 ' Init & send the list of requested variables Dim rc As Short = objDVariables.Init(objDGroupManager.Handle, "E80000", 1) - If (rc <> 0) Then EgtOutLog(" objDVariables.Init() Error : " + rc) + If rc <> 0 Then EgtOutLog(" objDVariables.Init() Error : " + rc) ' Initialize FXServer class DCncMode objDCncMode = New FXServer.DCncMode() AddHandler objDCncMode.ValueChanged, AddressOf objDCncMode_ValueChanged objDCncMode.Init(objDGroupManager.Handle) + ' Initialize FXServer class DReadOperatorMessage + objDReadOperatorMessage = New FXServer.DReadOperatorMessage() + AddHandler objDReadOperatorMessage.ValueChanged2, AddressOf objDReadOperatorMessage_ValueChanged2 + rc = objDReadOperatorMessage.Init(objDGroupManager.Handle) + If rc <> 0 Then EgtOutLog("Init failed ! return code : " + rc) + ' attivo programma main Map.refMachManaging.Num_Flexium.ActivateProg(9000) @@ -203,6 +210,9 @@ Public Class NUMFlexiumComm objDMdiCommand = Nothing System.Runtime.InteropServices.Marshal.ReleaseComObject(objDVariables) objDVariables = Nothing + objDReadOperatorMessage.Close() + System.Runtime.InteropServices.Marshal.ReleaseComObject(objDReadOperatorMessage) + objDReadOperatorMessage = Nothing End Sub @@ -898,6 +908,51 @@ Public Class NUMFlexiumComm #End Region ' CNCMode +#Region "ReadOperatorMessage" + + Private Sub objDReadOperatorMessage_ValueChanged2(ByVal msgNumber As Object, ByVal line As Object) + Dim objMsgNumber As Object() = CType(msgNumber, Object()) + Dim objLine As Object() = CType(line, Object()) + + For index As Integer = 0 To objMsgNumber.Length - 1 + Dim NewMessageInList As ReadMessages = m_ReadFXMessages.FirstOrDefault(Function(x) x.CMsgCncNumber = "" AndAlso + x.CMsgErrorType = "" AndAlso + x.CMsgErrorIndex = "" AndAlso + x.CMsgErrorNumber = objMsgNumber(index).ToString() AndAlso + x.CMsgErrorLine = "" AndAlso + x.CMsgErrorMessage = objLine(index).ToString() AndAlso + x.CMsgErrorAdditional = "") + ' se il messaggio e' gia' in lista + If Not IsNothing(NewMessageInList) Then + ' lo segno come trovato + NewMessageInList.bFound = True + Else + ' lo aggiungo + Dim NewMessage As ReadMessages = New ReadMessages("", + "", + "", + objMsgNumber(index).ToString(), + "", + objLine(index).ToString(), + "") + NewMessage.bFound = True + m_ReadFXMessages.Add(NewMessage) + m_NUMAlarmCallbackDlg(0, 0, "", "", objMsgNumber(index).ToString(), "", objLine(index).ToString(), "") + End If + Next + + ' cancello messaggi non trovati + For Index = m_ReadFXMessages.Count - 1 To 0 Step -1 + Dim Message As ReadMessages = m_ReadFXMessages(Index) + If Not Message.bFound Then + m_NUMAlarmCallbackDlg(Message.CMsgCncNumber, 1, Message.CMsgErrorType, Message.CMsgErrorIndex, Message.CMsgErrorNumber, Message.CMsgErrorLine, Message.CMsgErrorMessage, Message.CMsgErrorAdditional) + m_ReadFXMessages.RemoveAt(Index) + End If + Next + + End Sub +#End Region ' ReadOperatorMessage + #End Region ' EVENTS End Class diff --git a/EgtBEAMWALL.Supervisor/Utility/CurrentMachine.vb b/EgtBEAMWALL.Supervisor/Utility/CurrentMachine.vb index d6cf8fde..a4e3f698 100644 --- a/EgtBEAMWALL.Supervisor/Utility/CurrentMachine.vb +++ b/EgtBEAMWALL.Supervisor/Utility/CurrentMachine.vb @@ -89,7 +89,7 @@ Public Module CurrentMachine ' crea l'elenco dei parametri della macchina corrente CreateMachParams() ' recupero tipo di controllo - m_NCType = GetPrivateProfileInt(S_GENERAL, K_NCTYPE, 0, m_sMachIniFile) + m_NCType = GetPrivateProfileInt(S_GENERAL, K_NCTYPE, 1, m_sMachIniFile) ' inizializzo assi Map.refAxesPanelVM.LoadAxes() ' inizializzo stati e modi diff --git a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb index 0d463287..67a62ceb 100644 --- a/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/CALCPanel/CALCPanelVM.vb @@ -217,7 +217,7 @@ Public Class CALCPanelVM If ProcessResultList.Count > 0 Then If Bar.nProgramPage = ProjectType.PROJ Then ' Inizializzo il pezzo in verifica - Dim BTLPart As BTLPartVM = GetBTLPartVMFromPartId(Bar.nBarId) + Dim BTLPart As BTLPartVM = GetBTLPartVMFromBTLPartId(Bar.nBarId) BTLPart.CalcPartUpdate(0, 0, "") Else ' Inizializzo i pezzi del gruppo di lavoro in verifica @@ -240,7 +240,7 @@ Public Class CALCPanelVM nCUTID = Line.nCUTID If Bar.nProgramPage = ProjectType.PROJ Then ' aggiorno nuovo pezzo - CurrBTLPartVM = GetBTLPartVMFromPartId(Line.nCUTID) + CurrBTLPartVM = GetBTLPartVMFromBTLPartId(Line.nCUTID) Else ' aggiorno nuovo pezzo CurrPartVM = GetPartVMFromPartId(Line.nCUTID) @@ -250,7 +250,7 @@ Public Class CALCPanelVM ' se CutId = 0 If Bar.nProgramPage = ProjectType.PROJ Then ' imposto unico pezzo presente - CurrBTLPartVM = GetBTLPartVMFromPartId(Bar.nBarId) + CurrBTLPartVM = GetBTLPartVMFromBTLPartId(Bar.nBarId) Else ' riporto errore barra CurrMachgroupVM = GetMachgroupVMFromMachgroupId(Bar.nBarId) @@ -298,7 +298,7 @@ Public Class CALCPanelVM Next If Bar.nProgramPage = ProjectType.PROJ Then ' aggiorno il pezzo - Dim BTLPart As BTLPartVM = GetBTLPartVMFromPartId(Bar.nBarId) + Dim BTLPart As BTLPartVM = GetBTLPartVMFromBTLPartId(Bar.nBarId) BTLPart.CalcGlobalUpdate() ' lancio aggiornamento tempo su BTL Map.refProjectVM.BTLStructureVM.CalcGlobalTime() @@ -361,8 +361,13 @@ Public Class CALCPanelVM End If End Sub + Friend Shared Function GetBTLPartVMFromBTLPartId(nBTLPartId As Integer) As BTLPartVM + Return Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nBTLPartId) + End Function + Friend Shared Function GetBTLPartVMFromPartId(nPartId As Integer) As BTLPartVM - Return Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nPartId) + Dim nBTLPartId As Integer = EgtDuploGetOriginal(nPartId) + Return Map.refProjectVM.BTLStructureVM.BTLPartVMList.FirstOrDefault(Function(x) x.nPartId = nBTLPartId) End Function Friend Shared Function GetPartVMFromPartId(nPartId As Integer) As PartVM diff --git a/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb b/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb index c6d50725..7410e335 100644 --- a/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb +++ b/EgtBEAMWALL.ViewerOptimizer/LeftPanel/LeftPanelVM.vb @@ -161,7 +161,7 @@ Public Class LeftPanelVM Dim dStartOffset As Double = 0 Dim dKerf As Double = 0 ' se tipo di definizione grezzo esplicito - If WarehouseHelper.GetRawPartDef = 1 Then + If WarehouseHelper.GetRawPartDef = 1 OrElse (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then ' chiedo lunghezza grezzo Dim sWarehouseIniPath As String = Map.refMainWindowVM.MainWindowM.sWarehouseDir & "\" & WH_BASIC_INI_FILE_NAME If Map.refProjectVM.BTLStructureVM.nPROJTYPE = MachineType.BEAM Then diff --git a/EgtBEAMWALL.ViewerOptimizer/SupervisorCommThread/SupervisorComm.vb b/EgtBEAMWALL.ViewerOptimizer/SupervisorCommThread/SupervisorComm.vb index abde0fd4..2eb171ad 100644 --- a/EgtBEAMWALL.ViewerOptimizer/SupervisorCommThread/SupervisorComm.vb +++ b/EgtBEAMWALL.ViewerOptimizer/SupervisorCommThread/SupervisorComm.vb @@ -48,25 +48,14 @@ Public Class SupervisorComm ' blocco interfaccia fino a notifica di sblocco SupervisorCommThread.SetViewerOptimizerBlocked(True) '' chiedo se salvare - 'Map.refMainWindowVM.m_SupervisorStop = True Case StatusMapOpType.SupervisorReleaseStop SupervisorCommThread.SetViewerOptimizerBlocked(False) - 'Map.refMainWindowVM.m_SupervisorStop = False End Select End If Next - ' aggiorno indice del proj Map.refProjManagerVM.CurrProj.SetModificationIndex(nModificationIndex) End If - ' se arriva richiesta da supervisore di blocco e salvataggio - - ' verifico se ho aperto lo stesso progetto - - ' chiedo se salvare - - ' blocco interfaccia fino a notifica di sblocco - ' se sono in pagina ottimizzatore ElseIf Map.refMainMenuVM.SelPage = Pages.MACHINING Then ' se non c'e' un progetto attivo, esco