Hi!
über diese
USB to UART Bridge VCP Drivers
Treiber schließe ich ein Gerät über USB an die serielle Schnittstelle an.
Über die Bibliothek SerialPort von SerialIO, die javax.comm wrapt und quasi plattformunabhängig macht kann ich wunderbar auf das Gerät zugreifen.
Es ergibt sich aber ein großes Problem: Ich weiss nicht an welchem COM-Port mein Gerät ist.
(Momentan gebe ich mir die COM-Ports aus und weiß dann - da es der einzige bzw der mit der höheren Nummer ist - zu welchem Port ich connecten muss und mach das dann manuell)
Böse wäre nun zu allen COM-Ports auslesen und nach den richtigen Daten zu scannen. Müsste aufgrund eines speziellen Protokolls super funktionieren. Hier kann ich aber fatalerweise für kurze Zeit einen falschen COM-Port in Beschlag nehmen.
Wie komme ich also an die Info an welchem COM-Port mein Gerät hängt?
Über ein C#-Tool mit WMI habe ich es hinbekommen, indem ich die USB-Ports auslese, das mit der richtigen Vendor und Produkt-ID nehme und über die DeviceID den COM-Port erhalte.
Kann ich das irgendwie auch plattformunabhängig herausfinden?
Wenn nicht, was ist die schnellste/einfachste Möglichkeit für Windows (Mac, Linux)?
Falls ich in Java über USB zugreife - kann ich dann auch den COM-Port auslesen wie über WMI? Welche USB-Library verwende ich dann? Gibt es evlt eine wie SerialIO, die alle möglichen Betriebssysteme handled?
Mir fallen also folgende Möglichkeiten ein:
- unter Win eigenes C# Tool aufrufen (was mach ich bei einem Mac/Linux etc.?)
- auf WMI über Java zugreifen (was mach ich bei anderen Systemen?)
- Java USB Library verwenden (welche? unterstützte Plattformen? komme ich an den COM-Port?)
- ??? (evtl irgendetwas ganz simples wie System.getProperty... oder evtl. direkt über den COM-Port irgendetwas wie die Seriennummer zu erhalten)
Ich bin für jeden Tip dankbar, wie ich möglichst ohne zusätzliche Libraries, möglichst plattformunabhängig (wenn nicht möglich mindestens für Win/Mac) möglichst einfach herausfinden kann an welchem Port mein Gerät hängt. Habe wie gesagt die Treiberinformationen (siehe oben - CP210), Vendor & Produkt-ID und Seriennummer.
über diese
USB to UART Bridge VCP Drivers
Treiber schließe ich ein Gerät über USB an die serielle Schnittstelle an.
Über die Bibliothek SerialPort von SerialIO, die javax.comm wrapt und quasi plattformunabhängig macht kann ich wunderbar auf das Gerät zugreifen.
Es ergibt sich aber ein großes Problem: Ich weiss nicht an welchem COM-Port mein Gerät ist.
(Momentan gebe ich mir die COM-Ports aus und weiß dann - da es der einzige bzw der mit der höheren Nummer ist - zu welchem Port ich connecten muss und mach das dann manuell)
Böse wäre nun zu allen COM-Ports auslesen und nach den richtigen Daten zu scannen. Müsste aufgrund eines speziellen Protokolls super funktionieren. Hier kann ich aber fatalerweise für kurze Zeit einen falschen COM-Port in Beschlag nehmen.
Wie komme ich also an die Info an welchem COM-Port mein Gerät hängt?
Über ein C#-Tool mit WMI habe ich es hinbekommen, indem ich die USB-Ports auslese, das mit der richtigen Vendor und Produkt-ID nehme und über die DeviceID den COM-Port erhalte.
Kann ich das irgendwie auch plattformunabhängig herausfinden?
Wenn nicht, was ist die schnellste/einfachste Möglichkeit für Windows (Mac, Linux)?
Falls ich in Java über USB zugreife - kann ich dann auch den COM-Port auslesen wie über WMI? Welche USB-Library verwende ich dann? Gibt es evlt eine wie SerialIO, die alle möglichen Betriebssysteme handled?
Mir fallen also folgende Möglichkeiten ein:
- unter Win eigenes C# Tool aufrufen (was mach ich bei einem Mac/Linux etc.?)
- auf WMI über Java zugreifen (was mach ich bei anderen Systemen?)
- Java USB Library verwenden (welche? unterstützte Plattformen? komme ich an den COM-Port?)
- ??? (evtl irgendetwas ganz simples wie System.getProperty... oder evtl. direkt über den COM-Port irgendetwas wie die Seriennummer zu erhalten)
Ich bin für jeden Tip dankbar, wie ich möglichst ohne zusätzliche Libraries, möglichst plattformunabhängig (wenn nicht möglich mindestens für Win/Mac) möglichst einfach herausfinden kann an welchem Port mein Gerät hängt. Habe wie gesagt die Treiberinformationen (siehe oben - CP210), Vendor & Produkt-ID und Seriennummer.