java读取串口设备信息
来源:互联网 发布:提高环境监测数据质量 编辑:程序博客网 时间:2024/05/22 15:14
一个最简单的从串口设备读取信息实例:
关于读取串口信息的环境配置过程网上很多,大致就是:
下载javacomm20-win32.zip,解压缩。
截取网上一段配置过程:
1.网上下载javacomm20-win32.zip后,解压之。此时有用的文件有3个:comm.jar、javax.comm.properties和win32com.dll
2.Eclipse下创建JavaSerial工程,将comm.jar放在/lib/目录下,并添加至Build Path;将win32com.dll放在/目录下
3.将javax.comm.properties放在jre的lib目录下,譬如C:\Program Files\Java\jre7\lib\
但是我在配置完这些环境后,进行测试,并不能读出串口,另外,将comm.jar的路径配置到环境变量path中,将win32com.dll放在src目录下,并且在程序前面用代码手动加载配置文件:
CommDriver driver = null; String driverName = "com.sun.comm.Win32Driver"; try { driver = (CommDriver) Class.forName(driverName).newInstance(); driver.initialize(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (portId.getName().equals("COM4")) { comTest reader = new comTest(); } } }也可以用上面程序测试,如果文件加载正确,则可以读取出电脑上所有可用的串口
public class comTest implements Runnable, SerialPortEventListener { static CommPortIdentifier portId; static Enumeration portList; public static String str; InputStream inputStream; SerialPort serialPort; Thread readThread; static BigWindowServiceImpl bws; public static void main(String[] args) { CommDriver driver = null; bws=new BigWindowServiceImpl(); String driverName = "com.sun.comm.Win32Driver"; try { driver = (CommDriver) Class.forName(driverName).newInstance(); driver.initialize(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { portId = (CommPortIdentifier) portList.nextElement(); if (portId.getPortType() == CommPortIdentifier.PORT_SERIAL) { if (portId.getName().equals("COM4")) {//要读取的串口 comTest reader = new comTest(); } } } }//构造函数 public comTest() { try { serialPort = (SerialPort) portId.open("SimpleReadApp", 9600); } catch (PortInUseException e) {} try { inputStream = serialPort.getInputStream(); } catch (IOException e) {}try { serialPort.addEventListener(this);} catch (TooManyListenersException e) {} serialPort.notifyOnDataAvailable(true); try { serialPort.setSerialPortParams(9600, SerialPort.DATABITS_8, SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException e) {} readThread = new Thread(this); readThread.start(); } public void run() { try { Thread.sleep(20000); } catch (InterruptedException e) {} } public void serialEvent(SerialPortEvent event) { switch(event.getEventType()) { case SerialPortEvent.BI: case SerialPortEvent.OE: case SerialPortEvent.FE: case SerialPortEvent.PE: case SerialPortEvent.CD: case SerialPortEvent.CTS: case SerialPortEvent.DSR: case SerialPortEvent.RI: case SerialPortEvent.OUTPUT_BUFFER_EMPTY: break; case SerialPortEvent.DATA_AVAILABLE: byte[] readBuffer = new byte[15]; try { while (inputStream.available() > 0) { int numBytes = inputStream.read(readBuffer); } str=new String(readBuffer); System.out.print(str); if(str!=null){ //str是从串口读取出来的数据,这里转换成了字符串,如果不为空进行一些处理 } } catch (IOException e) {} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();} break; } }}我用的是手持条码扫描机,MD62XX系列。可以读取一维码,二维码信息。当然,如果读取的信息有中文,需要进行一些处理
0 0
- java读取串口设备信息
- 通过JAVA读取串口信息
- C#读取设备信息
- c# 串口读取GPS信息
- java读取串口数据
- 读取usb设备描述信息
- 读取设备信息到文件
- IOS -iphone设备信息读取
- C# 如何读取设备信息
- C# 如何读取设备信息
- 串口同步和异步的读取与串口设备编程
- 串口读取与串口设备编程搜集内容总结
- 串口读取磁条信息显示不正常!!!
- Linux下串口信息的读取
- golang实现从串口读取GPS信息
- VS2008环境下获取设备串口号及设备信息
- java 获取设备信息
- JAVA获得设备信息
- ZOJ 3870 Team Formation 位运算
- RCP添加帮助插件
- stl中的vector,list deque和map的区别
- 如何在网页中禁止使用鼠标右键?几种方法和大家分享
- Apache & Servlet (卡车与桶的关系)
- java读取串口设备信息
- Hadoop Eclipse开发环境设置
- [学习笔记]Objective-C与C学习交接(1)
- oracle的工作机制
- Android五大布局
- lua基本函数库
- 6.继承GenericServlet和继承HttpServlet
- BufferedReader和BufferedWriter
- Android实现Banner界面广告图片循环轮播(包括实现手动滑动循环)