闞瑞祥
(蚌埠藍(lán)光經(jīng)貿(mào)有限公司, 安徽 蚌埠 233000)
易語言是以中文作為程序代碼編程語言,語句理解起來十分容易。從2000年至今,易語言已經(jīng)發(fā)展到一定的規(guī)模,功能強(qiáng)大實用,支持庫在原有的基礎(chǔ)上不斷的擴(kuò)充。而作為其衍生物的易安卓近來十分火爆,開發(fā)工具安裝十分方便快捷,功能也日趨完善,有著廣闊的發(fā)展空間。
在日常的生產(chǎn)生活中,大都離不開數(shù)據(jù)的收集以及之后的管理。傳統(tǒng)的收集方式,不僅不方便進(jìn)行同步,而且不方便進(jìn)行匯總以及下一步對數(shù)據(jù)的封裝。而且,如果沒有圖形界面的增刪改查作為基本,也不方便進(jìn)行二次的數(shù)據(jù)篩選,不利于使用,也不利于推廣。傳統(tǒng)意義上實現(xiàn)APP與PC的交互,需要使用套接字socket。套接字本身較為復(fù)雜,理解起來具有一定的難度,安裝起來并不便捷,且使用起來容易出錯,不宜推廣。在穩(wěn)定性以及安全系數(shù)要求不那么高且WiFi環(huán)境可以保證的前提下,使用易語言與易安卓的組合可以相對簡單的實現(xiàn)這個功能。
雖然本系統(tǒng)代碼相對簡單,但是功能相對強(qiáng)大。
在使用的過程中,本系統(tǒng)的主要部分有兩個:易安卓以及易語言的通信部分以及易語言的數(shù)據(jù)管理部分。兩部分相互配合完成了數(shù)據(jù)的收集與管理操作。具體過程大致分為三個階段:
(1)用戶手動將數(shù)據(jù)錄入到易安卓開發(fā)的APP之上,數(shù)據(jù)在這里統(tǒng)統(tǒng)處理成字符串且字符串要求不限。使用時由于易安卓本身的局限性,必須滿足與PC端在同一WiFi環(huán)境下這一硬性條件。點擊連接服務(wù)器輸入端口號進(jìn)行連接(本系統(tǒng)的端口號易語言默認(rèn)的19730)。
(2)連接成功之后,即可使用基于易語言編寫的PC接收端進(jìn)行字符的接收。如果數(shù)據(jù)的接收出現(xiàn)了重大錯誤,用戶本人可以在易語言編寫的調(diào)試程序上發(fā)送自己想發(fā)送的字符串,將字符串或者相關(guān)的指令與需求發(fā)送回易安卓編寫的APP之上進(jìn)行反饋。
(3)完成了數(shù)據(jù)整理與收集,在PC端上確認(rèn)數(shù)據(jù)無誤后,借由另一個易語言編寫的數(shù)據(jù)庫圖形界面完成的數(shù)據(jù)的增刪改查。也可以實際生產(chǎn)生活中的需要增加功能。為了便于舉例,這里只做溫度、濕度、照度數(shù)據(jù)的整理。并且增加了功能——在溫度過高的時候可以彈出警告的提示框。(為了方便測試,將警戒溫度設(shè)為50攝氏度)
流程如圖所示:
圖1 系統(tǒng)流程圖
本系統(tǒng)之所以簡潔是由于大連理工大學(xué)的開發(fā)團(tuán)隊設(shè)計出的函數(shù)功能強(qiáng)大。開發(fā)一套數(shù)據(jù)庫的圖形界面的方法有很多,可以通過C#,可以通過Java+MySQL的經(jīng)典組合,但是其安裝起來過于繁瑣讓許多初學(xué)者望而生畏。本次系統(tǒng)中繼續(xù)使用易語言進(jìn)行該部分的開發(fā)。
易語言本身安裝起來相對方便,這也是易語言的優(yōu)勢之一。但是必須注意:使用之前建議關(guān)閉PC上的殺毒軟件,以免不必要的麻煩。
無論是易語言還是易安卓,它們的代碼與傳統(tǒng)的C語言亦或是Java有著比較大的差異。易語言中會自動的將相關(guān)的能用到的變量,放在一個自建的表格之中,而且代碼的執(zhí)行順序,并不一定是從上而下,可以通過自己設(shè)定的箭頭的方向的方式來決定。對于本系統(tǒng),易語言部分需要完成兩個功能。一是PC端進(jìn)行數(shù)據(jù)的接收,必要的時候進(jìn)行反饋。二是對數(shù)據(jù)庫進(jìn)行增刪改查操作。
對于APP部分發(fā)送而來的字符串進(jìn)行接收的PC端運行效果截圖如圖2所示。
圖2 易語言編寫的PC端接收裝置運行效果
此窗口有兩個編輯框,上面的編輯框用以接收APP發(fā)送而來的字符串,而下面的編輯框用以發(fā)送反饋信息。
在使用其進(jìn)行PC端與APP交互時,也需要保證端口號不被占用,否則易語言將無法通過端口傳送字符串。
在實現(xiàn)PC端與APP的交互的過程中,其實易安卓的部分并非主要作用,更多的是一種輔助作用。通過WiFi,就可以讓APP同使用易語言編寫的服務(wù)器接收端相連。易安卓因為它自身強(qiáng)大的功能,實現(xiàn)了可視化操作。將相應(yīng)的字符串便捷地傳輸過來。需要特別指出的是,繁體中文根據(jù)所使用的輸入法不同可能會導(dǎo)致錯誤的出現(xiàn)。通過WiFi發(fā)送到同一網(wǎng)絡(luò)環(huán)境下鏈接著的擁有易安卓語言編寫的APP安卓手機(jī)之上。對效果進(jìn)行評估的時候在PC上的虛擬機(jī)中就可以完成測試。
易安卓編寫的APP的啟動畫面如下圖3所示。
圖3 易安卓編寫的APP啟動畫面
界面的上方固定一個編輯框,默認(rèn)未進(jìn)行連接。在進(jìn)行了連接的操作之后,觸發(fā)事件,相當(dāng)于執(zhí)行了ipconfig后得到的IP地址會在易語言的界面上顯示,易安卓編寫的APP只需要在相應(yīng)的編輯框中輸入即可,然后單擊連接觸發(fā)連接操作。
PC端與APP均可以進(jìn)行清空操作,方便快捷。既可以手動在編輯框中進(jìn)行文本的修改,也可以單擊清空觸發(fā)清空操作。
初始化的時候,默認(rèn)導(dǎo)入本地文件夾下的名為data.mdb的文件,先對數(shù)據(jù)庫進(jìn)行第一次連接,具體代碼如下:
這里為了使得安裝的更加便捷,使用Access進(jìn)行數(shù)據(jù)的匯總。由于Access的功能就很強(qiáng)大,可以使用Access直接進(jìn)行管理,也可以使用基于易語言開發(fā)的圖形界面對數(shù)據(jù)進(jìn)行管理,運行效果截圖如圖4所示。
圖4 圖形界面運行初始效果
但是由于易語言本身的一些功能的限制,對于2007以上版本的Access在保存的時候所生成的文件,如果直接調(diào)用讀取本地數(shù)據(jù)庫的語句進(jìn)行讀取的話,會出現(xiàn)亂碼。于是Access在與易語言5.3與易安卓5.6的版本進(jìn)行連接的時候,需要進(jìn)行一步另存為的操作,將數(shù)據(jù)庫轉(zhuǎn)化為mdb的格式。放在 同一目標(biāo)文件夾之下,具體如圖5所示。
圖5 保存路徑舉例
這一部分代碼,易安卓部分主要功能為發(fā)送字符串以及顯示與拋出異常,還需要進(jìn)行必要的轉(zhuǎn)碼,將編碼轉(zhuǎn)為GBK即可,具體轉(zhuǎn)碼的易安卓的代碼如下:
對于易語言部分,本身就可以將易安卓定位成客戶型的服務(wù)器。通過自身具備的強(qiáng)大的函數(shù),直接判斷是否連接成功,如果連接成功,在數(shù)據(jù)到達(dá)之后,需要將數(shù)據(jù)取回,具體如下:
為了實現(xiàn)PC端與APP的交互,PC端在發(fā)送數(shù)據(jù)的時候,將編輯框中的內(nèi)容轉(zhuǎn)移到字節(jié)集中,通過按鈕觸發(fā)發(fā)送的事件即可,具體代碼如下:
如果進(jìn)行連接成功,下方彈出“連接成功”的提示框,效果如圖6所示。
圖6 連接成功效果
在中部以及下部的兩個編輯框內(nèi),在第一個編輯框中,觸發(fā)發(fā)送按鈕即可完成發(fā)送字符串,觸發(fā)清空即可完成清空操作。第二個編輯框中負(fù)責(zé)接收PC端發(fā)送而來的反饋信息,點擊清空按鈕即可完成清空的操作。
大連理工大學(xué)的易語言開發(fā)團(tuán)隊基于WiFi將易語言開發(fā)的PC接收端與易安卓開發(fā)的APP連接起來,在知曉了此時PC的IP地址了之后,調(diào)用易語言中的取IP地址這個函數(shù)即可,具體代碼如下:
在進(jìn)行了同一IP地址之下的連接了之后,觸發(fā)發(fā)送按鈕,就可以將下方的編輯框中的文本字符串發(fā)送到易安卓編寫的APP之上,進(jìn)行反饋指令操作。觸發(fā)清空就能完成清空的操作。
默認(rèn)先進(jìn)行取本地的數(shù)據(jù)庫的操作,具體代碼如下:
如果進(jìn)行增加的操作,只需要先在各個編輯框中輸入要錄入的信息,然后單擊添加即可,具體如圖7所示。
圖7 測試數(shù)據(jù)庫的添加功能
于是在界面的下方就出現(xiàn)了添加的一組新的數(shù)據(jù),與此同時右下角會提示添加成功。
在農(nóng)業(yè)的生產(chǎn)中,需要根據(jù)生產(chǎn)的實際情況,具體情況具體分析。如果出現(xiàn)了過高的溫度、濕度、照度,需要彈出提示框。這里默認(rèn)的將彈出報警的提示框的溫度濕度照度的數(shù)據(jù)都設(shè)定為50,這里忽略單位的影響。
圖8 溫度過高時將彈出提示
如果溫度過高,會彈出相應(yīng)的警告對話框,程序運行結(jié)果如圖8所示。
而后在空白處單擊右鍵,就可以進(jìn)行刪除、修改、查詢的操作了。單擊右鍵后出現(xiàn)的菜單中分別單擊刪除、修改、查詢即可觸發(fā)相關(guān)事件。
隨著易語言與易安卓的類庫的不斷擴(kuò)充,該系統(tǒng)的功能一定會更加的強(qiáng)大,在這基礎(chǔ)上該系統(tǒng)會有多大的提升空間取決于類庫的功能完成程度,第一點讓人充滿了期待。
使用時需要注意兼容性問題。在獲得了大量的數(shù)據(jù)之后,在條件允許的情況下,可以將該系統(tǒng)進(jìn)行升級。比如,可以將相關(guān)的數(shù)據(jù)庫文件同步到云端,便于實現(xiàn)異地存取。也可以利用模式識別相關(guān)知識進(jìn)行數(shù)據(jù)的歸納與排錯,建立相應(yīng)的動態(tài)的數(shù)學(xué)模型,結(jié)合數(shù)理統(tǒng)計的相關(guān)知識進(jìn)行分析,結(jié)合大量的運算給出合理化的建議甚至是進(jìn)行預(yù)測,并且測試出預(yù)算的準(zhǔn)確度。
參考文獻(xiàn):
[1]Simon Monk,張寶玲,等.基于Arduino的趣味電子制作[M].北京:科學(xué)出版社,2011:22
[2]吳 濤.中文編程學(xué)習(xí)進(jìn)階[M].山東青島:海洋出版社,2013:122
[3]吳 濤.易語言中文編程-從入門到精通[M].山東:海洋出版社,2011:133