반응형
간단하게 소스만 보여드릴께여
public class SerialConn {
public static void main(String[] args) throws Exception {
String[] portNames = SerialPortList.getPortNames();
for(int i=0; i< portNames.length; i++) {
System.out.println(portNames[i]);
}
SerialPort serialPort = new SerialPort("COM7");
serialPort.openPort();
serialPort.setParams(SerialPort.BAUDRATE_19200, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE);
new ReadThread(serialPort).start();
}
}
class ReadThread extends Thread{
SerialPort serial;
String temp ="";
boolean check = false;
int cnt = 0;
ReadThread(SerialPort serial){
this.serial = serial;
}
public void run() {
try {
System.err.println("");
while(true) {
byte[] read = serial.readBytes(1);
if(read != null && read.length > 0 ) {
String val = byteArrayToHex(read);
System.out.println(val);
}
}
}catch(Exception e) {
e.printStackTrace();
}
}
public static String byteArrayToHex(byte[] byteArray) {
if (byteArray == null || byteArray.length == 0) {
return null;
}
StringBuilder stringBuffer = new StringBuilder(byteArray.length * 2);
String hexNumber;
for (byte aBa : byteArray) {
hexNumber = "0" + Integer.toHexString(0xff & aBa);
stringBuffer.append(hexNumber.substring(hexNumber.length() - 2));
//stringBuffer.append(hexNumber);
}
return stringBuffer.toString();
}
}
시리얼 통신으로 연결된 데이터를 1byte씩 불러온다.
그리고 바로 new String 으로 출력하면 아마 엄청 깨져서 보일것이다.
그래서 HexString 값으로 바꿔서 출력하면 잘 보인다.!!!!
ㅎㅎㅎㅎ
아! 참고로 jar 파일을 리눅스 환경에서 사용하려면
SerialPort serialPort = new SerialPort("COM7");
이부분 안에 값을 바꿔줘야 한다.
SerialPort serialPort = new SerialPort("/dev/USB0");
이런식으로~
하세욥
반응형
'자바' 카테고리의 다른 글
자바 유닉스타임 STRING으로 변환 (0) | 2020.09.16 |
---|---|
JAVA 씨리얼 통신 송신 하기 (0) | 2020.08.25 |
DB에 Insert 이후 바로 해당 데이터 사용하기!! (0) | 2020.04.21 |
ORA-01722: invalid number 에러 !! (0) | 2020.04.02 |
자바 데이터 엑셀로 출력하기 (0) | 2020.04.01 |
댓글