999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于正則表達式的通用農業測控終端設計*

2021-10-25 04:58:34嚴李強
機電工程技術 2021年9期
關鍵詞:可視化文本農業

田 博,嚴李強,宋 赫,肖 楊

(西藏大學信息科學技術學院,拉薩850000)

0 引言

由于我國部分地區環境惡劣,不適用于常見的大規模蔬果種植,許多引入的溫室大棚技術的地區,一定程度上緩解了冬季蔬果緊缺的問題,同時也成功種植了反季蔬菜水果。20世紀70年代后期,山東大學開始用蛭石栽培黃瓜、西紅柿等,并取得了成功;20世紀80年代中期,進口的溫室及無土栽培設施相繼投產;20世紀80年代以來,隨著人們生活水平的提高,人們的飲食需求已經從基本的吃飽吃好轉變為吃的健康。設施農業的涌現大力加快了農業整體的發展,但需要投入大量的人力成本對農業設施進行測控管理,這無疑增加了成本和風險。

物聯網技術的發展促進了農業的整體變革,隨著機械設備制造水平和傳感設備數據精度的提高,農業測控系統的應用范圍逐步擴大,在農業測控系統的遠程化、自動化管理方面取得了諸多成果,如浙江農科院合作研發了利用了無線傳感器技術實現對農田溫室大棚部分環境信息的監測[1]的平臺。孟祥寶等[2]綜合采用傳感器制造、信息融合、工控組態、物聯網、自動分類和搜索引擎等先進技術,構建現代農業生產信息監控體系。陳陽[3]設計并實現了“風雨欲來窗自關”的功能等許多成果取得了很好的效果。合肥工業大學的王建平和王良帆[4]開發了基于IOS平臺的溫室大棚物聯網云管理系統等設備實現對溫室環境數據的管理,但只能兼容單一種類的溫室控制系統。

本文通過設計兼容多種傳輸模式、數據格式、數據編碼方式的數據有效信息解析匹配算法,并應用該算法實現了支持多種傳輸模式、多種編碼加密模式下的數據采集和指令發送功能的移動終端,實現了通過一個終端兼容管理多種的農業測控設備的效果。

1 終端整體邏輯設計

目前大部分農業測控類軟件的測控平臺都只能對部分節點進行數據監控或者是指令下發,如土壤濕度、環境溫濕度、環境光照強度和環境氣體的檢測[5]。本文最終目標是設計一款兼容多種規格終端并可用于規模化種植使用的農業測控系統管理終端,同時也可作為中小型的農業測控系統,實現遠程化控制的數據管理工具。此外,對于所有的操作,為方便溯源追蹤操作者等相關數據,將所有操作日志(包含操作內容、操作人、操作時間等信息)儲存到服務器中提供查詢。根據2019年市場研究IDC發布的智能手機市場報告,Android操作系統的手機占據了87%的市場份額,故本文移動端選擇基于Android操作系統進行開發,PC端基于windows系統進行開發。整體流程如圖1所示。

圖1 系統總體邏輯

2 文本處理工具及對比

2.1 VIM文本編輯

VIM是一種文本編輯器,被認為是類VI文本編輯器中最好用的一個。VIM最大優勢是在于其用命令都是簡單的字符[6]。可以在Unix系統中執行數據的模糊匹配任務,通過簡單的字符命令,即可實現數據內容的模糊匹配,實現本文中所需的多種數據格式的解析需求。

但在本文中需要所用工具可以在多種編程語言中實現,多種操作系統中運行,由于VIM支持系統的環境限制,以及VIM自身的語法過于復雜,存在很多不方便的問題,VIM文本編輯難以實現需求。

2.2 正則表達式

正則表達式(Regular Expression),又稱正規表示法、常規表示法,在代碼中常簡寫為regex、regexp或RE。正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯[7]。

同時,在開發過程中所需用到的JAVA、Python等語言中大多含有都有正則表達式的支持庫,可以使用多種編程語言實現正則表達式,在多種系統環境下執行正則表達式進行相關數據的匹配,更能滿足相關算法實現的需求。

2.3 文本處理工具對比

例 如:IP地 址 為xxx.xxx.xxx.xxx格 式,如120.26.174.204為位于杭州市阿里云的服務器的IP地址,目的是通過正則表達式,在一大段復雜的無規則文本中,提取出符合格式的IP地址。目標是在軟件中利用這個IP地址進行訪問,進行相關的數據交互,通過數據交互,得到如下的返回數據:{code:“0”,msg:“localIP:120.26.174 .204:9999”}

下一步就是通過從這段文本中匹配到這一個IP地址包含端口120.26.174.204:9999。由于IP的格式是由5個整數型數值和5個符號構成。若采用VIM進行數據匹配,需要掌握復雜的VIM相關匹配符號的意義,嚴格控制每個數值的范圍進行匹配,若最終需要匹配出符合條件的IP地址,最終需要用到表達式“<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])>(.<([0-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])>){2}.<([1-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])>”,然后通過執行shell腳本得到的目標文本。

正則表達式中“d+”可用取出一個整型數值,接下來就是中間的隔離符號,分別用“.”和“:”表示。最后將數值和符號按照文本的連接關系,依次羅列,最終通過“d+.d+.d+.d+:d+”這一正則表達式就可以實現數據的匹配,得到目標文本如圖2所示。由圖可知,文本中的任意數據,只要根據文本需要數據的一些特定特征,就可以匹配出這一數據內容。

圖2 正則表達式匹配IP代理

如表1所示,正則表達式更適合本文算法的設計與實現。本文明確提到需要獲取一些節點的數據,如傳感器獲取到的環境數據、溫室內設備的工作狀態等。選用正則表達式進行數據的匹配更適合開放式的工具進行數據處理,更方便兼容不同的數據格式以及在不同操作系統中實現功能。

表1 VIM文本編輯工具與正則表達式對比

3 數據處理算法設計

3.1 正則表達式解析數據算法

3.1.1 算法設計

根據前文對VIM數據解析工具于正則表達式對比的結果,結合溫室環境所傳遞的數據,選用正則表達式進行數據解析,并設計出解析數據算法如下。

(1)讀取數據并預處理

根據預設的節點地址和請求方式,提交獲取數據請求,并得到系統中的相關節點數據,進行前后去空等預處理,防止出現因文本異常出現影響后續解析的情況。

(2)數據解碼處理

數據在傳送過程中可能會出現非法入侵者將信息截取的情況,通常傳送的是密文[8],如URLcode、DES進行數據加密。在解析之前判斷是否預設了需要解碼,并將數據內容進行解密,方便后續的解析和可視化顯示。

(3)讀取正則表達式、進行數據解析和結果讀取

獲得未加密的數據內容后,要進行數據解析,根據用戶預設的正則表達式對數據進行解析,得到解析后的節點內容,分別儲存在數組res[節點編號-1]這一變量中。

(4)判斷解析是否成功

此判斷依據為判斷解析后的數組成員數是否和預設的相等,如果不相等,則代表解析中出現問題,可能是數據異常、正則表達式不正確或解析中受到未知原因的影響。如果解析錯誤,則重新獲取一次數據并解析,同時發出錯誤報告。

(5)對應值判斷解析

以日光溫室農業測控系統為例,系統中存在諸多控制設備,如保溫被、遮陽網等。在傳輸過程中為了降低數據大小,通常將“關閉”、“開啟”等數據以“0”、“1”這樣的數值進行傳輸。在可視化顯示之前,需要按對應方式將“0”、“1”等數據替換為“關閉”、“開啟”。

(6)進行可視化顯示

將被判斷沒有問題的解析數據執行可視化顯示指令,將對應的數據顯示在軟件GUI的對應標簽中。

數據解析算法流程如圖3所示。

圖3 數據解析算法流程

3.1.2 算法實現

該算法采用PyCharm2020.1版本作為IDE工具,以python3.8版本作為解釋器,調用wxpython支持庫制作形成相關的的GUI界面,調用正則表達式支持庫re輔助實現,相關代碼如下:

3.1.3 測試與結果分析

由于條件的限制,本文只測試了幾種模擬的數據格式。數據的獲取方式為通過HTTP訪問服務器獲取數據。測試結果如圖4所示。

圖4 解析算法測試

通過測試結果可見,本算法的數據解析能夠通過正則表達式使數據在通過一系列判斷與解析方法,將從地址獲取的原始數據解析成程序的可視化內容。

3.2 正則表達式的簡易生成算法

3.2.1 算法目的及原理

由于很多教程的講解起點很高,并沒有過多細節講解,概念上沒有注意先后順序,給讀者的理解帶來了困難[9]。為了便于用戶自己編寫適應自己的農業測控管理系統的數據解析正則表達式,需要設計一個算法降低編寫農業測控系統數據解析正則表達式的難度。

本文采用尋找符合節點字段的節點,并通過貪婪匹配符(*.?)替換數據實現數據解析正則表達式的生成。

3.2.2 人機交互部分

本算法根據字符串檢索的方式,將“[^節點名]”替換要讀取的數據,如讀取到的數據為:{code:0,tempera?ture:25.2,air:35,soil:0.62,PH:6.32,light:2429,co2:0.62}。 算法中需要解析到的數據為“25.2”、“35”、“0.62”、“6.32”、“2429”、“0.62”,則只需將這6個數值用“[^]”進行替換,即提交文本:{code:0,temperature:[^溫度],air:[^空氣],soil:[^土壤],PH:[^PH],light:[^光照],co2:[^二氧化碳]}。

3.2.3 算法流程

根據字符串特征判斷的方式,設計出正則表達式生成算法如圖5所示。

圖5 正則表達式的簡易生成算法流程

為了簡化算法,方便后續的數據顯示,從GUI中讀取的數據類型均為string字符串型。利用貪婪匹配符(*.?)進行替換,正則表達式的執行結果則為這一部分內容的中間文本,并返回字符串,在后續使用中,如果是數值,則不考慮是否為整型變量,均進行浮點型轉換進行計算使用;如果是字符串變量,則可以直接進行字符串的相關操作。該算法是根據字符判斷,尋找到特征值進行替換的方式,避免了在生成表達式的同時用戶提交的信息與數據中的原有信息沖突,造成生成時將原有數據打亂的問題。同時將對應節點的名稱儲存到name[節點編號-1]這一個變量中。例如,現有一個日光溫室的控制系統返回的數據格式(其中1533697871為格林威治時間戳,暫時不進行讀取處理)為:

[^time:1533697871,temperature:25.2,air:32,soil:0.62,PH:6.32,light:1489]

如果直接采取[^?]的替換方式,則最終的返回結果為res=“(*.?)”:

name=[“time:1533697871,temperature:25.2,air:32,soil:0.62,PH:6.32,light:1489”]

這種方法的結果并不符合本文需要的結果。

而采取上述的算法,則可以避免這種問題,最終的返回結果為:

res={code:0,temperature:(*.?),air:(*.?),soil:(*.?),PH:(*.?),light:(*.?),co2:(*.?)}

name=[“溫度”,”空氣”,”土壤”,”PH”,”光照”,”二氧化碳”]

以上結果符合本文的需求。因此,本文不選用直接進行關鍵字替換的方式。

3.2.4 算法實現

算法采用PyCharm2021.2版本作為IDE工具,以py?thon3.9版本作為解釋器,部分代碼如下:

3.2.5 測試與結果分析

測試中采取模擬數據格式的方式進行測試,并進行了3次,不同的數據格式進行了數據測試,測試結果均通過,部分測試結果如圖6所示。可見本算法通過正則表達式,將測試文本轉換成節點名稱列表,能夠正確地將獲取到的數據以需求的數據格式,解析成所需的內容;且對本算法進行多次測試,算法的輸出穩定,提取結果皆為正確。

圖6 正則表達式的簡易生成算法測試結果

4 Android客戶端

該系統是在JDK1.9環境下使用Android Studio 4.0.1版本進行開發的,主要解析農業測控系統中環境參數,并對各終端設備下發控制命令,查看記錄操作日志等功能。由于該終端需要在終端-數據庫,終端-硬件數據源之間反復傳遞的數據信息,同時還要兼容多種終端數據格式的解析讀取,就需要一個高效可靠便于調整的數據傳輸方式。在JAVA中,JDBC和PHP+MySQL的數據傳輸方式均可以滿足需求。

JDBC管理器的作用是負責管理各種不同的程序、包括直接訪問以Java實現的JDBC網絡驅動程序,以及與基于ODBC的驅動程序的共同實現[10]。PHP幾乎覆蓋了Web應用的各個方面,其中最有特色的是數據庫API,在對MySQL數據庫的操作上,PHP一共有32個API可供使用,這些APl包括了MySQL應用的各個方面,如操作MySQL[11]。對比傳輸安全性以及數據傳輸格式調整的便捷性,本文所涉及的軟件Android端在開發過程中采用PHP+MySQL模式進行開發。

Android手機端軟件設計主要包括Android開發環境搭建、登錄界面設計和監測界面設計[12]。通過XML調用Android通過控件庫設計UI如圖7所示,并通過JAVA綁定界面控件,實現人機互換以及數據上傳下行等相關操作。

圖7 Android客戶端界面UI

本文中的通用農業測控系統數據管理工具,要求可以做到支持多種控制系統的溫室環境數據、設備運行狀態數據的解析,實現可視化顯示;編輯命令文本,實現溫室數據命令指令的發送。保存相關方案數據,同時可以記錄用戶的操作日志。為實現上述功能,選用An?droid studio進行開發。

5 結束語

本文通過對比文本匹配工具對不同格式數據解析的效果,設計了支持解析多種監測設備數據格式的算法,并通過Android系統應用本算法,進行數據監控以及設備控制。本文設計實現了可以通過移動網絡在遠程對相關參數進行監測與控制的農業測控終端,在某一數據出現偏差時實現顏色提醒(偏差越高,顯示的顏色越醒目,警報頻率越高),完成了數據的可視化顯示。通過系統中記錄每一條操作數據的管理人員、時間等信息,實現管理的追蹤與溯源,為大規模種植中多人員管理模式下的追責等問題提供了證據支持。此外,數據日志可以用于存儲數據,在后期進行可視化分析或數據挖掘等,為提高農業生產的發展進步提供了大數據支持。

猜你喜歡
可視化文本農業
國內農業
今日農業(2022年1期)2022-11-16 21:20:05
國內農業
今日農業(2022年3期)2022-11-16 13:13:50
國內農業
今日農業(2022年2期)2022-11-16 12:29:47
基于CiteSpace的足三里穴研究可視化分析
基于Power BI的油田注水運行動態分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
擦亮“國”字招牌 發揮農業領跑作用
今日農業(2021年14期)2021-11-25 23:57:29
基于CGAL和OpenGL的海底地形三維可視化
在808DA上文本顯示的改善
“融評”:黨媒評論的可視化創新
傳媒評論(2019年4期)2019-07-13 05:49:14
基于doc2vec和TF-IDF的相似文本識別
電子制作(2018年18期)2018-11-14 01:48:06
主站蜘蛛池模板: 三上悠亚在线精品二区| 亚洲一区精品视频在线| 日韩精品亚洲一区中文字幕| 福利片91| 青草视频网站在线观看| 欧美色亚洲| av色爱 天堂网| 国产激情无码一区二区三区免费| 亚洲一区二区日韩欧美gif| 亚洲an第二区国产精品| 制服丝袜无码每日更新| 99热精品久久| 99er精品视频| 综合天天色| 国产精品无码影视久久久久久久| 日韩av在线直播| 久久久久国产精品免费免费不卡| 亚洲精品桃花岛av在线| 日日拍夜夜操| 久久超级碰| 亚洲午夜18| 98精品全国免费观看视频| 国产一区成人| 欧美亚洲国产日韩电影在线| 亚洲中文字幕在线观看| 午夜精品久久久久久久无码软件| 国产成人免费手机在线观看视频| 蜜桃视频一区| 免费中文字幕一级毛片| 2021最新国产精品网站| 亚洲Aⅴ无码专区在线观看q| 在线观看91精品国产剧情免费| 性喷潮久久久久久久久| 精品第一国产综合精品Aⅴ| 无码电影在线观看| 免费看一级毛片波多结衣| 亚洲va在线∨a天堂va欧美va| 国产高清不卡| 麻豆国产在线不卡一区二区| 国产精品三级专区| 欧美日在线观看| 国产h视频在线观看视频| 国产精品开放后亚洲| 午夜福利在线观看成人| 91在线精品麻豆欧美在线| 国产亚洲精品无码专| 久久久久国产一级毛片高清板| 亚洲Av综合日韩精品久久久| 波多野结衣一区二区三区四区 | 美女亚洲一区| 一区二区三区国产| 人人爽人人爽人人片| 丰满人妻一区二区三区视频| 亚洲欧美精品日韩欧美| 国产在线视频自拍| 欧美精品亚洲精品日韩专区| 黄色网址手机国内免费在线观看| 国产第四页| 久久鸭综合久久国产| 97精品国产高清久久久久蜜芽| 国产成人资源| 久久久久国产精品嫩草影院| 亚洲人成网线在线播放va| 久久久久久久久久国产精品| 亚洲三级色| 欧美综合在线观看| 狠狠亚洲婷婷综合色香| 国产精品观看视频免费完整版| 最近最新中文字幕在线第一页| 亚洲欧洲日韩国产综合在线二区| 欧美一区二区啪啪| 中文字幕日韩丝袜一区| 狠狠躁天天躁夜夜躁婷婷| 三上悠亚在线精品二区| 91成人免费观看| 国产JIZzJIzz视频全部免费| 国产喷水视频| 国产高清在线观看91精品| 国产主播在线一区| 亚洲V日韩V无码一区二区| 538国产视频| 成人久久18免费网站|