Files
EgtCAM5/SetUpWindow/SetUpViewModel.vb
T
Emmanuele Sassi 0e41ec097f EgtCAM5 :
- prima versione attrezzaggio.
- aggiunto flag di utilizzo script di disposizione.
- inizio gestione passaggio pezzi da disegno e lavorazione.
2017-01-12 17:27:58 +00:00

743 lines
27 KiB
VB.net

Imports System.Collections.ObjectModel
Imports System.ComponentModel
Imports System.IO
Imports EgtUILib
Namespace EgtCAM5
Public Class SetUpViewModel
Private m_Title As String
Public ReadOnly Property Title As String
Get
Return EgtMsg(MSG_SETUP + 1)
End Get
End Property
' Lista degli utensili
Private m_ToolsList As New ObservableCollection(Of FamilyToolItem)
Public Property ToolsList As ObservableCollection(Of FamilyToolItem)
Get
Return m_ToolsList
End Get
Set(value As ObservableCollection(Of FamilyToolItem))
m_ToolsList = value
End Set
End Property
' Lista delle posizioni
Private m_PositionList As New ObservableCollection(Of Position)
Public Property PositionList As ObservableCollection(Of Position)
Get
Return m_PositionList
End Get
Set(value As ObservableCollection(Of Position))
m_PositionList = value
End Set
End Property
' Definizione comandi
Private m_cmdApply As ICommand
Private m_cmdArchive As ICommand
Private m_cmdRetrieves As ICommand
Sub New()
ExitToolAssociation.sh_ToolsList = m_ToolsList
LoadMachineTools()
LoadMachinePositions()
End Sub
''' <summary>
''' Method that search tools for the currently selected Machine and add it to the ToolsList.
''' </summary>
Private Sub LoadMachineTools()
' Creo lista utensili utilizzati dal gruppo di lavorazione corrente
Dim UsedToolList As New List(Of String)
Dim Machining As Integer = EgtGetFirstOperation()
While Machining <> GDB_ID.NULL
If EgtGetOperationType(Machining) >= MCH_OY.SAWING Then
EgtSetCurrMachining(Machining)
Dim Tuuid As String = String.Empty
EgtGetMachiningParam(MCH_MP.TUUID, Tuuid)
UsedToolList.Add(Tuuid)
End If
Machining = EgtGetNextOperation(Machining)
End While
' Creo lista utensili per grafica
Dim ActiveToolsFamilies() As ToolsFamily = ReadActiveToolsFamilies()
For Index = 0 To ActiveToolsFamilies.Count - 1
Dim FamilyToolItem As New FamilyToolItem(ActiveToolsFamilies(Index).FamilyName, ActiveToolsFamilies(Index).FamilyId)
m_ToolsList.Add(FamilyToolItem)
Dim nType As Integer = 0
Dim ToolName As String = String.Empty
Dim nValue As Integer = 0
Dim sValue As String = String.Empty
Dim ExitPar As String = String.Empty
Dim Head As String = String.Empty
Dim TcPos As String = String.Empty
Dim Uuid As String = String.Empty
Dim IsInCurrMachGroup As Boolean = False
If EgtTdbGetFirstTool(ActiveToolsFamilies(Index).FamilyId, ToolName, nType) Then
EgtTdbSetCurrTool(ToolName)
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nValue)
ExitPar = nValue.ToString()
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sValue)
Head = sValue
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sValue)
TcPos = sValue
EgtTdbGetCurrToolParam(MCH_TP.UUID, sValue)
Uuid = sValue
IsInCurrMachGroup = If(UsedToolList.Contains(Uuid), True, False)
FamilyToolItem.Items.Add(New ToolItem(ToolName, ExitPar, nType, Head, TcPos, Uuid, IsInCurrMachGroup))
While EgtTdbGetNextTool(ActiveToolsFamilies(Index).FamilyId, ToolName, nType)
EgtTdbSetCurrTool(ToolName)
EgtTdbGetCurrToolParam(MCH_TP.EXIT_, nValue)
ExitPar = nValue.ToString()
EgtTdbGetCurrToolParam(MCH_TP.HEAD, sValue)
Head = sValue
EgtTdbGetCurrToolParam(MCH_TP.TCPOS, sValue)
TcPos = sValue
EgtTdbGetCurrToolParam(MCH_TP.UUID, sValue)
Uuid = sValue
IsInCurrMachGroup = If(UsedToolList.Contains(Uuid), True, False)
FamilyToolItem.Items.Add(New ToolItem(ToolName, ExitPar, nType, Head, TcPos, Uuid, IsInCurrMachGroup))
End While
End If
Next
' Se esiste almeno una famiglia di utensili, la seleziono
If ToolsList.Count > 0 Then
ToolsList(0).IsSelected = True
ToolsList(0).NotifyPropertyChanged("IsSelected")
End If
End Sub
''' <summary>
''' Method that search the machines in the correct folder and add to the MachinesList those valid.
''' </summary>
Private Function ReadActiveToolsFamilies() As ToolsFamily()
Dim ActiveToolsFamiliesList As New List(Of ToolsFamily)
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_DRILLBIT, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily With {.FamilyId = MCH_TF.DRILLBIT, .FamilyName = EgtMsg(MSG_TOOLSDBPAGE + 1)})
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_SAWBLADE, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily With {.FamilyId = MCH_TF.SAWBLADE, .FamilyName = EgtMsg(MSG_TOOLSDBPAGE + 2)})
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_MILL, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily With {.FamilyId = MCH_TF.MILL, .FamilyName = EgtMsg(MSG_TOOLSDBPAGE + 3)})
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_MORTISE, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily With {.FamilyId = MCH_TF.MORTISE, .FamilyName = EgtMsg(MSG_TOOLSDBPAGE + 4)})
End If
If EgtUILib.GetPrivateProfileInt(S_TOOLS, K_COMPO, 0, m_sCurrMachIniFilePath) <> 0 Then
ActiveToolsFamiliesList.Add(New ToolsFamily With {.FamilyId = MCH_TF.COMPO, .FamilyName = EgtMsg(MSG_TOOLSDBPAGE + 5)})
End If
Return ActiveToolsFamiliesList.ToArray
End Function
Private Sub LoadMachinePositions()
' recupero il gruppo del setup
Dim nSetUpGroup As Integer = EgtGetCurrSetup()
' leggo l'attrezzaggio del progetto
Dim sPosition As String = String.Empty
Dim IniIndex As Integer = 1
' recupero stringa di ogni posizione
While EgtGetInfo(nSetUpGroup, K_POS & IniIndex, sPosition)
ReadPositionString(IniIndex, sPosition)
IniIndex += 1
End While
' altrimenti
If Not m_PositionList.Count > 0 Then
' ne genero uno nuovo dalla configurazione nel file ini della macchina
Dim sTcPos As String = String.Empty
Dim sHead As String = String.Empty
Dim sExitList As New List(Of String)
Dim Index = 1
While GetPrivateProfileSetUpPosition(S_SETUP, K_POS & Index, sTcPos, sHead)
PositionList.Add(New Position(sTcPos, sHead, EgtGetHeadExitCount(sHead)))
Index += 1
End While
End If
End Sub
' Funzione che dati l'indice della posizione e la sua stringa di attrezzaggio, carica l'attrezzaggio descritto
Private Sub ReadPositionString(nIndex As Integer, sPosition As String)
Dim sTcPos As String = String.Empty
Dim sHead As String = String.Empty
Dim sExitList As New List(Of String)
Dim sToolList As New List(Of String)
' la spezzo sui ;
Dim sItems() As String = sPosition.Split(";".ToCharArray)
' se c'è almeno un elemento sono sicuro che ci sia la T
If sItems.Count() >= 1 Then
sTcPos = sItems(0)
' se ci sono almeno due elementi sono sicuro che ci sia la H
If sItems.Count >= 2 Then
sHead = sItems(1)
PositionList.Add(New Position(sTcPos, sHead, EgtGetHeadExitCount(sHead)))
' se ci sono almeno tre elementi sono sicuro che ci sia almeno un'uscita attrezzata
If sItems.Count >= 3 Then
' separo le uscite divise dalla ,
Dim sExitToolAssList() As String = sItems(2).Split(",".ToCharArray)
sExitList.Clear()
sToolList.Clear()
' creo le liste di uscite e utensili attrezzati ricavati
For AssIndex = 0 To sExitToolAssList.Count() - 1
Dim sExitToolAssItem() As String = sExitToolAssList(AssIndex).Split("/".ToCharArray)
If sExitToolAssItem.Count > 1 Then
sExitList.Add(sExitToolAssItem(0))
sToolList.Add(sExitToolAssItem(1))
End If
Next
' analizzo la lista di utensili attrezzati
For ToolIndex = 0 To sToolList.Count - 1
If Not String.IsNullOrEmpty(sToolList(ToolIndex)) Then
Dim TempTool As ToolItem = Nothing
Dim bFound As Boolean = False
' cerco l'utensile attrezzato nella lista utensili
For FamilyListIndex = 0 To m_ToolsList.Count - 1
For ToolListIndex = 0 To m_ToolsList(FamilyListIndex).Items.Count - 1
If m_ToolsList(FamilyListIndex).Items(ToolListIndex).Name = sToolList(ToolIndex) Then
' lo salvo in una variabile temporanea e lo tolgo dalla lista
TempTool = DirectCast(m_ToolsList(FamilyListIndex).Items(ToolListIndex), ToolItem)
m_ToolsList(FamilyListIndex).Items.Remove(m_ToolsList(FamilyListIndex).Items(ToolListIndex))
bFound = True
Exit For
End If
Next
If bFound Then Exit For
Next
' cerco la relativa uscita
For ExitIndex = 0 To m_PositionList(nIndex - 1).ExitToolAssociationList.Count - 1
If m_PositionList(nIndex - 1).ExitToolAssociationList(ExitIndex).ExitPar = sExitList(ToolIndex) Then
' vi metto l'utensile e segno l'uscita come occupata
m_PositionList(nIndex - 1).ExitToolAssociationList(ExitIndex).Tool = TempTool
m_PositionList(nIndex - 1).ExitToolAssociationList(ExitIndex).IsOccupied = True
End If
Next
End If
Next
End If
' non è presente la H, quindi la recupero dal modello delle posizioni nel file MachIni
Else
GetPrivateProfileSetUpPosition(S_SETUP, K_POS & nIndex, sTcPos, sHead)
EgtGetHeadExitCount(sHead)
PositionList.Add(New Position(sTcPos, sHead, EgtGetHeadExitCount(sHead)))
End If
End If
End Sub
#Region "COMMANDS"
#Region "ApplyCommand"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property ApplyCommand As ICommand
Get
If m_cmdApply Is Nothing Then
m_cmdApply = New Command(AddressOf Apply)
End If
Return m_cmdApply
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub Apply(param As Object)
Dim nSetUpGroup As Integer = EgtGetCurrSetup()
For Index = 0 To m_PositionList.Count - 1
Dim sPosition As String = String.Empty
sPosition = m_PositionList(Index).TcPos
Dim sExitToolAssociation As String = String.Empty
For AssIndex = 0 To m_PositionList(Index).ExitToolAssociationList.Count - 1
sExitToolAssociation &= If(m_PositionList(Index).ExitToolAssociationList(AssIndex).IsOccupied, m_PositionList(Index).ExitToolAssociationList(AssIndex).ExitPar & "/" & m_PositionList(Index).ExitToolAssociationList(AssIndex).Tool.Name & ",", String.Empty)
Next
sExitToolAssociation = sExitToolAssociation.Trim(","c)
If Not String.IsNullOrEmpty(sExitToolAssociation) Then
sPosition &= ";" & m_PositionList(Index).Head & ";" & sExitToolAssociation
End If
EgtSetInfo(nSetUpGroup, K_POS & Index + 1, sPosition)
Next
End Sub
#End Region ' ApplyCommand
#Region "ArchiveCommand"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property ArchiveCommand As ICommand
Get
If m_cmdArchive Is Nothing Then
m_cmdArchive = New Command(AddressOf Archive)
End If
Return m_cmdArchive
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub Archive(param As Object)
' Direttorio per attrezzaggi
Dim sDir As String = IniFile.m_sMachinesRoot & "\" & IniFile.m_sMachineName & "\SetUp"
Dim sPath As String = String.Empty
' Apertura dialogo di salvataggio
Dim SaveFileDialogView As New EgtWPFLib5.EgtSaveFileDialog
SaveFileDialogView.Title = EgtMsg(MSG_SETUP + 5)
SaveFileDialogView.Extension = ".stu"
SaveFileDialogView.Directory = sDir
SaveFileDialogView.FileName = String.Empty
If Not SaveFileDialogView.ShowDialog Then
Return
End If
sPath = SaveFileDialogView.FileName
File.WriteAllLines(sPath, {"; Commento per evitare BOM con UTF-8"}, Text.Encoding.UTF8)
For Index = 0 To m_PositionList.Count - 1
Dim sPosition As String = String.Empty
sPosition = m_PositionList(Index).TcPos
Dim sExitToolAssociation As String = String.Empty
For AssIndex = 0 To m_PositionList(Index).ExitToolAssociationList.Count - 1
sExitToolAssociation &= If(m_PositionList(Index).ExitToolAssociationList(AssIndex).IsOccupied, m_PositionList(Index).ExitToolAssociationList(AssIndex).ExitPar & "/" & m_PositionList(Index).ExitToolAssociationList(AssIndex).Tool.Name & ",", String.Empty)
Next
sExitToolAssociation = sExitToolAssociation.Trim(","c)
If Not String.IsNullOrEmpty(sExitToolAssociation) Then
sPosition &= ";" & m_PositionList(Index).Head & ";" & sExitToolAssociation
End If
EgtUILib.WritePrivateProfileString(S_GENERAL, K_POS & Index + 1, sPosition, sPath)
Next
End Sub
#End Region ' ArchiveCommand
#Region "RetrievesCommand"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property RetrievesCommand As ICommand
Get
If m_cmdRetrieves Is Nothing Then
m_cmdRetrieves = New Command(AddressOf Retrieves)
End If
Return m_cmdRetrieves
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub Retrieves(param As Object)
' Direttorio per attrezzaggi
Dim sDir As String = IniFile.m_sMachinesRoot & "\" & IniFile.m_sMachineName & "\SetUp"
Dim sPath As String = String.Empty
' Apertura dialogo di salvataggio
Dim OpenFileDialogView As New EgtWPFLib5.EgtOpenFileDialog
OpenFileDialogView.Title = EgtMsg(MSG_SETUP + 5)
OpenFileDialogView.Filter = "*.stu"
OpenFileDialogView.Directory = sDir
OpenFileDialogView.FileName = String.Empty
If Not OpenFileDialogView.ShowDialog Then
Return
End If
sPath = OpenFileDialogView.FileName
' resetto lista utensili e posizioni
m_ToolsList.Clear()
m_PositionList.Clear()
'ricarico lista utensili
LoadMachineTools()
' leggo l'attrezzaggio dal file scelto
Dim sPosition As String = String.Empty
Dim IniIndex As Integer = 1
' recupero stringa di ogni posizione
While EgtUILib.GetPrivateProfileString(S_GENERAL, K_POS & IniIndex, String.Empty, sPosition, sPath) > 0
ReadPositionString(IniIndex, sPosition)
IniIndex += 1
End While
End Sub
#End Region ' RetrievesCommand
#End Region ' Commands
End Class
End Namespace
Public Class Position
Private m_TcPos As String
Public Property TcPos As String
Get
Return m_TcPos
End Get
Set(value As String)
m_TcPos = value
End Set
End Property
Private m_Head As String
''' <summary>
''' Property that read and write to the tool's database the Head
''' </summary>
Friend Property Head As String
Get
Return m_Head
End Get
Set(value As String)
If value = String.Empty Or value <> m_Head Then
m_Head = value
End If
End Set
End Property
' Lista delle uscite con relativi utensili associati
Private m_ExitToolAssociationList As New ObservableCollection(Of ExitToolAssociation)
Public Property ExitToolAssociationList As ObservableCollection(Of ExitToolAssociation)
Get
Return m_ExitToolAssociationList
End Get
Set(value As ObservableCollection(Of ExitToolAssociation))
m_ExitToolAssociationList = value
End Set
End Property
Sub New(TcPos As String, Head As String, ExitNum As Integer)
Me.TcPos = TcPos
Me.Head = Head
For ExitIndex = 1 To ExitNum
ExitToolAssociationList.Add(New ExitToolAssociation(ExitIndex.ToString))
Next
End Sub
End Class
Public Class ExitToolAssociation
Implements INotifyPropertyChanged
Friend Shared sh_ToolsList As ObservableCollection(Of FamilyToolItem)
Private m_IsOccupied As Boolean
''' <summary>
''' Property that read and write to the tool's database the Exit
''' </summary>
Public Property IsOccupied As Boolean
Get
Return m_IsOccupied
End Get
Set(value As Boolean)
If value <> m_IsOccupied Then
m_IsOccupied = value
NotifyPropertyChanged("IsOccupied")
End If
End Set
End Property
Private m_Exit As String
''' <summary>
''' Property that read and write to the tool's database the Exit
''' </summary>
Public Property ExitPar As String
Get
Return m_Exit
End Get
Set(value As String)
If value <> m_Exit Then
m_Exit = value
End If
End Set
End Property
Private m_Tool As ToolItem
''' <summary>
''' Property that read and write to the tool's database the Uuid
''' </summary>
Public Property Tool As ToolItem
Get
Return m_Tool
End Get
Set(value As ToolItem)
m_Tool = value
NotifyPropertyChanged("Tool")
End Set
End Property
' Definizione comandi
Private m_cmdSetUpTool As ICommand
Private m_cmdRemoveSetUpTool As ICommand
#Region "CONSTRUCTORS"
Sub New(ExitPar As String)
Me.ExitPar = ExitPar
End Sub
#End Region ' Constructors
#Region "COMMANDS"
#Region "SetUpToolCommand"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property SetUpToolCommand As ICommand
Get
If m_cmdSetUpTool Is Nothing Then
m_cmdSetUpTool = New Command(AddressOf SetUpTool)
End If
Return m_cmdSetUpTool
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub SetUpTool(param As Object)
' se quello selezionato nella lista non è un utensile esco
If Not TypeOf param Is ToolItem Then
IsOccupied = False
Return
End If
Dim SelTool As ToolItem = DirectCast(param, ToolItem)
' lo aggiungo alla posizione di attrezzaggio
Tool = SelTool
IsOccupied = True
' e lo tolgo dalla lista
For Index = 0 To sh_ToolsList.Count - 1
If (SelTool.Type And sh_ToolsList(Index).Type) > 0 Then
sh_ToolsList(Index).Items.Remove(SelTool)
Exit For
End If
Next
End Sub
#End Region ' SetUpToolCommand
#Region "RemoveSetUpToolCommand"
''' <summary>
''' Returns a command that do Exec.
''' </summary>
Public ReadOnly Property RemoveSetUpToolCommand As ICommand
Get
If m_cmdRemoveSetUpTool Is Nothing Then
m_cmdRemoveSetUpTool = New Command(AddressOf RemoveSetUpTool)
End If
Return m_cmdRemoveSetUpTool
End Get
End Property
''' <summary>
''' Execute the Exec. This method is invoked by the ExecCommand.
''' </summary>
Public Sub RemoveSetUpTool(param As Object)
' lo rimetto nella lista utensili
For Index = 0 To sh_ToolsList.Count - 1
If (Tool.Type And sh_ToolsList(Index).Type) > 0 Then
sh_ToolsList(Index).Items.Add(Tool)
Exit For
End If
Next
' e lo tolgo dalla posizione di attrezzaggio
Tool = Nothing
IsOccupied = False
End Sub
#End Region ' RemoveSetUpToolCommand
#End Region ' Commands
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Public Sub NotifyPropertyChanged(propName As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName))
End Sub
End Class
Public Class FamilyToolItem
Inherits InheritableTreeViewItem
Public Overrides Property IsSelected As Boolean
Get
Return m_IsSelected
End Get
Set(value As Boolean)
If (value <> m_IsSelected) Then
m_IsSelected = value
End If
End Set
End Property
Public ReadOnly Property FamilyColor As SolidColorBrush
Get
If m_HaveToolsInCurrMachGroup Then
Return Brushes.Red
Else
Return Brushes.Transparent
End If
End Get
End Property
Private m_HaveToolsInCurrMachGroup As Boolean
Private m_Type As MCH_TF
''' <summary>
''' Property that determines the tool type of the family
''' </summary>
Public ReadOnly Property Type As MCH_TF
Get
Return m_Type
End Get
End Property
Sub New(Name As String, Type As MCH_TF)
MyBase.New(Name)
Me.PictureString = "/Resources/TreeView/Folder.png"
m_Type = Type
' Aggiungo il gestore d'evento di modifica lista degli item per poter mettere e togliere il pallino che indica se ci sono utensili da attrezzare
AddHandler Items.CollectionChanged, AddressOf ManageObservableCollection
End Sub
Private Sub ManageObservableCollection(sender As Object, e As System.Collections.Specialized.NotifyCollectionChangedEventArgs)
m_HaveToolsInCurrMachGroup = False
For Index = 0 To Items.Count - 1
Dim ToolItem As ToolItem = DirectCast(Items(Index), ToolItem)
If ToolItem.m_IsInCurrMachGroup Then
m_HaveToolsInCurrMachGroup = True
End If
Next
NotifyPropertyChanged("FamilyColor")
End Sub
End Class
Public Class ToolItem
Inherits InheritableTreeViewItem
Public Overrides Property IsSelected As Boolean
Get
Return m_IsSelected
End Get
Set(value As Boolean)
If (value <> m_IsSelected) Then
m_IsSelected = value
End If
End Set
End Property
Public ReadOnly Property ToolColor As SolidColorBrush
Get
If m_IsInCurrMachGroup Then
Return Brushes.Red
Else
Return Brushes.Transparent
End If
End Get
End Property
Friend m_IsInCurrMachGroup As Boolean
''' <summary>
''' Property that read and write to the tool's database the Exit
''' </summary>
Public Property IsInCurrMachGroup As Boolean
Get
Return m_IsInCurrMachGroup
End Get
Set(value As Boolean)
If value <> m_IsInCurrMachGroup Then
m_IsInCurrMachGroup = value
'NotifyPropertyChanged("IsInCurrMachGroup")
End If
End Set
End Property
Private m_Exit As String
''' <summary>
''' Property that read and write to the tool's database the Exit
''' </summary>
Friend Property ExitPar As String
Get
Return m_Exit
End Get
Set(value As String)
If value <> m_Exit Then
m_Exit = value
End If
End Set
End Property
Private m_Type As MCH_TY
''' <summary>
''' Property that determines the tool type of the family
''' </summary>
Public ReadOnly Property Type As MCH_TY
Get
Return m_Type
End Get
End Property
Private m_Head As String
''' <summary>
''' Property that read and write to the tool's database the Head
''' </summary>
Friend Property Head As String
Get
Return m_Head
End Get
Set(value As String)
If value = String.Empty Or value <> m_Head Then
m_Head = value
End If
End Set
End Property
Private m_TcPos As String
''' <summary>
''' Property that read and write to the tool's database the Tc Pos
''' </summary>
Friend Property TcPos As String
Get
Return m_TcPos
End Get
Set(value As String)
If value = String.Empty Or value <> m_TcPos Then
m_TcPos = value
End If
End Set
End Property
Private m_Uuid As String
''' <summary>
''' Property that read and write to the tool's database the Uuid
''' </summary>
Friend ReadOnly Property Uuid As String
Get
Return m_Uuid
End Get
End Property
Sub New(Name As String, ExitPar As String, Type As Integer, Head As String, TcPos As String, Uuid As String, IsInCurrMachGroup As Boolean)
MyBase.New(Name)
m_Exit = ExitPar
m_Type = DirectCast(Type, MCH_TY)
m_Head = Head
m_TcPos = TcPos
m_Uuid = Uuid
m_IsInCurrMachGroup = IsInCurrMachGroup
End Sub
End Class