資源簡介
本次測試使用的環境:
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版
評論
共有 條評論