1

rxtx api を使用して、com ポート経由で GPS デバイスからデータを読み取ります。現在、構成ファイルを読み取り、リストされているポートを探して、正しいcomポートを見つけています。私が抱えている問題は、デバイスが取り外された場合、com ポートが変更される可能性があるため、ユーザーは構成ファイルを変更する必要があることです。これに似たアプリを C# で作成し、com ポートの代わりに Windows デバイス名をリストすることができ、デバイス名が構成ファイルの名前と一致するまで、com ポートを繰り返しました。その方法を使用すると、使用されているcomポートが変更されても、構成ファイルで何も変更する必要はありません。rxtx APIでそれを行う方法はありますか?

前もって感謝します!

4

3 に答える 3

1

誰かが興味を持っているなら...

ソケットを監視するWindowsサービスをC#で作成しました。クライアントがそのソケットに接続すると、サービスはポート名とそのポートにあるデバイスIDを収集し、comポートを介して文字列でデータを送信し、クライアントは文字列を解析して必要なデータを取得できます。

私の場合、渡される文字列は次のとおりです。

解析すると、ACPI \ PNP0501 *PNP0501がCOM1のデバイスIDであり、COM3には3つのデバイスIDがあり、COM5には2つのデバイスIDがあることがわかります。

これはこれを処理するための最良の方法ではないかもしれませんが、それは私のニーズには十分であり、JNIから私を救いました。:)

于 2009-05-27T11:52:42.687 に答える
0

CommPortIdentifier.getPortIdentifiersは、Javacomm API で使用できるシステム内のすべてのポートを一覧表示します。それらを繰り返して、デバイスが接続されているポートを見つけます。

于 2009-05-20T06:31:51.780 に答える
0

If you want to get the name associated with the device on the COM port (particularly if a driver is installed to provide it), you'll have to do so with a smidge of the dreaded Java->Native Interface to talk to the Windows APIs that gather this information. C# is nice, in that this information is gathered and provided to you, but in Java you have to go this extra step.

Windows Function Discovery may prove useful. I'm not certain exactly what API provides this functionality.

于 2009-05-20T15:43:42.143 に答える