OMG,到底在尋找什么..................
          (構造一個完美的J2EE系統所需要的完整知識體系)
          posts - 198,  comments - 37,  trackbacks - 0
          java串口通信

           ??Java提供了?CommunicationAPI(包含于javax.comm包中)用于通過與機器無關的方式,控制各種外部設備。Communications?API,是標準的Java的擴展部分,它在JavaAPI中是沒有附帶的。因此,必須先在SUN公司網站的Java站點(www.java.sun.com)上下載這個擴展類庫。

            1.1Communications?API?簡介

          ?Communications?API?的核心是抽象的CommPort類及其兩個子類:SerialPort類和ParallePort類。其中,SerialPort類是用于串口通信的類,ParallePort類是用于并行口通信的類。CommPort類還提供了常規的通信模式和方法,例如:getInputStream(?)方法和getOutputStream(?)方法,專用于與端口上的設備進行通信。

            然而,這些類的構造方法都被有意的設置為非公有的(non-public)。所以,不能直接構造對象,而是先通過靜態的CommPortIdentifer.getPortIdentifiers()獲得端口列表;再從這個端口列表中選擇所需要的端口,并調用CommPortIdentifer對象的Open(?)方法,這樣,就能得到一個CommPort對象。當然,還要將這個CommPort對象的類型轉換為某個非抽象的子類,表明是特定的通訊設備。該子類可以是SerialPort類和ParallePort類中的一個。下面將分別對CommPort類,CommPortIdentifier類,串口類SerialPort進行詳細的介紹。

            1.2?CommPortIdentifier類

            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)?打開端口,兩個參數:程序名稱,延遲時間(毫秒數)

            1.3?SerialPort類

          SerialPort關于串口參數的靜態成員變量
          成員變量?說明?成員變量?說明?成員變量?說明
          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?無檢驗
          SerialPort對象的關于串口參數的函數
          方法?說明?方法?說明
          getBaudRate()?得到波特率?getParity()?得到檢驗類型
          getDataBits()?得到數據位數?getStopBits()?得到停止位數
          setSerialPortParams(int,?int,?int,?int)?設置串口參數依次為(波特率,數據位,停止位,奇偶檢驗)
          SerialPort關于事件的靜態成員變量
          成員變量?說明?成員變量?說明
          BI?Break?interrupt中斷?FE?Framing?error錯誤
          CD?Carrier?detect載波偵聽?OE?Overrun?error錯誤
          CTS?Clear?to?send清除以傳送?PE?Parity?error奇偶檢驗錯誤
          DSR?Data?set?ready數據備妥?RI?Ring?indicator響鈴偵測
          DATA_AVAILABLE?串口中的可用數據?OUTPUT_BUFFER_EMPTY?輸出緩沖區空
          SerialPort中關于事件的方法
          方法?說明?方法?說明?方法?說明
          isCD()?是否有載波?isCTS()?是否清除以傳送?isDSR()?數據是否備妥
          isDTR()?是否數據端備妥?isRI()?是否響鈴偵測?isRTS()??是否要求傳送
          addEventListener(SerialPortEventListener)???向SerialPort對象中添加串口事件監聽器
          removeEventListener()?移除SerialPort對象中的串口事件監聽器
          notifyOnBreakInterrupt(boolean)?設置中斷事件true有效,false無效
          notifyOnCarrierDetect(boolean)?設置載波監聽事件true有效,false無效
          notifyOnCTS(boolean)?設置清除發送事件true有效,false無效
          notifyOnDataAvailable(boolean)?設置串口有數據的事件true有效,false無效
          notifyOnDSR(boolean)?設置數據備妥事件true有效,false無效
          notifyOnFramingError(boolean)?設置發生錯誤事件true有效,false無效
          notifyOnOutputEmpty(boolean)?設置發送緩沖區為空事件true有效,false無效
          notifyOnParityError(boolean)?設置發生奇偶檢驗錯誤事件true有效,false無效
          notifyOnRingIndicator(boolean)?設置響鈴偵測事件true有效,false無效
          getEventType()?得到發生的事件類型返回值為int型
          sendBreak(int)?設置中斷過程的時間,參數為毫秒值
          setRTS(boolean)?設置或清除RTS位
          setDTR(boolean)?設置或清除DTR位
          SerialPort中的其他常用方法
          方法?說明
          close()?關閉串口
          getOutputStream()?得到OutputStream類型的輸出流
          getInputStream()?得到InputStream類型的輸入流
          posted on 2007-02-01 14:39 OMG 閱讀(1788) 評論(0)  編輯  收藏 所屬分類: JavaX

          <2007年2月>
          28293031123
          45678910
          11121314151617
          18192021222324
          25262728123
          45678910

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          IT風云人物

          文檔

          朋友

          相冊

          經典網站

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 木里| 奉节县| 武平县| 宁国市| 宁津县| 酉阳| 桃园县| 彭阳县| 西乌| 安多县| 禹城市| 阜城县| 年辖:市辖区| 台湾省| 勐海县| 普格县| 黑河市| 恩施市| 佛学| 郴州市| 镇雄县| 林口县| 阳谷县| 大姚县| 美姑县| 乌鲁木齐市| 庆云县| 增城市| 德保县| 宾川县| 开江县| 精河县| 易门县| 刚察县| 苍溪县| 香格里拉县| 两当县| 蓝山县| 邮箱| 桂阳县| 博野县|