基于GPRS的ZigBee協(xié)調器網(wǎng)關(guān)設計通信
數據處理程序如圖4所示。在數據處理的過(guò)程中,只需要處理數據幀,心跳幀是不用進(jìn)行處理的,因此有必要對心跳幀進(jìn)行剔除。由于下位機編程時(shí)以十六進(jìn)制FE作為每個(gè)數據幀開(kāi)始的字節,而心跳幀則為十六進(jìn)制636F 6F6E,因此在服務(wù)器程序進(jìn)行數據處理前可先檢測數據的幀頭,這樣即可將數據幀和心跳幀分別開(kāi)來(lái)。具體做法便是利用String Subset函數截取每幀數據的第一個(gè)字節,然后與十六進(jìn)制FE比較,再運用Case Structure的方式組織,如果相等,則進(jìn)行處理,不相等的情況則不采取任何動(dòng)作,只需保持之前的數據即可。這樣不僅可以避免錯誤接收結果,還可提高程序的運行效率。本文引用地址:http://dyxdggzs.com/article/153651.htm
數據處理部分首先利用String To Byte Array函數將接收的字符串保存為字節數組,然后利用Search1D Array函數搜索到第三個(gè)十六進(jìn)制字節46,進(jìn)一步增強數據讀取的可靠性,使用Index Array函數將數組中相應的子節點(diǎn)地址、溫度、相對濕度、電壓值字節數據提取出來(lái),并利用數值運算函數及相應的字符串處理函數將需要的參數以十進(jìn)制字符串形式送到Chart控件中顯示波形。不同節點(diǎn)的信息需要顯示在不同的Chart控件中,此時(shí)的實(shí)現思路就是判斷不同節點(diǎn)的地址,然后利用Case Structure進(jìn)入不同的事件結構。在歷史數據的存儲方面主要是通過(guò)Write To Spreadsheet File子VI把數據寫(xiě)入電子表格,以此來(lái)實(shí)現歷史數據的方便查看。
整個(gè)系統經(jīng)過(guò)調試后運行正常,下位機與上位機連接良好,數據傳輸通暢,運行效果如圖5所示。
5 結語(yǔ)
下位機設計的網(wǎng)關(guān)能夠選擇性透明發(fā)送有效數據和心跳幀字節,不僅提高了發(fā)送效率,而且保障了上位機接收數據的可靠性,在服務(wù)器與GPRS模塊通信中斷后,會(huì )立即重新申請連接直至再次連接成功。上位機程序設計的TCP服務(wù)器界面友好而簡(jiǎn)潔,能夠分辨出有效數據和心跳幀,并可靠地解析出數據幀的信息,顯示溫度以及濕度的變化趨勢,同時(shí)將歷史數據寫(xiě)入電子表格,方便保存和查看。本系統可移植性強,應用范圍廣,可用與糧情監測以及溫室環(huán)境的監測,具有較大的實(shí)際參考價(jià)值。
tcp/ip相關(guān)文章:tcp/ip是什么
數字通信相關(guān)文章:數字通信原理
通信相關(guān)文章:通信原理
土壤濕度傳感器相關(guān)文章:土壤濕度傳感器原理
評論