RXTX Details auslesen

MarioW1986

Bekanntes Mitglied
Hallo zusammen,
ich suche nach einer Möglichkeit einen COM-Port mit Hilfe des manufacturer name anzusprechen.
Leider schaffe ich es nur auszulesen ob es COM1, ... oder was auch immer ist. Meine Frage lautet daher, ob es überhaupt möglich ist einen COM-Port mit einem bestimmten Namen zu suchen bzw zu finden und diesen dann zu öffnen.
Hintergrund ist, dass ich einen Cardreader an den PC anschließe und dieser an verschiedenen PCs immer einen anderen COM-Port hat.
Die Variante mit dem Gerätemanager und dem festsetzen des Ports ist keine Option, da dies ja immer nur für den einzigen PC zutrifft. Ich will hingehen gerne eine allgemeine Lösung.

Ich hoffe es ist verständlich worauf ich hinaus will.

Ein Link zum nachlesen oder ein bisschen Beispielcode für mein Verständnis wären sehr hilfreich für mich.

Danke
 
Ähm, nochmal genauer:
  • Du schließt einen CardReader mittels USB/PCIe/... an einen PC an, der seinerseits COM-Ports anbietet? Und dann haben die Com-Ports die Eigenschaft, einen bestimmten 'manufacturer name' zu besitzen (den z.B. der Treiber des CardReaders herausrücken könnte) ?
  • oder: Der PC hat Com-Ports, und an einen davon schließt du einen CardReader an, und dieses "Peripheriegerät" hat einen 'manufacturer name', den man über den Com-Port abfragen kann/können soll?
 
Unter diesem Link findest du den Beispielcode. Ich hab den Code nicht getest, aber so müsste die Ausgabe aller Hardwareschnittstellen möglich sein:
Code:
import gnu.io.*;
import java.util.Enumeration;


public class ErsteSchritte {

	public static void main(String[] args) {		
	    Enumeration enumComm;
	    enumComm = CommPortIdentifier.getPortIdentifiers();
	    while (enumComm.hasMoreElements()) {
	     	System.out.println(enumComm.nextElement().getName());
	    }
	}
}

Damit das ganze funktioniert, musst du die richtigen (32/64 Bit) DLLs an die richtige Stelle kopiert haben und die RXTXcomm.jar in dein Projekt importiert haben.

Guck einfach mal, ob die Namen deinen Vorstellungen entsprechen.

LG Jérôme!
 
Zuletzt bearbeitet:
Hallo und danke für die Antwort. Das ist genau das was ich bereits habe und mir leider nichts bringt. Ich möchte nicht als Ergebnis COM1 oder COM2 oder sowas haben sondern den manufacture name des Treibers. Wenn ich als Anwender in der Software den richtigen Port wählen soll, dann muss dort ein aussagekräftiger Name sein. der COM-Port wechselt ja dann immer.
 
Also ich bin leider nie tief in Hardwaregeschichten eingestiegen, aber ich wüsste keine andere Art, einen Port zu identifizieren, also über seinen ... Port-Namen. Das Emulieren von Com-Ports eines USB-Geräts finde ich etwas seltsam, aber okay. Das Einzigste, was mir spontan einfällt, ist die Liste aller Port-Namen vor dem anschließen des Card-Readers sich zu merken und sie der Menge aller Port-Name nach dem anschließen des Card-Readers abzuziehen. Das würde aber erfordern, den User zu gewissen Aktionen / Verhaltensregeln zu bewegen.

LG
 
@JeromeC: (Win7) Also im Gerätemanager gibt's eine ganze Litanei an Informationen, wenn man auf einen Com-Port rechtsklickt und sich unter "Eigenschaften"->"Details" mal die DropDown-Box ansieht. Mit einer Win-spezifischen Bibliothek sollten sich diese Angaben eigentlich alle abfragen lassen; ggf. könnte das recht komfortabel mit einem PowerShell-Skript gelingen?
 

Zurück
Oben