#Region "Implementierung der Item-Funktionalität"
Private my_VWItem_Status As New VisiWinNET.DataAccess.DigitalItem
<Category("VisiWin"), Description("VisiWin-Pfad für die Variablen-Anbindung")>
<DefaultValue(VisiWinPfad)>
Public Property VW_Pfad As String
Get
Return my_VW_Pfad
End Get
Set(ByVal value As String)
my_VW_Pfad = value
Set_VWItem()
End Set
End Property
Private my_VW_Pfad As String = VisiWinPfad
<Category("VisiWin"), Description("Beschriftung der Anzeige")>
Property SPS_Adresse As String
Get
Return my_SPS_Adresse.Adresse
End Get
Set(ByVal value As String)
my_SPS_Adresse.Convert(value)
If my_SPS_Adresse.Valid Then
Me.Label.Text = my_SPS_Adresse.Adresse
Set_VWItem()
Me.Invalidate()
End If
End Set
End Property
Private my_SPS_Adresse As New SPS_Adresse_Converter
<Category("VisiWin"), Description("Auswertung der SPS-Adresse invertieren ?")>
<DefaultValue(False)>
Property SPS_Adresse_invert As Boolean
Get
Return my_SPS_Adresse_invert
End Get
Set(ByVal value As Boolean)
my_SPS_Adresse_invert = value
Animation_Anzeige()
End Set
End Property
Private my_SPS_Adresse_invert As Boolean = False
Private Sub Set_VWItem()
If my_SPS_Adresse.notValid Or my_VW_Pfad.Trim = "" Then
my_VWItem_Status.Name = ""
Else
my_VWItem_Status.Name = my_VW_Pfad + "." + my_SPS_Adresse.VisiWinVar_Adr
my_VWItem_Status.BitNumber = my_SPS_Adresse.BitNummer
End If
End Sub
Protected Sub AttachItem()
Dim Pfad2 As String = my_VW_Pfad + "."
If my_SPS_Adresse.Valid AndAlso (my_VWItem_Status.Name.Trim <> my_VW_Pfad) AndAlso (my_VWItem_Status.Name.Trim <> Pfad2) Then
AddHandler my_VWItem_Status.Change, AddressOf OnChange
my_VWItem_Status.Attach()
End If
End Sub
Protected Sub DetachItem()
my_VWItem_Status.Detach()
RemoveHandler my_VWItem_Status.Change, AddressOf OnChange
End Sub
Private Sub DisposeItem()
DetachItem()
my_VWItem_Status.Dispose()
End Sub
Protected Overridable Sub OnChange(ByVal sender As Object, ByVal e As VisiWinNET.DataAccess.DigitalChangeEventArgs)
Dim mySender As VisiWinNET.Internals.DataAccess.ItemBase = CType(sender, VisiWinNET.Internals.DataAccess.ItemBase)
If mySender.Name = my_VWItem_Status.Name Then
If Trim(my_SPS_Adresse.Adresse) <> "" Then
my_AnimationStatus = e.State
Else
my_AnimationStatus = CBool(e.Value)
End If
Animation_Anzeige()
End If
End Sub
#End Region