mikrocontroller.net

Forum: PC-Programmierung Virtual Com Port mit VB automatisch finden


Autor: delegug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,

ich habe ein Problem mit einem Gerät. Das Gerät erzeugt einen virtuellen 
Com-Port über eine USB Schnittstelle am PC. Ich möchte nun mit VB auf 
dieses Gerät zugreifen, ohne den Com-Port einstellen zu müssen.

Das Problem ist, dass das Gerät einen Timeout von 2s hat und deshalb 
dauert es immer ziemlich lange wenn man einfach alle aktiven Ports 
abfragt.

Gibt es sonst noch irgendwelche Möglichkeiten zu erkennen dass es ein 
virtueller Port ist z.B. über die PID/VID...?

Hoff mir kann jemand helfen.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst du dir aus der Registry auslesen. Bei FTDI zum 
Beispiel:http://www.ftdichip.com/Support/Knowledgebase/inde... 
und dann einfach gleich direkt den entsprechenden COM Port öffnen 
(vorher bei HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM gucken, ob 
der überhaupt gerade angesteckt ist).

Autor: ManiB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
bei meinem Programm, welches ebenfalls die Ser. Ports nutzt, habe ich 
einen einfachen Test aller 16 Com-Ports realisiert, um herauszufinden, 
ob am Port was angeschlossen ist. Das sollte bei dir auch funktionieren:
Private Sub Form_Load()
    '-----------------------------
    'Port-Test
    On Error GoTo PortTestError
    Dim oldPort As Integer
    oldPort = MSComm1.CommPort
    For i = 0 To 15
        optComPort(i).ForeColor = &H80000011
        MSComm1.CommPort = i + 1
        MSComm1.PortOpen = True
        MSComm1.PortOpen = False
        optComPort(i).ForeColor = &H80000012
NextPortTest:
    Next i
    MSComm1.CommPort = oldPort
    '-----------------------------
    
On Error GoTo 0
    Exit Sub
    
PortTestError:
    Resume NextPortTest

End Sub

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> aller 16 Com-Ports

Du weißt, daß Windows 256 serielle Schnittstellen unterstützt?

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es sind 255, denn COM 0 gibts nicht. Aber egal. Das stupide Öffnen aller 
Com-Ports dauert erstens lange und zweitens kann das sehr dreckige 
Nebeneffekte haben. Wenn ich z.B. den virtuellen COM Port meines 
Original TI USB Debuggers für den MSP430 öffne, obwohl er gerade durch 
die Debug-Software geöffnet ist, schmiert die Software ab und der COM 
Port ist auch nicht mehr anzusprechen bis man USB abzieht und wieder 
ansteckt. Das sollte man tunlichst unterlassen, das ist einfach nur 
schlampig und dreckig programmiert. Eine simple Abfrage der 
HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\SERIALCOMM zeigt alle verfügbaren 
COM Ports an, ohne dass man dran rum fummeln muss.

Autor: delegug (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also danke für die Beiträge,

das funktioniert jetzt einwandfrei. Über das Registry ist es echt viel 
besser und schneller, nicht so wie die einzelnen Ports zu öffnen und 
abzufragen.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Es sind 255, denn COM 0 gibts nicht.

Dafür gibts aber COM256.

Ich hatte gehofft, daß durch die Nennung der schieren Anzahl möglicher 
Schnittstellen der von Dir zu Recht stupide genannte Ansatz auch so als 
suboptimal erkannt werden könnte, aber Dein deutlicher Hinweis ist wohl 
doch besser.

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly schrieb:
>> Es sind 255, denn COM 0 gibts nicht.
>
> Dafür gibts aber COM256.

Echt? Waren wohl Matlab "Programmierer" am Werk....

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee, Pascal.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.