2016-05-28 1 views
3

UNIXのようなオペレーティングシステムでは、/dev/ttyUSB0などのファイルを使用してシリアルポートにアクセスできます。このquestionによれば、COM1:などのファイル名を使用してシリアルポートにアクセスすることができます。そのようなファイル名のJava代替手段は何ですか?私はSerial Communication自由を使用したくありません。JavaのCOMポートファイルを指定

編集

私は私のコードは次のようになりたいのはこれです。

String INPUT_PORT_FILE_NAME = linux?"/dev/ttyUSB0":"<File name of comport>" 

File in = new File(INPUT_PORT_FILE_NAME) 

私が望むのは、デバイスファイルの代わりに未亡人です。

EDIT 私はLinuxマシンを使用しています。コードを簡単に移植できるようにしたいと考えています。

+0

参照してください[this](http://stackoverflow.com/questions/21799178/ –

答えて

4

はい、Linuxでは、デバイスファイル/dev/ttyS0/dev/ttyUSB0などを使用してシリアルポートにアクセスできます。それは実際に通信するために使用されるハードウェア/チップ、さらには配布にも依存します。

同じハードウェアがプログラムで使用されている場合は、部分的に達成できます。 Linuxでシリアルコミュニケーションライブラリと実際の物理シリアルポートを使って作業していたとき、番号3がn = 3を意味するように設定でポート番号を使用したので、ウィンドウで "COM" +(1 + n)を開くか "/ dev/ttyS" + n Linuxで。たぶん似ては/ dev /は、ttyUSB上のポートへのアクセスにあなたのために使用することができ、「+ N

しかし、ポート2は、デュアルブート後に同じコンピュータ上で/dev/ttyS1とCOM2になることを何も付与者がありません。

方法ではありませんシリアル通信ライブラリを使用することは難しいですし、Javaで移植性が必要な場合はお勧めしません。私はオペレーティングシステムに応じて異なるポート設定をお勧めします。

+0

私のコードのようにしたいものを追加しました。私のポートにアクセスするために 'File' read writeを使いたかったのです。私はLinux上のデバイスファイルにどのようにアクセスできますか。 –

+0

{Input、Output}ストリームとスレッドを使用するのは簡単な方法ではありません。シリアルポートは、「バイトのサイズ」が分かっている通常のファイルではありません。それは変化し、データの準備ができたらフックを実装して捕捉する必要があります。 – TadejP

+0

要するに、あなたはjavaでできるように、ウィンドウで通常のファイルとしてアクセスできないということですか? –

関連する問題