Hallo
Ich möchte in einer ListView / UID - Position - FW ... usw. anzeigen
wie sollte man da am besten vorgehen,
alles über AddHandler oder gibt es da eine dynamischere Lösung.
Das mit "GetIdentity" hab Ich nicht so recht verstanden, wie das funktioniert.
Würde mich über Ratschläge freuen.
Imports Tinkerforge
Public Class clsBrickCB
Public ipcon As IPConnection = Nothing
#Region "Bricks"
Public BrickDC As BrickDC = Nothing
Public BrickIMU As BrickIMU = Nothing
Public BrickIMUV2 As BrickIMUV2 = Nothing
Public BrickMaster As BrickMaster = Nothing
Public BrickRED As BrickRED = Nothing
Public BrickServo As BrickServo = Nothing
Public BrickStepper As BrickStepper = Nothing
#End Region
#Region "Bricklets"
Public BrickletAccelerometer As BrickletAccelerometer = Nothing
Public BrickletAmbientLight As BrickletAmbientLight = Nothing
Public BrickletAmbientLightV2 As BrickletAmbientLightV2 = Nothing
Public BrickletAnalogIn As BrickletAnalogIn = Nothing
Public BrickletAnalogInV2 As BrickletAnalogInV2 = Nothing
Public BrickletAnalogOut As BrickletAnalogOut = Nothing
Public BrickletAnalogOutV2 As BrickletAnalogOutV2 = Nothing
Public BrickletBarometer As BrickletBarometer = Nothing
'Public BrickletBreakout As BrickletBreakout = Nothing
Public BrickletColor As BrickletColor = Nothing
Public BrickletCurrent12 As BrickletCurrent12 = Nothing
Public BrickletCurrent25 As BrickletCurrent25 = Nothing
Public BrickletDistanceIR As BrickletDistanceIR = Nothing
Public BrickletDistanceUS As BrickletDistanceUS = Nothing
Public BrickletDualButton As BrickletDualButton = Nothing
Public BrickletDualRelay As BrickletDualRelay = Nothing
Public BrickletDustDetector As BrickletDustDetector = Nothing
Public BrickletGPS As BrickletGPS = Nothing
Public BrickletHallEffect As BrickletHallEffect = Nothing
Public BrickletHumidity As BrickletHumidity = Nothing
Public BrickletIndustrialAnalogOut As BrickletIndustrialAnalogOut = Nothing
Public BrickletIndustrialDigitalIn4 As BrickletIndustrialDigitalIn4 = Nothing
Public BrickletIndustrialDigitalOut4 As BrickletIndustrialDigitalOut4 = Nothing
Public BrickletIndustrialDual020mA As BrickletIndustrialDual020mA = Nothing
Public BrickletIndustrialDualAnalogIn As BrickletIndustrialDualAnalogIn = Nothing
Public BrickletIndustrialQuadRelay As BrickletIndustrialQuadRelay = Nothing
Public BrickletIO16 As BrickletIO16 = Nothing
Public BrickletIO4 As BrickletIO4 = Nothing
Public BrickletJoystick As BrickletJoystick = Nothing
Public BrickletLaserRangeFinder As BrickletLaserRangeFinder = Nothing
Public BrickletLCD16x2 As BrickletLCD16x2 = Nothing
Public BrickletLCD20x4 As BrickletLCD20x4 = Nothing
Public BrickletLEDStrip As BrickletLEDStrip = Nothing
Public BrickletLine As BrickletLine = Nothing
Public BrickletLinearPoti As BrickletLinearPoti = Nothing
Public BrickletLoadCell As BrickletLoadCell = Nothing
Public BrickletMoisture As BrickletMoisture = Nothing
Public BrickletMotionDetector As BrickletMotionDetector = Nothing
Public BrickletMultiTouch As BrickletMultiTouch = Nothing
Public BrickletNFCRFID As BrickletNFCRFID = Nothing
Public BrickletPiezoBuzzer As BrickletPiezoBuzzer = Nothing
Public BrickletPiezoSpeaker As BrickletPiezoSpeaker = Nothing
Public BrickletPTC As BrickletPTC = Nothing
Public BrickletRemoteSwitch As BrickletRemoteSwitch = Nothing
Public BrickletRotaryEncoder As BrickletRotaryEncoder = Nothing
Public BrickletRotaryPoti As BrickletRotaryPoti = Nothing
Public BrickletRS232 As BrickletRS232 = Nothing
Public BrickletSegmentDisplay4x7 As BrickletSegmentDisplay4x7 = Nothing
Public BrickletSolidStateRelay As BrickletSolidStateRelay = Nothing
Public BrickletSoundIntensity As BrickletSoundIntensity = Nothing
Public BrickletTemperature As BrickletTemperature = Nothing
Public BrickletTemperatureIR As BrickletTemperatureIR = Nothing
Public BrickletTilt As BrickletTilt = Nothing
Public BrickletVoltage As BrickletVoltage = Nothing
Public BrickletVoltageCurrent As BrickletVoltageCurrent = Nothing
#End Region
Public Sub RConnection(Optional ByVal HOST As String = "localhost", Optional ByVal PORT As Integer = 4223)
ipcon = New IPConnection()
While True
Try
ipcon.Connect(HOST, PORT)
Exit While
Catch e As System.Net.Sockets.SocketException
System.Console.WriteLine("Connection Error: " & e.Message)
System.Threading.Thread.Sleep(1000)
End Try
End While
AddHandler ipcon.EnumerateCallback, AddressOf EnumerateCB
AddHandler ipcon.Connected, AddressOf ConnectedCB
While True
Try
ipcon.Enumerate()
Exit While
Catch e As NotConnectedException
System.Console.WriteLine("Enumeration Error: " & e.Message)
System.Threading.Thread.Sleep(1000)
End Try
End While
End Sub
Private Sub ConnectedCB(ByVal sender As IPConnection, ByVal connectedReason As Short)
If connectedReason = IPConnection.CONNECT_REASON_AUTO_RECONNECT Then
System.Console.WriteLine("Auto Reconnect")
While True
Try
ipcon.Enumerate()
Exit While
Catch e As NotConnectedException
System.Console.WriteLine("Enumeration Error: " & e.Message)
System.Threading.Thread.Sleep(1000)
End Try
End While
End If
End Sub
Private Sub EnumerateCB(ByVal sender As IPConnection, ByVal uid As String, _
ByVal connectedUid As String, ByVal position As Char, _
ByVal hardwareVersion() As Short, ByVal firmwareVersion() As Short, _
ByVal deviceIdentifier As Integer, ByVal enumerationType As Short)
If enumerationType = IPConnection.ENUMERATION_TYPE_CONNECTED Or enumerationType = IPConnection.ENUMERATION_TYPE_AVAILABLE Then
If enumerationType = IPConnection.ENUMERATION_TYPE_DISCONNECTED Then
System.Console.WriteLine("DISCONNECTED")
Return
End If
'Bricks / 7
If deviceIdentifier = BrickDC.DEVICE_IDENTIFIER Then
Try
BrickDC = New BrickDC(uid, ipcon)
System.Console.WriteLine("BrickDC initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickDC init failed: " & e.Message)
BrickDC = Nothing
End Try
ElseIf deviceIdentifier = BrickIMU.DEVICE_IDENTIFIER Then
Try
BrickIMU = New BrickIMU(uid, ipcon)
System.Console.WriteLine("BrickIMU initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickIMU init failed: " & e.Message)
BrickIMU = Nothing
End Try
ElseIf deviceIdentifier = BrickIMUV2.DEVICE_IDENTIFIER Then
Try
BrickIMUV2 = New BrickIMUV2(uid, ipcon)
System.Console.WriteLine("BrickIMUV2 initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickIMUV2 init failed: " & e.Message)
BrickIMUV2 = Nothing
End Try
ElseIf deviceIdentifier = BrickMaster.DEVICE_IDENTIFIER Then
Try
BrickMaster = New BrickMaster(uid, ipcon)
System.Console.WriteLine("BrickMaster initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickMaster init failed: " & e.Message)
BrickMaster = Nothing
End Try
ElseIf deviceIdentifier = BrickRED.DEVICE_IDENTIFIER Then
Try
BrickRED = New BrickRED(uid, ipcon)
System.Console.WriteLine("BrickRED initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickRED init failed: " & e.Message)
BrickRED = Nothing
End Try
ElseIf deviceIdentifier = BrickServo.DEVICE_IDENTIFIER Then
Try
BrickServo = New BrickServo(uid, ipcon)
System.Console.WriteLine("BrickServo initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickServo init failed: " & e.Message)
BrickServo = Nothing
End Try
ElseIf deviceIdentifier = BrickStepper.DEVICE_IDENTIFIER Then
Try
BrickStepper = New BrickStepper(uid, ipcon)
System.Console.WriteLine("BrickStepper initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickStepper init failed: " & e.Message)
BrickStepper = Nothing
End Try
End If
'Bricklets
If deviceIdentifier = BrickletAccelerometer.DEVICE_IDENTIFIER Then
Try
BrickletAccelerometer = New BrickletAccelerometer(uid, ipcon)
System.Console.WriteLine("BrickletAccelerometer initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletAccelerometer init failed: " & e.Message)
BrickletAccelerometer = Nothing
End Try
ElseIf deviceIdentifier = BrickletAmbientLight.DEVICE_IDENTIFIER Then
Try
BrickletAmbientLight = New BrickletAmbientLight(uid, ipcon)
System.Console.WriteLine("BrickletAmbientLight initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletAmbientLight init failed: " & e.Message)
BrickletAmbientLight = Nothing
End Try
ElseIf deviceIdentifier = BrickletAmbientLightV2.DEVICE_IDENTIFIER Then
Try
BrickletAmbientLightV2 = New BrickletAmbientLightV2(uid, ipcon)
System.Console.WriteLine("BrickletAmbientLightV2 initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletAmbientLightV2 init failed: " & e.Message)
BrickletAmbientLightV2 = Nothing
End Try
ElseIf deviceIdentifier = BrickletAnalogIn.DEVICE_IDENTIFIER Then
Try
BrickletAnalogIn = New BrickletAnalogIn(uid, ipcon)
System.Console.WriteLine("BrickletAnalogIn initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletAnalogIn init failed: " & e.Message)
BrickletAnalogIn = Nothing
End Try
ElseIf deviceIdentifier = BrickletAnalogInV2.DEVICE_IDENTIFIER Then
Try
BrickletAnalogInV2 = New BrickletAnalogInV2(uid, ipcon)
System.Console.WriteLine("BrickletAnalogInV2 initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletAnalogInV2 init failed: " & e.Message)
BrickletAnalogInV2 = Nothing
End Try
ElseIf deviceIdentifier = BrickletAnalogOut.DEVICE_IDENTIFIER Then
Try
BrickletAnalogOut = New BrickletAnalogOut(uid, ipcon)
System.Console.WriteLine("BrickletAnalogOut initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletAnalogOut init failed: " & e.Message)
BrickletAnalogOut = Nothing
End Try
ElseIf deviceIdentifier = BrickletAnalogOutV2.DEVICE_IDENTIFIER Then
Try
BrickletAnalogOutV2 = New BrickletAnalogOutV2(uid, ipcon)
System.Console.WriteLine("BrickletAnalogOutV2 initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletAnalogOutV2 init failed: " & e.Message)
BrickletAnalogOutV2 = Nothing
End Try
ElseIf deviceIdentifier = BrickletBarometer.DEVICE_IDENTIFIER Then
Try
BrickletBarometer = New BrickletBarometer(uid, ipcon)
System.Console.WriteLine("BrickletBarometer initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletBarometer init failed: " & e.Message)
BrickletBarometer = Nothing
End Try
ElseIf deviceIdentifier = BrickletColor.DEVICE_IDENTIFIER Then
Try
BrickletColor = New BrickletColor(uid, ipcon)
System.Console.WriteLine("BrickletColor initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletColor init failed: " & e.Message)
BrickletColor = Nothing
End Try
ElseIf deviceIdentifier = BrickletCurrent12.DEVICE_IDENTIFIER Then
Try
BrickletCurrent12 = New BrickletCurrent12(uid, ipcon)
System.Console.WriteLine("BrickletCurrent12 initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletCurrent12 init failed: " & e.Message)
BrickletCurrent12 = Nothing
End Try
ElseIf deviceIdentifier = BrickletCurrent25.DEVICE_IDENTIFIER Then
Try
BrickletCurrent25 = New BrickletCurrent25(uid, ipcon)
System.Console.WriteLine("BrickletCurrent25 initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletCurrent25 init failed: " & e.Message)
BrickletCurrent25 = Nothing
End Try
ElseIf deviceIdentifier = BrickletDistanceIR.DEVICE_IDENTIFIER Then
Try
BrickletDistanceIR = New BrickletDistanceIR(uid, ipcon)
System.Console.WriteLine("BrickletDistanceIR initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletDistanceIR init failed: " & e.Message)
BrickletDistanceIR = Nothing
End Try
ElseIf deviceIdentifier = BrickletDistanceUS.DEVICE_IDENTIFIER Then
Try
BrickletDistanceUS = New BrickletDistanceUS(uid, ipcon)
System.Console.WriteLine("BrickletDistanceUS initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletDistanceUS init failed: " & e.Message)
BrickletDistanceUS = Nothing
End Try
ElseIf deviceIdentifier = BrickletDualButton.DEVICE_IDENTIFIER Then
Try
BrickletDualButton = New BrickletDualButton(uid, ipcon)
System.Console.WriteLine("BrickletDualButton initialized")
Catch e As TinkerforgeException
System.Console.WriteLine("BrickletDualButton init failed: " & e.Message)
BrickletDualButton = Nothing
End Try
End If
End If
End Sub
End Class