2016-05-20 5 views
2

私は問題に直接行きましょう。Java RXTX - シリアル通信による適切なデバイスの検出

私はArduino Uno(COM4)とArduino Mega(COM5)を持っていて、どちらもシリアルポートを通じてOSと通信しているとします。 COM4が本当にArduino Unoであることを検出して、誤って私のプログラムをCOM5ポートに接続しないようにするにはどうすればいいですか?シリアルポートに接続するプロセスは、プログラムで実行時に実行されます。

私がオンラインで見たコードhere in another SO questionと以前のコードでの私の実験では、そのデバイスが何であるかを明らかにしていないうちにすべてのシリアルポートをリストしていました。そのデバイスは、Arduino UnoまたはArduino Megaまたはその他のものになります)。

私の質問は、どのように私はこの目的を達成できますか?クロスプラットフォームが望ましいですが、そのようなことが実現できない場合は、Windowsの中でどうやって解決するかをお答えください(Windows OSを使用しているコンピュータ用にこのプログラムを開発中)

答えて

1

デバイスに、接続直後に表示されます。そのためには、デバイスのファームウェアでデバイスの識別をサポートする必要があります。

はArduinoのスケッチのloop方法defenitionにロジックを、次のようなものを追加します。

int inputData = Serial->read(); 
if (inputData == IDENTIFICATION_REQUEST) { 
    // respond with information that identify the device 
} 

次にあなたがプログラムの開発がIDENTIFICATION_REQUESTを送るに接続された機器をチェックすることができます。

関連する問題