Mit VISUAL BASIC EXPESS 10 will das Comport Device ermittel.
Ich habe aber noch andere Comports COM10,COM6 …als Bluethooth usw.
Die sind aber keine echten RS232 Devices.
Den Vergleich habe ich mit dem Device Namen "Silicon Labs CP210x USB to
UART Bridge" als COM1 ermittelt.
Jetz habe ich mir gedacht nur den Rest des Strings auf „Bridge“ zu
verleichen, und somit auch zB. FTDI RS232 Devices zu
eritteln. FTDI USB to UART Bridge
Ist am Ende immer der Trigger-Sting ::::: „UART Bridge“ für ein
Serielles RS232 DEVICE ???
########################################################################
#########################
brLapDevice_Name = pd.Value.ToString() ' copy
If InStr(brLapDevice_Name, "Bridge") Then ’ Nur das
Ende Verleichen
########################################################################
##########################
Hier der Code der mit dem "Silicon Labs CP210x USB to UART Bridge"
funktioniert
1 |
|
2 | ' Als erstes unter ->Projekt->Verweise hinzufügen... System.Management
|
3 | ' Imports System.Management
|
4 | ‘**************************************************************************************************
|
5 | Public Function Scan_Serial_RS232_Device() As String
|
6 | ' Dim LapDevice_Name As String = "Silicon Labs CP210x USB to UART Bridge"
|
7 | Dim brLapDevice_Name As String ' = "Bridge" trigger-Sting
|
8 | Dim queryA As String = "Select * from Win32_SerialPort"
|
9 | Dim pd As PropertyData
|
10 | Dim Found_Device As Boolean = False
|
11 | Dim Port As String = ""
|
12 | Dim mos As ManagementObjectSearcher = New ManagementObjectSearcher(queryA)
|
13 | Dim moc As ManagementObjectCollection = mos.Get()
|
14 | For Each mo As ManagementObject In moc
|
15 | For Each pd In mo.Properties
|
16 | On Error Resume Next
|
17 | If pd.Name.ToString() = "Description" Then
|
18 | brLapDevice_Name = pd.Value.ToString() ' copy
|
19 | If InStr(brLapDevice_Name, "Bridge") Then ’ Nur das Ende Verleichen
|
20 | Found_Device = True
|
21 | Else
|
22 | Found_Device = False
|
23 | End If
|
24 | End If
|
25 | If Found_Device = True And pd.Name.ToString() = "DeviceID" Then
|
26 | Port = pd.Value.ToString()
|
27 | mos.Dispose()
|
28 | moc.Dispose()
|
29 | GC.Collect()
|
30 | Return Port ' COM1
|
31 | End If
|
32 | Next
|
33 | Next
|
34 | mos.Dispose()
|
35 | moc.Dispose()
|
36 | GC.Collect()
|
37 | Return "Device Not Found"
|
38 | End Function
|
Ich suche nach einer Lösung die mir genau ermittelt
Welche echten USB RS232 BRIDGES, oder Hardware RS232 Ports
vorhanden sind.
Gruss Holger.