Merge remote-tracking branch 'gitlab.steamware/feature/total_rebuild' into develop
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
Public Module ConstMachComm
|
||||
|
||||
Public Enum ResultTypes
|
||||
EXECUTED
|
||||
RESULT
|
||||
End Enum
|
||||
|
||||
Public Enum CommandTypes As Integer
|
||||
ERROR_ = 0
|
||||
CONNECT = 1
|
||||
DISCONNECT = 2
|
||||
START = 3
|
||||
SOFTSTART = 4
|
||||
STOP_ = 5
|
||||
RESET = 6
|
||||
STEP_ = 7
|
||||
SETPOINT = 8
|
||||
SENDPROG = 9
|
||||
REMOVEPROG = 10
|
||||
REMOVEALLPROG = 11
|
||||
READ = 12
|
||||
WRITE = 13
|
||||
DELETEALARMS = 14
|
||||
SETOP = 15
|
||||
End Enum
|
||||
|
||||
Public Enum CommandStates As Integer
|
||||
ERROR_ = 0
|
||||
OK = 1
|
||||
End Enum
|
||||
|
||||
End Module
|
||||
@@ -72,6 +72,7 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="BeamM.vb" />
|
||||
<Compile Include="Constants\ConstMachComm.vb" />
|
||||
<Compile Include="MachGroup Model\BeamMachGroupM.vb" />
|
||||
<Compile Include="DataAccess\PartAddedEventArgs.vb" />
|
||||
<Compile Include="DataAccess\BTLParamAddedEventArgs.vb" />
|
||||
@@ -86,6 +87,7 @@
|
||||
<Compile Include="BTL Model\BTLStructureM.vb" />
|
||||
<Compile Include="Constants\ConstBeam.vb" />
|
||||
<Compile Include="Enum.vb" />
|
||||
<Compile Include="MachLog.vb" />
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
Public Class MachLog
|
||||
|
||||
Private m_CommandType As CommandTypes
|
||||
Private m_CommandState As CommandStates
|
||||
Private m_ResultType As ResultTypes
|
||||
Private m_Description As String
|
||||
Private m_AlarmOperation As Integer
|
||||
Private m_AlarmType As Integer
|
||||
Private m_AlarmMessage As String
|
||||
Private m_AlarmCode As String
|
||||
Private m_AlarmDateTime As String
|
||||
Private m_newOpState As Integer
|
||||
Private m_CommandExecutedCorrectly As Boolean
|
||||
Private m_VarAddress As String
|
||||
Private m_VarValue As String
|
||||
|
||||
Public Delegate Sub ResultCallbackDlg(CommandType As CommandTypes, CommandState As CommandStates, ResultType As ResultTypes, Description As String)
|
||||
Public Delegate Sub AlarmCallbackDlg(AlarmOperation As Integer, AlarmType As Integer, AlarmMessage As String, AlarmCode As String, AlarmDateTime As String)
|
||||
Public Delegate Sub OpStateCallbackDlg(newOpState As Integer)
|
||||
Public Delegate Sub ReadVarCallbackDlg(CommandExecutedCorrectly As Boolean, VarAddress As String, VarValue As String)
|
||||
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
Friend Shared Function CreateResultLog(CommandType As CommandTypes, CommandState As CommandStates, ResultType As ResultTypes, Description As String)
|
||||
Dim NewMachLog As New MachLog
|
||||
NewMachLog.m_CommandType = CommandType
|
||||
NewMachLog.m_CommandState = CommandState
|
||||
NewMachLog.m_ResultType = ResultType
|
||||
NewMachLog.m_Description = Description
|
||||
Return NewMachLog
|
||||
End Function
|
||||
|
||||
Friend Shared Function CreateAlarmLog(CommandType As CommandTypes, AlarmOperation As Integer, AlarmType As Integer, AlarmMessage As String, AlarmCode As String, AlarmDateTime As String)
|
||||
Dim NewMachLog As New MachLog
|
||||
NewMachLog.m_CommandType = CommandType
|
||||
NewMachLog.m_AlarmOperation = AlarmOperation
|
||||
NewMachLog.m_AlarmType = AlarmType
|
||||
NewMachLog.m_AlarmMessage = AlarmMessage
|
||||
NewMachLog.m_AlarmCode = AlarmCode
|
||||
NewMachLog.m_AlarmDateTime = AlarmDateTime
|
||||
Return NewMachLog
|
||||
End Function
|
||||
|
||||
Friend Shared Function CreateOPStateLog(CommandType As CommandTypes, newOpState As Integer)
|
||||
Dim NewMachLog As New MachLog
|
||||
NewMachLog.m_CommandType = CommandType
|
||||
NewMachLog.m_newOpState = newOpState
|
||||
Return NewMachLog
|
||||
End Function
|
||||
|
||||
Friend Shared Function CreateAlarmLog(CommandType As CommandTypes, CommandExecutedCorrectly As Boolean, VarAddress As String, VarValue As String)
|
||||
Dim NewMachLog As New MachLog
|
||||
NewMachLog.m_CommandType = CommandType
|
||||
NewMachLog.m_AlarmOperation = CommandExecutedCorrectly
|
||||
NewMachLog.m_AlarmType = VarAddress
|
||||
NewMachLog.m_AlarmMessage = VarValue
|
||||
Return NewMachLog
|
||||
End Function
|
||||
|
||||
End Class
|
||||
@@ -7,11 +7,33 @@ Imports System.Security.Permissions
|
||||
Imports System.Text
|
||||
Imports System.Threading.Tasks
|
||||
Imports System.Windows
|
||||
Imports ISOCNC.Remoting
|
||||
|
||||
Class TPAComm
|
||||
|
||||
' creo classe di gestione variabili
|
||||
Private m_RWVariableManager As RWVariableManager
|
||||
Friend ReadOnly Property RWVariableManager As RWVariableManager
|
||||
Get
|
||||
Return m_RWVariableManager
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_MachManaging As MachManaging
|
||||
Friend ReadOnly Property MachManaging As MachManaging
|
||||
Get
|
||||
Return m_MachManaging
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private _axesVal As Double() = New Double(23) {}
|
||||
Private _cmdActive As Integer = 0
|
||||
Private _opState As ISOCNC.Remoting.MachineOperatingState = ISOCNC.Remoting.MachineOperatingState.Unspecified
|
||||
Private m_opState As ISOCNC.Remoting.MachineOperatingState = ISOCNC.Remoting.MachineOperatingState.Unspecified
|
||||
Public ReadOnly Property opState As ISOCNC.Remoting.MachineOperatingState
|
||||
Get
|
||||
Return m_opState
|
||||
End Get
|
||||
End Property
|
||||
Private _remObject As ISOCNC.Remoting_Server
|
||||
|
||||
Public ReadOnly Property remObject As ISOCNC.Remoting_Server
|
||||
@@ -21,7 +43,12 @@ Class TPAComm
|
||||
End Property
|
||||
|
||||
Private serverURI As String = "ipc://localhost:9090/IRemoteObject.rem"
|
||||
Private eventProxy As ISOCNC.Remoting.EventProxyManager
|
||||
Private m_eventProxy As ISOCNC.Remoting.EventProxyManager
|
||||
Friend ReadOnly Property eventProxy As ISOCNC.Remoting.EventProxyManager
|
||||
Get
|
||||
Return m_eventProxy
|
||||
End Get
|
||||
End Property
|
||||
Private _rpc As Integer
|
||||
Private _prgCount As Integer
|
||||
Private _prgAtIndex As String
|
||||
@@ -32,8 +59,28 @@ Class TPAComm
|
||||
Private _message As String
|
||||
Private _errSystem As String
|
||||
|
||||
Private m_Proxy_CommandExecutedEventHandler As New CommandExecutedEventHandler(AddressOf RemoteObject_CommandExecuted)
|
||||
Private m_Proxy_ServerErrorEventHandler As New ServerErrorEventHandler(AddressOf RemoteObject_ServerError)
|
||||
Private m_Proxy_AxesCoordinatesUpdateEventHandler As New AxesCoordinatesUpdateEventHandler(AddressOf RemoteObject_AxisCoordinatesUpdate)
|
||||
Private m_Proxy_OpStateUpdateEventHandler As New OpStateUpdateEventHandler(AddressOf RemoteObject_OpStateUpdate)
|
||||
Private m_Proxy_AlarmNotificationEventHandler As New AlarmNotificationEventHandler(AddressOf RemoteObject_AlarmNotification)
|
||||
Private m_Proxy_ListInfoEventHandler As New ListInfoEventHandler(AddressOf RemoteObject_ListInfoResponse)
|
||||
Private m_Proxy_RPCUpdateEventHandler As New RPCUpdateEventHandler(AddressOf RemoteObject_RPCUpdate)
|
||||
Private m_Proxy_VariableCommandExecutedEventHandler As New VariableCommandExecutedEventHandler(AddressOf RemoteObject_VariableCommandExecuted)
|
||||
Private m_Proxy_TickUpdateEventHandler As New TickUpdateEventHandler(AddressOf RemoteObject_TickUpdate)
|
||||
Private m_Rem_CommandExecutedEventHandler As New CommandExecutedEventHandler(AddressOf m_eventProxy.LocallyHandleCommandExecuted)
|
||||
Private m_Rem_ServerErrorEventHandler As New ServerErrorEventHandler(AddressOf m_eventProxy.LocallyHandleServerError)
|
||||
Private m_Rem_AxesCoordinatesUpdateEventHandler As New AxesCoordinatesUpdateEventHandler(AddressOf m_eventProxy.LocallyHandleAxisCoordinatesUpdate)
|
||||
Private m_Rem_OpStateUpdateEventHandler As New OpStateUpdateEventHandler(AddressOf m_eventProxy.LocallyHandleOpStateUpdate)
|
||||
Private m_Rem_AlarmNotificationEventHandler As New AlarmNotificationEventHandler(AddressOf m_eventProxy.LocallyHandleAlarmNotification)
|
||||
Private m_Rem_ListInfoEventHandler As New ListInfoEventHandler(AddressOf m_eventProxy.LocallyHandleListInfo)
|
||||
Private m_Rem_RPCUpdateEventHandler As New RPCUpdateEventHandler(AddressOf m_eventProxy.LocallyHandleRPCUpdate)
|
||||
Private m_Rem_VariableCommandExecutedEventHandler As New VariableCommandExecutedEventHandler(AddressOf m_eventProxy.LocallyHandleVariableCommandExecuted)
|
||||
|
||||
|
||||
<SecurityPermission(SecurityAction.Demand)>
|
||||
Public Sub New()
|
||||
Public Sub New(Machmanaging As MachManaging)
|
||||
m_MachManaging = Machmanaging
|
||||
Dim properties As System.Collections.Hashtable = New System.Collections.Hashtable()
|
||||
properties("name") = "remotingClient"
|
||||
properties("priority") = "20"
|
||||
@@ -53,64 +100,91 @@ Class TPAComm
|
||||
Console.WriteLine("The type of the message sink is {0}.", messageSink.[GetType]().ToString())
|
||||
End If
|
||||
|
||||
eventProxy = New ISOCNC.Remoting.EventProxyManager()
|
||||
AddHandler eventProxy.CommandExecuted, New ISOCNC.Remoting.CommandExecutedEventHandler(AddressOf RemoteObject_CommandExecuted)
|
||||
AddHandler eventProxy.ServerError, New ISOCNC.Remoting.ServerErrorEventHandler(AddressOf RemoteObject_ServerError)
|
||||
AddHandler eventProxy.AxisCoordinatesUpdate, New ISOCNC.Remoting.AxesCoordinatesUpdateEventHandler(AddressOf RemoteObject_AxisCoordinatesUpdate)
|
||||
AddHandler eventProxy.OpStateUpdate, New ISOCNC.Remoting.OpStateUpdateEventHandler(AddressOf RemoteObject_OpStateUpdate)
|
||||
AddHandler eventProxy.AlarmNotification, New ISOCNC.Remoting.AlarmNotificationEventHandler(AddressOf RemoteObject_AlarmNotification)
|
||||
AddHandler eventProxy.ListInfoResponse, New ISOCNC.Remoting.ListInfoEventHandler(AddressOf RemoteObject_ListInfoResponse)
|
||||
AddHandler eventProxy.RPCUpdate, New ISOCNC.Remoting.RPCUpdateEventHandler(AddressOf RemoteObject_RPCUpdate)
|
||||
AddHandler eventProxy.VariableCommandExecuted, New ISOCNC.Remoting.VariableCommandExecutedEventHandler(AddressOf RemoteObject_VariableCommandExecuted)
|
||||
AddHandler eventProxy.TickUpdate, New ISOCNC.Remoting.TickUpdateEventHandler(AddressOf RemoteObject_TickUpdate)
|
||||
_remObject = CType(Activator.GetObject(GetType(ISOCNC.Remoting_Server), serverURI), ISOCNC.Remoting_Server)
|
||||
m_eventProxy = New ISOCNC.Remoting.EventProxyManager()
|
||||
AddHandler m_eventProxy.CommandExecuted, m_Proxy_CommandExecutedEventHandler
|
||||
AddHandler m_eventProxy.ServerError, m_Proxy_ServerErrorEventHandler
|
||||
AddHandler m_eventProxy.AxisCoordinatesUpdate, m_Proxy_AxesCoordinatesUpdateEventHandler
|
||||
AddHandler m_eventProxy.OpStateUpdate, m_Proxy_OpStateUpdateEventHandler
|
||||
AddHandler m_eventProxy.AlarmNotification, m_Proxy_AlarmNotificationEventHandler
|
||||
AddHandler m_eventProxy.ListInfoResponse, m_Proxy_ListInfoEventHandler
|
||||
AddHandler m_eventProxy.RPCUpdate, m_Proxy_RPCUpdateEventHandler
|
||||
AddHandler m_eventProxy.VariableCommandExecuted, m_Proxy_VariableCommandExecutedEventHandler
|
||||
AddHandler m_eventProxy.TickUpdate, m_Proxy_TickUpdateEventHandler
|
||||
|
||||
_remObject = CType(Activator.GetObject(GetType(ISOCNC.Remoting_Server), serverURI), ISOCNC.Remoting_Server)
|
||||
Try
|
||||
AddHandler _remObject.CommandExecuted, New ISOCNC.Remoting.CommandExecutedEventHandler(AddressOf eventProxy.LocallyHandleCommandExecuted)
|
||||
AddHandler _remObject.ServerError, New ISOCNC.Remoting.ServerErrorEventHandler(AddressOf eventProxy.LocallyHandleServerError)
|
||||
AddHandler _remObject.AxisCoordinatesUpdate, New ISOCNC.Remoting.AxesCoordinatesUpdateEventHandler(AddressOf eventProxy.LocallyHandleAxisCoordinatesUpdate)
|
||||
AddHandler _remObject.OpStateUpdate, New ISOCNC.Remoting.OpStateUpdateEventHandler(AddressOf eventProxy.LocallyHandleOpStateUpdate)
|
||||
AddHandler _remObject.AlarmNotification, New ISOCNC.Remoting.AlarmNotificationEventHandler(AddressOf eventProxy.LocallyHandleAlarmNotification)
|
||||
AddHandler _remObject.ListInfoResponse, New ISOCNC.Remoting.ListInfoEventHandler(AddressOf eventProxy.LocallyHandleListInfo)
|
||||
AddHandler _remObject.RPCUpdate, New ISOCNC.Remoting.RPCUpdateEventHandler(AddressOf eventProxy.LocallyHandleRPCUpdate)
|
||||
AddHandler _remObject.VariableCommandExecuted, New ISOCNC.Remoting.VariableCommandExecutedEventHandler(AddressOf eventProxy.LocallyHandleVariableCommandExecuted)
|
||||
AddHandler _remObject.CommandExecuted, m_Rem_CommandExecutedEventHandler
|
||||
AddHandler _remObject.ServerError, m_Rem_ServerErrorEventHandler
|
||||
AddHandler _remObject.AxisCoordinatesUpdate, m_Rem_AxesCoordinatesUpdateEventHandler
|
||||
AddHandler _remObject.OpStateUpdate, m_Rem_OpStateUpdateEventHandler
|
||||
AddHandler _remObject.AlarmNotification, m_Rem_AlarmNotificationEventHandler
|
||||
AddHandler _remObject.ListInfoResponse, m_Rem_ListInfoEventHandler
|
||||
AddHandler _remObject.RPCUpdate, m_Rem_RPCUpdateEventHandler
|
||||
AddHandler _remObject.VariableCommandExecuted, m_Rem_VariableCommandExecutedEventHandler
|
||||
Catch ex As System.Runtime.Remoting.RemotingException
|
||||
Dim dR As MessageBoxResult = MessageBox.Show(ex.Message)
|
||||
End Try
|
||||
' creo classe che gestisce variabili
|
||||
m_RWVariableManager = RWVariableManager.CreateRWVariableManager(Me)
|
||||
End Sub
|
||||
|
||||
Friend Sub OnDispose()
|
||||
RemoveHandler _remObject.CommandExecuted, m_Rem_CommandExecutedEventHandler
|
||||
RemoveHandler _remObject.ServerError, m_Rem_ServerErrorEventHandler
|
||||
RemoveHandler _remObject.AxisCoordinatesUpdate, m_Rem_AxesCoordinatesUpdateEventHandler
|
||||
RemoveHandler _remObject.OpStateUpdate, m_Rem_OpStateUpdateEventHandler
|
||||
RemoveHandler _remObject.AlarmNotification, m_Rem_AlarmNotificationEventHandler
|
||||
RemoveHandler _remObject.ListInfoResponse, m_Rem_ListInfoEventHandler
|
||||
RemoveHandler _remObject.RPCUpdate, m_Rem_RPCUpdateEventHandler
|
||||
RemoveHandler _remObject.VariableCommandExecuted, m_Rem_VariableCommandExecutedEventHandler
|
||||
RemoveHandler m_eventProxy.CommandExecuted, m_Proxy_CommandExecutedEventHandler
|
||||
RemoveHandler m_eventProxy.ServerError, m_Proxy_ServerErrorEventHandler
|
||||
RemoveHandler m_eventProxy.AxisCoordinatesUpdate, m_Proxy_AxesCoordinatesUpdateEventHandler
|
||||
RemoveHandler m_eventProxy.OpStateUpdate, m_Proxy_OpStateUpdateEventHandler
|
||||
RemoveHandler m_eventProxy.AlarmNotification, m_Proxy_AlarmNotificationEventHandler
|
||||
RemoveHandler m_eventProxy.ListInfoResponse, m_Proxy_ListInfoEventHandler
|
||||
RemoveHandler m_eventProxy.RPCUpdate, m_Proxy_RPCUpdateEventHandler
|
||||
RemoveHandler m_eventProxy.VariableCommandExecuted, m_Proxy_VariableCommandExecutedEventHandler
|
||||
RemoveHandler m_eventProxy.TickUpdate, m_Proxy_TickUpdateEventHandler
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_OpStateUpdate(ByVal newOpState As ISOCNC.Remoting.MachineOperatingState)
|
||||
_opState = newOpState
|
||||
'If _opState = ISOCNC.Remoting.MachineOperatingState.Pending Then remObject.RemoveAllProgramsFromList()
|
||||
m_opState = newOpState
|
||||
m_OpStateCallbackDlg(newOpState)
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_CommandExecuted(ByVal executedCommand As Integer)
|
||||
Select Case executedCommand
|
||||
Case CInt(ISOCNC.Remoting.Commands.NoCommand)
|
||||
Case CInt(ISOCNC.Remoting.Commands.[End])
|
||||
m_ResultCallbackDlg(CommandTypes.RESET, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
Case CInt(ISOCNC.Remoting.Commands.[Error])
|
||||
m_ResultCallbackDlg(CommandTypes.ERROR_, CommandStates.ERROR_, ResultTypes.RESULT, "")
|
||||
Case CInt(ISOCNC.Remoting.Commands.MDI_End)
|
||||
Case CInt(ISOCNC.Remoting.Commands.MDI_Start)
|
||||
Case CInt(ISOCNC.Remoting.Commands.MDI_Stop)
|
||||
Case CInt(ISOCNC.Remoting.Commands.SetPoint)
|
||||
m_ResultCallbackDlg(CommandTypes.SETPOINT, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
Case CInt(ISOCNC.Remoting.Commands.Start)
|
||||
m_ResultCallbackDlg(CommandTypes.START, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
Case CInt(ISOCNC.Remoting.Commands.[Step])
|
||||
m_ResultCallbackDlg(CommandTypes.STEP_, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
Case CInt(ISOCNC.Remoting.Commands.[Stop])
|
||||
m_ResultCallbackDlg(CommandTypes.STOP_, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
Case CInt(ISOCNC.Remoting.Commands.Start_Program_Soft)
|
||||
m_ResultCallbackDlg(CommandTypes.SOFTSTART, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
Case Else
|
||||
End Select
|
||||
|
||||
_cmdActive = CInt(executedCommand)
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_ServerError(ByVal sender As Object, ByVal seEA As ISOCNC.Remoting.ServerErrorEventArgs)
|
||||
m_ResultCallbackDlg(CommandTypes.ERROR_, CommandStates.ERROR_, ResultTypes.RESULT, "Server Error: " & seEA.[Error])
|
||||
Dim dr As MessageBoxResult = MessageBox.Show("Server Error: " & seEA.[Error])
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_AxisCoordinatesUpdate(ByVal axisValue As Double, ByVal axisIndex As Integer)
|
||||
_axesVal(axisIndex) = axisValue
|
||||
Map.refMachCommandMessagePanelVM.AxisList(axisIndex).Value = axisValue
|
||||
Map.refMachCommandMessagePanelVM.AxisList(axisIndex).NotifyPropertyChanged("Value")
|
||||
m_AxisCoordinatesCallbackDlg(axisValue, axisIndex)
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_RPCUpdate(ByVal newRPC As UInteger)
|
||||
@@ -133,65 +207,25 @@ Class TPAComm
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_AlarmNotification(ByVal alarmOperation As Integer, ByVal alarmType As Integer, ByVal alarmMessage As String, ByVal alarmCode As String, ByVal alarmDateTime As String)
|
||||
Select Case alarmType
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.Cycle)
|
||||
|
||||
If alarmOperation = CInt(ISOCNC.Remoting.AlarmOperation.Addition) Then
|
||||
_errCycle = alarmCode & ": " & alarmMessage
|
||||
Else
|
||||
|
||||
If _errCycle IsNot Nothing AndAlso _errCycle <> "" Then
|
||||
If _errCycle.Split(":"c)(0) = alarmCode Then _errCycle = ""
|
||||
End If
|
||||
End If
|
||||
|
||||
Map.refMachCommandMessagePanelVM.UpdateErrCycle(_errCycle)
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.ISO)
|
||||
|
||||
If alarmOperation = CInt(ISOCNC.Remoting.AlarmOperation.Addition) Then
|
||||
_iso = alarmCode & ": " & alarmMessage
|
||||
Else
|
||||
|
||||
If _iso IsNot Nothing AndAlso _iso <> "" Then
|
||||
If _iso.Split(":"c)(0) = alarmCode Then _iso = ""
|
||||
End If
|
||||
End If
|
||||
|
||||
Map.refMachCommandMessagePanelVM.UpdateIso(_iso)
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.Message)
|
||||
|
||||
If alarmOperation = CInt(ISOCNC.Remoting.AlarmOperation.Addition) Then
|
||||
_message = alarmCode & ": " & alarmMessage
|
||||
Else
|
||||
|
||||
If _message IsNot Nothing AndAlso _message <> "" Then
|
||||
If _message.Split(":"c)(0) = alarmCode Then _message = ""
|
||||
End If
|
||||
End If
|
||||
|
||||
Map.refMachCommandMessagePanelVM.UpdateMessage(_message)
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.None)
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.System)
|
||||
|
||||
If alarmOperation = CInt(ISOCNC.Remoting.AlarmOperation.Addition) Then
|
||||
_errSystem = alarmCode & ": " & alarmMessage
|
||||
Else
|
||||
|
||||
If _errSystem IsNot Nothing AndAlso _errSystem <> "" Then
|
||||
If _errSystem.Split(":"c)(0) = alarmCode Then _errSystem = ""
|
||||
End If
|
||||
End If
|
||||
|
||||
Map.refMachCommandMessagePanelVM.UpdateErrSystem(_errSystem)
|
||||
Case Else
|
||||
End Select
|
||||
' restituisco errore ad interfaccia
|
||||
m_AlarmCallbackDlg(alarmOperation, alarmType, alarmMessage, alarmCode, alarmDateTime)
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_VariableCommandExecuted(ByVal executedCommand As Integer, ByVal commandExecutedCorrectly As Boolean, ByVal varName As String, ByVal varValue As String, ByVal varType As Integer)
|
||||
' riporto valore variabile su array
|
||||
|
||||
Select Case executedCommand
|
||||
Case VariableCommands.Error
|
||||
Case VariableCommands.NotExecuted
|
||||
Case VariableCommands.ReadVar
|
||||
m_RWVariableManager.UpdateVar(commandExecutedCorrectly, varName, varValue, varType)
|
||||
Case VariableCommands.WriteVar
|
||||
m_ResultCallbackDlg(CommandTypes.WRITE, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
Case VariableCommands.ReadAxis
|
||||
Case VariableCommands.ReadAny
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_TickUpdate(ByVal newTick As ULong)
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
'----------------------------------------------------------------------------
|
||||
' EgalTech 2015-2017
|
||||
'----------------------------------------------------------------------------
|
||||
' File : ConstGen.vb Data : 10.04.17 Versione : 1.8d1
|
||||
' Contenuto : Modulo costanti generali.
|
||||
'
|
||||
'
|
||||
'
|
||||
' Modifiche : 10.04.17 DS Creazione modulo.
|
||||
'
|
||||
'
|
||||
'----------------------------------------------------------------------------
|
||||
|
||||
Module ConstCommVa
|
||||
|
||||
' Assi
|
||||
Public Const ASSE_X As String = "AsseX"
|
||||
Public Const ASSE_Y As String = "AsseY"
|
||||
Public Const ASSE_Z As String = "AsseZ"
|
||||
Public Const ASSE_C As String = "AsseC"
|
||||
Public Const ASSE_B As String = "AsseB"
|
||||
' variabili P eventi pezzo
|
||||
Public Const P_PROD As String = "P_Prod"
|
||||
Public Const P_MACHGROUP As String = "P_Machgroup"
|
||||
Public Const P_PART As String = "P_Part"
|
||||
Public Const P_STATE As String = "P_State"
|
||||
' variabile stato di reset
|
||||
Public Const RESET_STATE As String = "Reset_State"
|
||||
|
||||
End Module
|
||||
@@ -115,10 +115,24 @@
|
||||
<Reference Include="ISOCNC.Remoting">
|
||||
<HintPath>..\..\..\Albatros\Bin\ISOCNC.Remoting.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="MySql.Data, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MySql.Data.6.10.9\lib\net452\MySql.Data.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="MySql.Data.Entity.EF6, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL">
|
||||
<HintPath>..\packages\MySql.Data.Entity.6.10.9\lib\net452\MySql.Data.Entity.EF6.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="System.ComponentModel" />
|
||||
<Reference Include="System.ComponentModel.DataAnnotations" />
|
||||
<Reference Include="System.Configuration" />
|
||||
<Reference Include="System.Configuration.Install" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Drawing" />
|
||||
<Reference Include="System.Drawing.Design" />
|
||||
<Reference Include="System.Management" />
|
||||
<Reference Include="System.Runtime.Remoting" />
|
||||
<Reference Include="System.Security" />
|
||||
<Reference Include="System.Transactions" />
|
||||
<Reference Include="System.Windows.Forms" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
@@ -141,6 +155,7 @@
|
||||
<Compile Include="BTLParam\BTLFeatureVM.vb" />
|
||||
<Compile Include="Comms\TPAComm.vb" />
|
||||
<Compile Include="Constants\ConstBeam.vb" />
|
||||
<Compile Include="Constants\ConstCommVar.vb" />
|
||||
<Compile Include="Constants\ConstGen.vb" />
|
||||
<Compile Include="Constants\ConstIni.vb" />
|
||||
<Compile Include="Constants\ConstMachIni.vb" />
|
||||
@@ -171,6 +186,8 @@
|
||||
<DependentUpon>MachinePanelV.xaml</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="MachinePanel\MachinePanelVM.vb" />
|
||||
<Compile Include="MachManagingThread\MachCommConst.vb" />
|
||||
<Compile Include="MachManagingThread\MachManaging.vb" />
|
||||
<Compile Include="MachManagingThread\MachManagingThread.vb" />
|
||||
<Compile Include="MachManagingThread\RWVariableManager.vb" />
|
||||
<Compile Include="MainWindow\MainWindowM.vb" />
|
||||
|
||||
@@ -11,67 +11,18 @@
|
||||
<RowDefinition Height="1*"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<GroupBox Header="Search & Filter"
|
||||
Margin="3,1,3,3">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<TextBlock Text="Parameter Type"/>
|
||||
<!--<ComboBox ItemsSource="{Binding Tag.SearchParamList, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LeftPanelV}}}"
|
||||
SelectedItem="{Binding Tag.SelSearchParam, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LeftPanelV}}}"
|
||||
Grid.Column="1"/>
|
||||
<TextBlock Text="Text"
|
||||
Grid.Row="1"/>
|
||||
<EgtWPFLib5:EgtTextBox Text="{Binding Tag.SearchText, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LeftPanelV}}}"
|
||||
Grid.Column="1"
|
||||
Grid.Row="1"/>
|
||||
<TextBlock Text="Section"
|
||||
Grid.Row="2"/>
|
||||
<ComboBox ItemsSource="{Binding Tag.SectionList, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LeftPanelV}}}"
|
||||
SelectedItem="{Binding Tag.SelSection, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LeftPanelV}}}"
|
||||
DisplayMemberPath="sSectionXMaterial"
|
||||
Grid.Column="1"
|
||||
Grid.Row="2"/>-->
|
||||
</Grid>
|
||||
<GroupBox Header="Axis">
|
||||
<ItemsControl ItemsSource="{Binding AxisList}">
|
||||
<ItemsControl.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<UniformGrid Columns="2">
|
||||
<TextBlock Text="{Binding sName}"/>
|
||||
<TextBlock Text="{Binding sValue}"/>
|
||||
</UniformGrid>
|
||||
</DataTemplate>
|
||||
</ItemsControl.ItemTemplate>
|
||||
</ItemsControl>
|
||||
</GroupBox>
|
||||
<!--<Grid Grid.Row="1">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="1*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<StackPanel Orientation="Horizontal"
|
||||
HorizontalAlignment="Right">
|
||||
<Button Content="N"
|
||||
Command="{Binding NewRawPart_Command}"
|
||||
Visibility="{Binding MachiningPage_Visibility}"
|
||||
Style="{StaticResource LeftPanel_SmallButton}"/>
|
||||
<Button Content="A"
|
||||
Command="{Binding AddToRawPart_Command}"
|
||||
Visibility="{Binding MachiningPage_Visibility}"
|
||||
Style="{StaticResource LeftPanel_SmallButton}"/>
|
||||
<Button Content="C"
|
||||
Command="{Binding CopyPart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
Style="{StaticResource LeftPanel_SmallButton}"/>
|
||||
<Button Content="+"
|
||||
Command="{Binding AddPart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
Style="{StaticResource LeftPanel_SmallButton}"/>
|
||||
<Button Content="-"
|
||||
Command="{Binding RemovePart_Command}"
|
||||
Visibility="{Binding ViewPage_Visibility}"
|
||||
Style="{StaticResource LeftPanel_SmallButton}"/>
|
||||
</StackPanel>
|
||||
<EgtBEAMWALL:PartListV DataContext="{Binding Tag, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:LeftPanelV}}}"
|
||||
Grid.Row="1"/>
|
||||
</Grid>-->
|
||||
<StackPanel Grid.Row="1"
|
||||
Orientation="Horizontal"
|
||||
HorizontalAlignment="Right">
|
||||
|
||||
@@ -10,10 +10,15 @@ Imports System.Windows
|
||||
Imports ISOCNC.Remoting
|
||||
Imports EgtUILib
|
||||
Imports System.Threading
|
||||
Imports System.Windows.Threading
|
||||
|
||||
Class MachCommandMessagePanelVM
|
||||
Inherits VMBase
|
||||
|
||||
Private m_AlarmTimer As New DispatcherTimer
|
||||
|
||||
Private m_MachManagingThread As Thread
|
||||
|
||||
Private _Connected As Boolean = False
|
||||
Public ReadOnly Property Connected As Boolean
|
||||
Get
|
||||
@@ -27,13 +32,6 @@ Class MachCommandMessagePanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private _Tpa As TPAComm = Nothing
|
||||
Public ReadOnly Property Tpa As TPAComm
|
||||
Get
|
||||
Return _Tpa
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private _ProgramPath As String
|
||||
|
||||
Public ReadOnly Property ProgramPath As String
|
||||
@@ -80,92 +78,84 @@ Class MachCommandMessagePanelVM
|
||||
NotifyPropertyChanged(NameOf(VarValue))
|
||||
End Sub
|
||||
|
||||
Private _AxisList As ObservableCollection(Of Axis)
|
||||
Private m_AxisList As ObservableCollection(Of Axis)
|
||||
|
||||
Public ReadOnly Property AxisList As ObservableCollection(Of Axis)
|
||||
Get
|
||||
Return _AxisList
|
||||
Return m_AxisList
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private _OPStateList As List(Of ISOCNC.Remoting.MachineOperatingState)
|
||||
Private m_OPState As MachineOperatingState
|
||||
|
||||
Public Property OPStateList As List(Of ISOCNC.Remoting.MachineOperatingState)
|
||||
Public ReadOnly Property OPState As MachineOperatingState
|
||||
Get
|
||||
Return _OPStateList
|
||||
Return m_OPState
|
||||
End Get
|
||||
Set(ByVal value As List(Of ISOCNC.Remoting.MachineOperatingState))
|
||||
_OPStateList = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private _SelOPState As ISOCNC.Remoting.MachineOperatingState
|
||||
|
||||
Public Property SelOPState As ISOCNC.Remoting.MachineOperatingState
|
||||
Public ReadOnly Property sOPState As String
|
||||
Get
|
||||
Return _SelOPState
|
||||
Select Case m_OPState
|
||||
Case MachineOperatingState.Start
|
||||
Return "START"
|
||||
Case MachineOperatingState.Stop
|
||||
Return "STOP"
|
||||
Case MachineOperatingState.End
|
||||
Return "RESET"
|
||||
Case MachineOperatingState.SetPoint
|
||||
Return "SETPOINT"
|
||||
Case MachineOperatingState.Pending
|
||||
Return "PENDING"
|
||||
Case Else
|
||||
Return ""
|
||||
End Select
|
||||
End Get
|
||||
Set(ByVal value As ISOCNC.Remoting.MachineOperatingState)
|
||||
_SelOPState = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private _ErrCycle As String
|
||||
|
||||
Public ReadOnly Property ErrCycle As String
|
||||
Private m_ErrCycle As New List(Of Alarm)
|
||||
Private m_ErrCycleCount As Integer = 0
|
||||
Public ReadOnly Property sErrCycle As String
|
||||
Get
|
||||
Return _ErrCycle
|
||||
Dim ShownErr As Alarm = If(m_ErrCycleCount < m_ErrCycle.Count, m_ErrCycle(m_ErrCycleCount), Nothing)
|
||||
Return If(Not IsNothing(ShownErr), ShownErr.sCode & ": " & ShownErr.sMessage, "")
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub UpdateErrCycle(ByVal msg As String)
|
||||
_ErrCycle = msg
|
||||
NotifyPropertyChanged(NameOf(ErrCycle))
|
||||
End Sub
|
||||
|
||||
Private _Iso As String
|
||||
|
||||
Public ReadOnly Property Iso As String
|
||||
Private m_Iso As New List(Of Alarm)
|
||||
Private m_IsoCount As Integer = 0
|
||||
Public ReadOnly Property sIso As String
|
||||
Get
|
||||
Return _Iso
|
||||
Dim ShownErr As Alarm = If(m_IsoCount < m_Iso.Count, m_Iso(m_IsoCount), Nothing)
|
||||
Return If(Not IsNothing(ShownErr), ShownErr.sCode & ": " & ShownErr.sMessage, "")
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub UpdateIso(ByVal msg As String)
|
||||
_Iso = msg
|
||||
NotifyPropertyChanged(NameOf(Iso))
|
||||
End Sub
|
||||
|
||||
Private _Message As String
|
||||
|
||||
Public ReadOnly Property Message As String
|
||||
Private m_Message As New List(Of Alarm)
|
||||
Private m_MessageCount As Integer = 0
|
||||
Public ReadOnly Property sMessage As String
|
||||
Get
|
||||
Return _Message
|
||||
Dim ShownErr As Alarm = If(m_MessageCount < m_Message.Count, m_Message(m_MessageCount), Nothing)
|
||||
Return If(Not IsNothing(ShownErr), ShownErr.sCode & ": " & ShownErr.sMessage, "")
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub UpdateMessage(ByVal msg As String)
|
||||
_Message = msg
|
||||
NotifyPropertyChanged(NameOf(Message))
|
||||
End Sub
|
||||
|
||||
Private _ErrSystem As String
|
||||
|
||||
Public ReadOnly Property ErrSystem As String
|
||||
Private m_ErrSystem As New List(Of Alarm)
|
||||
Private m_ErrSystemCount As Integer = 0
|
||||
Public ReadOnly Property sErrSystem As String
|
||||
Get
|
||||
Return _ErrSystem
|
||||
Dim ShownErr As Alarm = If(m_ErrSystemCount < m_ErrSystem.Count, m_ErrSystem(m_ErrSystemCount), Nothing)
|
||||
Return If(Not IsNothing(ShownErr), ShownErr.sCode & ": " & ShownErr.sMessage, "")
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub UpdateErrSystem(ByVal msg As String)
|
||||
_ErrSystem = msg
|
||||
NotifyPropertyChanged(NameOf(ErrSystem))
|
||||
End Sub
|
||||
|
||||
Private m_cmdConnect As ICommand
|
||||
Private m_cmdDisconnect As ICommand
|
||||
Private m_cmdStart As ICommand
|
||||
Private m_cmdStop As ICommand
|
||||
Private m_cmdReset As ICommand
|
||||
Private m_cmdStep As ICommand
|
||||
Private m_cmdSearchFilePath As ICommand
|
||||
Private m_cmdAddProgram As ICommand
|
||||
@@ -177,24 +167,68 @@ Class MachCommandMessagePanelVM
|
||||
|
||||
Public Sub New()
|
||||
Map.SetRefMachCommandMessagePanelVM(Me)
|
||||
_AxisList = New ObservableCollection(Of Axis) From {
|
||||
New Axis("X"),
|
||||
New Axis("Y"),
|
||||
New Axis("Z"),
|
||||
New Axis("C"),
|
||||
New Axis("B")
|
||||
}
|
||||
_OPStateList = New List(Of MachineOperatingState) From {
|
||||
MachineOperatingState.Start,
|
||||
MachineOperatingState.[Stop],
|
||||
MachineOperatingState.[End],
|
||||
MachineOperatingState.SetPoint,
|
||||
MachineOperatingState.Pending,
|
||||
MachineOperatingState.Unspecified
|
||||
}
|
||||
' creo thread gestione macchina
|
||||
m_MachManagingThread = New Thread(Sub()
|
||||
CommunicationThread.MachManagingThreadFunction(AddressOf ResultCallbackDlg, AddressOf CloseCallbackDlg,
|
||||
AddressOf UpdateCallbackDlg, AddressOf AlarmCallbackDlg,
|
||||
AddressOf AxisCoordinatesCallbackDlg, AddressOf OpStateCallbackDlg,
|
||||
AddressOf ReadVarCallbackDlg)
|
||||
End Sub)
|
||||
|
||||
' impostazioni timer degli allarmi
|
||||
m_AlarmTimer.Interval = New TimeSpan(1500)
|
||||
AddHandler m_AlarmTimer.Tick, AddressOf AlarmTimer_Tick
|
||||
' impostazione assi (leggerli da conf macchina)
|
||||
m_AxisList = New ObservableCollection(Of Axis)({New Axis(ASSE_X),
|
||||
New Axis(ASSE_Y),
|
||||
New Axis(ASSE_Z),
|
||||
New Axis(ASSE_C),
|
||||
New Axis(ASSE_B)})
|
||||
NotifyPropertyChanged(NameOf(Connect_Background))
|
||||
End Sub
|
||||
|
||||
Private Sub AlarmTimer_Tick()
|
||||
If m_ErrCycle.Count = 0 AndAlso m_Iso.Count = 0 AndAlso m_Message.Count = 0 AndAlso m_ErrSystem.Count = 0 Then
|
||||
NotifyPropertyChanged(NameOf(sErrCycle))
|
||||
NotifyPropertyChanged(NameOf(sIso))
|
||||
NotifyPropertyChanged(NameOf(sMessage))
|
||||
NotifyPropertyChanged(NameOf(sErrSystem))
|
||||
Return
|
||||
End If
|
||||
If m_ErrCycle.Count > 0 Then
|
||||
If m_ErrCycleCount < m_ErrCycle.Count Then
|
||||
m_ErrCycleCount += 1
|
||||
Else
|
||||
m_ErrCycleCount = 0
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(sErrCycle))
|
||||
If m_Iso.Count > 0 Then
|
||||
If m_IsoCount < m_Iso.Count Then
|
||||
m_IsoCount += 1
|
||||
Else
|
||||
m_IsoCount = 0
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(sIso))
|
||||
If m_Message.Count > 0 Then
|
||||
If m_MessageCount < m_Message.Count Then
|
||||
m_MessageCount += 1
|
||||
Else
|
||||
m_MessageCount = 0
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(sMessage))
|
||||
If m_ErrSystem.Count > 0 Then
|
||||
If m_ErrSystemCount < m_ErrSystem.Count Then
|
||||
m_ErrSystemCount += 1
|
||||
Else
|
||||
m_ErrSystemCount = 0
|
||||
End If
|
||||
End If
|
||||
NotifyPropertyChanged(NameOf(sErrSystem))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Connect_Command As ICommand
|
||||
Get
|
||||
If m_cmdConnect Is Nothing Then m_cmdConnect = New Command(AddressOf Connect)
|
||||
@@ -203,44 +237,24 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub Connect(ByVal param As Object)
|
||||
Try
|
||||
_Tpa = New TPAComm()
|
||||
_Connected = Tpa.remObject.OnConnect()
|
||||
Catch ex As Exception
|
||||
EgtOutLog("Tentativo di connessione alla macchina fallito")
|
||||
Return
|
||||
End Try
|
||||
' avvio thread di gestione della macchina
|
||||
Map.refProjectVM.StartMachManagingThread()
|
||||
NotifyPropertyChanged(NameOf(Connect_Background))
|
||||
If _Connected Then Init()
|
||||
m_MachManagingThread.Start()
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.CONNECT))
|
||||
End Sub
|
||||
|
||||
Private Sub Init()
|
||||
_SelOPState = CType(Tpa.remObject.MachineOperativeStatus, MachineOperatingState)
|
||||
NotifyPropertyChanged(NameOf(SelOPState))
|
||||
Dim sAxesValue As String = ""
|
||||
Dim dAxesValue As Double = 0
|
||||
Dim sAxesName As String = "0.TESTA.AsseX.X"
|
||||
Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.ReadVar), sAxesName, sAxesValue)
|
||||
Double.TryParse(sAxesValue, dAxesValue)
|
||||
_AxisList(0).Value = dAxesValue
|
||||
sAxesName = "0.TESTA.AsseY.Y"
|
||||
Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.ReadVar), sAxesName, sAxesValue)
|
||||
Double.TryParse(sAxesValue, dAxesValue)
|
||||
_AxisList(1).Value = dAxesValue
|
||||
sAxesName = "0.TESTA.AsseZ.Z"
|
||||
Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.ReadVar), sAxesName, sAxesValue)
|
||||
Double.TryParse(sAxesValue, dAxesValue)
|
||||
_AxisList(2).Value = dAxesValue
|
||||
sAxesName = "0.TESTA.AsseC.C"
|
||||
Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.ReadVar), sAxesName, sAxesValue)
|
||||
Double.TryParse(sAxesValue, dAxesValue)
|
||||
_AxisList(3).Value = dAxesValue
|
||||
sAxesName = "0.TESTA.AsseB.B"
|
||||
Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.ReadVar), sAxesName, sAxesValue)
|
||||
Double.TryParse(sAxesValue, dAxesValue)
|
||||
_AxisList(4).Value = dAxesValue
|
||||
' inizializzo tutte le variabili
|
||||
RWVariableManager.InitVar(ASSE_X, "0.TESTA.AsseX.X", CommVar.CommVarTypes.ONETIME)
|
||||
RWVariableManager.InitVar(ASSE_Y, "0.TESTA.AsseY.Y", CommVar.CommVarTypes.ONETIME)
|
||||
RWVariableManager.InitVar(ASSE_Z, "0.TESTA.AsseZ.Z", CommVar.CommVarTypes.ONETIME)
|
||||
RWVariableManager.InitVar(ASSE_B, "0.TESTA.AsseC.B", CommVar.CommVarTypes.ONETIME)
|
||||
RWVariableManager.InitVar(ASSE_C, "0.TESTA.AsseB.C", CommVar.CommVarTypes.ONETIME)
|
||||
' inizializzo valori assi leggendoli da variabili
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ, ASSE_X))
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ, ASSE_Y))
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ, ASSE_Z))
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ, ASSE_B))
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ, ASSE_C))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Disconnect_Command As ICommand
|
||||
@@ -250,9 +264,12 @@ Class MachCommandMessagePanelVM
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Disconnect(ByVal param As Object)
|
||||
_Connected = Not Tpa.remObject.OnClose()
|
||||
NotifyPropertyChanged(NameOf(Connect_Background))
|
||||
Public Sub Disconnect()
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DISCONNECT))
|
||||
End Sub
|
||||
|
||||
Public Sub SetOPState(OpState As Integer)
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETOP))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Start_Command As ICommand
|
||||
@@ -263,9 +280,7 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub Start(ByVal param As Object)
|
||||
Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.Start))
|
||||
System.Threading.Thread.Sleep(2000)
|
||||
Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.WriteVar), "0.FUNM.E80048", "0")
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.START))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Stop_Command As ICommand
|
||||
@@ -276,7 +291,20 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub [Stop](ByVal param As Object)
|
||||
Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.[Stop]))
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STOP_))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Reset_Command As ICommand
|
||||
Get
|
||||
If m_cmdReset Is Nothing Then m_cmdReset = New Command(AddressOf Reset)
|
||||
Return m_cmdReset
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub Reset(ByVal param As Object)
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.RESET))
|
||||
' annullo stato di pronto ad essere lavorato di tutti i programmi
|
||||
Map.refProjectVM.SupervisorMachGroupPanelVM.ResetAllMachGroups()
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property Step_Command As ICommand
|
||||
@@ -287,8 +315,7 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub [Step](ByVal param As Object)
|
||||
Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.[End]))
|
||||
Tpa.remObject.RemoveAllProgramsFromList()
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.STEP_))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property SetPoint_Command As ICommand
|
||||
@@ -299,20 +326,7 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub SetPoint(ByVal param As Object)
|
||||
Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.SetPoint))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property SearchFilePath_Command As ICommand
|
||||
Get
|
||||
If m_cmdSearchFilePath Is Nothing Then m_cmdSearchFilePath = New Command(AddressOf SearchFilePath)
|
||||
Return m_cmdSearchFilePath
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Sub SearchFilePath(ByVal param As Object)
|
||||
Dim OpenFileDialog As Microsoft.Win32.OpenFileDialog = New Microsoft.Win32.OpenFileDialog()
|
||||
If OpenFileDialog.ShowDialog() = True Then _ProgramPath = OpenFileDialog.FileName
|
||||
NotifyPropertyChanged(NameOf(ProgramPath))
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SETPOINT))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property AddProgram_Command As ICommand
|
||||
@@ -323,11 +337,7 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub AddProgram(ByVal param As Object)
|
||||
If SelOPState = MachineOperatingState.Pending Then
|
||||
Dim Path As String = _ProgramPath.Replace("\\", "\")
|
||||
Dim x As Boolean = Tpa.remObject.AddProgramToList(Path)
|
||||
Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.Start_Program_Soft))
|
||||
End If
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.SENDPROG))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property RemoveProgram_Command As ICommand
|
||||
@@ -338,13 +348,7 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub RemoveProgram(ByVal param As Object)
|
||||
If (Keyboard.Modifiers And ModifierKeys.Shift) = ModifierKeys.Shift Then
|
||||
Tpa.remObject.RemoveAllProgramsFromList()
|
||||
ElseIf _ProgramIndex < 0 Then
|
||||
Tpa.remObject.RemoveProgramFromList(_ProgramPath)
|
||||
Else
|
||||
Tpa.remObject.RemoveProgramFromListAtIndex(_ProgramIndex)
|
||||
End If
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.REMOVEPROG))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property ReadVar_Command As ICommand
|
||||
@@ -355,7 +359,7 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub ReadVar(ByVal param As Object)
|
||||
Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.ReadVar), _VarName, _VarValue)
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.READ))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property WriteVar_Command As ICommand
|
||||
@@ -366,7 +370,7 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub WriteVar(ByVal param As Object)
|
||||
Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.WriteVar), _VarName, _VarValue)
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.WRITE))
|
||||
End Sub
|
||||
|
||||
Public ReadOnly Property DeleteAlarms_Command As ICommand
|
||||
@@ -377,36 +381,169 @@ Class MachCommandMessagePanelVM
|
||||
End Property
|
||||
|
||||
Public Sub DeleteAlarms(ByVal param As Object)
|
||||
Tpa.remObject.DeleteAlarms(CInt(ISOCNC.Remoting.AlarmType.ISO))
|
||||
MachManaging.m_CommandList.Add(ThreadCommand.CreateCommand(CommandTypes.DELETEALARMS))
|
||||
End Sub
|
||||
|
||||
#Region "CALLBACKS"
|
||||
|
||||
Friend Sub ResultCallbackDlg(CommandType As CommandTypes, CommandState As CommandStates, ResultType As ResultTypes, Params As String)
|
||||
Select Case CommandType
|
||||
Case CommandTypes.CONNECT
|
||||
If CommandState = CommandStates.OK Then
|
||||
_Connected = True
|
||||
Init()
|
||||
NotifyPropertyChanged(NameOf(Connect_Background))
|
||||
End If
|
||||
Case CommandTypes.DISCONNECT
|
||||
If CommandState = CommandStates.OK Then
|
||||
_Connected = False
|
||||
NotifyPropertyChanged(NameOf(Connect_Background))
|
||||
End If
|
||||
End Select
|
||||
' DbControllers.m_LogMachineController.Create(m_SupervisorId,DateTime.Now(),nothing,Nothing,Nothing,)
|
||||
End Sub
|
||||
Friend Sub CloseCallbackDlg(ByRef bCancel As Boolean)
|
||||
' serve?
|
||||
End Sub
|
||||
Friend Sub UpdateCallbackDlg(Param As String, Params As String)
|
||||
|
||||
End Sub
|
||||
Friend Sub AlarmCallbackDlg(ByVal AlarmOperation As Integer, ByVal AlarmType As Integer, ByVal AlarmMessage As String, ByVal AlarmCode As String, ByVal AlarmDateTime As String)
|
||||
Select Case AlarmType
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.Cycle)
|
||||
If AlarmOperation = CInt(ISOCNC.Remoting.AlarmOperation.Addition) Then
|
||||
m_ErrCycle.Add(Alarm.CreateAlarm(AlarmCode, AlarmMessage))
|
||||
Else
|
||||
Dim ToRemove As Alarm = m_ErrCycle.FirstOrDefault(Function(x) x.sCode = AlarmCode)
|
||||
If Not IsNothing(ToRemove) Then
|
||||
m_ErrCycle.Remove(ToRemove)
|
||||
End If
|
||||
End If
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.ISO)
|
||||
If AlarmOperation = CInt(ISOCNC.Remoting.AlarmOperation.Addition) Then
|
||||
m_Iso.Add(Alarm.CreateAlarm(AlarmCode, AlarmMessage))
|
||||
Else
|
||||
Dim ToRemove As Alarm = m_Iso.FirstOrDefault(Function(x) x.sCode = AlarmCode)
|
||||
If Not IsNothing(ToRemove) Then
|
||||
m_Iso.Remove(ToRemove)
|
||||
End If
|
||||
End If
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.Message)
|
||||
If AlarmOperation = CInt(ISOCNC.Remoting.AlarmOperation.Addition) Then
|
||||
m_Message.Add(Alarm.CreateAlarm(AlarmCode, AlarmMessage))
|
||||
Else
|
||||
Dim ToRemove As Alarm = m_Message.FirstOrDefault(Function(x) x.sCode = AlarmCode)
|
||||
If Not IsNothing(ToRemove) Then
|
||||
m_Message.Remove(ToRemove)
|
||||
End If
|
||||
End If
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.None)
|
||||
Case CInt(ISOCNC.Remoting.AlarmType.System)
|
||||
If AlarmOperation = CInt(ISOCNC.Remoting.AlarmOperation.Addition) Then
|
||||
m_ErrSystem.Add(Alarm.CreateAlarm(AlarmCode, AlarmMessage))
|
||||
Else
|
||||
Dim ToRemove As Alarm = m_ErrSystem.FirstOrDefault(Function(x) x.sCode = AlarmCode)
|
||||
If Not IsNothing(ToRemove) Then
|
||||
m_ErrSystem.Remove(ToRemove)
|
||||
End If
|
||||
End If
|
||||
Case Else
|
||||
End Select
|
||||
' se non ci sono errori
|
||||
If m_ErrCycle.Count = 0 AndAlso m_Iso.Count = 0 AndAlso m_Message.Count = 0 AndAlso m_ErrSystem.Count = 0 Then
|
||||
' fermo timer degli allarmi
|
||||
m_AlarmTimer.Stop()
|
||||
Else
|
||||
' altrimenti lo avvio
|
||||
m_AlarmTimer.Start()
|
||||
End If
|
||||
' DbControllers.m_LogMachineController.Create(m_SupervisorId,DateTime.Now(),nothing,Nothing,Nothing,)
|
||||
End Sub
|
||||
|
||||
Friend Sub AxisCoordinatesCallbackDlg(AxisValue As Double, AxisIndex As Integer)
|
||||
m_AxisList(AxisIndex).SetValue(AxisValue)
|
||||
End Sub
|
||||
|
||||
Friend Sub OpStateCallbackDlg(newOpState As MachineOperatingState)
|
||||
m_OPState = newOpState
|
||||
NotifyPropertyChanged(NameOf(sOPState))
|
||||
' DbControllers.m_LogMachineController.Create(m_SupervisorId,DateTime.Now(),nothing,Nothing,Nothing,)
|
||||
End Sub
|
||||
|
||||
Friend Sub ReadVarCallbackDlg(CommandExecutedCorrectly As Boolean, VarAddress As String, VarValue As String, VarType As Integer)
|
||||
Dim VarName As String = RWVariableManager.GetReadVarNameFromAddress(VarAddress)
|
||||
If Not String.IsNullOrEmpty(VarName) Then
|
||||
Select Case VarName
|
||||
Case "AsseX", "AsseY", "AsseZ", "AsseC", "AsseB"
|
||||
SetAxisValue(VarName, VarValue)
|
||||
End Select
|
||||
End If
|
||||
' DbControllers.m_LogMachineController.Create(m_SupervisorId,DateTime.Now(),nothing,Nothing,Nothing,)
|
||||
End Sub
|
||||
|
||||
Private Sub SetAxisValue(VarName As String, VarValue As String)
|
||||
Dim Axis As Axis = m_AxisList.FirstOrDefault(Function(x) x.sName = VarName)
|
||||
If Not IsNothing(Axis) Then
|
||||
Axis.SetValue(VarValue)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
#End Region ' CALLBACKS
|
||||
|
||||
End Class
|
||||
|
||||
Class Axis
|
||||
Inherits VMBase
|
||||
|
||||
Private _Name As String
|
||||
|
||||
Public Property Name As String
|
||||
Private m_Name As String
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
Return _Name
|
||||
Return m_Name
|
||||
End Get
|
||||
Set(ByVal value As String)
|
||||
_Name = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private _Value As Double
|
||||
|
||||
Public Property Value As Double
|
||||
Private m_Value As Double
|
||||
Public ReadOnly Property sValue As Double
|
||||
Get
|
||||
Return _Value
|
||||
Return m_Value
|
||||
End Get
|
||||
Set(ByVal value As Double)
|
||||
_Value = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Public Sub New(ByVal Name As String)
|
||||
_Name = Name
|
||||
Friend Sub SetValue(value As Double)
|
||||
m_Value = value
|
||||
NotifyPropertyChanged(NameOf(sValue))
|
||||
End Sub
|
||||
|
||||
Public Sub New(Name As String)
|
||||
m_Name = Name
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Class Alarm
|
||||
|
||||
Private m_sCode As String
|
||||
Public ReadOnly Property sCode As String
|
||||
Get
|
||||
Return m_sCode
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_sMessage As String
|
||||
Public ReadOnly Property sMessage As String
|
||||
Get
|
||||
Return m_sMessage
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
Public Shared Function CreateAlarm(Code As String, Message As String) As Alarm
|
||||
Dim NewAlarm As New Alarm
|
||||
NewAlarm.m_sCode = Code
|
||||
NewAlarm.m_sMessage = Message
|
||||
Return NewAlarm
|
||||
End Function
|
||||
|
||||
End Class
|
||||
@@ -50,6 +50,12 @@ Public Class MyMachGroupPanelVM
|
||||
Return MachGroupVMList.IndexOf(MachGroupVMList.FirstOrDefault(Function(x) DirectCast(x, MyMachGroupVM).bToBeProduced = False))
|
||||
End Function
|
||||
|
||||
Friend Sub ResetAllMachGroups()
|
||||
For Each Machgroup As MyMachGroupVM In MachGroupVMList
|
||||
Machgroup.ResetProduce()
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Overrides Function InitMachGroupList(Optional bUseDefaults As Boolean = False) As Boolean
|
||||
' Svuoto precedente lista di MachGroup
|
||||
MachGroupVMList.Clear()
|
||||
|
||||
@@ -174,6 +174,11 @@ Public MustInherit Class MyMachGroupVM
|
||||
|
||||
#Region "METHODS"
|
||||
|
||||
Friend Sub ResetProduce()
|
||||
m_bCNReCalculated = False
|
||||
m_bToBeProduced = False
|
||||
End Sub
|
||||
|
||||
#End Region ' METHODS
|
||||
|
||||
Public MustOverride Sub RefreshPartList()
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
Imports EgtBEAMWALL.Core.ConstMachComm
|
||||
|
||||
Module MachCommConst
|
||||
|
||||
Public Enum PVars As Integer
|
||||
PROD = 0
|
||||
MACHGROUP = 1
|
||||
PART = 2
|
||||
STATE = 3
|
||||
End Enum
|
||||
|
||||
' stati pezzo
|
||||
Public Enum PartState As Integer
|
||||
NULL = 0
|
||||
START = 1
|
||||
END_ = 2
|
||||
End Enum
|
||||
|
||||
Public Delegate Sub ResultCallbackDlg(CommandType As CommandTypes, CommandState As CommandStates, ResultType As ResultTypes, Params As String)
|
||||
Public Delegate Sub CloseCallbackDlg(ByRef bCancel As Boolean)
|
||||
Public Delegate Sub UpdateCallbackDlg(Param As String, Params As String)
|
||||
Public Delegate Sub AlarmCallbackDlg(ByVal AlarmOperation As Integer, ByVal AlarmType As Integer, ByVal AlarmMessage As String, ByVal AlarmCode As String, ByVal AlarmDateTime As String)
|
||||
Public Delegate Sub AxisCoordinatesCallbackDlg(ByVal AxisValue As Double, ByVal AxisIndex As Integer)
|
||||
Public Delegate Sub OpStateCallbackDlg(ByVal newOpState As ISOCNC.Remoting.MachineOperatingState)
|
||||
Public Delegate Sub ReadVarCallbackDlg(CommandExecutedCorrectly As Boolean, VarAddress As String, VarValue As String, VarType As Integer)
|
||||
|
||||
Friend m_ResultCallbackDlg As ResultCallbackDlg
|
||||
Friend m_CloseCallbackDlg As CloseCallbackDlg
|
||||
Friend m_UpdateCallbackDlg As UpdateCallbackDlg
|
||||
Friend m_AlarmCallbackDlg As AlarmCallbackDlg
|
||||
Friend m_AxisCoordinatesCallbackDlg As AxisCoordinatesCallbackDlg
|
||||
Friend m_OpStateCallbackDlg As OpStateCallbackDlg
|
||||
Friend m_ReadVarCallbackDlg As ReadVarCallbackDlg
|
||||
|
||||
End Module
|
||||
@@ -0,0 +1,239 @@
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports System.Collections.Specialized
|
||||
Imports System.Windows.Threading
|
||||
Imports ISOCNC.Remoting
|
||||
|
||||
Class MachManaging
|
||||
|
||||
Private m_Timer As New DispatcherTimer
|
||||
Friend ReadOnly Property Timer As New DispatcherTimer
|
||||
|
||||
Private m_bConnected As Boolean = False
|
||||
Public ReadOnly Property bConnected As Boolean
|
||||
Get
|
||||
Return m_bConnected
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Tpa As TPAComm = Nothing
|
||||
Public ReadOnly Property Tpa As TPAComm
|
||||
Get
|
||||
Return m_Tpa
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Public Shared WithEvents m_CommandList As ObservableCollection(Of ThreadCommand)
|
||||
|
||||
Sub New()
|
||||
' imposto in Map
|
||||
Map.SetRefMachManaging(Me)
|
||||
AddHandler m_CommandList.CollectionChanged, AddressOf CommandList_CollectionChanged
|
||||
m_Timer.Interval = New TimeSpan(100)
|
||||
AddHandler m_Timer.Tick, AddressOf Timer_Tick
|
||||
End Sub
|
||||
|
||||
Private Sub OnDispose()
|
||||
m_Timer.Stop()
|
||||
RemoveHandler m_CommandList.CollectionChanged, AddressOf CommandList_CollectionChanged
|
||||
RemoveHandler m_Timer.Tick, AddressOf Timer_Tick
|
||||
End Sub
|
||||
|
||||
Private Sub Timer_Tick(sender As Object, e As EventArgs)
|
||||
'Dim bCancel As Boolean = False
|
||||
'callback(0, "Init", bCancel)
|
||||
|
||||
' leggo tutte le variabili
|
||||
Tpa.RWVariableManager.RefreshAllVars()
|
||||
|
||||
' eseguo ciclo principale
|
||||
Dim nResetVar As Integer
|
||||
'CommVar(sResetVarName, nResetVar)
|
||||
Dim nP_Prod As Integer
|
||||
Dim nP_Machgroup As Integer
|
||||
Dim nP_Part As Integer
|
||||
Dim nP_State As Integer
|
||||
Tpa.RWVariableManager.ReadVar(P_PROD, nP_Prod)
|
||||
Tpa.RWVariableManager.ReadVar(P_MACHGROUP, nP_Machgroup)
|
||||
Tpa.RWVariableManager.ReadVar(P_PART, nP_Part)
|
||||
Tpa.RWVariableManager.ReadVar(P_STATE, nP_State)
|
||||
' se macchina pronta e non sta tagliando alcun pezzo
|
||||
If nResetVar = 0 AndAlso
|
||||
Tpa.opState = MachineOperatingState.Pending AndAlso
|
||||
nP_Prod = 0 AndAlso
|
||||
nP_Machgroup = 0 AndAlso
|
||||
nP_Part = 0 AndAlso
|
||||
nP_State = PartState.NULL Then
|
||||
' verifico se c'e' un programma da lanciare
|
||||
For Each MachGroup In Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList
|
||||
Dim MyMachGroup As MyMachGroupVM = DirectCast(MachGroup, MyMachGroupVM)
|
||||
If MyMachGroup.bReadyForMachining Then
|
||||
' recupero Path file CN
|
||||
Dim CNPath As String = MyMachGroup.CnFilePath().Replace("\\\\", "\\")
|
||||
' lo lancio
|
||||
If (Map.refMachCommandMessagePanelVM.OPState = MachineOperatingState.Pending) Then
|
||||
Dim bOk As Boolean = Tpa.remObject.AddProgramToList(CNPath)
|
||||
Tpa.remObject.SetCommand(ISOCNC.Remoting.Commands.Start_Program_Soft)
|
||||
End If
|
||||
|
||||
End If
|
||||
Next
|
||||
ElseIf nP_Prod <> 0 AndAlso
|
||||
nP_Machgroup <> 0 AndAlso
|
||||
nP_Part <> 0 Then
|
||||
If nP_State = PartState.START Then
|
||||
DbControllers.m_PartController.UpdateStart(nP_Prod, nP_Machgroup, nP_Part, DateTime.Now())
|
||||
Dim MachGroup As MyMachGroupVM = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = nP_Machgroup)
|
||||
MachGroup.MyMachGroupM.SetState(1)
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nState))
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nP_Part)
|
||||
Part.nState = 1
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nState))
|
||||
If Not MachGroup.PartVMList.Any(Function(x) x.nState = 1) Then
|
||||
DbControllers.m_MachGroupController.UpdateStart(nP_Prod, nP_Machgroup, DateTime.Now())
|
||||
MachGroup.MyMachGroupM.SetState(2)
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nState))
|
||||
End If
|
||||
ElseIf nP_State = PartState.END_ Then
|
||||
DbControllers.m_PartController.UpdateEnd(nP_Prod, nP_Machgroup, nP_Part, DateTime.Now())
|
||||
Dim MachGroup As MyMachGroupVM = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = nP_Machgroup)
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = nP_Part)
|
||||
Part.nState = 2
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nState))
|
||||
If MachGroup.PartVMList.All(Function(x) x.nState >= 2) Then
|
||||
DbControllers.m_MachGroupController.UpdateEnd(nP_Prod, nP_Machgroup, DateTime.Now())
|
||||
MachGroup.MyMachGroupM.SetState(2)
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nState))
|
||||
End If
|
||||
' azzero variabili
|
||||
Tpa.RWVariableManager.WriteVar(P_PROD, 0)
|
||||
Tpa.RWVariableManager.WriteVar(P_MACHGROUP, 0)
|
||||
Tpa.RWVariableManager.WriteVar(P_PART, 0)
|
||||
Tpa.RWVariableManager.WriteVar(P_STATE, 0)
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub CommandList_CollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs)
|
||||
For Index = e.NewItems.Count - 1 To 0 Step -1
|
||||
ExecuteCommand(DirectCast(e.NewItems(Index), ThreadCommand))
|
||||
m_CommandList.Remove(e.NewItems(Index))
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub ExecuteCommand(Command As ThreadCommand)
|
||||
Select Case Command.CommandType
|
||||
Case CommandTypes.CONNECT
|
||||
Connect()
|
||||
Case CommandTypes.DISCONNECT
|
||||
Disconnect()
|
||||
Case CommandTypes.START
|
||||
Start()
|
||||
Case CommandTypes.STOP_
|
||||
Stop
|
||||
Case CommandTypes.RESET
|
||||
Reset()
|
||||
Case CommandTypes.SETPOINT
|
||||
SetPoint()
|
||||
Case CommandTypes.SENDPROG
|
||||
SendProgram(Command.sVariable)
|
||||
Case CommandTypes.REMOVEPROG
|
||||
RemoveProgram(Command.nVariable, Command.sVariable)
|
||||
Case CommandTypes.REMOVEALLPROG
|
||||
RemoveAllProgram()
|
||||
Case CommandTypes.READ
|
||||
Tpa.RWVariableManager.RefreshVar(Command.sVariable)
|
||||
Case CommandTypes.WRITE
|
||||
Tpa.RWVariableManager.WriteVar(Command.sVariable, Command.sVariable(1))
|
||||
Case CommandTypes.DELETEALARMS
|
||||
DeleteAlarms()
|
||||
Case CommandTypes.SETOP
|
||||
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
Public Sub Connect()
|
||||
Try
|
||||
m_Tpa = New TPAComm(Me)
|
||||
m_bConnected = Tpa.remObject.OnConnect()
|
||||
m_ResultCallbackDlg(CommandTypes.CONNECT, CommandStates.OK, ResultTypes.EXECUTED, "")
|
||||
m_Timer.Start()
|
||||
' creo classe di gestione variabili
|
||||
Catch ex As Exception
|
||||
m_ResultCallbackDlg(CommandTypes.CONNECT, CommandStates.ERROR_, ResultTypes.EXECUTED, "Errore: impossibile connettersi!")
|
||||
Return
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Public Sub Disconnect()
|
||||
Dim bOk As Boolean = Tpa.remObject.OnClose()
|
||||
m_bConnected = Not bOk
|
||||
m_ResultCallbackDlg(CommandTypes.DISCONNECT, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, "")
|
||||
' chiudo classe Tpa
|
||||
Me.OnDispose()
|
||||
m_Tpa.OnDispose()
|
||||
End Sub
|
||||
|
||||
Public Sub SetOPState()
|
||||
|
||||
End Sub
|
||||
|
||||
Public Sub Start()
|
||||
Dim bOk As Boolean = Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.Start))
|
||||
m_ResultCallbackDlg(CommandTypes.START, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, "")
|
||||
End Sub
|
||||
|
||||
Public Sub [Stop]()
|
||||
Dim bOk As Boolean = Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.[Stop]))
|
||||
m_ResultCallbackDlg(CommandTypes.STOP_, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, "")
|
||||
End Sub
|
||||
|
||||
Public Sub Reset()
|
||||
Dim bOk As Boolean = Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.[End]))
|
||||
bOk = Tpa.remObject.SetVariableCommand(CInt(ISOCNC.Remoting.VariableCommands.WriteVar), "0.FUNM.E80048", "0")
|
||||
m_ResultCallbackDlg(CommandTypes.RESET, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, "")
|
||||
End Sub
|
||||
|
||||
Public Sub SetPoint()
|
||||
Dim bOk As Boolean = Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.SetPoint))
|
||||
m_ResultCallbackDlg(CommandTypes.SETPOINT, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, "")
|
||||
End Sub
|
||||
|
||||
Public Sub SendProgram(ProgramPath As String)
|
||||
Dim bOk As Boolean = (Tpa.opState = MachineOperatingState.Pending)
|
||||
If bOk Then
|
||||
ProgramPath = ProgramPath.Replace("\\", "\")
|
||||
bOk = Tpa.remObject.AddProgramToList(ProgramPath)
|
||||
bOk = Tpa.remObject.SetCommand(CInt(ISOCNC.Remoting.Commands.Start_Program_Soft))
|
||||
End If
|
||||
m_ResultCallbackDlg(CommandTypes.SENDPROG, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, "")
|
||||
End Sub
|
||||
|
||||
Public Sub RemoveProgram(ProgramIndex As Integer, ProgramPath As String)
|
||||
Dim bOk As Boolean
|
||||
Dim sError As String = ""
|
||||
If ProgramIndex > 0 Then
|
||||
bOk = Tpa.remObject.RemoveProgramFromListAtIndex(ProgramIndex)
|
||||
ElseIf Not String.IsNullOrEmpty(ProgramPath) Then
|
||||
bOk = Tpa.remObject.RemoveProgramFromList(ProgramPath)
|
||||
Else
|
||||
bOk = False
|
||||
sError = "Errore: nessun parametro passato"
|
||||
End If
|
||||
m_ResultCallbackDlg(CommandTypes.REMOVEPROG, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, sError)
|
||||
End Sub
|
||||
|
||||
Public Sub RemoveAllProgram()
|
||||
Dim bOk As Boolean = Tpa.remObject.RemoveAllProgramsFromList()
|
||||
m_ResultCallbackDlg(CommandTypes.REMOVEALLPROG, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, "")
|
||||
End Sub
|
||||
|
||||
Public Sub DeleteAlarms()
|
||||
Dim bOk As Boolean = Tpa.remObject.DeleteAlarms(CInt(AlarmType.ISO))
|
||||
bOk = Tpa.remObject.DeleteAlarms(CInt(AlarmType.Message))
|
||||
bOk = Tpa.remObject.DeleteAlarms(CInt(AlarmType.Cycle))
|
||||
bOk = Tpa.remObject.DeleteAlarms(CInt(AlarmType.System))
|
||||
m_ResultCallbackDlg(CommandTypes.DELETEALARMS, If(bOk, CommandStates.OK, CommandStates.ERROR_), ResultTypes.EXECUTED, "")
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
@@ -1,102 +1,122 @@
|
||||
Imports ISOCNC.Remoting
|
||||
Imports System.Collections.ObjectModel
|
||||
Imports ISOCNC.Remoting
|
||||
|
||||
Class CommunicationThread
|
||||
|
||||
|
||||
Public Class CommunicationThread
|
||||
|
||||
' variabile che ferma il ciclo
|
||||
Public Shared m_Stop As Boolean = False
|
||||
|
||||
|
||||
' variabile in cui ci sono stati inizio e fine pezzo
|
||||
Private Shared sP1VarName As String = "0.FUNM.E81295"
|
||||
Private Shared sP2VarName As String = "0.FUNM.E81296"
|
||||
Private Shared sP3VarName As String = "0.FUNM.E81297"
|
||||
Private Shared sP4VarName As String = "0.FUNM.E81298"
|
||||
Private Shared sResetVarName As String = "0.FUNM.E80048"
|
||||
Private Shared m_nP1Var As Integer
|
||||
Private Shared m_nP2Var As Integer
|
||||
Private Shared m_nP3Var As Integer
|
||||
Private Shared m_nP4Var As PartState
|
||||
|
||||
' stati pezzo
|
||||
Private Enum PartState As Integer
|
||||
NULL = 0
|
||||
START = 1
|
||||
END_ = 2
|
||||
End Enum
|
||||
Public Shared Sub MachManagingThreadFunction(ResultCallbackDlg As ResultCallbackDlg, CloseCallbackDlg As CloseCallbackDlg, UpdateCallbackDlg As UpdateCallbackDlg,
|
||||
AlarmCallbackDlg As AlarmCallbackDlg, AxisCoordinatesCallbackDlg As AxisCoordinatesCallbackDlg,
|
||||
OpStateCallbackDlg As OpStateCallbackDlg, ReadVarCallbackDlg As ReadVarCallbackDlg)
|
||||
' inizializzo callback
|
||||
m_ResultCallbackDlg = ResultCallbackDlg
|
||||
m_CloseCallbackDlg = CloseCallbackDlg
|
||||
m_UpdateCallbackDlg = UpdateCallbackDlg
|
||||
m_AlarmCallbackDlg = AlarmCallbackDlg
|
||||
m_AxisCoordinatesCallbackDlg = AxisCoordinatesCallbackDlg
|
||||
m_OpStateCallbackDlg = OpStateCallbackDlg
|
||||
m_ReadVarCallbackDlg = ReadVarCallbackDlg
|
||||
|
||||
Public Shared Sub MachManagingThreadFunction()
|
||||
' creao classe di gestione variabili
|
||||
Dim m_RWVariableManager As RWVariableManager = New RWVariableManager
|
||||
'Dim bCancel As Boolean = False
|
||||
'callback(0, "Init", bCancel)
|
||||
While Not m_Stop
|
||||
' leggo tutte le variabili
|
||||
m_RWVariableManager.RefreshAllVars()
|
||||
' creo classe di comunicazione
|
||||
Dim m_MachManaging As MachManaging = New MachManaging()
|
||||
|
||||
|
||||
'CommVar(sP1VarName, m_nP1Var)
|
||||
'CommVar(sP2VarName, m_nP2Var)
|
||||
'CommVar(sP3VarName, m_nP3Var)
|
||||
'CommVar(sP4VarName, m_nP4Var)
|
||||
Dim nResetVar As Integer
|
||||
'CommVar(sResetVarName, nResetVar)
|
||||
' se macchina pronta e non sta tagliando alcun pezzo
|
||||
If nResetVar = 0 AndAlso
|
||||
m_nP1Var = 0 AndAlso
|
||||
m_nP2Var = 0 AndAlso
|
||||
m_nP3Var = 0 AndAlso
|
||||
m_nP4Var = PartState.NULL Then
|
||||
' verifico se c'e' un programma da lanciare
|
||||
For Each MachGroup In Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList
|
||||
Dim MyMachGroup As MyMachGroupVM = DirectCast(MachGroup, MyMachGroupVM)
|
||||
If MyMachGroup.bReadyForMachining Then
|
||||
' recupero Path file CN
|
||||
Dim CNPath As String = MyMachGroup.CnFilePath().Replace("\\\\", "\\")
|
||||
' lo lancio
|
||||
If (Map.refMachCommandMessagePanelVM.SelOPState = MachineOperatingState.Pending) Then
|
||||
Dim bOk As Boolean = Map.refMachCommandMessagePanelVM.Tpa.remObject.AddProgramToList(CNPath)
|
||||
Map.refMachCommandMessagePanelVM.Tpa.remObject.SetCommand(ISOCNC.Remoting.Commands.Start_Program_Soft)
|
||||
End If
|
||||
|
||||
End If
|
||||
Next
|
||||
ElseIf m_nP1Var <> 0 AndAlso
|
||||
m_nP2Var <> 0 AndAlso
|
||||
m_nP3Var <> 0 Then
|
||||
If m_nP4Var = PartState.START Then
|
||||
DbControllers.m_PartController.UpdateStart(m_nP1Var, m_nP2Var, m_nP3Var, DateTime.Now())
|
||||
Dim MachGroup As MyMachGroupVM = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = m_nP2Var)
|
||||
MachGroup.MyMachGroupM.SetState(1)
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nState))
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = m_nP3Var)
|
||||
Part.nState = 1
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nState))
|
||||
If Not MachGroup.PartVMList.Any(Function(x) x.nState = 1) Then
|
||||
DbControllers.m_MachGroupController.UpdateStart(m_nP1Var, m_nP2Var, DateTime.Now())
|
||||
MachGroup.MyMachGroupM.SetState(2)
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nState))
|
||||
End If
|
||||
ElseIf m_nP4Var = PartState.END_ Then
|
||||
DbControllers.m_PartController.UpdateEnd(m_nP1Var, m_nP2Var, m_nP3Var, DateTime.Now())
|
||||
Dim MachGroup As MyMachGroupVM = Map.refProjectVM.SupervisorMachGroupPanelVM.MachGroupVMList.FirstOrDefault(Function(x) x.Id = m_nP2Var)
|
||||
Dim Part As PartVM = MachGroup.PartVMList.FirstOrDefault(Function(x) x.nPartId = m_nP3Var)
|
||||
Part.nState = 2
|
||||
Part.NotifyPropertyChanged(NameOf(Part.nState))
|
||||
If MachGroup.PartVMList.All(Function(x) x.nState >= 2) Then
|
||||
DbControllers.m_MachGroupController.UpdateEnd(m_nP1Var, m_nP2Var, DateTime.Now())
|
||||
MachGroup.MyMachGroupM.SetState(2)
|
||||
MachGroup.NotifyPropertyChanged(NameOf(MachGroup.nState))
|
||||
End If
|
||||
' azzero variabili
|
||||
'WriteVar(sP1VarName, 0)
|
||||
'WriteVar(sP2VarName, 0)
|
||||
'WriteVar(sP3VarName, 0)
|
||||
'WriteVar(sP4VarName, 0)
|
||||
End If
|
||||
End If
|
||||
System.Threading.Thread.Sleep(1000)
|
||||
End While
|
||||
End Sub
|
||||
|
||||
|
||||
End Class
|
||||
|
||||
Class ThreadCommand
|
||||
|
||||
Private m_CommandType As CommandTypes
|
||||
Public ReadOnly Property CommandType As CommandTypes
|
||||
Get
|
||||
Return m_CommandType
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_nVariables(5) As Integer
|
||||
Public ReadOnly Property nVariable As Integer
|
||||
Get
|
||||
Return m_nVariables(0)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property nVariables As Integer()
|
||||
Get
|
||||
Return m_nVariables
|
||||
End Get
|
||||
End Property
|
||||
Private m_dVariables(5) As Double
|
||||
Public ReadOnly Property dVariable As Double
|
||||
Get
|
||||
Return m_dVariables(0)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property dVariables As Double()
|
||||
Get
|
||||
Return m_dVariables
|
||||
End Get
|
||||
End Property
|
||||
Private m_sVariables(5) As String
|
||||
Public ReadOnly Property sVariable As String
|
||||
Get
|
||||
Return m_sVariables(0)
|
||||
End Get
|
||||
End Property
|
||||
Public ReadOnly Property sVariables As String()
|
||||
Get
|
||||
Return m_sVariables
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
Public Shared Function CreateCommand(CommandType As CommandTypes) As ThreadCommand
|
||||
Dim NewCommand As ThreadCommand = New ThreadCommand
|
||||
NewCommand.m_CommandType = CommandType
|
||||
Return NewCommand
|
||||
End Function
|
||||
Public Shared Function CreateCommand(CommandType As CommandTypes, Variable As Integer) As ThreadCommand
|
||||
Dim NewCommand As ThreadCommand = New ThreadCommand
|
||||
NewCommand.m_CommandType = CommandType
|
||||
NewCommand.m_nVariables(0) = Variable
|
||||
Return NewCommand
|
||||
End Function
|
||||
Public Shared Function CreateCommand(CommandType As CommandTypes, Variable As Double) As ThreadCommand
|
||||
Dim NewCommand As ThreadCommand = New ThreadCommand
|
||||
NewCommand.m_CommandType = CommandType
|
||||
NewCommand.m_dVariables(0) = Variable
|
||||
Return NewCommand
|
||||
End Function
|
||||
Public Shared Function CreateCommand(CommandType As CommandTypes, Variable As String) As ThreadCommand
|
||||
Dim NewCommand As ThreadCommand = New ThreadCommand
|
||||
NewCommand.m_CommandType = CommandType
|
||||
NewCommand.m_sVariables(0) = Variable
|
||||
Return NewCommand
|
||||
End Function
|
||||
Public Shared Function CreateCommand(CommandType As CommandTypes, nVariables() As Integer, dVariables() As Double, sVariables() As String) As ThreadCommand
|
||||
Dim NewCommand As ThreadCommand = New ThreadCommand
|
||||
NewCommand.m_CommandType = CommandType
|
||||
NewCommand.m_nVariables = nVariables
|
||||
NewCommand.m_dVariables = dVariables
|
||||
NewCommand.m_sVariables = sVariables
|
||||
Return NewCommand
|
||||
End Function
|
||||
Public Shared Function CreateReadCommand(sVariable As String) As ThreadCommand
|
||||
Dim NewCommand As ThreadCommand = New ThreadCommand
|
||||
NewCommand.m_CommandType = CommandTypes.READ
|
||||
NewCommand.m_sVariables(0) = sVariable
|
||||
Return NewCommand
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
@@ -1,25 +1,68 @@
|
||||
Imports EgtWPFLib5
|
||||
Imports ISOCNC.Remoting
|
||||
|
||||
Public Class RWVariableManager
|
||||
|
||||
Private m_Tpa As TPAComm = Nothing
|
||||
Friend ReadOnly Property Tpa As TPAComm
|
||||
Get
|
||||
Return m_Tpa
|
||||
End Get
|
||||
End Property
|
||||
|
||||
Private m_Proxy_VariableCommandExecutedEventHandler As New VariableCommandExecutedEventHandler(AddressOf RemoteObject_VariableCommandExecuted)
|
||||
|
||||
' lock per Synclock
|
||||
Private m_CopyLock As New Object
|
||||
Private m_ReadLock As New Object
|
||||
' lista variabili in lettura
|
||||
Private m_ReadingVars() As CommVar
|
||||
Private Shared m_ReadingVars() As CommVar
|
||||
Public Shared ReadOnly Property ReadingVars As CommVar()
|
||||
Get
|
||||
Return m_ReadingVars
|
||||
End Get
|
||||
End Property
|
||||
|
||||
' lista variabili lette
|
||||
Private m_ReadedVars() As String
|
||||
Public Shared m_ReadedVars() As String
|
||||
|
||||
Protected Sub New()
|
||||
End Sub
|
||||
|
||||
Friend Sub OnDispose()
|
||||
RemoveHandler m_Tpa.eventProxy.VariableCommandExecuted, m_Proxy_VariableCommandExecutedEventHandler
|
||||
'RemoveHandler m_Tpa.MachManaging.Timer.Tick, AddressOf Timer_Tick
|
||||
End Sub
|
||||
|
||||
'Friend Sub Timer_Tick(sender As Object, e As EventArgs)
|
||||
' ' leggo tutte le variabili
|
||||
' RefreshAllVars()
|
||||
'End Sub
|
||||
|
||||
Friend Shared Function CreateRWVariableManager(Tpa As TPAComm)
|
||||
Dim NewRWVariableManager As New RWVariableManager
|
||||
NewRWVariableManager.m_Tpa = Tpa
|
||||
AddHandler NewRWVariableManager.m_Tpa.eventProxy.VariableCommandExecuted, NewRWVariableManager.m_Proxy_VariableCommandExecutedEventHandler
|
||||
Return NewRWVariableManager
|
||||
End Function
|
||||
|
||||
Public Sub RefreshAllVars()
|
||||
For Each Var In m_ReadingVars
|
||||
IntRefreshVar(Var.sAddress)
|
||||
' rileggo solo variabili continue
|
||||
If Var.sType = CommVar.CommVarTypes.CONTINUOUS Then IntRefreshVar(Var.sAddress)
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Public Sub InitVar(Name As String, Address As String, Type As Integer)
|
||||
Public Shared Function InitVar(Name As String, Address As String, Type As CommVar.CommVarTypes) As Integer
|
||||
Dim Index As Integer = Array.IndexOf(m_ReadingVars, Function(x) IsNothing(x))
|
||||
m_ReadingVars(Index) = New CommVar(Name, Address, Type)
|
||||
End Sub
|
||||
Return Index
|
||||
End Function
|
||||
|
||||
Public Sub RefreshVar(Name As String)
|
||||
IntRefreshVar(GetReadVarFromName(Name).sAddress)
|
||||
Dim Var As CommVar = GetReadVarFromName(Name)
|
||||
Var.ResetReading()
|
||||
IntRefreshVar(Var.sAddress)
|
||||
End Sub
|
||||
|
||||
Public Sub WriteVar(Name As String, Value As String)
|
||||
@@ -27,11 +70,11 @@ Public Class RWVariableManager
|
||||
End Sub
|
||||
|
||||
Private Sub IntRefreshVar(Address As String)
|
||||
Map.refMachCommandMessagePanelVM.Tpa.remObject.SetVariableCommand(ISOCNC.Remoting.VariableCommands.ReadVar, Address, "")
|
||||
Tpa.remObject.SetVariableCommand(ISOCNC.Remoting.VariableCommands.ReadVar, Address, "")
|
||||
End Sub
|
||||
|
||||
Private Sub IntWriteVar(Address As String, Value As String)
|
||||
Map.refMachCommandMessagePanelVM.Tpa.remObject.SetVariableCommand(ISOCNC.Remoting.VariableCommands.WriteVar, Address, Value)
|
||||
Tpa.remObject.SetVariableCommand(ISOCNC.Remoting.VariableCommands.WriteVar, Address, Value)
|
||||
End Sub
|
||||
|
||||
Public Sub ReadVar(Name As String, ByRef Value As String)
|
||||
@@ -44,17 +87,80 @@ Public Class RWVariableManager
|
||||
Value = StringToDouble(m_ReadedVars(GetIndexFromName(Name)), 5)
|
||||
End Sub
|
||||
|
||||
Private Function GetIndexFromName(Name As String) As Integer
|
||||
Private Shared Function GetIndexFromName(Name As String) As Integer
|
||||
Return Array.IndexOf(m_ReadingVars, Function(x) x.sName = Name)
|
||||
End Function
|
||||
Private Function GetReadVarFromName(Name As String) As CommVar
|
||||
Return m_ReadingVars(Array.IndexOf(m_ReadingVars, Function(x) x.sName = Name))
|
||||
Friend Shared Function GetReadVarFromName(Name As String) As CommVar
|
||||
Return m_ReadingVars(GetIndexFromName(Name))
|
||||
End Function
|
||||
Private Shared Function GetIndexFromAddress(Address As String) As Integer
|
||||
Return Array.IndexOf(m_ReadingVars, Function(x) x.sAddress = Address)
|
||||
End Function
|
||||
Friend Shared Function GetReadVarFromAddress(Address As String) As CommVar
|
||||
Return m_ReadingVars(GetIndexFromAddress(Address))
|
||||
End Function
|
||||
Friend Shared Function GetReadVarNameFromAddress(Address As String) As String
|
||||
Dim Var As CommVar = m_ReadingVars.FirstOrDefault(Function(x) x.sAddress = Address)
|
||||
Return If(Not IsNothing(Var), Var.sName, "")
|
||||
End Function
|
||||
|
||||
Private Sub UpdateContinuousVars()
|
||||
Dim bReaded As Boolean = True
|
||||
For Each Var In m_ReadingVars
|
||||
If Not Var.bReaded Then
|
||||
bReaded = False
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
' se lette tutte
|
||||
If bReaded Then
|
||||
' aggiorno variabili
|
||||
SyncLock m_CopyLock
|
||||
For VarIndex = 0 To m_ReadingVars.Count - 1
|
||||
m_ReadedVars(VarIndex) = m_ReadingVars(VarIndex).sValue
|
||||
Next
|
||||
End SyncLock
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Friend Sub UpdateVar(CommandExecutedCorrectly As Boolean, VarName As String, VarValue As String, VarType As Integer)
|
||||
If CommandExecutedCorrectly Then
|
||||
Dim Var As CommVar = GetReadVarFromAddress(VarName)
|
||||
If Not IsNothing(Var) Then
|
||||
Var.SetValue(VarValue)
|
||||
' se variabile ripetitiva lancio update variabili ripetitive
|
||||
If Var.sType = CommVar.CommVarTypes.CONTINUOUS Then
|
||||
UpdateContinuousVars()
|
||||
Else
|
||||
m_ReadVarCallbackDlg(CommandExecutedCorrectly, VarName, VarValue, VarType)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub RemoteObject_VariableCommandExecuted(ByVal executedCommand As Integer, ByVal commandExecutedCorrectly As Boolean, ByVal varName As String, ByVal varValue As String, ByVal varType As Integer)
|
||||
' riporto valore variabile su array
|
||||
Select Case executedCommand
|
||||
Case VariableCommands.Error
|
||||
Case VariableCommands.NotExecuted
|
||||
Case VariableCommands.ReadVar
|
||||
UpdateVar(commandExecutedCorrectly, varName, varValue, varType)
|
||||
Case VariableCommands.WriteVar
|
||||
m_ResultCallbackDlg(CommandTypes.WRITE, CommandStates.OK, ResultTypes.RESULT, "")
|
||||
Case VariableCommands.ReadAxis
|
||||
Case VariableCommands.ReadAny
|
||||
End Select
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
Public Class CommVar
|
||||
|
||||
Public Enum CommVarTypes As Integer
|
||||
ONETIME
|
||||
CONTINUOUS
|
||||
End Enum
|
||||
|
||||
Private m_sName As String
|
||||
Public ReadOnly Property sName As String
|
||||
Get
|
||||
@@ -67,8 +173,8 @@ Public Class CommVar
|
||||
Return m_sAddress
|
||||
End Get
|
||||
End Property
|
||||
Private m_nType As Integer
|
||||
Public ReadOnly Property sType As String
|
||||
Private m_nType As CommVarTypes
|
||||
Public ReadOnly Property sType As CommVarTypes
|
||||
Get
|
||||
Return m_nType
|
||||
End Get
|
||||
@@ -81,6 +187,7 @@ Public Class CommVar
|
||||
End Property
|
||||
Public Sub SetValue(Value As String)
|
||||
m_sValue = Value
|
||||
m_bReaded = True
|
||||
End Sub
|
||||
|
||||
Private m_bReaded As Boolean
|
||||
@@ -89,14 +196,15 @@ Public Class CommVar
|
||||
Return m_bReaded
|
||||
End Get
|
||||
End Property
|
||||
Public Sub SetReaded(Readed As Boolean)
|
||||
m_bReaded = Readed
|
||||
End Sub
|
||||
|
||||
Sub New(Name As String, Address As String, Type As Integer)
|
||||
Sub New(Name As String, Address As String, Type As CommVarTypes)
|
||||
m_sName = Name
|
||||
m_sAddress = Address
|
||||
m_nType = Type
|
||||
End Sub
|
||||
|
||||
Friend Sub ResetReading()
|
||||
m_bReaded = False
|
||||
End Sub
|
||||
|
||||
End Class
|
||||
|
||||
@@ -27,11 +27,6 @@ Public Class ProjectVM
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private m_MachManagingThread As Thread
|
||||
Friend Sub StartMachManagingThread()
|
||||
m_MachManagingThread.Start()
|
||||
End Sub
|
||||
|
||||
Private m_LeftPanel_Visibility As Boolean = True
|
||||
Public Property LeftPanel_Visibility As Visibility
|
||||
Get
|
||||
@@ -154,10 +149,6 @@ Public Class ProjectVM
|
||||
Sub New()
|
||||
' Creo riferimento a questa classe in Map
|
||||
Map.SetRefProjectVM(Me)
|
||||
' creo thread gestione macchina
|
||||
m_MachManagingThread = New Thread(Sub()
|
||||
CommunicationThread.MachManagingThreadFunction()
|
||||
End Sub)
|
||||
End Sub
|
||||
|
||||
#End Region ' CONSTRUCTOR
|
||||
|
||||
@@ -5,5 +5,6 @@
|
||||
Public m_ProdController As New DataLayer.Controllers.ProdController
|
||||
Public m_MachGroupController As New DataLayer.Controllers.MachGroupController
|
||||
Public m_PartController As New DataLayer.Controllers.PartController
|
||||
Public m_LogMachineController As New DataLayer.Controllers.LogMachineController
|
||||
|
||||
End Module
|
||||
|
||||
@@ -23,6 +23,7 @@ Module Map
|
||||
'Private m_refSplitModeVM As SplitModeVM
|
||||
'Private m_refMoveRawModeVM As MoveRawModeVM
|
||||
'Private m_refSimulTabVM As SimulTabVM
|
||||
Private m_refMachManaging As MachManaging
|
||||
|
||||
#Region "Get"
|
||||
|
||||
@@ -169,6 +170,12 @@ Module Map
|
||||
' End Get
|
||||
'End Property
|
||||
|
||||
Public ReadOnly Property refMachManaging As MachManaging
|
||||
Get
|
||||
Return m_refMachManaging
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region ' Get
|
||||
|
||||
#Region "Set"
|
||||
@@ -288,6 +295,11 @@ Module Map
|
||||
' Return Not IsNothing(m_refSimulTabVM)
|
||||
'End Function
|
||||
|
||||
Friend Function SetRefMachManaging(MachManaging As MachManaging) As Boolean
|
||||
m_refMachManaging = MachManaging
|
||||
Return Not IsNothing(m_refMachManaging)
|
||||
End Function
|
||||
|
||||
#End Region ' Set
|
||||
|
||||
#Region "Init"
|
||||
|
||||
@@ -2,36 +2,30 @@
|
||||
<configuration>
|
||||
<configSections>
|
||||
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
|
||||
<section name="entityFramework"
|
||||
type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
|
||||
requirePermission="false"/>
|
||||
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
|
||||
</configSections>
|
||||
<entityFramework>
|
||||
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6"/>
|
||||
<defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
|
||||
<providers>
|
||||
<provider invariantName="MySql.Data.MySqlClient"
|
||||
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
|
||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
|
||||
<provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"></provider>
|
||||
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
|
||||
</providers>
|
||||
</entityFramework>
|
||||
<connectionStrings>
|
||||
<add name="DefaultConnection"
|
||||
connectionString="server=localhost;port=3306;User Id=root;password=viacremasca;Persist Security Info=True;database=EgtBwDb;SslMode=none"
|
||||
providerName="MySql.Data.MySqlClient"/>
|
||||
<add name="DefaultConnection" connectionString="server=localhost;port=3306;User Id=root;password=viacremasca;Persist Security Info=True;database=EgtBwDb;SslMode=none" providerName="MySql.Data.MySqlClient" />
|
||||
</connectionStrings>
|
||||
<runtime>
|
||||
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<dependentAssembly>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral"/>
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.10.9.0" newVersion="6.10.9.0"/>
|
||||
<assemblyIdentity name="MySql.Data" publicKeyToken="c5687fc88969c44d" culture="neutral" />
|
||||
<bindingRedirect oldVersion="0.0.0.0-6.10.9.0" newVersion="6.10.9.0" />
|
||||
</dependentAssembly>
|
||||
</assemblyBinding>
|
||||
</runtime>
|
||||
<system.data>
|
||||
<DbProviderFactories>
|
||||
<remove invariant="MySql.Data.MySqlClient"/>
|
||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL"
|
||||
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"/>
|
||||
<remove invariant="MySql.Data.MySqlClient" />
|
||||
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.10.9.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
|
||||
</DbProviderFactories>
|
||||
</system.data>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup></configuration>
|
||||
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /></startup></configuration>
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<packages>
|
||||
<package id="EntityFramework" version="6.4.4" targetFramework="net452" />
|
||||
<package id="MySql.Data" version="6.10.9" targetFramework="net452" />
|
||||
<package id="MySql.Data.Entity" version="6.10.9" targetFramework="net452" />
|
||||
</packages>
|
||||
@@ -464,6 +464,12 @@ Public Class BTLStructureVM
|
||||
|
||||
#End Region ' Parametri generici
|
||||
|
||||
Public ReadOnly Property PDN_Msg As String
|
||||
Get
|
||||
Return "PDN_Msg"
|
||||
End Get
|
||||
End Property
|
||||
|
||||
#End Region
|
||||
|
||||
#Region "CONSTRUCTOR"
|
||||
|
||||
@@ -27,9 +27,11 @@
|
||||
<!--PDN - Nome-->
|
||||
<DataGridTextColumn Binding="{Binding nPDN}"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.PDN_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
<DataGridTextColumn.HeaderTemplate>
|
||||
<DataTemplate>
|
||||
<TextBlock Text="{Binding Path=DataContext.PDN_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartListV}}}"/>
|
||||
</DataTemplate>
|
||||
</DataGridTextColumn.HeaderTemplate>
|
||||
</DataGridTextColumn>
|
||||
<!--Validità pezzo-->
|
||||
<DataGridTemplateColumn Width="25">
|
||||
@@ -103,40 +105,40 @@
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<!--TBP - In produzione-->
|
||||
<DataGridTextColumn Binding="{Binding nTBP}"
|
||||
<!--<DataGridTextColumn Binding="{Binding nTBP}"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.TBP_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
</DataGridTextColumn>-->
|
||||
<!--DON - Prodotti-->
|
||||
<DataGridTextColumn Binding="{Binding nDON}"
|
||||
<!--<DataGridTextColumn Binding="{Binding nDON}"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.DON_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
</DataGridTextColumn>-->
|
||||
<!--ROT - Ruotare-->
|
||||
<DataGridTextColumn Binding="{Binding nROT}"
|
||||
<!--<DataGridTextColumn Binding="{Binding nROT}"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.ROT_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
</DataGridTextColumn>-->
|
||||
<!--GRP - Gruppo-->
|
||||
<DataGridTextColumn Binding="{Binding sGRP}"
|
||||
<DataGridTextColumn Binding="{Binding sGROUP}"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.GRP_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
<!--UNT - Unit Time-->
|
||||
<DataGridTextColumn Binding="{Binding nUNT}"
|
||||
<!--<DataGridTextColumn Binding="{Binding nUNT}"
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="{Binding Path=DataContext.UNT_Msg,RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:PartListV}}}"/>
|
||||
</DataGridTextColumn.Header>
|
||||
</DataGridTextColumn>
|
||||
</DataGridTextColumn>-->
|
||||
</DataGrid.Columns>
|
||||
|
||||
</DataGrid>
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<!--L - Lunghezza-->
|
||||
<DataGridTextColumn Binding="{Binding dL}"
|
||||
Width="65"
|
||||
IsReadOnly="{Binding Path=DataContext.bL_IsReadOnly, RelativeSource={RelativeSource AncestorType={x:Type EgtBEAMWALL:RawPartListV}}}">
|
||||
IsReadOnly="True">
|
||||
<DataGridTextColumn.Header>
|
||||
<TextBlock Text="L"/>
|
||||
</DataGridTextColumn.Header>
|
||||
|
||||
@@ -221,6 +221,10 @@
|
||||
Friend Const MGR_RPT_PANELHEIGHT As String = "PANELHEIGHT"
|
||||
Friend Const MGR_RPT_PART As String = "PART"
|
||||
|
||||
' parametri P per comunicazione con la macchina
|
||||
Friend Const MGR_RPT_PRODID As String = "PRODID"
|
||||
Friend Const MGR_RPT_PATTID As String = "PATTID"
|
||||
|
||||
' parametri errori integration
|
||||
Friend Const ITG_CUTID As String = "CUTID"
|
||||
Friend Const ITG_TASKID As String = "TASKID"
|
||||
|
||||
@@ -78,11 +78,16 @@ Public Class LeftPanelVM
|
||||
' creo nuovo gruppo di lavorazione
|
||||
Map.refMachGroupPanelVM.AddMachGroup()
|
||||
Dim nCurrMachGroup As Integer = EgtGetCurrMachGroup()
|
||||
Dim sCurrMachGroupName As String = ""
|
||||
EgtGetMachGroupName(nCurrMachGroup, sCurrMachGroupName)
|
||||
' creo copia del pezzo
|
||||
Dim nPartDuploId As Integer = EgtDuploNew(SelPart.nPartId)
|
||||
Dim sLogPath As String = Map.refMainWindowVM.MainWindowM.sTempDir & "\RawPartLog.txt"
|
||||
If Map.refMachinePanelVM.SelectedMachine.nType = MachineType.BEAM Then
|
||||
' scrivo dati in gruppo di lavorazione
|
||||
' scrivo dati per variabili P di comunicazione con la macchina in gruppo di lavorazione
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PRODID, Map.refProdManagerVM.CurrProd.nProdId)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PATTID, sCurrMachGroupName)
|
||||
' scrivo dati costruzione grezzo in gruppo di lavorazione
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_BARLEN, AddRawPartWndVM.VariableList(0).dValue)
|
||||
EgtSetInfo(nCurrMachGroup, MGR_RPT_PART & 1, nPartDuploId & "," & AddRawPartWndVM.VariableList(1).dValue)
|
||||
Dim BeamMachGroup As BeamMachGroupVM = Map.refMachGroupPanelVM.GetLastMachGroup()
|
||||
|
||||
@@ -22,7 +22,7 @@ Public Class MainWindowVM
|
||||
End Property
|
||||
|
||||
' Titolo
|
||||
Private m_Title As String
|
||||
Private m_Title As String = ""
|
||||
Public ReadOnly Property Title As String
|
||||
Get
|
||||
Return m_Title
|
||||
|
||||
@@ -196,6 +196,7 @@ Public Class ProdManagerVM
|
||||
' MyMachGroupList = Map.refProjectVM.MachGroupPanelVM.MachGroupList.Select(Function(x) New Core.WallMachGroup(x.Id, x.Name, x.Machine))
|
||||
'End If
|
||||
DbControllers.m_ProdController.UpdateMachGroup(CurrProd.nProdId, MyMachGroupList)
|
||||
DbControllers.m_ProdController.UpdateMachGroup(CurrProd.nProdId, MyMachGroupList)
|
||||
End Sub
|
||||
|
||||
#End Region ' SaveCommand
|
||||
|
||||
@@ -237,6 +237,9 @@ Public Class ProjManagerVM
|
||||
Dim sProjDir As String = ""
|
||||
InitNewProject(nProjId, sProjDir)
|
||||
SetCurrProj(nProjId)
|
||||
Dim sProjFileName As String = sProjDir & "\" & nProjId.ToString("0000") & ".nge"
|
||||
' salvo il progetto
|
||||
EgtSaveFile(sProjFileName, NGE.BIN)
|
||||
Else
|
||||
MessageBox.Show("Impossibile creare un nuovo file!!")
|
||||
End If
|
||||
|
||||
Reference in New Issue
Block a user