Domanda

Sto usando api RXTX per leggere i dati da un dispositivo GPS su una porta COM. In questo momento mi sto trovando la porta COM corretta dalla lettura di un file di configurazione e cercando la porta elencata. Il problema che sto avendo è che se il dispositivo è scollegato la porta COM potrebbe cambiare quindi l'utente deve sapere per modificare il file di configurazione. Ho scritto un app simile a questo in C # ed è stato in grado di elencare il nome del dispositivo Windows anziché la porta COM e ho pedalato attraverso le porte COM fino a quando il nome del dispositivo abbinato il nome nel file di configurazione. Usando questo metodo nulla nel file di configurazione deve cambiare, anche se la porta COM essendo cambiamenti impiegati. C'è un modo per farlo con l'API RXTX?

Grazie in anticipo!

È stato utile?

Soluzione

Se qualcuno è interessato ...

ho creato un servizio di Windows in C # che controlla una presa di corrente. Se un client si connette a quella presa il servizio raccoglie nome della porta, e dispositivo di identificazione che è su quella porta e invia i dati in una stringa sopra la porta com il cliente può quindi analizzare a parte la stringa per ottenere i dati di cui ha bisogno.

Nel mio caso viene passata la stringa è: "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"

Quando ho analizzarlo vedo che ACPI \ pnp0501 * pnp0501 è l'ID del dispositivo per COM 1, ci sono tre device id per COM3, e due ID di dispositivo su COM5.

Questo non può essere il modo migliore per gestire questo, ma è abbastanza buono per le mie esigenze e mi ha salvato da JNI. :)

Altri suggerimenti

CommPortIdentifier.getPortIdentifiers elenca tutte le porte del sistema che sono utilizzabili dall'API JavaComm. Iterare attraverso di loro per trovare la porta il dispositivo è collegato.

Se si desidera ottenere il nome associato al dispositivo sulla porta COM (in particolare se un driver è installato a fornirle), dovrete farlo con uno smidge del temuto Java-> interfaccia nativa di parlare alle API di Windows che raccolgono queste informazioni. C # è bello, in quanto queste informazioni vengono raccolte e fornito a voi, ma in Java si deve andare questo ulteriore passaggio.

di Windows Discovery Funzione può risultare utile . Io non sono certo esattamente quello API fornisce questa funzionalità.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top