云自無心水自閑

          天平山上白云泉,云自無心水自閑。何必奔沖山下去,更添波浪向人間!
          posts - 288, comments - 524, trackbacks - 0, articles - 6
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          java串口編程需要注意的幾個地方

          Posted on 2011-02-07 13:22 云自無心水自閑 閱讀(1627) 評論(0)  編輯  收藏 所屬分類: Java心得體會

          我使用的是sun提供的javax.comm包,不確定其他的comm支持包(比如:rxtx)行為與之相同
          1、事件驅動的數據讀取
          需要注意的是:一個SerialPort只能注冊一個事件監聽程序,因此,有時候有會發現,你的事件監聽處理程序會變得非常龐大
          另外,要注意的就是事件處理如果比較耗時的話,最好是在單獨的線程中運行,否則會阻塞數據的接收。
          串口接收到數據后,默認在線程: Win32SerialPort Notification thread中運行。如果不及時釋放的話,會造成數據無法讀取。
          我的做法是,接收到數據后,先判斷數據的合法和完整性,如果沒有接收到完整的數據,則在緩存數據后,馬上返回
          如果數據完整而且合法,則另開一個線程,進行數據處理
          2、數據的發送
          建議單獨使用一個線程來發送數據,目的還是為了防止阻塞,有一個技巧就是使用OUTPUT_BUFFER_EMPTY事件來發送。


          主站蜘蛛池模板: 汉阴县| 湖口县| 永修县| 南阳市| 安阳县| 平和县| 贵定县| 栾城县| 盐城市| 濉溪县| 水富县| 舟曲县| 长宁区| 青州市| 驻马店市| 元阳县| 梁山县| 济南市| 伊金霍洛旗| 吉水县| 通州区| 从化市| 介休市| 务川| 文登市| 星座| 宣恩县| 林口县| 凯里市| 嘉荫县| 晴隆县| 普洱| 广德县| 永城市| 旬邑县| 镇宁| 灵台县| 宁河县| 高阳县| 克什克腾旗| 商丘市|