Java
2007.12.13 16:44

Java communication API in Linux

조회 수 33762 추천 수 0 댓글 2
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
java.sun.com 사이트에서 Java Communication API 를 다운 받는다.

comm3.0_u1_linux.zip 파일을 압축을 풀면 commapi 이라는 디렉토리가 생긴다.
commapi 디렉토리안에 docs, examples, jar, lib 디렉토리가 있다.

[wittgens@fedora java_packages]$ unzip comm3.0_u1_linux.zip
...
  inflating: commapi/lib/libLinuxSerialParallel.so
  inflating: commapi/lib/libLinuxSerialParallel_g.so
[wittgens@fedora java_packages]$ ls
comm3.0_u1_linux.zip  commapi
[wittgens@fedora java_packages]$ cd commapi/
[wittgens@fedora commapi]$ ls
docs  examples  jar  lib
[wittgens@fedora commapi]$ sudo cp docs/javax.comm.properties $JAVA_HOME/jre/lib/
[wittgens@fedora commapi]$ sudo cp lib/*.so $JAVA_HOME/jre/lib/ext/
[wittgens@fedora commapi]$ sudo cp jar/comm.jar $JAVA_HOME/jre/lib/ext/

[wittgens@fedora examples]$ cd Simple/
[wittgens@fedora Simple]$ java SimpleWrite
port /dev/term/a not found.

위와 같은 에러가 발생할 것이다. linux에서는 시리얼 포트가 /dev/ttyS0, /dev/ttyS1, ... 으로 잡히기 때문에 SimpleWrite.java 파일을 편집하여 /dev/term/a 라는 부분을 /dev/ttyS0로 변경해준다.

[wittgens@fedora Simple]$ javac SimpleWrite.java
[wittgens@fedora Simple]$ sudo java SimpleWrite
Found port /dev/ttyS0
Exception in thread "main" java.io.IOException: Not all params are supported by kernel
        at com.sun.comm.LinuxSerial.nativeSetSerialPortParams(Native Method)
        at com.sun.comm.LinuxSerial.setSerialPortParams(LinuxSerial.java:346)
        at SimpleWrite.main(SimpleWrite.java:93)

변경해 줘도 위와 같은 예외가 발생한다.
무시한다.ㅋㅋ 이와 관련하여 리눅스 포럼에 많이 나와있을 것이다. 참조하여 해결하기 바란다.ㅋ


  • ?
    비트겐스 2007.12.13 16:48
    이벤트 리스너로 처리하지 않으면, 시리얼로 부터 read시 데이터를 읽어버리는 경우가 발생하여
    이벤트 리스너를 추가하여 하나의 SerialPort를 wrapping 한 클래스를 만들었음.
  • ?
    비트겐스 2007.12.27 13:35
    finally { } 블록을 추가하여 한번더 setSerialPortParams를 호출해준다.

Board Pagination Prev 1 Next
/ 1