- 浏览: 1615701 次
- 性别:
- 来自: 长春
文章分类
- 全部博客 (309)
- ext (19)
- web (13)
- PHP (19)
- 互联网新闻 (3)
- oracle (3)
- Mootools (1)
- FLEX (3)
- 人在职场 (2)
- hibernate (24)
- spring2 (1)
- J2SE (24)
- WEB_UI (14)
- 其它 (11)
- Log4J (1)
- iText (10)
- SQL (11)
- 设计模式 (3)
- lucene (6)
- 开源项目 (2)
- javascript (20)
- 软件&破解补丁 (48)
- Quartz (2)
- 解决方案 (1)
- 工作存档 (2)
- JAVA对文件操作 (2)
- C&C#&VC (1)
- struts2 (3)
- 版本控制 (2)
- 软考基础 (23)
- JBPM (2)
- velocity (4)
- javamail (3)
- HttpClient (9)
- 虚拟化技术 (2)
- 报表 (3)
- ibatis (5)
- Spring (4)
- 信用卡 (0)
- 芒果钱包 (0)
- 养卡 (0)
最新评论
-
a601962168:
...
通过JAVA与串口(RS232)通信实例 -
olive009:
...
Adobe Acrobat 9 Pro & Pro Extended 中文版/英文版 下载及破解补丁 -
overshit:
api更新了,一加filter就Callback filter ...
深入浅出CGlib-打造无入侵的类代理 -
u010778233:
写得很不错,已经用起来了,谢谢
将jdbc结果集转换成对象列表 -
924060929:
我想找就是要这个功能!!!!!!!!
velocity基础教程--2自定义ResourceLoader实现字符模板
最近了解到的需求是需要需激光打刻机进行(RS232)串口通信,
这里使用的是RXTX开源包实现的。
之前并没有用java做过串口通信,而且这方面资料不是很多。
项目实际应用中可能会采用VB开发(这个我就不会了)
只不过用java尝试一下,记个笔记,希望可以对相关开发用些帮助。
下面是实现代码
测试
你的解决了吗? 求解。。。
最近想搞个喷码抢软件,喷一串字符。。不知道如何下手。。。
这里使用的是RXTX开源包实现的。
之前并没有用java做过串口通信,而且这方面资料不是很多。
项目实际应用中可能会采用VB开发(这个我就不会了)
只不过用java尝试一下,记个笔记,希望可以对相关开发用些帮助。
下面是实现代码
package test; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.util.Date; import java.util.Enumeration; import java.util.TooManyListenersException; import gnu.io.CommPortIdentifier; import gnu.io.PortInUseException; import gnu.io.SerialPort; import gnu.io.SerialPortEvent; import gnu.io.SerialPortEventListener; import gnu.io.UnsupportedCommOperationException; public class CommUtil implements SerialPortEventListener { InputStream inputStream; // 从串口来的输入流 OutputStream outputStream;// 向串口输出的流 SerialPort serialPort; // 串口的引用 CommPortIdentifier portId; public CommUtil(Enumeration portList, String name) { while (portList.hasMoreElements()) { CommPortIdentifier temp = (CommPortIdentifier) portList.nextElement(); if (temp.getPortType() == CommPortIdentifier.PORT_SERIAL) {// 判断如果端口类型是串口 if (temp.getName().equals(name)) { // 判断如果端口已经启动就连接 portId = temp; } } } try { serialPort = (SerialPort) portId.open("My"+name, 2000); } catch (PortInUseException e) { } try { inputStream = serialPort.getInputStream(); outputStream = serialPort.getOutputStream(); } catch (IOException e) { } try { serialPort.addEventListener(this); // 给当前串口天加一个监听器 } catch (TooManyListenersException e) { } serialPort.notifyOnDataAvailable(true); // 当有数据时通知 try { serialPort.setSerialPortParams(2400, SerialPort.DATABITS_8, // 设置串口读写参数 SerialPort.STOPBITS_1, SerialPort.PARITY_NONE); } catch (UnsupportedCommOperationException 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[20]; try { while (inputStream.available() > 0) { System.out.println(inputStream.available()); int numBytes = inputStream.read(readBuffer); System.out.println(numBytes); } System.out.println(new String(readBuffer).trim()); } catch (IOException e) { e.printStackTrace(); } break; } } public void send(String content){ try { outputStream.write(content.getBytes()); } catch (IOException e) { e.printStackTrace(); } } public void ClosePort() { if (serialPort != null) { serialPort.close(); } } }
测试
package test; import gnu.io.CommPortIdentifier; import java.util.Enumeration; public class Test { public static void main(String[] args) throws InterruptedException { Enumeration portList = CommPortIdentifier.getPortIdentifiers(); //得到当前连接上的端口 CommUtil comm3 = new CommUtil(portList,"COM3"); int i = 0; while(i<5) { Thread.sleep(3000); comm3.send("hello"); i++; } comm3.ClosePort(); } }
- rxtx-2.1-7-bins-r2.zip (596 KB)
- 下载次数: 924
评论
10 楼
a601962168
2017-03-02
9 楼
wx_hello
2014-08-06
lyj286326189 写道
报错
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at test.Test.main(Test.java:10)
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at test.Test.main(Test.java:10)
你的解决了吗? 求解。。。
最近想搞个喷码抢软件,喷一串字符。。不知道如何下手。。。
8 楼
wx_hello
2014-08-06
最近想搞个喷码抢软件,喷一串字符。。不知道如何下手。。。
7 楼
wx_hello
2014-08-06
问下:
Enumeration portList = CommPortIdentifier.getPortIdentifiers(); // 得到当前连接上的端口
我在上面的代码处就报错了。。
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at test.CommUtil.main(CommUtil.java:100)
不知道如何解决。。。求大神告知。。。谢谢!
Enumeration portList = CommPortIdentifier.getPortIdentifiers(); // 得到当前连接上的端口
我在上面的代码处就报错了。。
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1030)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at test.CommUtil.main(CommUtil.java:100)
不知道如何解决。。。求大神告知。。。谢谢!
6 楼
ncx1259988
2013-10-14
这个可以支持中文吗,没弄过这个,最近要弄一个,中文不知道怎么处理
5 楼
di1984HIT
2013-05-22
我弄了一下,不错。
4 楼
di1984HIT
2013-05-22
写的不错。
3 楼
lyj286326189
2012-07-20
报错
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at test.Test.main(Test.java:10)
java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path thrown while loading gnu.io.RXTXCommDriver
Exception in thread "main" java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1738)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at gnu.io.CommPortIdentifier.<clinit>(CommPortIdentifier.java:83)
at test.Test.main(Test.java:10)
2 楼
sosyi
2010-09-03
发短信可以 打电话就找不到端口。。 郁闷中
1 楼
sosyi
2010-09-03
知道java 调用 AT指令打电话怎么写吗?
发表评论
-
Java中Calendar日期对象【笔记】
2010-02-03 09:18 1520Java中Calendar日期对象【笔记】 最近项目中用到了C ... -
JAVA常用的代理设置
2009-09-09 09:50 8237由于公司上网实行代理机制, 而最近一段时间又在研究Web上的O ... -
解析图片1D/2D码(条形码)
2009-06-26 16:07 3529看到一个有趣的东西可以解析条码的工具库 ZXING 测试了一下 ... -
初探JDK6 javax.script (javascript解析)
2009-06-04 13:40 4857初探JDK6 javax.script (javascript ... -
J2SE5.0新特性之监控与管理
2009-05-12 10:47 1740j2se 5.0使用 Java Management Exte ... -
HttpClient请求中文乱码详解
2009-02-16 14:10 38994HttpClient 请求的中文乱码问题 相关类库: comm ... -
java的socket通信的demo
2008-12-31 12:44 4210package test.socket; impor ... -
java创建系统托盘实现(swt和jdk6分别实现)
2008-12-29 21:44 4360由于jdk6之前并不支持 所以使用swt jdk6可以支持了 ... -
java与电子邮件
2008-10-07 15:23 1895java与电子邮件 -
如何通过jndi连接数据源
2008-09-22 09:43 1396// Obtain our environment nam ... -
使用+JDBC+的高级数据库操作
2008-09-19 13:27 1326使用+JDBC+的高级数据库操作 -
JSP文件下载--流方式
2008-08-11 14:14 1979<%@page language="jav ... -
apache的fileupload详解
2008-07-31 08:53 2351第1章 文件上传组件的应用与编写 1 1.1 准备实验环境 1 ... -
深入浅出CGlib-打造无入侵的类代理
2008-07-28 14:23 33659CGlib是什么? CGlib是一个强大的,高性能,高质量的C ... -
将jdbc结果集转换成对象列表
2008-07-24 13:11 6199将jdbc结果集转换成对象列表 估计hibernate就是用得 ... -
传统jdbc获取连接的通用方法
2008-06-19 14:24 2581可能是hibernate和ide的关系, 发现目前自己手写jd ... -
apache fileupload中文编码问题
2008-06-18 15:10 4484request.setCheracterEncoding( ... -
JAVA中的反射机制详解(z)
2008-04-14 09:52 1319作者:baocl JAVA反射机制 JAVA反 ... -
JAVA代码注释
2008-03-20 12:09 3316整个类文件注释 示例如下: /* * @(#)O ... -
properties属性文件的相关操作
2008-03-17 13:56 1398properties的使用 加载 Properties p ...
相关推荐
eclipse导入可以直接运行 测试代码在Test.java文件中
VB做的一个串口通信实例通过调试 可以直接修改应用的。仅供参考。
用MFC实现的RS232串口编程简单实例(包括串口参数设置 、数据发送与接收等)。
pc与rs232通信程序,串口编程
C++ 串口通信 RS232 希望对大家有所帮助
RS232串口通信的程序,在V2-pro开发板上下载运行,可通过超级终端进行测试。
使用网页读取串口电子秤的重量,使用插件方式&JS方式实现, 在网页的特定地方显示当前通过RS232链接的电子秤上的重量数据。 我的博客 java RS232串口通讯上有对此有相关方法,希望能对大家有帮助。
RS232串口通信详解
自己用C#做的RS232通讯程序...看看吧...里面纠正了网上很多看似可以的程序段...这也是自己实验过的... ----------------2020/06/08 18:16 更新分割线--------------- 已经有十年了 居然还有人需要 那就开始免费吧 ...
51单片机串口通信模拟实验,RS232串口通信
java串口通信简单例子,方便串口上位机的开发,作为引导作用
摘要:串口通信是一种广泛使用且实用的通信方式,介绍RS232串行通信的联结方式,研究利用c语言编程实现RS232串行通信的过程。结合实际应用,在约定双方串行通信协议的基础上,运用C语言开发的串行通信软件,实现了...
[008]RS232串口通信基本知识与实例.zip上位机开发VC串口学习资料源码下载[008]RS232串口通信基本知识与实例.zip上位机开发VC串口学习资料源码下载[008]RS232串口通信基本知识与实例.zip上位机开发VC串口学习资料源码...
利用GUI图形化界面实现JAVA串口通信
实测亲测xilinx fpga uart 串口rs232例子实例工程,ISE打包工程,不出错发送接收数据测试,无状态机,节省资源3根线串口,可以学习rs232串口和倍频ip core用法,字节编写,用verilog编写 基于一个xilinx的学习板子...
【工控老马出品,必属精品,亲...资源名:vb通过RS232串口读取条形码实例程序源码 资源类型:程序源代码 源码说明: 这是通过rs232串口学习VB串口通信的好例子 非常适合学习借鉴 适合人群:新手及有一定经验的开发人员
PC 机与单片机串口RS232通信实例,调试时很有用。
【亲测实用】PC与西门子PLC串口通信实例源码 文件类型:程序源代码 主要功能: PC端采用c#实现开关量输入(PPI协议,SerialPort控件) 适合人群:新手及有一定经验的开发人员
51 单片机串口通信程序,RS232串口通信 含详细例子。 含详细例子,RS232串口通信单片机接收发送数据的 C51程序,手把手教你用增强型51 实验板实现RS232 串口通信 51串口通信
java与硬件通讯的jar文件,其中包括RXTXcomm.jar(64位环境)、win32com.dll和javax.comm.properties 欢迎下载