Files
egtbeamwall/EgtBEAMWALL.Supervisor/MachManagingThread/MachManagingThread.vb
Demetrio Cassarino 46f82e0286 -pulizia codice
2024-08-07 14:10:51 +02:00

161 lines
5.3 KiB
VB.net

Imports EgtBEAMWALL.Core.ConstMachComm
Class MachineCommThread
' variabile che ferma il ciclo
Private Shared m_Stop As Boolean = False
Private Shared m_StartTick As Boolean = False
Friend Shared Sub StopThread()
m_Stop = True
End Sub
Friend Shared Sub StartTick()
m_StartTick = True
End Sub
' 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"
Public Shared Sub MachManagingThreadFunction(ResultCallbackDlg As ResultCallbackDlg, CloseCallbackDlg As CloseCallbackDlg, UpdateCallbackDlg As UpdateCallbackDlg,
TPAAlarmCallbackDlg As TPAAlarmCallbackDlg, NUMAlarmCallbackDlg As NUMAlarmCallbackDlg, AxisCoordinatesCallbackDlg As AxisCoordinatesCallbackDlg,
OpStateCallbackDlg As OpStateCallbackDlg, OpModeCallbackDlg As OpModeCallbackDlg, ChannelCallbackDlg As ChannelCallbackDlg,
ReadVarCallbackDlg As ReadVarCallbackDlg)
' inizializzo callback
m_ResultCallbackDlg = ResultCallbackDlg
m_CloseCallbackDlg = CloseCallbackDlg
m_UpdateCallbackDlg = UpdateCallbackDlg
m_TPAAlarmCallbackDlg = TPAAlarmCallbackDlg
m_NUMAlarmCallbackDlg = NUMAlarmCallbackDlg
m_AxisCoordinatesCallbackDlg = AxisCoordinatesCallbackDlg
m_OpStateCallbackDlg = OpStateCallbackDlg
m_OpModeCallbackDlg = OpModeCallbackDlg
m_ChannelCallbackDlg = ChannelCallbackDlg
m_ReadVarCallbackDlg = ReadVarCallbackDlg
' creo classe di comunicazione
Dim m_MachManaging As MachManaging = New MachManaging()
While Not m_Stop
' eseguo ciclo principale che tiene vivo il thread
If m_StartTick Then
m_MachManaging.Timer_Tick()
End If
Threading.Thread.Sleep(TimeSpan.FromMilliseconds(1000))
End While
End Sub
End Class
Public Class ThreadCommand
Public Enum ProcessingStatuses
WAITING = 1
PROCESSING = 2
DONE = 3
End Enum
Private m_CommandType As CommandTypes
Public ReadOnly Property CommandType As CommandTypes
Get
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
Private m_ProcessingStatus As ProcessingStatuses = ProcessingStatuses.WAITING
Public ReadOnly Property ProcessingStatus As ProcessingStatuses
Get
Return m_ProcessingStatus
End Get
End Property
Friend Sub SetProcessingStatus(value As ProcessingStatuses)
m_ProcessingStatus = value
End Sub
Protected Sub New()
End Sub
Public Shared Function CreateCommand(CommandType As CommandTypes) As ThreadCommand
Dim NewCommand As New ThreadCommand With {
.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 With {
.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 New ThreadCommand With {
.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 New ThreadCommand With {
.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 New ThreadCommand With {
.m_CommandType = CommandType,
.m_nVariables = nVariables,
.m_dVariables = dVariables,
.m_sVariables = sVariables
}
Return NewCommand
End Function
Public Shared Function CreateReadCommand(sVariable As String) As ThreadCommand
Dim NewCommand As New ThreadCommand With {
.m_CommandType = CommandTypes.READ_TPA
}
NewCommand.m_sVariables(0) = sVariable
Return NewCommand
End Function
End Class