新規記事の投稿を行うことで、非表示にすることが可能です。
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*の部分が引っ掛かるらしくて
エラーになるのでフォルダの全部の情報から抜き出してやるしかないのです〜
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*の部分が引っ掛かるらしくて
エラーになるのでフォルダの全部の情報から抜き出してやるしかないのです〜