国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于http協(xié)議的可編程控制智慧樓宇虛擬仿真實驗平臺軟件的設(shè)計研究

2023-09-28 19:45陳銳
廣東教育·職教版 2023年9期
關(guān)鍵詞:服務(wù)器端字符樓宇

陳銳

前言

物聯(lián)網(wǎng)概念如火如荼,前景廣闊,產(chǎn)業(yè)鏈龐大,加之在人工智能的助推下,融合應(yīng)用于各行各業(yè):智能車聯(lián)、智慧物流、智能交通、智能家居等,各種科幻超前的虛擬仿真和虛擬現(xiàn)實場景,讓人嘆為觀止。在中職物聯(lián)網(wǎng)專業(yè)課程建設(shè)中,也要充分發(fā)揮虛擬仿真實驗平臺軟件的優(yōu)勢,創(chuàng)新人才培養(yǎng)模式,提升人才培養(yǎng)的質(zhì)量和成效。

現(xiàn)代化商業(yè),樓宇經(jīng)濟作為集聚現(xiàn)代服務(wù)業(yè)與制造業(yè)企業(yè)總部的高級經(jīng)濟形態(tài),吸引了不少大都市的“目光”,這也是北上廣深等大城市越來越重視樓宇經(jīng)濟發(fā)展情況的重要原因之一。隨著物聯(lián)網(wǎng)應(yīng)用的普及,智慧樓宇概念孕育而生。所謂智慧樓宇是將建筑、通信、計算機和控制等各方面的先進科技相互融合,合理集成為最優(yōu)化的整體,是大型現(xiàn)代化的物聯(lián)網(wǎng)綜合體。

在物聯(lián)網(wǎng)程序設(shè)計課程建設(shè)中,如果要設(shè)計一款智慧樓宇實體硬件實訓(xùn)平臺,一定是體積龐大,造價不菲,同時后期使用和維護的成本之大也是可想而知。這樣的課程建設(shè),很難讓課程真正得到推廣和實施,使得課程的可持續(xù)性和可用性大打折扣,特別是對一些相對貧窮落后、師資力量相對薄弱的地方更是不可行,哪怕是多個學(xué)生共同使用一套設(shè)備,也會給課程的開展和實施帶來諸多麻煩。

設(shè)計一款可編程控制的虛擬仿真智慧樓宇實驗平臺軟件,可以讓每一臺運行了該軟件的學(xué)生電腦都成為一套完整的實訓(xùn)設(shè)備,讓每一位學(xué)生都能擁有完全屬于自己的設(shè)備來完成學(xué)習(xí)任務(wù)。而且軟件的故障率相比于硬件,幾乎可以忽略不計,就算出問題,最多也是關(guān)閉軟件,重新運行即可,使用和維護的成本幾乎為零,可以完全實現(xiàn)學(xué)生與設(shè)備1∶1的比例,這是實體硬件設(shè)備無法比擬的優(yōu)勢。電腦之間是聯(lián)網(wǎng)的,那么虛擬仿真軟件之間也是聯(lián)網(wǎng)的,電腦互聯(lián)支撐軟件互聯(lián),實現(xiàn)多個仿真智慧樓宇之間的互聯(lián)互通,形成龐大的慧樓宇群,為學(xué)生提供了彼此之間可以相互合作編程的實驗平臺,能完成更多更復(fù)雜的編程控制實驗。虛擬仿真軟件主要具有以下特點:

趣味性:界面友好、操作簡單、變枯燥為神奇、迅速提高學(xué)生的學(xué)習(xí)興趣。

互動性:完全模擬實際實驗環(huán)境,互動性強。

實用性:緊貼教學(xué)大綱、完全服務(wù)于實驗課的學(xué)習(xí)。

探究性:實現(xiàn)讓學(xué)生積極參與、樂于探究、勇于實驗、勤于思考。

可靠性:軟件的穩(wěn)定性只取決于電腦,而硬件設(shè)備的穩(wěn)定性還會受到信號干擾、電壓不穩(wěn)定、溫濕度等諸多外部環(huán)境因素的影響,更容易損耗和損壞。

科學(xué)性:實現(xiàn)科學(xué)合理的真實模擬,實現(xiàn)虛擬實驗“零誤差”。

安全性:軟件相比硬件,不存在誤操作導(dǎo)致的燒傷、電傷、火災(zāi)、實體設(shè)備損壞等安全性問題。

虛擬仿真軟件是現(xiàn)代科技的一大創(chuàng)新,它能夠幫助人們在虛擬環(huán)境中模擬真實的場景,以達到學(xué)習(xí)、測試和研究的目的。隨著信息化時代的到來,虛擬仿真軟件已經(jīng)成為教育領(lǐng)域中的一種新型教學(xué)手段,虛擬仿真軟件的應(yīng)用已經(jīng)成為教學(xué)模式的一種創(chuàng)新,能為教育質(zhì)量的提升做出重要貢獻。

一、為何要基于http協(xié)議

網(wǎng)絡(luò)通信最常用的就是利用Socket接口實現(xiàn)在不同計算機之間傳輸數(shù)據(jù),另一種就是利用http協(xié)議。Socket是一種標準的API(應(yīng)用程序接口),可用在不同的計算機之間傳輸數(shù)據(jù),它支持TCP/UDP等多種網(wǎng)絡(luò)協(xié)議。專業(yè)級的網(wǎng)絡(luò)通信程序開發(fā)都會用到Socket。隨著人工智能和物聯(lián)網(wǎng)通識課的普及,計算機軟件編程課越來越受到學(xué)生和家長的青睞,市面上相繼推出了很多針對初學(xué)者和中小學(xué)生的圖形化編程、積木式編程軟件,Google的AppInventor就是最典型的代表,這些圖形化編程工具大部分都不直接提供Socket模塊,而是提供使用更為簡單的基于http協(xié)議的post或者get方法實現(xiàn)與服務(wù)器之間的數(shù)據(jù)通信。http協(xié)議是超文本傳輸協(xié)議,是互聯(lián)網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)協(xié)議。智慧樓虛擬仿真軟件主要是面向?qū)W生,面向初學(xué)者,面向教學(xué)的,所以必須要能支持適應(yīng)面更廣,使用更為簡單的http協(xié)議。

二、為何要可編程控制

實體智慧樓宇是由多套物聯(lián)網(wǎng)終端硬件模塊和軟件共同組成的物聯(lián)網(wǎng)系統(tǒng)。這些終端硬件模塊一定是有編程接口的,這樣軟件才能監(jiān)控和控制設(shè)備,智慧樓宇虛擬仿真軟件仿真的是實體智慧樓宇的功能,通過電腦圖形圖像和動畫進行綜合數(shù)字多媒體展示,所以這些展示也必須是編程可控的,因此,也要為仿真軟件設(shè)置編程接口。從軟件開發(fā)的角度講,就是將智慧樓宇虛擬仿真軟件設(shè)計為一個信息服務(wù)器端,當(dāng)服務(wù)器端接收到不同http信息的時候,能夠做出不同的響應(yīng),展示不同的圖像或動畫,模擬設(shè)備的運轉(zhuǎn)。學(xué)生編程控制虛擬仿真軟件就像控制真實硬件設(shè)備一樣,真正起到訓(xùn)練學(xué)生編程技能的作用。

三、信息服務(wù)端的設(shè)計思路

1.信息服務(wù)器端的開發(fā)實際就是Socket服務(wù)器端的開發(fā),在智慧樓宇虛擬仿真軟件中啟動Socket服務(wù)器端的偵聽,監(jiān)聽客戶端發(fā)送過來的信息,根據(jù)不同的信息做出不同的響應(yīng),這些信息其實就是在仿真軟件上定義的編程接口。例如:在仿真軟件上定義編程接口“0301SD”,其中0301是房間號,表示3層的01號房間,S為打開動作,D為燈設(shè)備標記。當(dāng)仿真軟件收到“0301SD”的信息時,就會將0301房間變成亮燈圖片。

啟動Socket服務(wù)器端偵聽,需要指定ip地址+端口,這個地址一般是ip4地址,如:192.168.100.1。需要特備注意的是服務(wù)器的ip地址是有多個的,而不僅僅只有一個,有ip4的也有ip6的,如果偵聽直接就指定默認的ip地址,則有可能會是ip6地址,這樣就會造成客戶端連接不上服務(wù)器,也就無法給服務(wù)器發(fā)送信息。所以服務(wù)器端在指定偵聽的ip地址之前,需要先將所有的ip地址全部掃描一遍,找出ip4地址,然后再進行指定。根據(jù)ip4地址的特點“點分4個十進制數(shù)”,編程思路是,使用循環(huán)語句將服務(wù)器的每一個ip地址先轉(zhuǎn)換成字符串,然后用“.”字符分割字符串,如果分割后得到的數(shù)組長度為4,說明是ip4地址,即可退出循環(huán)。在實際編程中,可以編寫一個自定義函數(shù),專門用于獲取服務(wù)器的第一個可用ip4地址。當(dāng)有了ip4地址,便可在程序啟動事件中啟動Socket服務(wù)器偵聽。

2.當(dāng)客戶端向服務(wù)器發(fā)起連接請求時,Socket服務(wù)器偵聽將會通過accept方法接受連接,并生成一個新的對應(yīng)于此次連接的套接字,該套接字負責(zé)與某個客戶端進行通信,即接收客戶端發(fā)送過來的信息,以及向客戶端發(fā)送信息。不同的客戶端連接到服務(wù)器,服務(wù)器都會生成專門的套接字與之進行通訊,是一一對應(yīng)的關(guān)系。在實際編程中,可新添加一個全局列表,專業(yè)用于保存新生成的連接套接字,當(dāng)某個客戶端斷開與服務(wù)器的連接時,與之對應(yīng)的連接套接字也將從列表中刪除,列中將一直保存與所有的在線客戶端連接的套接字。理論上Socket服務(wù)器端偵聽可以接受和響應(yīng)無限個客戶端的連接,但在實際使用中,虛擬仿真軟件往往是運行在一臺普通的pc電腦上(例如:學(xué)生電腦機房的電腦),它并不具備像真正的服務(wù)器一樣擁有海量信息數(shù)據(jù)的處理能力,因此,為了保證虛擬仿真軟件能穩(wěn)定可靠地運行在普通常用的pc電腦上,不會因為大量的客戶端鏈接請求而造成軟件的崩潰,需要設(shè)置連接上限。假設(shè)連接上限為20,那么,當(dāng)Socket服務(wù)器偵聽到有新的客戶端連接請求時,在使用accept方法接受連接之前,首先要判斷用于保存連接套接字的全局列表的長度是否小于20,如果是,說明當(dāng)前已經(jīng)連接到服務(wù)器的客戶端不足20個,可以接受該連接請求,否則,就放棄該連接請求。

3.由于客戶端發(fā)送給服務(wù)器的是http信息,而http信息是有固定格式的,當(dāng)服務(wù)器接收到客戶端發(fā)送過來的信息時,需要對信息進行處理,才能獲得具體的命令字符。例如:客戶端向服務(wù)器發(fā)出請求“http://192.168.100.1:10000/0301SD”,其中0301SD是命令字符,那么服務(wù)器接收到的信息如下:

其中很大部分都是http協(xié)議的格式字符,里面只有第一行的“GET/0301SD HTTP/1.1”是有用的信息,表示客戶端通過GET方法向服務(wù)器發(fā)送信息。http協(xié)議有兩種方法向服務(wù)器發(fā)送信息,一種是GET方法,一種是POST方法,如果第一行的信息是“POST/0301SD HTTP/1.1”,則說明客戶端是通過POST方法向服務(wù)器發(fā)送信息。無論服務(wù)器接收到客戶端發(fā)送過來的http信息中的第一行是“GET/0301SD HTTP/1.1”還是“POST/0301SD HTTP/1.1”,都有一個共同的特點,就是GET或者POST、/0301SD、HTTP/1.1這三段字符串之間是用空格字符隔開的,其中0301SD是客戶端發(fā)送來的命令字符,要將其準確地取出,可以把空格作為分割字符,使用字符串分割函數(shù)split對服務(wù)器接收到的http信息進行分割,從而得到一個字符串列表,列表的第二個元素就是“/0301SD”。然后再用字符串截取函數(shù)對“/0301SD”進行處理,將“/”字符去掉,得到準確地命令字符“0301SD”。根據(jù)獲取的命令字符,虛擬仿真軟件將會啟動或停止模擬設(shè)備運作的動畫,實現(xiàn)編程可控,同時根據(jù)客戶端的需求,向客戶端發(fā)送虛擬仿真軟件上模擬設(shè)備的狀態(tài)信息。

以上是基于http協(xié)議的可編程控制智慧樓宇虛擬仿真實驗平臺軟件的設(shè)計思路,也適用于其他可編程控制的虛擬仿真軟件的設(shè)計,例如:智慧物流、智能家居、智慧農(nóng)業(yè)、智能停車場等,只要改變虛擬仿真軟件中設(shè)備運作的模擬動畫即可。

智慧樓宇虛擬仿真平臺軟件最好是設(shè)計成可以選擇性組裝的。假如有20個基礎(chǔ)模塊,可以根據(jù)學(xué)習(xí)任務(wù)的不同,選擇需要的模塊,組裝成不同的系統(tǒng)。例如:設(shè)計簡單的智能安防系統(tǒng),可以在房屋中選裝煙霧傳感器、火傳感器、水傳感器。煙和火傳感器可以控制警報,水傳感器可以控制窗戶的開關(guān)等,這樣可以讓軟件更具靈活性和可擴展性。

[本文是2023年廣東省中小學(xué)教育科學(xué)規(guī)劃重點課題“融合網(wǎng)聯(lián)化虛擬仿真技術(shù)的物聯(lián)網(wǎng)程序設(shè)計項目課程開發(fā)的實踐性研究”(編號:2023ZQJK018)的階段性研究成果。]

責(zé)任編輯 魏家堅

猜你喜歡
服務(wù)器端字符樓宇
尋找更強的字符映射管理器
通信生產(chǎn)樓宇建設(shè)項目造價問題分析
商務(wù)樓宇治理中黨建融入的邏輯與路徑——基于廣州S樓宇的觀察與思考
Linux環(huán)境下基于Socket的數(shù)據(jù)傳輸軟件設(shè)計
字符代表幾
一種USB接口字符液晶控制器設(shè)計
消失的殖民村莊和神秘字符
淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
基于Qt的安全即時通訊軟件服務(wù)器端設(shè)計
智美兼具的精品——評測君和睿通Homates H10樓宇對講室內(nèi)門口機
隆尧县| 武隆县| 东乡族自治县| 铜陵市| 庐江县| 时尚| 宜城市| 连江县| 玉山县| 遂宁市| 五寨县| 江陵县| 琼海市| 乌苏市| 新乡市| 华蓥市| 岗巴县| 禄劝| 大洼县| 太谷县| 洪湖市| 三门峡市| 壶关县| 静宁县| 美姑县| 项城市| 嘉定区| 昌吉市| 罗江县| 大邑县| 海伦市| 临泽县| 宣恩县| 康乐县| 阜新市| 汝阳县| 青川县| 新和县| 天镇县| 大同县| 陈巴尔虎旗|