Files
OmagCUT/MachineButtonsUC.xaml.vb
T
Emmanuele Sassi 5d2299a0b2 OmagCUT :
- Migliorata gestione attrezzaggio e scelta lavorazioni.
2016-01-26 14:59:03 +00:00

328 lines
13 KiB
VB.net

Imports EgtUILib
Public Class MachineButtonsUC
'Riferimento alla MainWindow
Dim m_MainWindow As MainWindow = Application.Current.MainWindow
Private m_DirectCutPage As DirectCutPageUC
Friend m_CN As CN_generico
Private m_bFirst As Boolean = True
Private Const MAX_BUTTONS As Integer = 10
Private ImageArrayY(MAX_BUTTONS - 1) As String
Private ImageArrayN(MAX_BUTTONS - 1) As String
Private CommandArrayY(MAX_BUTTONS - 1) As String
Private CommandArrayN(MAX_BUTTONS - 1) As String
Private StateFlagArray(MAX_BUTTONS - 1) As String
' Creazione converter da String a ImageSource
Dim ImageConverter As New ImageSourceConverter
Private Sub MachineButtons_Loaded(sender As Object, e As RoutedEventArgs)
If m_bFirst Then
m_DirectCutPage = m_MainWindow.m_DirectCutPageUC
m_bFirst = False
End If
' Rendo invisibili bottoni 3 e 5 assi per poi attivarli solo se presenti
ThreeAxisBtn.Visibility = Windows.Visibility.Hidden
FiveAxisBtn.Visibility = Windows.Visibility.Hidden
Dim sButtonImage As String = String.Empty
Dim sButtonImageSource As ImageSource
Dim sButtonCommand As String = String.Empty
Dim sButtonStateFlag As String = String.Empty
Dim nIndex As Integer = 0
While nIndex < MAX_BUTTONS And GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1) & "Y", sButtonImage, sButtonCommand, sButtonStateFlag, m_MainWindow.GetMachIniFile())
ImageArrayY(nIndex) = sButtonImage
CommandArrayY(nIndex) = sButtonCommand
StateFlagArray(nIndex) = sButtonStateFlag
'If CommandArray(nIndex) = "3Axes.lua" Then
' MachineButtonsGrid.Children.Remove(GetButton(nIndex + 1))
' ThreeAxisBtn.SetValue(Grid.ColumnProperty, nIndex)
' ThreeAxisBtn.Visibility = Windows.Visibility.Visible
' Try
' Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sButtonImage
' sButtonImageSource = ImageConverter.ConvertFromString(s)
' ThreeAxisImg.Source = sButtonImageSource
' Catch ex As Exception
' EgtOutLog("Error loading image " & sButtonImage)
' End Try
'ElseIf CommandArray(nIndex) = "5Axes.lua" Then
' MachineButtonsGrid.Children.Remove(GetButton(nIndex + 1))
' FiveAxisBtn.SetValue(Grid.ColumnProperty, nIndex)
' FiveAxisBtn.Visibility = Windows.Visibility.Visible
' Try
' Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sButtonImage
' sButtonImageSource = ImageConverter.ConvertFromString(s)
' FiveAxisImg.Source = sButtonImageSource
' Catch ex As Exception
' EgtOutLog("Error loading image " & sButtonImage)
' End Try
'Else
'End If
'Try
' Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & sButtonImage
' sButtonImageSource = ImageConverter.ConvertFromString(s)
' GetImage(nIndex + 1).Source = sButtonImageSource
'Catch ex As Exception
' EgtOutLog("Error loading image " & sButtonImage)
'End Try
nIndex += 1
End While
nIndex = 0
While nIndex < MAX_BUTTONS And GetPrivateProfileMachineButtons(S_MACHBUTTONS, K_BUTTON & (nIndex + 1) & "N", sButtonImage, sButtonCommand, sButtonStateFlag, m_MainWindow.GetMachIniFile())
ImageArrayN(nIndex) = sButtonImage
CommandArrayN(nIndex) = sButtonCommand
nIndex += 1
End While
'While nIndex < MAX_BUTTONS
' GetButton(nIndex + 1).Visibility = Windows.Visibility.Hidden
' nIndex += 1
'End While
End Sub
Private Sub MachineButton_Click(sender As Object, e As RoutedEventArgs) Handles MachineButton1.Click, MachineButton2.Click, MachineButton3.Click, MachineButton4.Click, MachineButton5.Click, MachineButton6.Click, MachineButton7.Click,
MachineButton8.Click, MachineButton9.Click, MachineButton10.Click
Dim CurrentBtn As Primitives.ToggleButton = e.Source
Dim nTemp As Integer = 0
Dim dTemp As Double = 0
Dim sTemp As String = String.Empty
Dim b2Start As Boolean = False
Dim CmdString As String = String.Empty
If CurrentBtn.IsChecked Then
EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\" & CommandArrayY(GetToggleButtonIndex(CurrentBtn) - 1))
Else
EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\" & CommandArrayN(GetToggleButtonIndex(CurrentBtn) - 1))
End If
StringToDouble(m_DirectCutPage.m_ManualAxesMove.FeedTxBx.Text, dTemp)
EgtLuaSetGlobNumVar("CMD.F", dTemp)
StringToDouble(m_DirectCutPage.m_ManualAxesMove.SpeedTxBx.Text, dTemp)
EgtLuaSetGlobNumVar("CMD.S", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_L1ID, 0, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.L1", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_L2ID, 1, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.L2", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_L3ID, 2, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.L3", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_R1ID, 8, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.R1", dTemp)
nTemp = GetPrivateProfileInt(S_AXES, K_R2ID, 7, m_MainWindow.GetMachIniFile())
dTemp = m_CN.d_axis_position(nTemp)
EgtLuaSetGlobNumVar("CMD.R2", dTemp)
EgtLuaExecLine("CmdString()")
' Leggo variabili
EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
EgtLuaGetGlobBoolVar("CMD.DOUBLESTART", b2Start)
' Reset lua
EgtLuaResetGlobVar("CmdString")
EgtLuaResetGlobVar("CMD")
Dim nResult As Short
nResult = m_CN.DGeneralFunctions_WriteCncMode(2) ' Modalità MDI
m_CN.sz_ManualDataInput = CmdString
m_CN.MDI_command()
System.Threading.Thread.Sleep(150)
m_CN.DGeneralFunctions_CycleStart()
If b2Start Then
System.Threading.Thread.Sleep(150)
m_CN.DGeneralFunctions_CycleStart()
End If
nResult = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
End Sub
'Private Sub MachineToggleButton_Click(sender As Object, e As RoutedEventArgs) Handles ThreeAxisBtn.Click, FiveAxisBtn.Click
' Dim CurrentBtn As Primitives.ToggleButton = e.Source
' Dim nTemp As Integer = 0
' Dim dTemp As Double = 0
' Dim sTemp As String = String.Empty
' Dim b2Start As Boolean = False
' Dim CmdString As String = String.Empty
' EgtLuaExecFile(m_MainWindow.GetMachinesRootDir() & "\" & m_MainWindow.GetCurrMachine() & "\DirectCmd\" & GetToggleButtonIndex(CurrentBtn))
' StringToDouble(m_DirectCutPage.m_ManualAxesMove.FeedTxBx.Text, dTemp)
' EgtLuaSetGlobNumVar("CMD.F", dTemp)
' StringToDouble(m_DirectCutPage.m_ManualAxesMove.SpeedTxBx.Text, dTemp)
' EgtLuaSetGlobNumVar("CMD.S", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_L1ID, 0, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.L1", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_L2ID, 1, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.L2", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_L3ID, 2, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.L3", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_R1ID, 8, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.R1", dTemp)
' nTemp = GetPrivateProfileInt(S_AXES, K_R2ID, 7, m_MainWindow.GetMachIniFile())
' dTemp = m_CN.d_axis_position(nTemp)
' EgtLuaSetGlobNumVar("CMD.R2", dTemp)
' EgtLuaExecLine("CmdString()")
' ' Leggo variabili
' EgtLuaGetGlobStringVar("CMD.CMDSTRING", CmdString)
' EgtLuaGetGlobBoolVar("CMD.DOUBLESTART", b2Start)
' ' Reset lua
' EgtLuaResetGlobVar("CmdString")
' EgtLuaResetGlobVar("CMD")
' Dim nResult As Short
' nResult = m_CN.DGeneralFunctions_WriteCncMode(2) ' Modalità MDI
' m_CN.sz_ManualDataInput = CmdString
' m_CN.MDI_command()
' System.Threading.Thread.Sleep(150)
' m_CN.DGeneralFunctions_CycleStart()
' If b2Start Then
' System.Threading.Thread.Sleep(150)
' m_CN.DGeneralFunctions_CycleStart()
' End If
' nResult = m_CN.DGeneralFunctions_WriteCncMode(7) ' Modalità manuale
'End Sub
Friend Sub LaserStateChanged(LaserState As Boolean)
Dim nIndex As Integer = Array.IndexOf(StateFlagArray, "Laser")
If LaserState Then
GetToggleButton(nIndex).IsChecked = True
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayY(nIndex + 1)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayY(nIndex + 1))
End Try
Else
GetToggleButton(nIndex).IsChecked = False
Try
Dim s As String = m_MainWindow.GetResourcesDir() & "\MachineButtonsImage\" & ImageArrayN(nIndex + 1)
Dim sButtonImageSource As ImageSource = ImageConverter.ConvertFromString(s)
GetImage(nIndex + 1).Source = sButtonImageSource
Catch ex As Exception
EgtOutLog("Error loading image " & ImageArrayN(nIndex + 1))
End Try
End If
End Sub
Private Function GetToggleButton(ByVal nIndex As Integer) As Primitives.ToggleButton
Select Case nIndex
Case 1
Return MachineButton1
Case 2
Return MachineButton2
Case 3
Return MachineButton3
Case 4
Return MachineButton4
Case 5
Return MachineButton5
Case 6
Return MachineButton6
Case 7
Return MachineButton7
Case 8
Return MachineButton8
Case 9
Return MachineButton9
Case Else
Return MachineButton10
End Select
End Function
Private Function GetToggleButtonIndex(ByVal nBtnName As Primitives.ToggleButton) As Integer
Select Case nBtnName.Name
Case MachineButton1.Name
Return 1
Case MachineButton2.Name
Return 2
Case MachineButton3.Name
Return 3
Case MachineButton4.Name
Return 4
Case MachineButton5.Name
Return 5
Case MachineButton6.Name
Return 6
Case MachineButton7.Name
Return 7
Case MachineButton8.Name
Return 8
Case MachineButton9.Name
Return 9
Case Else
Return 10
End Select
End Function
'Private Function GetToggleButtonIndex(ByVal nBtnName As Primitives.ToggleButton) As String
' Select Case nBtnName.Name
' Case ThreeAxisBtn.Name
' Return "3Axes.lua"
' Case Else
' Return "5Axes.lua"
' End Select
'End Function
Private Function GetImage(ByVal nInd As Integer) As Image
Select Case nInd
Case 1
Return ImageButton1
Case 2
Return ImageButton2
Case 3
Return ImageButton3
Case 4
Return ImageButton4
Case 5
Return ImageButton5
Case 6
Return ImageButton6
Case 7
Return ImageButton7
Case 8
Return ImageButton8
Case 9
Return ImageButton9
Case Else
Return ImageButton10
End Select
End Function
Public Function GetPrivateProfileMachineButtons(
ByVal lpAppName As String,
ByVal lpKeyName As String,
ByRef lpButtonImage As String,
ByRef lpCommand 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() >= 2 Then
lpButtonImage = sItems(0)
lpCommand = sItems(1)
If sItems.Count() >= 3 Then
lpStateFlag = sItems(2)
Else
lpStateFlag = String.Empty
End If
Return True
End If
Return False
End Function
End Class