Question

J'utilise api rxtx pour lire les données à partir d'un appareil GPS sur un port COM. En ce moment, je trouve le port COM en lisant un fichier de configuration et la recherche du port indiqué. Le problème que je vais avoir est que si l'appareil est débranché le port com pourrait changer alors l'utilisateur doit savoir pour modifier le fichier de configuration. J'ai écrit une application similaire à celle en c # et a pu répertorier les fenêtres nom du périphérique au lieu du port com et je pédalé à travers les ports COM jusqu'à ce que le nom du périphérique correspond au nom dans le fichier de configuration. L'utilisation que rien de méthode dans le fichier de configuration doit changer, même si le port COM étant des changements utilisés. Est-il possible de le faire avec l'api rxtx?

Merci d'avance!

Était-ce utile?

La solution

Si quelqu'un est intéressé ...

J'ai créé un service Windows en C # qui surveille une prise. Si un client se connecte à cette prise le service recueille le nom du port, et l'ID du périphérique qui est sur ce port et envoie les données dans une chaîne sur le port de com le client peut alors analyser à part la chaîne pour obtenir les données dont il a besoin.

la chaîne étant passé dans mon cas est la suivante: "ACPI \ PNP0501 * PNP0501, COM1, PCI \ VEN_8086 & DEV_29B7 & SUBSYS_02111028 & REV_02 PCI \ VEN_8086 & DEV_29B7 & SUBSYS_02111028 PCI \ VEN_8086 & DEV_29B7 & CC_070002 PCI \ VEN_8086 & DEV_29B7 & CC_0700, COM3, USB \ Vid_067b & Pid_2303 & Rev_0400 USB \ Vid_067b & Pid_2303, COM5"

Quand je l'analyse syntaxique, je peux voir que ACPI \ PNP0501 * PNP0501 est l'ID de périphérique pour COM 1, il y a trois codes appareil pour COM3, et deux appareils ids sur COM5.

Ce ne peut pas être la meilleure façon de gérer cela, mais il est assez bon pour mes besoins et il m'a sauvé de JNI. :)

Autres conseils

CommPortIdentifier.getPortIdentifiers répertorie tous les ports du système qui sont utilisables par l'API JavaComm. Itérer à travers eux pour trouver le port de votre appareil est connecté.

Si vous voulez obtenir le nom associé au dispositif sur le port COM (surtout si un pilote est installé pour fournir), vous devrez le faire avec un tantinet de la redoutée Java-> Native Interface parler aux API Windows qui collectons ces informations. C # est agréable dans la mesure où ces informations sont recueillies et fournies pour vous, mais en Java vous devez aller cette étape supplémentaire.

fonction Windows Discovery peut se révéler utile . Je ne suis pas certain exactement ce que l'API fournit cette fonctionnalité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top