1126 lines
44 KiB
VB.net
1126 lines
44 KiB
VB.net
Imports System.Collections.ObjectModel
|
|
Imports System.ComponentModel
|
|
Imports EgtUILib
|
|
|
|
Public Class ControlsMachineButtonUC
|
|
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 Shared 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 ControlsMachineButtonUC_Initialized(sender As Object, e As EventArgs) Handles Me.Initialized
|
|
Me.DataContext = Me
|
|
End Sub
|
|
|
|
Private Sub ControlsMachineButtonUC_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 bFoundBtn As Boolean = True
|
|
While bFoundBtn
|
|
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
|
|
bFoundBtn = GetPrivateProfileMachineButtons(S_CONTROLMACHBUTTONS, sNameBtn, sMachineButtonType, sTImageName, sTLuaScriptName, sFImageName, sFLuaScriptName, sStateFlag, m_MainWindow.GetMachIniFile())
|
|
If bFoundBtn Then
|
|
m_nCount += 1
|
|
Dim ButtonToAdd As MachineButton = Nothing
|
|
Select Case sMachineButtonType
|
|
Case MachineButtonType.NOSTATE
|
|
ButtonToAdd = New NoStateButton(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
|
|
GetTypeButton(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 GetTypeButton(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 SpindleStateChanged(SpindleState As Boolean)
|
|
Dim SpindleButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_SPINDLE Then
|
|
SpindleButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(SpindleButton) Then
|
|
SpindleButton.SetIsChecked(SpindleState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub LaserStateChanged(LaserState As Boolean)
|
|
Dim LaserButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_LASER Then
|
|
LaserButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(LaserButton) Then
|
|
LaserButton.SetIsChecked(LaserState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub FeedHoldChanged(FeedHoldState As Boolean)
|
|
Dim FeedHoldButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_FEEDHOLD Then
|
|
FeedHoldButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(FeedHoldButton) Then
|
|
FeedHoldButton.SetIsChecked(FeedHoldState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub SpeedHoldChanged(SpeedHoldState As Boolean)
|
|
Dim SpeedHoldButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_SPEEDHOLD Then
|
|
SpeedHoldButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(SpeedHoldButton) Then
|
|
SpeedHoldButton.SetIsChecked(SpeedHoldState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub LaserTracStateChanged(LaserTracState As Boolean)
|
|
Dim LaserTracButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_LASERTRAC Then
|
|
LaserTracButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(LaserTracButton) Then
|
|
LaserTracButton.SetIsChecked(LaserTracState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub CoolantStateChanged(CoolantState As Boolean)
|
|
Dim CoolantButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_COOLANT Then
|
|
CoolantButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(CoolantButton) Then
|
|
CoolantButton.SetIsChecked(CoolantState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub InternalCoolantStateChanged(InternalCoolantState As Boolean)
|
|
Dim IntCoolantButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_INTERNALCOOLANT Then
|
|
IntCoolantButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(IntCoolantButton) Then
|
|
IntCoolantButton.SetIsChecked(InternalCoolantState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub ExternCoolantStateChanged(ExternCoolantState As Boolean)
|
|
Dim ExtCoolantButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_EXTERNCOOLANT Then
|
|
ExtCoolantButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(ExtCoolantButton) Then
|
|
ExtCoolantButton.SetIsChecked(ExternCoolantState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub CBAxesStateChanged(CBAxesState As Boolean)
|
|
Dim CAxesButton As TwoStateButton = Nothing
|
|
Dim BAxesButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_CAXES Then
|
|
CAxesButton = MachineButton
|
|
ElseIf MachineButton.StateFlag = K_BAXES Then
|
|
BAxesButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(CAxesButton) Then
|
|
CAxesButton.SetIsChecked(CBAxesState)
|
|
End If
|
|
If Not IsNothing(BAxesButton) Then
|
|
BAxesButton.SetIsChecked(Not CBAxesState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub AirBlowStateChanged(AirBlowState As Boolean)
|
|
Dim AirBlowButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_AIRBLOW Then
|
|
AirBlowButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(AirBlowButton) Then
|
|
AirBlowButton.SetIsChecked(AirBlowState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub HomeStateChanged(HomeState As Boolean)
|
|
Dim HomeButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_HOME Then
|
|
HomeButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(HomeButton) Then
|
|
HomeButton.SetIsChecked(HomeState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub TableUpChanged(TableUpState As Boolean)
|
|
Dim TableUpButton As PressedCommandButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_TABLEUP Then
|
|
TableUpButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(TableUpButton) Then
|
|
TableUpButton.SetIsPressed(TableUpState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub TableDownChanged(TableDownState As Boolean)
|
|
Dim TableDownButton As PressedCommandButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_TABLEDOWN Then
|
|
TableDownButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(TableDownButton) Then
|
|
TableDownButton.SetIsPressed(TableDownState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub HSMChanged(HsmState As Boolean)
|
|
Dim HsmButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_HSM Then
|
|
HsmButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(HsmButton) Then
|
|
HsmButton.SetIsChecked(HsmState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub DoorClosedChanged(DoorClosedState As Integer)
|
|
Dim DoorClosedButton As ThreeStateButton = Nothing
|
|
Dim DoorOpenedButton As ThreeStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_DOORCLOSED Then
|
|
DoorClosedButton = MachineButton
|
|
End If
|
|
If MachineButton.StateFlag = K_DOOROPENDED Then
|
|
DoorOpenedButton = MachineButton
|
|
End If
|
|
Next
|
|
' Chiusura porte (gesrtione comando Three/Two state
|
|
If Not IsNothing(DoorClosedButton) Then
|
|
Select Case DoorClosedState
|
|
Case 0
|
|
' porta aperta
|
|
DoorClosedButton.Background = Application.Current.FindResource("OmagCut_Red")
|
|
Case 1, 2
|
|
' porta in movimento/aperta
|
|
DoorClosedButton.Background = Application.Current.FindResource("OmagCut_LightGray")
|
|
End Select
|
|
End If
|
|
' Chiusura porte (gesrtione comando Three/Two state
|
|
If Not IsNothing(DoorOpenedButton) Then
|
|
Select Case DoorClosedState
|
|
Case 0
|
|
' porta aperta
|
|
DoorOpenedButton.Background = Application.Current.FindResource("OmagCut_LightGray")
|
|
Case 1
|
|
' porta in movimento
|
|
DoorOpenedButton.Background = Application.Current.FindResource("OmagCut_Yellow")
|
|
Case 2
|
|
' porta chiusa
|
|
DoorOpenedButton.Background = Application.Current.FindResource("OmagCut_Green")
|
|
End Select
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub LimitZChanged(LimitZState As Boolean)
|
|
Dim TwoLimitZButton As TwoStateButton = Nothing
|
|
Dim DoubleLimitZButton As DoubleCommandButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_LIMITZ Then
|
|
If TypeOf MachineButton Is DoubleCommandButton Then
|
|
DoubleLimitZButton = MachineButton
|
|
If Not IsNothing(DoubleLimitZButton) Then
|
|
DoubleLimitZButton.SetIsChecked(LimitZState)
|
|
End If
|
|
ElseIf TypeOf MachineButton Is TwoStateButton Then
|
|
TwoLimitZButton = MachineButton
|
|
If Not IsNothing(TwoLimitZButton) Then
|
|
TwoLimitZButton.SetIsChecked(LimitZState)
|
|
End If
|
|
End If
|
|
End If
|
|
Next
|
|
End Sub
|
|
|
|
Friend Sub FiveAxisStateChanged(FiveAxisState As Boolean)
|
|
Dim ThreeAxesButton As TwoStateButton = Nothing
|
|
Dim FiveAxesButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_THREEAXES Then
|
|
ThreeAxesButton = MachineButton
|
|
ElseIf MachineButton.StateFlag = K_FIVEAXES Then
|
|
FiveAxesButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(ThreeAxesButton) Then
|
|
ThreeAxesButton.SetIsChecked(Not FiveAxisState)
|
|
End If
|
|
If Not IsNothing(FiveAxesButton) Then
|
|
FiveAxesButton.SetIsChecked(FiveAxisState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub ParkingStateChanged(ParkingState As Boolean)
|
|
Dim ParkingButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_PARKING Then
|
|
ParkingButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(ParkingButton) Then
|
|
ParkingButton.SetIsChecked(ParkingState)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub ZoneStateChanged(ZoneState As Integer)
|
|
Dim bEnableZone1 As Boolean = False
|
|
If ZoneState = 1 Then
|
|
bEnableZone1 = True
|
|
ElseIf ZoneState = 2 Then
|
|
bEnableZone1 = False
|
|
End If
|
|
' attivo il comando associato
|
|
Dim EnableZoneButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = BTN_ENABLE_ZONE_1 Then
|
|
EnableZoneButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(EnableZoneButton) Then
|
|
EnableZoneButton.SetIsChecked(bEnableZone1)
|
|
End If
|
|
' disattivo l'altro per esclusione
|
|
EnableZoneButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = BTN_ENABLE_ZONE_2 Then
|
|
EnableZoneButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(EnableZoneButton) Then
|
|
EnableZoneButton.SetIsChecked(Not bEnableZone1)
|
|
End If
|
|
End Sub
|
|
|
|
Friend Sub PcStateChanged(EnablePC As Integer)
|
|
Dim bEnablePC1 As Boolean = False
|
|
If EnablePC = 1 Then
|
|
bEnablePC1 = True
|
|
ElseIf EnablePC = 2 Then
|
|
bEnablePC1 = False
|
|
End If
|
|
' attivo/disattivo il comando associato
|
|
Dim EnablePCButton As TwoStateButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = K_ENABLEPC & "_1" Then
|
|
EnablePCButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(EnablePCButton) Then
|
|
EnablePCButton.SetIsChecked(bEnablePC1)
|
|
End If
|
|
' disattivo/attivo l'altro per esclusione
|
|
EnablePCButton = Nothing
|
|
For Each MachineButton As MachineButton In m_ButtonList
|
|
If MachineButton.StateFlag = BTN_ENABLE_ZONE_2 Then
|
|
EnablePCButton = MachineButton
|
|
End If
|
|
Next
|
|
If Not IsNothing(EnablePCButton) Then
|
|
EnablePCButton.SetIsChecked(Not bEnablePC1)
|
|
End If
|
|
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
|
|
|
|
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"
|
|
|
|
' qesti eventi evsnti sono generati direttamente dei bottoni di tipo "Pressed"
|
|
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
|
|
|
|
Public MustInherit Class MachineButton
|
|
Implements INotifyPropertyChanged
|
|
|
|
' Costanti per nomi stati dei bottoni
|
|
Friend Const BTN_STATE_SPINDLE As String = "Spindle"
|
|
Friend Const BTN_STATE_COOLANT As String = "Coolant"
|
|
Friend Const BTN_STATE_LASER As String = "Laser"
|
|
Friend Const BTN_STATE_LASERTRAC As String = "LaserTrac"
|
|
Friend Const BTN_STATE_THREEAXIS As String = "ThreeAxis"
|
|
Friend Const BTN_STATE_FIVEAXIS As String = "FiveAxis"
|
|
Friend Const BTN_STATE_NOTHING As String = "Nothing"
|
|
Friend Const BTN_ENABLE_ZONE_1 As String = "EnableZone1"
|
|
Friend Const BTN_ENABLE_ZONE_2 As String = "EnableZone2"
|
|
|
|
' Dichiarazione delle Page UserControl
|
|
Friend Shared m_MainWindow As MainWindow = DirectCast(Application.Current.MainWindow, MainWindow)
|
|
|
|
Friend Shared m_DirectCutPage As DirectCutPageUC = m_MainWindow.m_DirectCutPageUC
|
|
Friend Shared m_CN As CN_generico = m_MainWindow.m_DirectCutPageUC.m_CN
|
|
|
|
Private m_TImageName As String
|
|
Public ReadOnly Property TImageName As String
|
|
Get
|
|
Return m_TImageName
|
|
End Get
|
|
End Property
|
|
|
|
Private m_TLuaScriptName As String
|
|
Public ReadOnly Property TLuaScriptName As String
|
|
Get
|
|
Return m_TLuaScriptName
|
|
End Get
|
|
End Property
|
|
|
|
Private m_FImageName As String
|
|
Public ReadOnly Property FImageName As String
|
|
Get
|
|
Return m_FImageName
|
|
End Get
|
|
End Property
|
|
|
|
Private m_FLuaScriptName As String
|
|
Public ReadOnly Property FLuaScriptName As String
|
|
Get
|
|
Return m_FLuaScriptName
|
|
End Get
|
|
End Property
|
|
|
|
Private m_StateFlag As String
|
|
Public ReadOnly Property StateFlag As String
|
|
Get
|
|
Return m_StateFlag
|
|
End Get
|
|
End Property
|
|
|
|
Sub New(TImagePath As String, TLuaScriptPath As String, FImagePath As String, FLuaScriptPath As String, StateFlag As String)
|
|
m_TImageName = TImagePath
|
|
m_TLuaScriptName = TLuaScriptPath
|
|
m_FImageName = FImagePath
|
|
m_FLuaScriptName = FLuaScriptPath
|
|
m_StateFlag = StateFlag
|
|
End Sub
|
|
|
|
#Region "METHODS"
|
|
|
|
Friend Sub ExecuteMDICommand(sLuaFileName As String)
|
|
If String.IsNullOrWhiteSpace(sLuaFileName) Then Return
|
|
Dim CmdString As String = String.Empty
|
|
Dim b2Start As Boolean = False
|
|
Dim EActive As Boolean = False
|
|
Dim ENumber As String = String.Empty
|
|
Dim EValue As String = String.Empty
|
|
Dim EType As String = 0
|
|
Dim ENumber2 As String = String.Empty
|
|
Dim EValue2 As String = String.Empty
|
|
Dim EType2 As String = 0
|
|
' eseguo la lettura del file .lua associato al comando
|
|
ExecuteDirectCmdLua(sLuaFileName, CmdString, b2Start, EActive, ENumber, EValue, EType, ENumber2, EValue2, EType2)
|
|
'--------------------------------------------------------- PLC ---------------------------------------------------------
|
|
If EActive Then
|
|
Select Case m_MainWindow.m_CNCommunication.m_nNCType
|
|
Case 1, 2
|
|
' se scrittura delle varibili PLC
|
|
If m_CN.m_NewVariable And m_MainWindow.m_CNCommunication.m_nNCType = 2 Then
|
|
' solo per Flexium
|
|
m_CN.DPlcVariables_WriteVariables(ENumber, EValue)
|
|
If Not String.IsNullOrEmpty(ENumber2) And Not String.IsNullOrEmpty(EValue2) Then
|
|
m_CN.DPlcVariables_WriteVariables(ENumber2, EValue2)
|
|
End If
|
|
' altrimenti scrittura delle variabili E
|
|
Else
|
|
m_CN.DVariables_WriteVariables2(ENumber, EValue)
|
|
End If
|
|
Return
|
|
Case 3
|
|
' scrivo prima variabile
|
|
Select Case CShort(EType)
|
|
Case 1
|
|
m_CN.DVariables_WriteVariables3(ENumber, CShort(EType), CInt(EValue), 0, 0, "")
|
|
EgtOutLog("ENumber= " & ENumber & "EType= " & CShort(EType) & "EValue= " & CInt(EValue))
|
|
Case 2
|
|
m_CN.DVariables_WriteVariables3(ENumber, CShort(EType), 0, CLng(EValue), 0, "")
|
|
EgtOutLog("ENumber= " & ENumber & "EType= " & CShort(EType) & "EValue= " & CLng(EValue))
|
|
Case 3
|
|
Dim d As Double = 0
|
|
StringToDouble(EValue, d)
|
|
m_CN.DVariables_WriteVariables3(ENumber, CShort(EType), 0, 0, d, "")
|
|
EgtOutLog("ENumber= " & ENumber & "EType= " & CShort(EType) & "EValue= " & d)
|
|
Case 4
|
|
m_CN.DVariables_WriteVariables3(ENumber, CShort(EType), 0, 0, 0, EValue)
|
|
EgtOutLog("ENumber= " & ENumber & "EType= " & CShort(EType) & "EValue= " & EValue)
|
|
End Select
|
|
EgtOutLog("dopo scrittura prima variabile")
|
|
If Not IsNothing(EType2) AndAlso CShort(EType) > 0 Then
|
|
System.Threading.Thread.Sleep(100)
|
|
' scrivo seconda variabile
|
|
Select Case CShort(EType2)
|
|
Case 1
|
|
m_CN.DVariables_WriteVariables3(ENumber2, CShort(EType2), CInt(EValue2), 0, 0, "")
|
|
EgtOutLog("ENumber2= " & ENumber2 & "EType2= " & CShort(EType2) & "EValue2= " & CInt(EValue2))
|
|
Case 2
|
|
m_CN.DVariables_WriteVariables3(ENumber2, CShort(EType2), 0, CLng(EValue2), 0, "")
|
|
EgtOutLog("ENumber2= " & ENumber2 & "EType2= " & CShort(EType2) & "EValue2= " & CLng(EValue2))
|
|
Case 3
|
|
Dim d As Double = 0
|
|
StringToDouble(EValue2, d)
|
|
m_CN.DVariables_WriteVariables3(ENumber2, CShort(EType2), 0, 0, d, "")
|
|
EgtOutLog("ENumber2= " & ENumber2 & "EType2= " & CShort(EType2) & "EValue2= " & d)
|
|
Case 4
|
|
m_CN.DVariables_WriteVariables3(ENumber2, CShort(EType2), 0, 0, 0, EValue2)
|
|
EgtOutLog("ENumber2= " & ENumber2 & "EType2= " & CShort(EType2) & "EValue2= " & EValue2)
|
|
End Select
|
|
EgtOutLog("dopo scrittura seconda variabile")
|
|
End If
|
|
Return
|
|
Case 4
|
|
' ------------------------------------ FANUC ------------------------------------
|
|
' eventuale scrittura di linea di comando MDI
|
|
If Not String.IsNullOrEmpty(CmdString) Then
|
|
' attivo mpdalità MDI
|
|
m_CN.DGeneralFunctions_WriteCncMode(2)
|
|
System.Threading.Thread.Sleep(100)
|
|
' salvo la stringa di comando ricevuta dal file lua
|
|
m_CN.sz_ManualDataInput = CmdString
|
|
' esguo la funzione che ha il compito di scrivere il comando MDI
|
|
m_CN.MDI_command()
|
|
End If
|
|
' attivo modalità AUTO
|
|
m_CN.DGeneralFunctions_WriteCncMode(7)
|
|
System.Threading.Thread.Sleep(100)
|
|
If String.IsNullOrEmpty(EValue) Then
|
|
' EActive: impulsivo "D#####"
|
|
m_CN.NC_pulse_bit(ENumber)
|
|
EgtOutLog("Fanuc_DNumber= " & ENumber)
|
|
Else
|
|
' EActive + EValue: scrittura comando invariabile Short oppure Bit
|
|
If ENumber.Contains(".") Then
|
|
' D#####.#
|
|
Dim bEValue As Boolean
|
|
If EValue.Trim = "1" Then bEValue = True
|
|
m_CN.NC_write_var_bit(ENumber, CBool(EValue))
|
|
Else
|
|
' D#####
|
|
m_CN.NC_write_var_short(ENumber, CShort(EValue))
|
|
End If
|
|
EgtOutLog("Fanuc_DNumber= " & ENumber & " DValue= " & EValue)
|
|
End If
|
|
' eventale caricamento seconda variabile
|
|
If String.IsNullOrEmpty(EValue2) Then
|
|
' EActive: impulsivo "D#####"
|
|
m_CN.NC_pulse_bit(ENumber2)
|
|
EgtOutLog("Fanuc_DNumber= " & ENumber2)
|
|
Else
|
|
' EActive + EValue: scrittura comando invariabile Short oppure Bit
|
|
If ENumber2.Contains(".") Then
|
|
' D#####.#
|
|
Dim bEValue2 As Boolean
|
|
If EValue2.Trim = "1" Then bEValue2 = True
|
|
m_CN.NC_write_var_bit(ENumber2, CBool(EValue2))
|
|
Else
|
|
' D#####
|
|
m_CN.NC_write_var_short(ENumber2, CShort(EValue2))
|
|
End If
|
|
EgtOutLog("Fanuc_DNumber2= " & ENumber2 & " DValue2= " & EValue2)
|
|
End If
|
|
Return
|
|
End Select
|
|
End If
|
|
'--------------------------------------------------------- MDI ---------------------------------------------------------
|
|
Dim nResult As Short
|
|
' assegno la modalità di funzionamento
|
|
Select Case m_MainWindow.m_CNCommunication.m_nNCType
|
|
Case 1, 2, 4
|
|
nResult = m_CN.DGeneralFunctions_WriteCncMode(2) ' Modalità MDI per controlli num
|
|
Case 3
|
|
'Per il siemens non devo fare nulla
|
|
End Select
|
|
' salvo la stringa di comando ricevuta dal file lua
|
|
m_CN.sz_ManualDataInput = CmdString
|
|
' esguo la funzione che ha il compito di scrivere il comando MDI
|
|
m_CN.MDI_command()
|
|
' avvio l'esecuzione del comando
|
|
Select Case m_MainWindow.m_CNCommunication.m_nNCType
|
|
Case 1, 2
|
|
System.Threading.Thread.Sleep(500)
|
|
m_CN.DGeneralFunctions_CycleStart()
|
|
Case 3
|
|
'Per il siemens non devo fare nulla
|
|
End Select
|
|
' se richiesto ripeto l'operazione
|
|
If b2Start Then
|
|
EgtOutLog("Avvio secondo cliclo start")
|
|
System.Threading.Thread.Sleep(800)
|
|
m_CN.DGeneralFunctions_CycleStart()
|
|
End If
|
|
System.Threading.Thread.Sleep(300)
|
|
' ripristino la modalità manuale..?? siucuri ??
|
|
nResult = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
|
End Sub
|
|
|
|
' lettura delle variavili scritte nel file Lua
|
|
Friend Sub ExecuteDirectCmdLua(LuaFileName As String, ByRef CmdString As String, ByRef b2Start As Boolean, ByRef EActive As Boolean, ByRef ENumber As String, ByRef EValue As String, ByRef EType As String, ByRef ENumber2 As String, ByRef EValue2 As String, ByRef EType2 As String)
|
|
Dim sBaseDir As String = m_MainWindow.m_CurrentMachine.sMachDir & "\DirectCmd\"
|
|
If EgtLuaExecFile(sBaseDir & LuaFileName) Then
|
|
EgtOutLog("Lua " & sBaseDir & LuaFileName & " eseguito")
|
|
Else
|
|
EgtOutLog("Lua " & sBaseDir & LuaFileName & " non eseguito")
|
|
End If
|
|
|
|
Dim dFeed As Double = 0
|
|
If Not String.IsNullOrWhiteSpace(m_DirectCutPage.m_ManualAxesMove.FeedTxBx.Text) Then
|
|
StringToLen(m_DirectCutPage.m_ManualAxesMove.FeedTxBx.Text, dFeed)
|
|
Else
|
|
EgtTdbSetCurrTool(m_MainWindow.m_CurrentProjectPageUC.ToolTxBx.Text)
|
|
EgtTdbGetCurrToolParam(MCH_TP.FEED, dFeed)
|
|
End If
|
|
EgtLuaSetGlobNumVar("CMD.F", dFeed)
|
|
|
|
Dim dSpeed As Double = 0
|
|
If Not String.IsNullOrWhiteSpace(m_DirectCutPage.m_ManualAxesMove.SpeedTxBx.Text) Then
|
|
StringToDouble(m_DirectCutPage.m_ManualAxesMove.SpeedTxBx.Text, dSpeed)
|
|
Else
|
|
EgtTdbSetCurrTool(m_MainWindow.m_CurrentProjectPageUC.ToolTxBx.Text)
|
|
EgtTdbGetCurrToolParam(MCH_TP.SPEED, dSpeed)
|
|
End If
|
|
EgtLuaSetGlobNumVar("CMD.S", dSpeed)
|
|
|
|
' versione 2.5e1
|
|
EgtTdbSetCurrTool(m_MainWindow.m_CurrentProjectPageUC.ToolTxBx.Text)
|
|
Dim sToolPos As String = String.Empty
|
|
If EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sToolPos) Then
|
|
EgtLuaGetGlobStringVar("CMD.TCPOS", sToolPos)
|
|
End If
|
|
Dim dToolDiam As Double = 0
|
|
If EgtTdbGetCurrToolParam(MCH_TP.DIAM, dToolDiam) Then
|
|
EgtLuaSetGlobNumVar("CMD.DIAM", dToolDiam * 1000)
|
|
End If
|
|
|
|
Dim dL1, dL2, dL3, dR1, dR2 As Double
|
|
m_MainWindow.m_CNCommunication.GetAxesPositions(dL1, dL2, dL3, dR1, dR2)
|
|
EgtLuaSetGlobNumVar("CMD.L1", dL1)
|
|
EgtLuaSetGlobNumVar("CMD.L2", dL2)
|
|
EgtLuaSetGlobNumVar("CMD.L3", dL3)
|
|
EgtLuaSetGlobNumVar("CMD.R1", dR1)
|
|
EgtLuaSetGlobNumVar("CMD.R2", dR2)
|
|
EgtLuaSetGlobBoolVar("CMD.INCHES", m_MainWindow.m_CNCommunication.GetMachineInInches())
|
|
|
|
' versione 2.6h1
|
|
Dim sCurrTable As String = String.Empty
|
|
Dim nCuttTable As Integer = 1
|
|
EgtGetTableName(sCurrTable)
|
|
If sCurrTable <> "MainTab" Then nCuttTable = 2
|
|
EgtLuaSetGlobIntVar("CMD.TABLE", nCuttTable)
|
|
|
|
EgtLuaCallFunction("CmdString")
|
|
|
|
' Leggo variabili da file Lua
|
|
CmdString = String.Empty
|
|
EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
|
|
b2Start = False
|
|
EgtLuaGetGlobBoolVar("CMD.DOUBLESTART", b2Start)
|
|
EActive = False
|
|
EgtLuaGetGlobBoolVar("CMD.EACTIVE", EActive)
|
|
ENumber = String.Empty
|
|
EgtLuaGetGlobStringVar("CMD.ENUMBER", ENumber)
|
|
EValue = String.Empty
|
|
EgtLuaGetGlobStringVar("CMD.EVALUE", EValue)
|
|
EType = String.Empty
|
|
EgtLuaGetGlobStringVar("CMD.ETYPE", EType)
|
|
EgtOutLog("ENUMBER: " & ENumber & " EVALUE: " & EValue & " ETYPE: " & EType)
|
|
ENumber2 = String.Empty
|
|
EgtLuaGetGlobStringVar("CMD.ENUMBER2", ENumber2)
|
|
EValue2 = String.Empty
|
|
EgtLuaGetGlobStringVar("CMD.EVALUE2", EValue2)
|
|
EType2 = String.Empty
|
|
EgtLuaGetGlobStringVar("CMD.ETYPE2", EType2)
|
|
EgtOutLog("ENUMBER2: " & ENumber2 & " EVALUE2: " & EValue2 & " ETYPE2: " & EType2)
|
|
' Reset lua
|
|
EgtLuaResetGlobVar("CmdString")
|
|
EgtLuaResetGlobVar("CMD")
|
|
' Log del comando
|
|
EgtOutLog("CmdString=" & If(Not String.IsNullOrEmpty(CmdString), CmdString, "") &
|
|
" b2Start=" & b2Start.ToString() &
|
|
" EActive=" & EActive.ToString &
|
|
" ENumber=" & If(Not String.IsNullOrEmpty(ENumber), ENumber, "") &
|
|
" EValue=" & If(Not String.IsNullOrEmpty(EValue), EValue, "") &
|
|
" EType=" & If(Not String.IsNullOrEmpty(EType), CInt(EType).ToString, "") &
|
|
" ENumber2=" & If(Not String.IsNullOrEmpty(ENumber2), ENumber2, "") &
|
|
" EValue2=" & If(Not String.IsNullOrEmpty(EValue2), EValue2, "") &
|
|
" EType2=" & If(Not String.IsNullOrEmpty(EType2), CInt(EType2).ToString, ""))
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
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
|
|
|
|
End Class
|
|
|
|
Public Class TwoStateButton
|
|
Inherits MachineButton
|
|
|
|
Private m_IsChecked As Boolean
|
|
Public Property IsChecked As Boolean
|
|
Get
|
|
Return m_IsChecked
|
|
End Get
|
|
Set(value As Boolean)
|
|
' accendo il comando, anche se dovrei aspettare di leggere lo stato da PLC
|
|
m_IsChecked = value
|
|
Dim sLuaScriptFile As String = m_MainWindow.m_CurrentMachine.sMachDir & "\DirectCmd\"
|
|
If value Then
|
|
sLuaScriptFile &= TLuaScriptName
|
|
ExecuteMDICommand(TLuaScriptName)
|
|
Else
|
|
sLuaScriptFile &= FLuaScriptName
|
|
ExecuteMDICommand(FLuaScriptName)
|
|
End If
|
|
|
|
Dim IsPressedShiftKey As Boolean = False
|
|
If Keyboard.Modifiers And ModifierKeys.Shift And
|
|
GetPrivateProfileInt(S_GENERAL, K_DEBUG, 0, m_MainWindow.GetIniFile()) > 4 Then IsPressedShiftKey = True
|
|
' procedo all'apertura del file CadCut1 appena generato (solo se generazione corretta)
|
|
If IsPressedShiftKey Then
|
|
Try
|
|
Process.Start("Notepad.exe", sLuaScriptFile)
|
|
Catch ex As Exception
|
|
EgtOutLog(ex.ToString)
|
|
End Try
|
|
End If
|
|
End Set
|
|
End Property
|
|
Friend Sub SetIsChecked(value As Boolean)
|
|
m_IsChecked = value
|
|
NotifyPropertyChanged("IsChecked")
|
|
NotifyPropertyChanged("ImageSource")
|
|
End Sub
|
|
|
|
Public ReadOnly Property ImageSource As String
|
|
Get
|
|
Dim sNewIcons As String
|
|
If (m_MainWindow.m_OptionsPageUC.ThemesCmBx.SelectedIndex = 0) Then
|
|
sNewIcons = ""
|
|
Else
|
|
sNewIcons = "NewIcons\"
|
|
End If
|
|
' Se variabile di stato "Nothing" o non collegato a CN, imposto immagine fissa
|
|
If StateFlag = BTN_STATE_NOTHING Or Not m_MainWindow.m_bNCLink Or IsNothing(FImageName) Or String.IsNullOrWhiteSpace(FImageName) Then
|
|
' ritorno immagine dello stato true
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & TImageName
|
|
End If
|
|
If m_IsChecked Then
|
|
' ritorno immagine dello stato true
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & TImageName
|
|
Else
|
|
' ritorno immagine dello stato false
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & FImageName
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
#Region "METHODS"
|
|
|
|
Sub New(TImagePath As String, TLuaScriptPath As String, FImagePath As String, FLuaScriptPath As String, StateFlag As String)
|
|
MyBase.New(TImagePath, TLuaScriptPath, FImagePath, FLuaScriptPath, StateFlag)
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
End Class
|
|
|
|
Public Class NoStateButton
|
|
Inherits MachineButton
|
|
|
|
' definizione comandi
|
|
Private m_cmdExecute As ICommand
|
|
|
|
Public ReadOnly Property ImageSource As String
|
|
Get
|
|
Dim sNewIcons As String
|
|
If (m_MainWindow.m_OptionsPageUC.ThemesCmBx.SelectedIndex = 0) Then
|
|
sNewIcons = ""
|
|
Else
|
|
sNewIcons = "NewIcons\"
|
|
End If
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & TImageName
|
|
End Get
|
|
End Property
|
|
|
|
#Region "METHODS"
|
|
|
|
Sub New(TImagePath As String, TLuaScriptPath As String, FImagePath As String, FLuaScriptPath As String, StateFlag As String)
|
|
MyBase.New(TImagePath, TLuaScriptPath, Nothing, Nothing, StateFlag)
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "Execute"
|
|
|
|
' Returns a command that manage the MainWindow_Unloaded command
|
|
Public ReadOnly Property ExecuteCommand() As ICommand
|
|
Get
|
|
If m_cmdExecute Is Nothing Then
|
|
m_cmdExecute = New Command(AddressOf Execute)
|
|
End If
|
|
Return m_cmdExecute
|
|
End Get
|
|
End Property
|
|
|
|
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
|
|
Public Sub Execute()
|
|
If m_MainWindow.m_CNCommunication.m_nNCType = 1 Or m_MainWindow.m_CNCommunication.m_nNCType = 2 Then
|
|
If StateFlag = K_MANUAL Then
|
|
m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
|
|
Else
|
|
ExecuteMDICommand(TLuaScriptName)
|
|
End If
|
|
Else
|
|
' FANUC, SIEMENS
|
|
ExecuteMDICommand(TLuaScriptName)
|
|
End If
|
|
End Sub
|
|
|
|
#End Region ' Execute
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|
|
|
|
Public Class ThreeStateButton
|
|
Inherits MachineButton
|
|
|
|
' definizione comandi
|
|
Private m_cmdExecute As ICommand
|
|
|
|
Private m_Background As SolidColorBrush
|
|
Public Property Background As SolidColorBrush
|
|
Get
|
|
Return m_Background
|
|
End Get
|
|
Set(value As SolidColorBrush)
|
|
m_Background = value
|
|
NotifyPropertyChanged("Background")
|
|
End Set
|
|
End Property
|
|
Public ReadOnly Property ImageSource As String
|
|
Get
|
|
Dim sNewIcons As String
|
|
If (m_MainWindow.m_OptionsPageUC.ThemesCmBx.SelectedIndex = 0) Then
|
|
sNewIcons = ""
|
|
Else
|
|
sNewIcons = "NewIcons\"
|
|
End If
|
|
' ritorno immagine dello stato true
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & TImageName
|
|
End Get
|
|
End Property
|
|
|
|
#Region "METHODS"
|
|
|
|
Sub New(TImagePath As String, TLuaScriptPath As String, FImagePath As String, FLuaScriptPath As String, StateFlag As String)
|
|
MyBase.New(TImagePath, TLuaScriptPath, FImagePath, FLuaScriptPath, StateFlag)
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
#Region "COMMANDS"
|
|
|
|
#Region "Execute"
|
|
|
|
' Returns a command that manage the MainWindow_Unloaded command
|
|
Public ReadOnly Property ExecuteCommand() As ICommand
|
|
Get
|
|
If m_cmdExecute Is Nothing Then
|
|
m_cmdExecute = New Command(AddressOf Execute)
|
|
End If
|
|
Return m_cmdExecute
|
|
End Get
|
|
End Property
|
|
|
|
' Manage the MainWindow_Unloaded event. This method is invoked by the cmdMainWindow_Unloaded.
|
|
Public Sub Execute()
|
|
ExecuteMDICommand(TLuaScriptName)
|
|
ExecuteMDICommand(FLuaScriptName)
|
|
End Sub
|
|
|
|
#End Region ' Execute
|
|
|
|
#End Region ' COMMANDS
|
|
|
|
End Class
|
|
|
|
Public Class DoubleCommandButton
|
|
Inherits MachineButton
|
|
|
|
Private m_IsChecked As Boolean
|
|
Public Property IsChecked As Boolean
|
|
Get
|
|
Return m_IsChecked
|
|
End Get
|
|
Set(value As Boolean)
|
|
m_IsChecked = value
|
|
ExecuteMDICommand(TLuaScriptName)
|
|
System.Threading.Thread.Sleep(100)
|
|
ExecuteMDICommand(FLuaScriptName)
|
|
End Set
|
|
End Property
|
|
Friend Sub SetIsChecked(value As Boolean)
|
|
m_IsChecked = value
|
|
NotifyPropertyChanged("IsChecked")
|
|
NotifyPropertyChanged("ImageSource")
|
|
End Sub
|
|
|
|
Public ReadOnly Property ImageSource As String
|
|
Get
|
|
Dim sNewIcons As String
|
|
If (m_MainWindow.m_OptionsPageUC.ThemesCmBx.SelectedIndex = 0) Then
|
|
sNewIcons = ""
|
|
Else
|
|
sNewIcons = "NewIcons\"
|
|
End If
|
|
' Se variabile di stato "Nothing" o non collegato a CN, imposto immagine fissa
|
|
If StateFlag = BTN_STATE_NOTHING Or Not m_MainWindow.m_bNCLink Or IsNothing(FImageName) Or String.IsNullOrWhiteSpace(FImageName) Then
|
|
' ritorno immagine dello stato true
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & TImageName
|
|
End If
|
|
If m_IsChecked Then
|
|
' ritorno immagine dello stato true
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & TImageName
|
|
Else
|
|
' ritorno immagine dello stato false
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & FImageName
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
#Region "METHODS"
|
|
|
|
Sub New(TImagePath As String, TLuaScriptPath As String, FImagePath As String, FLuaScriptPath As String, StateFlag As String)
|
|
MyBase.New(TImagePath, TLuaScriptPath, FImagePath, FLuaScriptPath, StateFlag)
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
End Class
|
|
|
|
Public Class PressedCommandButton
|
|
Inherits MachineButton
|
|
|
|
Private m_IsPressed As Boolean
|
|
Friend Sub SetIsPressed(value As Boolean)
|
|
m_IsPressed = value
|
|
NotifyPropertyChanged("ImageSource")
|
|
End Sub
|
|
|
|
Public ReadOnly Property ImageSource As String
|
|
Get
|
|
Dim sNewIcons As String
|
|
If (m_MainWindow.m_OptionsPageUC.ThemesCmBx.SelectedIndex = 0) Then
|
|
sNewIcons = ""
|
|
Else
|
|
sNewIcons = "NewIcons\"
|
|
End If
|
|
' Se variabile di stato "Nothing" o non collegato a CN, imposto immagine fissa
|
|
If StateFlag = BTN_STATE_NOTHING OrElse Not m_MainWindow.m_bNCLink OrElse IsNothing(FImageName) OrElse String.IsNullOrWhiteSpace(FImageName) Then
|
|
' ritorno immagine dello stato true
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & TImageName
|
|
End If
|
|
If m_IsPressed Then
|
|
' ritorno immagine dello stato true
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & TImageName
|
|
Else
|
|
' ritorno immagine dello stato false
|
|
Return m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sNewIcons & FImageName
|
|
End If
|
|
End Get
|
|
End Property
|
|
|
|
#Region "METHODS"
|
|
|
|
Sub New(TImagePath As String, TLuaScriptPath As String, FImagePath As String, FLuaScriptPath As String, StateFlag As String)
|
|
MyBase.New(TImagePath, TLuaScriptPath, FImagePath, FLuaScriptPath, StateFlag)
|
|
End Sub
|
|
|
|
Friend Sub OnMouseDown()
|
|
Try
|
|
ExecuteMDICommand(TLuaScriptName)
|
|
EgtOutLog("Comando MDI eseguito")
|
|
SetIsPressed(True)
|
|
EgtOutLog("Aggiornamento immagine bottone eseguito")
|
|
Catch ex As Exception
|
|
EgtOutLog("Eccezione riga 909 di ControlsMachineButtonUC.xaml.vb : " & ex.ToString)
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Friend Sub OnMouseUp()
|
|
Try
|
|
ExecuteMDICommand(FLuaScriptName)
|
|
EgtOutLog("Comando MDI eseguito")
|
|
SetIsPressed(False)
|
|
EgtOutLog("Aggiornamento immagine bottone eseguito")
|
|
Catch ex As Exception
|
|
EgtOutLog("Eccezione riga 925 di ControlsMachineButtonUC.xaml.vb : " & ex.ToString)
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region ' METHODS
|
|
|
|
End Class
|