468 lines
18 KiB
VB.net
468 lines
18 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.ComponentModel
|
|
Imports EgtUILib
|
|
|
|
Public Class VacuumMachineButtonUC
|
|
Implements INotifyPropertyChanged
|
|
|
|
' Costanti per nomi stati dei bottoni
|
|
Private Const BTN_STATE_NOTHING As String = "Nothing"
|
|
|
|
Private Enum MachineButtonType As Integer
|
|
NOSTATE = 0
|
|
TWOSTATE = 1
|
|
THREESTATE = 2
|
|
DOUBLECOMMAND = 3
|
|
PRESSEDCOMMAND = 4
|
|
End Enum
|
|
|
|
' Dichiarazione delle Page UserControl
|
|
Private m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
|
Private m_DirectCutPage As DirectCutPageUC
|
|
Friend m_CN As CN_generico
|
|
Private m_bFirst As Boolean = True
|
|
|
|
' visualizzo l'elenco degli elementi della pagina sono al primo avvio
|
|
Friend m_OutLogTypeButton As Boolean = True
|
|
|
|
' Creazione converter da String a ImageSource
|
|
Dim ImageConverter As New ImageSourceConverter
|
|
|
|
Private m_ButtonList As New ObservableCollection(Of MachineButton)
|
|
Public ReadOnly Property ButtonList As ObservableCollection(Of MachineButton)
|
|
Get
|
|
Return m_ButtonList
|
|
End Get
|
|
End Property
|
|
|
|
Private Sub ManualAxesMove_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
|
Me.DataContext = Me
|
|
End Sub
|
|
|
|
Private Sub ManualAxesMove_Loaded(sender As Object, e As RoutedEventArgs) Handles Me.Loaded
|
|
If m_bFirst Then
|
|
m_DirectCutPage = m_MainWindow.m_DirectCutPageUC
|
|
m_bFirst = False
|
|
|
|
' Lettura configurazione bottoni da Ini di macchina
|
|
Dim m_nCount As Integer = 1
|
|
Dim bFoundedBtn As Boolean = True
|
|
While bFoundedBtn
|
|
Dim sNameBtn As String = K_BUTTON & (m_nCount).ToString()
|
|
Dim sMachineButtonType As String = String.Empty
|
|
Dim sTImageName As String = String.Empty
|
|
Dim sTLuaScriptName As String = String.Empty
|
|
Dim sFImageName As String = String.Empty
|
|
Dim sFLuaScriptName As String = String.Empty
|
|
Dim sStateFlag As String = String.Empty
|
|
bFoundedBtn = GetPrivateProfileMachineButtons(S_VACUUMMACHBUTTONS, sNameBtn, sMachineButtonType, sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag, m_MainWindow.GetMachIniFile())
|
|
If bFoundedBtn Then
|
|
m_nCount += 1
|
|
Dim ButtonToAdd As MachineButton = Nothing
|
|
Select Case sMachineButtonType
|
|
Case MachineButtonType.NOSTATE
|
|
ButtonToAdd = New TwoStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag)
|
|
Case MachineButtonType.TWOSTATE
|
|
ButtonToAdd = New TwoStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag)
|
|
Case MachineButtonType.THREESTATE
|
|
ButtonToAdd = New ThreeStateButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag)
|
|
Case MachineButtonType.DOUBLECOMMAND
|
|
ButtonToAdd = New DoubleCommandButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag)
|
|
Case MachineButtonType.PRESSEDCOMMAND
|
|
ButtonToAdd = New PressedCommandButton(sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag)
|
|
End Select
|
|
If Not IsNothing(ButtonToAdd) Then m_ButtonList.Add(ButtonToAdd)
|
|
End If
|
|
End While
|
|
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
OutLogTypeButton(MachineButton)
|
|
Next
|
|
m_OutLogTypeButton = False
|
|
|
|
NotifyPropertyChanged("ButtonList")
|
|
End If
|
|
End Sub
|
|
|
|
#Region "STATE CHANGED"
|
|
' ------------------------------------------------------------------------------
|
|
' i segeunti metodi notificano il cambiamento di stato di specifici bottoni
|
|
'-------------------------------------------------------------------------------
|
|
|
|
Friend Sub OutLogTypeButton(CurrMachineButton As MachineButton)
|
|
If Not m_OutLogTypeButton Then Return
|
|
Dim BtnType As Type = CurrMachineButton.GetType
|
|
If BtnType Is GetType(NoStateButton) Then
|
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(0) ") & " , " & CurrMachineButton.StateFlag)
|
|
ElseIf BtnType Is GetType(TwoStateButton) Then
|
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(1) ") & " , " & CurrMachineButton.StateFlag)
|
|
ElseIf BtnType Is GetType(ThreeStateButton) Then
|
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(2) ") & " , " & CurrMachineButton.StateFlag)
|
|
ElseIf BtnType Is GetType(DoubleCommandButton) Then
|
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(3) ") & " , " & CurrMachineButton.StateFlag)
|
|
ElseIf BtnType Is GetType(PressedCommandButton) Then
|
|
EgtOutLog(" ► " & BtnType.ToString.Replace("OmagCUT.", "(4) ") & " , " & CurrMachineButton.StateFlag)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub VacuumUpChanged(VacuumUpState As Boolean)
|
|
Dim VacuumUpButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUMUP Then
|
|
VacuumUpButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(VacuumUpButton) Then
|
|
VacuumUpButton.SetIsChecked(VacuumUpState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub VacuumDownChanged(VacuumDownState As Boolean)
|
|
Dim VacuumDownButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUMDOWN Then
|
|
VacuumDownButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(VacuumDownButton) Then
|
|
VacuumDownButton.SetIsChecked(VacuumDownState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum2UpChanged(Vacuum2UpState As Boolean)
|
|
Dim Vacuum2UpButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM2UP Then
|
|
Vacuum2UpButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum2UpButton) Then
|
|
Vacuum2UpButton.SetIsChecked(Vacuum2UpState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum2DownChanged(Vacuum2DownState As Boolean)
|
|
Dim Vacuum2DownButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM2DOWN Then
|
|
Vacuum2DownButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum2DownButton) Then
|
|
Vacuum2DownButton.SetIsChecked(Vacuum2DownState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum0Changed(Vacuum0State As Boolean)
|
|
Dim Vacuum0Button As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM0 Then
|
|
Vacuum0Button = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum0Button) Then
|
|
Vacuum0Button.SetIsChecked(Vacuum0State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum90Changed(Vacuum90State As Boolean)
|
|
Dim VacuumRotButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM90 Then
|
|
VacuumRotButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(VacuumRotButton) Then
|
|
VacuumRotButton.SetIsChecked(Vacuum90State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum1Changed(Vacuum1State As Boolean)
|
|
Dim Vacuum1StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM1STATE Then
|
|
Vacuum1StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum1StateButton) Then
|
|
Vacuum1StateButton.SetIsChecked(Vacuum1State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum2Changed(Vacuum2State As Boolean)
|
|
Dim Vacuum2StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM2STATE Then
|
|
Vacuum2StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum2StateButton) Then
|
|
Vacuum2StateButton.SetIsChecked(Vacuum2State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum3Changed(Vacuum3State As Boolean)
|
|
Dim Vacuum3StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM3STATE Then
|
|
Vacuum3StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum3StateButton) Then
|
|
Vacuum3StateButton.SetIsChecked(Vacuum3State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum4Changed(Vacuum4State As Boolean)
|
|
Dim Vacuum4StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM4STATE Then
|
|
Vacuum4StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum4StateButton) Then
|
|
Vacuum4StateButton.SetIsChecked(Vacuum4State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum5Changed(Vacuum5State As Boolean)
|
|
Dim Vacuum5StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM5STATE Then
|
|
Vacuum5StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum5StateButton) Then
|
|
Vacuum5StateButton.SetIsChecked(Vacuum5State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum6Changed(Vacuum6State As Boolean)
|
|
Dim Vacuum6StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM6STATE Then
|
|
Vacuum6StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum6StateButton) Then
|
|
Vacuum6StateButton.SetIsChecked(Vacuum6State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum135Changed(Vacuum135State As Boolean)
|
|
Dim Vacuum135StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM135STATE Then
|
|
Vacuum135StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum135StateButton) Then
|
|
Vacuum135StateButton.SetIsChecked(Vacuum135State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Vacuum246Changed(Vacuum246State As Boolean)
|
|
Dim Vacuum246StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUM246STATE Then
|
|
Vacuum246StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Vacuum246StateButton) Then
|
|
Vacuum246StateButton.SetIsChecked(Vacuum246State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub OpenAllChanged(OpenAllState As Boolean)
|
|
Dim OpenAllStateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_OPENALLSTATE Then
|
|
OpenAllStateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(OpenAllStateButton) Then
|
|
OpenAllStateButton.SetIsChecked(OpenAllState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub CloseAllChanged(CloseAllState As Boolean)
|
|
Dim CloseAllStateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_CLOSEALLSTATE Then
|
|
CloseAllStateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(CloseAllStateButton) Then
|
|
CloseAllStateButton.SetIsChecked(CloseAllState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Open123Changed(Open123State As Boolean)
|
|
Dim Open123StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_OPEN123STATE Then
|
|
Open123StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Open123StateButton) Then
|
|
Open123StateButton.SetIsChecked(Open123State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Open456Changed(Open456State As Boolean)
|
|
Dim Open456StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_OPEN456STATE Then
|
|
Open456StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Open456StateButton) Then
|
|
Open456StateButton.SetIsChecked(Open456State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Close123Changed(Close123State As Boolean)
|
|
Dim Close123StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_CLOSE123STATE Then
|
|
Close123StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Close123StateButton) Then
|
|
Close123StateButton.SetIsChecked(Close123State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub Close456Changed(Close456State As Boolean)
|
|
Dim Close456StateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_CLOSE456STATE Then
|
|
Close456StateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(Close456StateButton) Then
|
|
Close456StateButton.SetIsChecked(Close456State)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub BlowChanged(BlowState As Boolean)
|
|
Dim BlowStateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_BLOWSTATE Then
|
|
BlowStateButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(BlowStateButton) Then
|
|
BlowStateButton.SetIsChecked(BlowState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub VacuumOnChanged(VacuumState As Boolean)
|
|
Dim VacuumOnButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUMON Then
|
|
VacuumOnButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(VacuumOnButton) Then
|
|
VacuumOnButton.SetIsChecked(VacuumState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub VacuumOffChanged(VacuumState As Boolean)
|
|
Dim VacuumOffButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_VACUUMOFF Then
|
|
VacuumOffButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(VacuumOffButton) Then
|
|
VacuumOffButton.SetIsChecked(VacuumState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub BypassChanged(BypassState As Boolean)
|
|
Dim PressedBypassStateButton As PressedCommandButton = Nothing
|
|
Dim TwoBypassStateButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_BYPASSTATE Then
|
|
If TypeOf MachineButton Is TwoStateButton Then
|
|
TwoBypassStateButton = MachineButton
|
|
If Not IsNothing(TwoBypassStateButton) Then
|
|
TwoBypassStateButton.SetIsChecked(BypassState)
|
|
End If
|
|
ElseIf TypeOf MachineButton Is PressedCommandButton Then
|
|
PressedBypassStateButton = MachineButton
|
|
If Not IsNothing(PressedBypassStateButton) Then
|
|
PressedBypassStateButton.SetIsPressed(BypassState)
|
|
End If
|
|
End If
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
#End Region ' State Range
|
|
|
|
Public Function GetPrivateProfileMachineButtons(
|
|
ByVal lpAppName As String,
|
|
ByVal lpKeyName As String,
|
|
ByRef lpMachineButtonType As String,
|
|
ByRef lpTImageName As String,
|
|
ByRef lpTLuaScriptName As String,
|
|
ByRef lpFImageName As String,
|
|
ByRef lpFLuaScriptName As String,
|
|
ByRef lpStateFlag As String,
|
|
ByVal lpFileName As String) As Boolean
|
|
|
|
Dim sVal As String = String.Empty
|
|
GetPrivateProfileString(lpAppName, lpKeyName, "", sVal, lpFileName)
|
|
Dim sItems() As String = sVal.Split(",".ToCharArray)
|
|
If sItems.Count() >= 3 Then
|
|
lpMachineButtonType = sItems(0)
|
|
lpTImageName = sItems(1)
|
|
lpTLuaScriptName = sItems(2)
|
|
If sItems.Count() >= 4 Then
|
|
lpStateFlag = sItems(3)
|
|
If sItems.Count() >= 6 Then
|
|
lpFImageName = sItems(4)
|
|
lpFLuaScriptName = sItems(5)
|
|
End If
|
|
Else
|
|
lpStateFlag = BTN_STATE_NOTHING
|
|
End If
|
|
Return True
|
|
End If
|
|
Return False
|
|
End Function
|
|
|
|
Private Sub ManualAxesMove_UnLoaded(sender As Object, e As RoutedEventArgs) Handles Me.Unloaded
|
|
End Sub
|
|
|
|
Public Event PropertyChanged(sender As Object, e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged
|
|
|
|
Public Sub NotifyPropertyChanged(propName As String)
|
|
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
|
|
End Sub
|
|
|
|
#Region "EVENTS"
|
|
|
|
Private Sub PressedCommandButton_PreviewMouseUp(sender As Object, e As MouseButtonEventArgs)
|
|
Dim Button As Button = DirectCast(sender, Button)
|
|
If TypeOf Button.DataContext Is PressedCommandButton Then
|
|
Dim PressedButton As PressedCommandButton = DirectCast(Button.DataContext, PressedCommandButton)
|
|
PressedButton.OnMouseUp()
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub PressedCommandButton_PreviewMouseDown(sender As Object, e As MouseButtonEventArgs)
|
|
Dim Button As Button = DirectCast(sender, Button)
|
|
If TypeOf Button.DataContext Is PressedCommandButton Then
|
|
Dim PressedButton As PressedCommandButton = DirectCast(Button.DataContext, PressedCommandButton)
|
|
PressedButton.OnMouseDown()
|
|
End If
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
End Class
|