소스전문
import gnu.io.CommPort;
import gnu.io.CommPortIdentifier;
import gnu.io.SerialPort;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class TwoWaySerialComm {
public TwoWaySerialComm() {
super();
}
private void connect(String portName) throws Exception {
System.out.printf("Port : %s\n", portName);
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier(portName);
if (portIdentifier.isCurrentlyOwned()) {
System.out.println("Error: Port is currently in use");
} else {
CommPort commPort = portIdentifier.open(this.getClass().getName(),
2000);
if (commPort instanceof SerialPort) {
SerialPort serialPort = (SerialPort) commPort;
serialPort.setSerialPortParams(57600, // 통신속도
SerialPort.DATABITS_8, // 데이터 비트
SerialPort.STOPBITS_1, // stop 비트
SerialPort.PARITY_NONE); // 패리티
// 입력 스트림
InputStream in = serialPort.getInputStream();
// 출력 스트림
OutputStream out = serialPort.getOutputStream();
(new Thread(new SerialReader(in))).start();
(new Thread(new SerialWriter(out))).start();
} else {
System.out
.println("Error: Only serial ports are handled by this example.");
}
}
}
/**
* 시리얼 읽기
*/
public static class SerialReader implements Runnable {
InputStream in;
public SerialReader(InputStream in) {
this.in = in;
}
public void run() {
byte[] buffer = new byte[1024];
int len = -1;
try {
while ((len = this.in.read(buffer)) > -1) {
System.out.print(new String(buffer, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 시리얼에 쓰기
*/
public static class SerialWriter implements Runnable {
OutputStream out;
public SerialWriter(OutputStream out) {
this.out = out;
}
public void run() {
try {
int c = 0;
System.out.println("\nKeyborad Input Read!!!!");
while ((c = System.in.read()) > -1) {
this.out.write(c);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
(new TwoWaySerialComm()).connect("COM3");
} catch (Exception e) {
e.printStackTrace();
}
}
}
에러지점
시리얼포트 클래스
소스코드를 짠 당사자한테 가장 물어보고싶은데 그분이 이메일 공개를 안하셔서 직접 물어볼수가없어서 제가 뜯어봣거든요..
오타난것도 없고 문장으로도 틀린게없어보이는데 뜨는 저런 에러가 제일 짜증나는거같아요..
저부분을 어떻게 고쳐야될까요