一、環境配置
(1)解壓複製檔案
解壓javacomm20-win32.zip
把win32com.dll複製到<JAVA_HOME>\jre\bin 和<JDK>\bin目錄下
把comm.jar複製到<JAVA_HOME>\jre\lib\ext和<JDK>\lib目錄下
把javax.comm.properties複製到<JAVA_HOME>\jre\lib和<JDK>\lib目錄下
(2)設定環境變數
CLASSPATH=<JAVA_HOME>\jre \lib\ext \comm.jar;%classpath%
(3)在Eclipse的工程中加入jar包
“工程右鍵-> properties-> java build path->libraries->add external jar”去找到<JDK>\lib中放置的comm.jar的位置。
二、API概述
介面
CommDriver 可負載裝置(the loadable device)驅動程式介面的一部分
CommPortOwnershipListener 傳遞各種通訊連接埠的所有權事件
ParallelPortEventListener 傳遞並行連接埠事件
SerialPortEventListener 傳遞序列埠事件
類
CommPort 通訊連接埠
CommPortIdentifier通訊連接埠管理
ParallelPort 並行通訊連接埠
ParallelPortEvent 並行連接埠事件
SerialPort RS-232串列通訊連接埠
SerialPortEvent 異常類
NoSuchPortException 當驅動程式不能找到指定連接埠時拋出
PortInUseException 當碰到指定連接埠正在使用中時拋出
UnsupportedCommOperationException 驅動程式不允許指定操作時拋出
(1)CommPort類
描述被底層系統支援的連接埠的抽象類別。包含一些高層的IO控制方法,這些方法對於所有不同的通訊連接埠來說是通用的。SerialPort(串口) 和ParallelPort(並口)都是它的子類。
(2)CommPortIdentifier
主要用於對串口進行管理和設定,是對串口進行存取控制的核心類。主要方法如下:
addPortName(String, int, CommDriver) 添加連接埠名到連接埠列表裡
addPortOwnershipListener(CommPortOwnershipListener) 添加連接埠擁有的監聽器
removePortOwnershipListener(CommPortOwnershipListener) 移除連接埠擁有的監聽器
getCurrentOwner() 得到當前佔有連接埠的對象或應用程式
getName() 得到連接埠名稱
getPortIdentifier(CommPort) 得到參數開啟的連接埠的CommPortIdentifier類型對象
getPortIdentifier(String) 得到以參數命名的連接埠的CommPortIdentifier類型對象
getPortIdentifiers() 得到系統中的連接埠列表
getPortType() 得到連接埠的類型
isCurrentlyOwned() 判斷當前連接埠是否被佔用
open(FileDescriptor) 用檔案描述的類型開啟連接埠
open(String, int) 開啟連接埠,兩個參數:程式名稱,延遲時間(毫秒數)
(3)SerialPort
描述RS-232串列通訊連接埠的底層介面,它定義了串口通訊所需的最小功能集。可以直接對串口進行讀、寫及設定工作。
A:串口參數的函數
getBaudRate() 得到傳輸速率 getParity() 得到檢驗類型
getDataBits() 得到資料位元數 getStopBits() 得到停止位元
setSerialPortParams(int, int, int, int) 設定串口參數依次為(傳輸速率,資料位元,停止位,奇偶檢驗)
close() 關閉串口
getOutputStream() 得到OutputStream類型的輸出資料流
getInputStream() 得到InputStream類型的輸入資料流
B:事件及事件方法
isCD() 是否有載波
isCTS() 是否清除發送
isDSR() 資料是否準備就緒
isDTR() 資料終端是否準備就緒
isRI() 是否響鈴偵測
isRTS() 是否要求發送
addEventListener(SerialPortEventListener) 向SerialPort對象中添加串口事件監聽器
removeEventListener() 移除SerialPort對象中的串口事件監聽器
getEventType() 得到發生的事件類型傳回值為int型
sendBreak(int) 設定中斷過程的時間,參數為毫秒值
setRTS(boolean) 設定或清除RTS位
setDTR(boolean) 設定或清除DTR位
notifyOnBreakInterrupt(boolean) 設定中斷事件
notifyOnCarrierDetect(boolean) 設定載波監聽事件
notifyOnCTS(boolean) 設定清除發送事件
notifyOnDataAvailable(boolean) 設定串口有資料的事件
notifyOnDSR(boolean) 設定資料備妥事件
notifyOnFramingError(boolean) 設定發生錯誤事件
notifyOnOutputEmpty(boolean) 設定發送緩衝區為空白事件
notifyOnParityError(boolean) 設定發生奇偶檢驗錯誤事件
notifyOnRingIndicator(boolean) 設定響鈴偵測事件
C:串口參數的靜態成員變數
成員變數 說明 成員變數 說明 成員變數 說明
DATABITS_5 資料位元為5 STOPBITS_2 停止位為2 PARITY_ODD 奇檢驗
DATABITS_6 資料位元為6 STOPBITS_1 停止位為1 PARITY_MARK 標記檢驗
DATABITS_7 資料位元為7 STOPBITS_1_5 停止為1.5 PARITY_NONE 空格檢驗
DATABITS_8 資料位元為8 PARITY_EVEN 偶檢驗 PARITY_SPACE 無檢驗