- 浏览: 1635173 次
- 性别:
- 来自: 长春
文章分类
- 全部博客 (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)
- 下载次数: 931
评论
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 1581Java中Calendar日期对象【笔记】 最近项目中用到了C ... -
JAVA常用的代理设置
2009-09-09 09:50 8317由于公司上网实行代理机制, 而最近一段时间又在研究Web上的O ... -
解析图片1D/2D码(条形码)
2009-06-26 16:07 3588看到一个有趣的东西可以解析条码的工具库 ZXING 测试了一下 ... -
初探JDK6 javax.script (javascript解析)
2009-06-04 13:40 4911初探JDK6 javax.script (javascript ... -
J2SE5.0新特性之监控与管理
2009-05-12 10:47 1788j2se 5.0使用 Java Management Exte ... -
HttpClient请求中文乱码详解
2009-02-16 14:10 39128HttpClient 请求的中文乱码问题 相关类库: comm ... -
java的socket通信的demo
2008-12-31 12:44 4271package test.socket; impor ... -
java创建系统托盘实现(swt和jdk6分别实现)
2008-12-29 21:44 4419由于jdk6之前并不支持 所以使用swt jdk6可以支持了 ... -
java与电子邮件
2008-10-07 15:23 1955java与电子邮件 -
如何通过jndi连接数据源
2008-09-22 09:43 1449// Obtain our environment nam ... -
使用+JDBC+的高级数据库操作
2008-09-19 13:27 1378使用+JDBC+的高级数据库操作 -
JSP文件下载--流方式
2008-08-11 14:14 2047<%@page language="jav ... -
apache的fileupload详解
2008-07-31 08:53 2428第1章 文件上传组件的应用与编写 1 1.1 准备实验环境 1 ... -
深入浅出CGlib-打造无入侵的类代理
2008-07-28 14:23 33816CGlib是什么? CGlib是一个强大的,高性能,高质量的C ... -
将jdbc结果集转换成对象列表
2008-07-24 13:11 6308将jdbc结果集转换成对象列表 估计hibernate就是用得 ... -
传统jdbc获取连接的通用方法
2008-06-19 14:24 2632可能是hibernate和ide的关系, 发现目前自己手写jd ... -
apache fileupload中文编码问题
2008-06-18 15:10 4541request.setCheracterEncoding( ... -
JAVA中的反射机制详解(z)
2008-04-14 09:52 1371作者:baocl JAVA反射机制 JAVA反 ... -
JAVA代码注释
2008-03-20 12:09 3386整个类文件注释 示例如下: /* * @(#)O ... -
properties属性文件的相关操作
2008-03-17 13:56 1444properties的使用 加载 Properties p ...
相关推荐
2. `comm.jar`:这是Java串口通信的API库,包含了Java串口通信所需的类和接口。比如`javax.comm.CommPortIdentifier`用于识别可用的串口,`javax.comm.ParallelPort`和`javax.comm.SerialPort`分别代表并行和串行...
在Java中处理RS232通信,通常需要借助第三方库,如RXTX库,它为Java提供了访问串口的功能。 在提供的文件中,“RS232Util.java”很可能包含了实现RS232通信的核心工具类。这个类可能包含初始化串口、设置波特率、...
4. **串口通信实例分析**:通过JavaRs232Case.exe学习具体的串口通信代码实现。 5. **串口调试工具**:学习如何使用“串口小助手”这类工具进行通信监控和调试。 熟悉这些知识点对于开发涉及串口通信的Java应用程序...
Android系统本身并不直接支持串口通信,但可以通过JNI(Java Native Interface)或者第三方库来实现。 **Android Studio中的串口通信实现** 1. **使用JNI** 通过JNI,可以在Java代码中调用C或C++编写的本地方法来...
在本实例中,SWING被用来设计交互式的串口通信程序的界面,用户可以通过这些界面元素与串口设备进行交互。 接下来是**串口设置**,这是串行通信的基础。串口通常指的是符合RS-232标准的接口,用于设备间的通信。在...
然而,对于某些特定的硬件交互,如串口通信(RS232),原生Java API往往无法满足需求,这时就需要借助JNI(Java Native Interface)来实现。本文将详细讲解如何在Android应用中使用JNI封装串口通讯,并通过Java调用...
在“SerialportSample”项目中,开发者可能使用了C#、Python、Java或其他编程语言中的SerialPort类库来实现RS232通信。这些库通常提供打开、关闭串口,设置波特率、数据位、停止位和校验位,以及读写数据的方法。...
RS232C标准是由电子工业协会EIA于1969年制定的一项用于定义数据终端设备(DTE)与数据通信设备(DCE)之间接口电气特性的规范。它在个人计算机通信中扮演着极其重要的角色。 **信号特性**:为了确保准确的数据发送和...
Java串口编程是Java开发中一个重要的领域,尤其在物联网(IoT)、嵌入式系统和设备通信中,它扮演着关键角色。本资源包包含的8个文件旨在帮助开发者全面理解并掌握这一技术。以下是对每个知识点的详细解释: 1. **...
总结来说,通过Java和RXTX库,我们可以实现与电子秤的RS232接口进行通信,接收来自电子秤的数据,并在需要的时候将这些数据分发给感兴趣的应用组件。这通常涉及配置串口参数、打开串口、设置监听器和处理接收到的...
"java连串口的链库和依赖"这个主题涉及到的关键技术点是RXTX库,它是一个开源的Java库,专门用于处理串行(RS232)和并行(IEEE 1284.4)通信。RXTX提供了与操作系统底层交互的能力,使得Java程序员能够方便地访问...
然后,通过Java代码实例化`SerialPort`对象,设置波特率、校验位、数据位等通信参数,即可开启与串口设备的通信。 `seroUtils.jar` 可能是作者自定义的串口工具类库,它可能封装了rxtx库的一些常用功能,如打开、...
在提供的压缩包中,`comm.jar`是包含`comm`包相关类的库文件,用于编译和运行Java串口通信程序。`COMM1.1_Beta_license.txt`很可能是`comm`包的许可协议文件,详细规定了该库的使用条件和限制。`README.txt`可能包含...
总之,"明华读卡器Java例程"是一个涵盖硬件接口、通信协议、数据处理等多个IT领域的实践案例,通过学习和理解这个例程,开发者不仅可以掌握与读卡器的交互,还能深化对Java编程和嵌入式系统开发的理解。
它为Java提供了一种与操作系统底层交互的接口,使得开发者可以在Java程序中轻松实现串行端口(RS232)和并行端口(LPT)的操作。在Java中,由于其跨平台的特性,串行通信通常比其他语言更为复杂,而RXTX库的存在则...
标题中的“USB232Demo.rar”提示我们这是一个与USB到串行通信相关的示例程序或库,可能是一个用于演示如何使用USB转RS232设备的软件包。描述中的“基于D2xx.jar串口通信”进一步明确了这个压缩包是利用D2xx驱动库...
该芯片能够提供USB接口与串行通信接口之间的转换,使得不支持USB的设备可以通过USB接口与计算机进行通讯,极大地扩展了设备的连接方式。 在Android系统中,串口助手软件可以用于查看和发送串口数据,是调试和开发的...
串口通讯,通常指的是RS232串行接口,是一种广泛用于设备间数据传输的标准。在工业控制、嵌入式系统以及早期的计算机连接中,RS232接口非常常见。它定义了数据信号、握手信号、电源等的电平标准和引脚分配,允许两个...
短信猫通常提供串行接口(如RS232)或者USB接口,使得开发者可以通过编程方式控制其进行短信操作。 1. **利用WebService发短信**: WebService是一种基于互联网的,平台无关的交互方式,允许不同系统之间交换数据...
它通过串行接口(如RS232)与计算机连接,然后通过特定的API或SDK来实现与计算机软件的交互。在Java编程环境中,我们可以利用短信猫的驱动库和API来编写程序,实现短信的发送和接收功能。 本项目提供的"短信猫代码...