资源简介
本次测试使用的环境:
Win 7 旗舰版 64位
Eclipse 3.7
Java 1.6
Comm2.0.jar(串口通信的扩展库)
AccessPort 1.37
串口调试工具(精装版V3.6)
VSPD 工具 (创建虚拟串口用)
注:
因为操作系统是64位的win7,accessport 使用的是 1.37
Comm包是一个扩展包,需要放置到jre的lib/ext 目录下
关于创建虚拟串口和串口调试工具的使用请参考:http://wenku.baidu.com/view/0851b5c408a1284ac850438c.html
代码片段和文件信息
package org.serial;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Enumeration;
import java.util.TooManyListenersException;
import javax.comm.CommPortIdentifier;
import javax.comm.PortInUseException;
import javax.comm.SerialPort;
import javax.comm.SerialPortEvent;
import javax.comm.SerialPortEventListener;
/**
* @项目名称 :illegalsms
* @文件名称 :SerialPort.java
* @所在包 :org.serial
* @功能描述 :
* 串口类
* @创建者 :集成显卡 1053214511@qq.com
* @创建日期 :2012-9-13
* @修改记录 :
*/
public class DSerialPort implements Runnable SerialPortEventListener {
private String appName = “串口通讯测试[集成显卡2012]“;
private int timeout = 2000;//open 端口时的等待时间
private int threadTime = 0;
private CommPortIdentifier commPort;
private SerialPort serialPort;
private InputStream inputStream;
private OutputStream outputStream;
/**
* @方法名称 :listPort
* @功能描述 :列出所有可用的串口
* @返回值类型 :void
*/
@SuppressWarnings(“rawtypes“)
public void listPort(){
CommPortIdentifier cpid;
Enumeration en = CommPortIdentifier.getPortIdentifiers();
System.out.println(“now to list all Port of this PC:“ +en);
while(en.hasMoreElements()){
cpid = (CommPortIdentifier)en.nextElement();
if(cpid.getPortType() == CommPortIdentifier.PORT_SERIAL){
System.out.println(cpid.getName() + “ “ + cpid.getCurrentOwner());
}
}
}
/**
* @方法名称 :selectPort
* @功能描述 :选择一个端口,比如:COM1
* @返回值类型 :void
* @param portName
*/
@SuppressWarnings(“rawtypes“)
public void selectPort(String portName){
this.commPort = null;
CommPortIdentifier cpid;
Enumeration en = CommPortIdentifier.getPortIdentifiers();
while(en.hasMoreElements()){
cpid = (CommPortIdentifier)en.nextElement();
if(cpid.getPortType() == CommPortIdentifier.PORT_SERIAL
&& cpid.getName().equals(portName)){
this.commPort = cpid;
break;
}
}
openPort();
}
/**
* @方法名称 :openPort
* @功能描述 :打开SerialPort
* @返回值类型 :void
*/
private void openPort(){
if(commPort == null)
log(String.format(“无法找到名字为‘%1$s‘的串口!“ commPort.getName()));
else{
log(“端口选择成功,当前端口:“+commPort.getName()+“现在实例化 SerialPort:“);
try{
serialPort = (SerialPort)commPort.open(appName timeout);
log(“实例 SerialPort 成功!“);
}catch(PortInUseException e){
throw new RuntimeException(String.format(“端口‘%1$s‘正在使用中!“
commPort.getName()));
}
}
}
/**
* @方法名称 :checkPort
* @功能描述 :检查端口是否正确连接
* @返回值类型 :void
*/
private void checkPort(){
if(commPort == null)
throw new RuntimeException(“没有选择端口,请使用 “ +
“selectPort(String portName) 方法选择端口“);
if(serialPort == null){
throw new RuntimeException(“SerialPort 对象无效!“);
}
}
/**
* @方法名称 :write
* @功能描述 :向端口发送数据,请在调用此方法前 先选择端口,并确定SerialPort正常打开!
* @返回值类型 :void
* @param messa
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 695296 2012-09-13 17:05 基于java的串口通信\java的串口通讯.doc
文件 352 2012-09-13 14:11 基于java的串口通信\serial_java\.classpath
文件 386 2012-09-07 09:13 基于java的串口通信\serial_java\.project
文件 598 2012-09-07 09:13 基于java的串口通信\serial_java\.settings\org.eclipse.jdt.core.prefs
文件 380 2012-09-13 14:13 基于java的串口通信\serial_java\about\使用说明.txt
文件 295 2012-09-13 14:11 基于java的串口通信\serial_java\bin\org\cutsms\InterceptManager.class
文件 6183 2012-09-13 16:45 基于java的串口通信\serial_java\bin\org\serial\DSerialPort.class
文件 779 2012-09-13 16:58 基于java的串口通信\serial_java\bin\org\serial\TestSerial.class
文件 28043 1998-11-15 16:00 基于java的串口通信\serial_java\lib\comm.jar
文件 467 1998-11-15 15:59 基于java的串口通信\serial_java\lib\javax.comm.properties
文件 27648 1998-11-15 16:00 基于java的串口通信\serial_java\lib\win32com.dll
文件 6605 2012-09-13 16:45 基于java的串口通信\serial_java\src\org\serial\DSerialPort.java
文件 607 2012-09-13 16:58 基于java的串口通信\serial_java\src\org\serial\TestSerial.java
文件 4945582 2012-09-13 15:48 基于java的串口通信\VSPD.zip
文件 2052187 2012-09-13 16:03 基于java的串口通信\串口调试助手 V3.6 CM精装版 .exe
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\bin\org\cutsms
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\bin\org\serial
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\src\org\serial
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\bin\org
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\src\org
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\.settings
目录 0 2012-09-14 16:56 基于java的串口通信\serial_java\about
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\bin
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\lib
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java\src
目录 0 2012-09-13 17:03 基于java的串口通信\serial_java
目录 0 2012-09-14 16:55 基于java的串口通信
----------- --------- ---------- ----- ----
7765408 27
............此处省略0个文件信息
- 上一篇:Android游戏开发疯狂战机
- 下一篇:windows经典扫雷游戏Java版
相关资源
- windows经典扫雷游戏Java版
- JAVA网吧计费管理系统191156
- Java小球躲避小游戏
- 基于java的房屋租借管理系统
- JAVA开发实战经典(名师讲坛)].李兴
- 基于SSM框架的网上书店商城项目系统
- 大话JAVA:从零基础到数据库、WEB开发
- JAVA+access综合测评系统毕业设计(源代
- JAVA后台面经.pdf
- 《Java 深度历险》合并修订 PDF(Mc G
- Java小游戏扑克牌
- JAVA飞机大战 ,附所有图片以及实验报
- 《Java设计模式》课后答案-刘伟.rar
- Java实现坦克大战小游戏.zip
- im4java-ImageMagick图片压缩处理
- 旅游平台JAVA WEB
- Java中使用 FreeMarker 生成pdf盖章合同文
- Java大学报修系统源码 Servlet+hibernate
- 读取百万级数据量的xlsx文件的java代码
- 《Java编程艺术》中文版pdf以及源代码
- 疯狂JAVA讲义课后习题解析
- 基于及J2EE的B2C电子商务系统开发论文
- Java进销存管理系统附文档
- Ajax分页-增删改查-Oracle数据库-默认
- java图书管理系统含数据库,实验报告
- JAVA程序设计_具有发牌洗牌功能的纸牌
- java开发工程师述职报告
- JAVA基于J2ME的手机游戏开发(论文+源
- javafx版高校人员管理系统
- 基于JAVA的医院挂号服务系统
评论
共有 条评论