アフィリエイト広告を利用しています
ファン
検索
<< 2016年12月 >>
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
月別アーカイブ
プロフィール
DDダッシュさんの画像
DDダッシュ
ブログ
プロフィール

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2016年12月24日

デバイス名をリンクさせた名前でjavaから接続できない!!??

前回USBポートを指定してデバイス名を固定できたけど、直接この名前でjavaのプログラムを組んでも
javaのほうでポートを開いてくれないのでjava側でもうひと工夫必要が必要だった
(java側はyytUSB0と1とかでしか認識してくれないんですよ)

コマンドプロンプトからls -laで情報を取ると

デバイス名を固定しているので
lrwxrwxrwx 1 root root 7 9月 18 20:47 /dev/ttyUSB_P2 -> ttyUSB1
のような情報が取得できる

これを利用して
private static String Conv_USB_COM(String SetDevPort){
Runtime runtime = Runtime.getRuntime();
Process p ;
String result;
try {
p = runtime.exec("ls -la /dev");

InputStream is = p.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
while ((result = br.readLine()) != null) {
if( result.indexOf(SetDevPort)>0){
System.out.println(result);
String _right = result.substring(result.length() - 7, result.length()); //右側から7文字取得
System.out.println(_right);//これでここにttyUSB0〜3がでてくる!
}
}


} catch (IOException ex) {
}
}

みたいな関数を作ってUSBポートと実際のデバイス名を紐付けしてやればjavaで固定のCOMポートとして使うことができるようになる。

COMポート名はINIファイル(properties)で渡してやれば汎用的に使えます。

注意としては
コマンドプロンプトでは
ls -la /dev/ttyUSB*
ってやってあげればttyUSBだけ取得できたんだけど
javaから実行するとttyUSB*の部分が引っ掛かるらしくて
エラーになるのでフォルダの全部の情報から抜き出してやるしかないのです〜




×

この広告は30日以上新しい記事の更新がないブログに表示されております。