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