• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM-Linux的無線氣象數據通信系統的設計與實現

    基于ARM-Linux的無線氣象數據通信系統的設計與實現

    作者: 時間:2013-04-19 來源:網絡 收藏

    3 軟件

    下位機軟件的核心是串口通信以及Socket通信。采用Qt4.5.0、Qt Creator 1.3.0作為器軟件的開發工具,主要包括數據接收顯示、存儲以及發送給遠程服務器等功能。

    為了保證數據有效、高效、可靠地通信,該建立了如表1所示的數據幀格式。

    協調器每次給器發送10字節數據,其中以“#”為起始符,緊跟4字節浮點數,第6字節表示要素類型,第8和第9字節分別為CRC檢測的高位和低位,最后以“*”結束。CRC域是兩個字節,它由協調器節點計算后加入到數據中,器對校驗信息進行檢查,若無錯則接收該數據,否則放棄該數據并請求重發。

    3.1 串口通信程序

    協調器通過串口與數據通信器進行數據交互,所以在程序時需要對串口的波特率、數據位、奇偶校驗、停止位以及數據流控制進行設置,數據傳輸。通過任務接口定時讀寫串口數據,查看協調器是否有數據,并將數據存入隊列供界面顯示、存儲以及發送。串口設置界面如圖4所示。

    下面是串口設置的部分代碼:

    其中,getPortSettings()函數返回一個PortSettings型變量,包含了對波特率、數據位、停止位等的設置,getPortName()函數返回字符串型變量,用于串口號的設置。

    3.2 網絡通信程序設計

    網絡傳輸是本設計的主要任務之一,將數據通信器接收的數據經過Socket發送給遠程服務器。而Qt提供了QTcpSocket類,用于編寫TCP客戶端的應用程序。QTcpSocket類提供了一個有緩沖的TCP連接,可以用來其他標準協議也可以用來自定義的協議。OTcpSocket采用異步工作方式,它依靠Qt事件循環發現外來數據和向外發送數據,并以信號的方式報告狀態的改變或產生的錯誤,一旦網絡的某一種狀態發生改變(如網絡斷開),就會發出信號(如connectionClosed()),再通過信號與槽函數相關聯進行處理。服務器設置界面如圖5所示。

    下面是網絡傳輸相應槽函數:

    4 結論

    首次使用時,在系統設置界面對服務器地址、服務器端口、經度、緯度、臺站號進行設置,在串口設置界面對串口的波特率、數據位、停止位等信息進行設置。設置完成后連接服務器并打開串口,在數據顯示界面將會實時動態顯示各傳感器節點發來的數據。與服務器的連接狀態等信息在程序狀態欄會有相關提示,一旦與服務器斷開,系統將會自動連接服務器并將這段時間內收到的數據保存起來等待連接成功后重新發送。

    系統已經完成制作調試,效果良好,可以成功地實現數據通信、處理、存儲、網絡連接以及網絡異常處理等功能。本系統低成本、無布線、可擴展性強等特點,在自動氣象站應用中具有廣泛的潛在市場和應用空間。

    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 湟源县| 盐城市| 通江县| 宝清县| 外汇| 禹州市| 泽库县| 砀山县| 论坛| 石景山区| 祥云县| 闻喜县| 陈巴尔虎旗| 三原县| 京山县| 满城县| 麻阳| 台州市| 滕州市| 筠连县| 新巴尔虎左旗| 河西区| 涡阳县| 荔波县| 嘉兴市| 鹰潭市| 增城市| 万盛区| 郸城县| 汉阴县| 天门市| 利川市| 大化| 泗水县| 长宁区| 广南县| 洞头县| 东平县| 普格县| 麦盖提县| 苏尼特左旗|