Java プログラムが、コンピュータに接続されているシリアル ポート デバイスを検出できません。
Windows 7 (64 ビット) コンピューターを使用しています ()。
シリアル ポート デバイスは、37860 ボーでテキスト GPS 文字列を出力する GPS モジュールで、ラップトップの USB ポートに接続されたシリアル USB コンバータに接続されています。
Windows コントロール パネル/デバイス マネージャーでは、このデバイスは COM7 として表示されます。
コンピュータで実行されている GPS アプリケーション「MiniGPS」は、COM7 として GPS チップと双方向で通信できます。
Processing のアプリケーションは、コンピューターに 2 つのシリアル ポート (com3 と com7、com3 はマウス) があることを検出できます。
GPS からシリアル ポートからデータを収集するアプリケーションを Java (または C++) で作成したいと考えています。
次のコード (以下) をどこかからコピーしましたが、同じまたは類似のコードが他の多くの質問に既に表示されている場所がわかりません。
これを実行すると、portList列挙が空に戻り、シリアル ポートがまったく見つかりません。
一度に 1 つのプログラムしかシリアル ポートを認識できないことがわかっています。これを試す前に、デバイス マネージャー アプリ、GPS アプリ、および処理アプリをシャットダウンしましたが、それでもCommPortIdentifierオブジェクトによって識別されるシリアル ポートはありません。
助言がありますか ?
public class SimpleRead implements Runnable, SerialPortEventListener {
static CommPortIdentifier portId;
static Enumeration portList;
InputStream inputStream;
SerialPort serialPort;
Thread readThread;
public static void main(String[] args)
{
System.out.println("Hello World");
portList = CommPortIdentifier.getPortIdentifiers();
JOptionPane.showMessageDialog(null,"portlist :"+portList.hasMoreElements());
int numelt=0 ;
while (portList.hasMoreElements())
{
numelt++;
portId = (CommPortIdentifier) portList.nextElement();