java使用rxtx串口通信配置及简单示例

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


你可能感兴趣的:(java串口通讯,java,学习笔记)