最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

這樣學(xué)上位機,是不是有意思多了

2021-05-12 11:46 作者:新閣教育  | 我要投稿

新閣教育-喜科堂付工原創(chuàng)文章

寫在前面

有小伙伴跟我說:

為了兌現(xiàn)承諾,這次給大家安排一個小項目案例,不管你是小白,還是有一定基礎(chǔ),都可以參與進來,一起把這個項目做出來。

項目需求

1、建立一個室內(nèi)空氣質(zhì)量檢測系統(tǒng),要求電腦軟件+單片機硬件,編程語言及硬件可以自行選擇。

2、系統(tǒng)分為三部分:數(shù)據(jù)采集部分、數(shù)據(jù)傳輸部分、系統(tǒng)軟件交互部分。

3、需求檢測的數(shù)據(jù):IAQ(Indoor Air Quality)、溫度、濕度、PM2.5、CO2、CO。

4、數(shù)據(jù)傳輸可以選擇串口、以太網(wǎng)、WIFI、藍(lán)牙中的一種。

5、當(dāng)檢測到空氣質(zhì)量過差時,系統(tǒng)需要給出相應(yīng)的解決方案(如:提示開窗通風(fēng)等)。

協(xié)議分析

這個項目其實涉及到單片機開發(fā),但這塊并不是上位機的范疇。在確定好上位機與單片機之間的通信協(xié)議之后,雙方都按照這個協(xié)議來開發(fā),最終進行對接就可以了。這個協(xié)議一般是由單片機開發(fā)人員制定,本例協(xié)議制定如下:

  • 單片機發(fā)送的數(shù)據(jù)格式:#TXXX,YYY,S@

1、#后面的大寫英文T表示對應(yīng)的參數(shù)類型,具體對應(yīng)關(guān)系如下:

2、XXX:代表檢測數(shù)值,占三個字符,例如010就是10。

3、YYY:代表該數(shù)組的限值,占三個字符,例如010就是10。

4、符號@前的S表示報警狀態(tài),1表示限值報警,0表示正常

  • 上位機進行限值設(shè)置發(fā)送數(shù)據(jù)格式:&SXXX$

1、&號后面的大寫英文T表示對應(yīng)的參數(shù)類型,對應(yīng)關(guān)系同上。

2、XXX代表設(shè)置的限值數(shù)據(jù),占三個字符

3、發(fā)送報文以$結(jié)束。

界面設(shè)計

根據(jù)項目需求,并結(jié)合協(xié)議設(shè)計界面如下:

本案例的一個關(guān)鍵知識點在于自定義組合控件的使用。

如果讓你來設(shè)計這個界面,你是否會考慮組合控件應(yīng)用,如果全部用的是系統(tǒng)控件,那么代碼會寫得很復(fù)雜,而且容易出錯,更重要的是擴展性會很差——如果需求發(fā)生變化,會需要改很多東西。

這里把參數(shù)的一系列狀態(tài)及操作做成一個自定義控件,然后將相關(guān)的功能抽象成屬性及事件。

實時通信

這里采用串口通信,針對SerialPort封裝一個串口類,這里會涉及到串口通信、鎖處理、委托技術(shù),核心為串口接收事件,代碼如下:

參數(shù)設(shè)置功能:

主界面功能

有了以上的基礎(chǔ)之后,主界面的功能開發(fā)就很容易了。

主界面的功能主要是兩部分內(nèi)容,第一部分內(nèi)容是數(shù)據(jù)解析,將解析結(jié)果賦值給控件的屬性進行顯示,第二部分內(nèi)容是通用的參數(shù)設(shè)置,將6個Monitor控件的參數(shù)設(shè)置事件都綁定同一個事件,然后在該事件里調(diào)用SetValue方法即可。

一般我們軟件開發(fā)完成后,都應(yīng)該先自我測試一下,便于及時發(fā)現(xiàn)問題,減少調(diào)試時間。

對于串口通信,可以我們通過虛擬串口來進行測試,仿真數(shù)據(jù)發(fā)送與數(shù)據(jù)接收,測試結(jié)果如下:

特別福利

為了便于大家更好地學(xué)習(xí)這個項目,我將通過免費直播課的方式演示整個項目的部署及開發(fā),通過完整的項目分析及編寫,即使你是零基礎(chǔ),也能帶你實現(xiàn)項目功能。

想要學(xué)習(xí)的小伙伴,趕緊掃描下方二維碼,進入班級群。

PS:名額有限,微信群僅限200人,先到先得,僅限當(dāng)天。

這樣學(xué)上位機,是不是有意思多了的評論 (共 條)

分享到微博請遵守國家法律
松滋市| 乌什县| 临夏市| 乌拉特中旗| 玉门市| 山西省| 富宁县| 新宾| 旺苍县| 两当县| 鸡东县| 肥乡县| 高唐县| 阿合奇县| 衡山县| 馆陶县| 海口市| 台安县| 喀喇| 临邑县| 察雅县| 晋中市| 晴隆县| 溧水县| 上犹县| 泊头市| 綦江县| 深州市| 灵丘县| 阳城县| 巢湖市| 兰溪市| 宿州市| 司法| 涟源市| 中山市| 织金县| 石柱| 沿河| 扎鲁特旗| 日喀则市|