java使用rxtx序列槽通信配置及簡單示例
1下載下傳
官方位址:http://rxtx.qbang.org/wiki/index.php/Download,官方下載下傳位址中有版本和類型選擇,分window和linux等,根據需要下載下傳。
fizzed網下載下傳位址:http://fizzed.com/oss/rxtx-for-java該資源下載下傳位址網絡比官網通暢,其中也有各個版本和類型的選擇
2配置
将下載下傳到zip解壓,取其中rxtxSerial.dll和 RXTXcomm.jar 檔案,拷貝到如下目錄中。%JAVA_HOME%表示jdk的安裝根目錄
a.複制rxtxSerial.dll 到%JAVA_HOME%\jre7/bin/
b.複制RXTXcomm.jar 到%JAVA_HOME% \jre7/lib/ext/
3 簡單代碼示例
package com.supre.idisk.util;
import java.io.IOException;
import java.io.OutputStream;
import javassist.bytecode.ByteArray;
import gnu.io.CommPortIdentifier;
import gnu.io.NoSuchPortException;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.UnsupportedCommOperationException;
public class TestRxtx {
public static final byte[] init = new byte[] { 0x1B, 0x40 };
public static final byte[] clean = new byte[] { 0x0C };
public static final byte[] pre_display = new byte[] { 0x1B, 0x51, 0x41 };
public static final byte[] post_display = new byte[] { 0x0D };
public static void displayCustomerScreen(String data, byte[] mode) {
try {
CommPortIdentifier portIdentifier = CommPortIdentifier.getPortIdentifier("COM2"); //序列槽号
SerialPort serialPort = (SerialPort) portIdentifier.open("test",5000); //使用者 和 最大響應時長(ms)
serialPort.setSerialPortParams(115200, //波特率
SerialPort.DATABITS_8, //校驗位
SerialPort.STOPBITS_1, //資料位
SerialPort.PARITY_NONE); //停止位
serialPort.setFlowControlMode(SerialPort.FLOWCONTROL_NONE);
try {
OutputStream outputStream = serialPort.getOutputStream();
if (mode != null) {
outputStream.write(mode);
}
if (data != null) {
outputStream.write(pre_display);
outputStream.write(data.getBytes());
outputStream.write(post_display);
}
outputStream.flush();
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
serialPort.close();
}
} catch (NoSuchPortException e) {
e.printStackTrace();
} catch (PortInUseException e) {
e.printStackTrace();
} catch (UnsupportedCommOperationException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
displayCustomerScreen(null,"abffff0000010d0a".getBytes());
}
}
參考博文: http://my.oschina.net/baishi/blog/170014