JAVA对串口设备进行操作
来源:互联网 发布:程序员搞笑小品剧本 编辑:程序博客网 时间:2024/06/05 13:51
转自:http://blog.csdn.net/kingvan/article/details/53843
做金融终端开发经常需要写一些设备的控制程序,提取出了一个串口操作的基本框架以防日后忘记,当然针对具体串口设备可能要作相关修改。
import java.io.*;
import javax.comm.*;
public class SomeSerial implements SerialPortEventListener {
private byte[] readinfo;
private InputStream in;
private OutputStream out;
private SerialPort serialPort = null;
public SomeSerial(String port) throws Exception {
CommPortIdentifier portId = CommPortIdentifier.getPortIdentifier(port);
serialPort = (SerialPort)portId.open("Serial_Communication", 2000);
serialPort.setSerialPortParams(9600,
SerialPort.DATABITS_8,
SerialPort.STOPBITS_1,
SerialPort.PARITY_NONE);
}
public synchronized void serialEvent(SerialPortEvent event) {
switch (event.getEventType()) {
case SerialPortEvent.BI:
break;
case SerialPortEvent.OE:
break;
case SerialPortEvent.FE:
break;
case SerialPortEvent.PE:
break;
case SerialPortEvent.CD:
break;
case SerialPortEvent.CTS:
break;
case SerialPortEvent.DSR:
break;
case SerialPortEvent.RI:
break;
case SerialPortEvent.OUTPUT_BUFFER_EMPTY:
break;
case SerialPortEvent.DATA_AVAILABLE:
synchronized (this) {
try {
int count = in.available();
readinfo = new byte[count];
in.read(readinfo);
}
catch (Exception e) {
e.printStackTrace();
}
this.notify();
}
break;
}
}
public int nstop() throws Exception {
in.close();
out.close();
serialPort.close();
return 0;
}
private void getData() throws Exception {
serialPort.removeEventListener();
serialPort.addEventListener(this);
serialPort.notifyOnDataAvailable(true);
in = serialPort.getInputStream();
}
public synchronized int doSomething() throws Exception {
try {
synchronized (this) {
out = serialPort.getOutputStream();
//发送指令;
out.write(new byte[] {...});
out.flush();
getData();
wait();
//可继续进行处理
...
}
}
catch (Exception e) {
e.printStackTrace();
return 1;
}
return 0;
}
}
- Java对串口设备进行操作
- JAVA对串口设备进行操作
- java设备端口(串口)操作
- IOCTL_SCSI_PASS_THROUGH_DIRECT的使用对设备进行操作
- java对excel进行操作
- java对Date进行操作
- java对mongodb进行操作
- java对redis进行操作
- dev_name和dev_set_name对设备的名字进行操作
- 安卓如何对外置设备进行读写操作
- Java对MySQL数据库进行操作【java】
- 对串口的操作
- Java 对操作系统任务栏进行操作
- java对文件进行加密解密操作
- JAVA中对LIST进行排序操作
- 利用java对excel进行读写操作
- 使用Java API对HBase进行操作
- 通过Java Api对Hbase进行操作
- c#winform窗体之间传递参数问题总结
- ffff
- uCOS51移植心得
- Xiao
- 高通Android平台硬件调试之Camera篇
- JAVA对串口设备进行操作
- DEV11.2.5中DXValidationProvider
- Eclipse 3.7 字体变小 解决办法
- 马化腾:互联网新时代的晨光——《认知盈余》推荐序
- J2ME程序在手机上测试记录下调试信息
- KEIL C编译器常见警告与错误信息的解决办法
- Objective-C 编程语言(3) 定义类--- 类的实现
- VirtualBox 网络连接
- ANSI X9.8 计算PinBlock