畢業設計(論文)智能家電設備物聯網絡核心控制平臺的設計與實現_第1頁
畢業設計(論文)智能家電設備物聯網絡核心控制平臺的設計與實現_第2頁
畢業設計(論文)智能家電設備物聯網絡核心控制平臺的設計與實現_第3頁
畢業設計(論文)智能家電設備物聯網絡核心控制平臺的設計與實現_第4頁
畢業設計(論文)智能家電設備物聯網絡核心控制平臺的設計與實現_第5頁
已閱讀5頁,還剩37頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、黑龍江東方學院黑龍江東方學院本本 科科 生生 畢畢 業業 論論 文(設文(設 計)計)智能家電設備物聯網絡核心控制平臺的設計與實現智能家電設備物聯網絡核心控制平臺的設計與實現學 部 計算機科學與電氣工程學部 專 業 計算機工程 姓 名 學 號 班 級 07 級 1 班 指導教師 答辯日期 2011 年 5 月 14 日 黑黑龍龍江江東東方方學學院院本本科科生生畢畢業業論論文文(設設計計)任任務務書書姓名學號專業班級計算機科學與技術 1 班畢業論文(設計)題目:智能家電設備物聯網絡核心控制平臺的設計與實現畢業論文(設計)的立題依據在信息時代的今天,電子設備的不斷普及,信息的控制已成為不可回避的問

2、題大到互聯網的斷電控制,小到家庭電器的物聯網絡控制都突出了控制的作用,好的控制可以使事物井然有序,使用戶便于操作、便于快速理解。如今家電在逐漸智能化,種類在不斷增多,因此給用戶也帶來了很多不便、操作的繁瑣甚至是潛在的安全隱患。因此需要一個合理設計的、具有安全隱患檢測功能的智能控制終端來管理控制家庭設備的有效工作,保證生活便捷、舒適、安全!主要內容及要求1、 跨平臺通用程序語言的選擇;2、 接口設計的關鍵技術;3、 功能模塊設計的實現;4、 程序功能擴展的設計;進度安排2010 年 9 月 20 日 選題 2010 年 9 月 21 日2011 年 5 月 13 日 接受指導教師的指導 2010

3、 年 9 月 21 日2010 年 9 月 30 日擬定論文大綱 2010 年 10 月 1 日2010 年 10 月 31 日搜集、查閱、整理相關資料 2011 年 3 月 1 日2011 年 3 月 28 日初稿形成 2011 年 3 月 29 日2011 年 4 月 5 日 初稿審定 2011 年 4 月 6 日2011 年 4 月 10 日 第一次修改 2011 年 4 月 11 日2011 年 4 月 14 日 第一次審定 2011 年 4 月 15 日2011 年 4 月 20 日 第二次修改 2011 年 4 月 21 日2011 年 5 月 4 日 定稿 2011 年 5 月

4、5 日2011 年 5 月 13 日 論文評閱小組評審論文(設計) 2011 年 5 月 14 日 畢業論文(設計)答辯學生簽字:指導教師簽字:年 月 日本表一式三份,學生本人、指導教師、學部各一份。黑龍江東方學院本科生畢業論文(設計)i智能家電設備物聯網絡核心控制平臺的設計與實現智能家電設備物聯網絡核心控制平臺的設計與實現摘 要 隨著嵌入式領域技術不斷的發展、成熟,電子設備不斷的更新換代,電子設備不斷在向智能化的方向發展,設備的智能化研究在我國還處于初期階段,智能化已經走進到我們生活,大到人工智能的機器人設計,小到兒童的玩具遙控汽車,遙控飛機等都是些智能化控制的例子,智能化的到來會給我們的生

5、活帶來更多的便利,使我們的工作效率大大的提高,生活更加舒適、幸福。此文章的研究題目來源于家庭電子設備的不斷增多帶來操作上的繁瑣,為了實現對跟中家用電器的有效的組織、控制,本文研究實現了對家庭設備物聯網絡的核心控制,物聯網絡主控軟件,本軟件充分考慮了跨平臺性,可以運行在 arm 設備或 pc 設備上,linux 或 windows 系統上,選用了具有通用的,跨平臺的 qt 編程語言實現,而且 qt 在 arm 上的性能也比較好,作為圖形用戶界面設計更是較好的候選語言。軟件詳細設計上的接口設計更為突出,設計了三個層次,上層,中間層和底層的實現,其中上層作為用戶的交互接口響應用戶的各種請求,中間層最

6、為承上啟下層,負責獲取用戶的請求,進行解析,形成響應請求的數據包和對底層日志的記錄,發送控制數據進行最終的設備控制。程序考慮到了些用戶的請求,針對 arm 上的使用,主要是體現對設備的控制,對于 pc 的用戶,由于 pc 機的性能比較高,所以除了給用戶提供了節本的控制設備外,還增加了一些擴展的模塊,這些模塊可根據編譯選項有選擇的進行編譯進程序,給用戶帶來了更多的體驗,更多的選擇。設計此軟件的時候遇到了些問題,如對硬件的控制接口設計,通信接口的選擇,是用過無線網絡還是通過藍牙,或是通過串口,或是通過路由器有線網絡進行傳輸來控制。本軟件已初步完成,不過一個成熟的產品是必須經過一系列的測試、長期的使

7、用才能確定它的性能與暴露的問題,本軟件現在還未經過特殊的測試與使用,因此可能會有潛在的問題存在,這些有待日后的不斷研究與完善。關鍵詞關鍵詞:qtqt;armarm 平臺;接口;藍牙;串口平臺;接口;藍牙;串口黑龍江東方學院本科生畢業論文(設計)iiintelligent home appliance equipment content couplet network core control platform of design and implementationabstractalong with the development of embedded field technology c

8、onstantly, mature, electronic equipment constantly upgrading, electronic equipment unceasingly in the direction of the development, to the intelligence of the intelligent research in our equipment is still in the initial stage, the intelligent had entered into our life, big to artificial intelligenc

9、e robot design, small to childrens toys remote cars, remote control plane, etc are some examples of intelligent control, intelligent arrival will bring to our daily life more convenient, make our work efficiency greatly enhanced, the life more comfortable, and happiness. this article from the resear

10、ch topics of the electronic equipment increasing family brought operational trival, in order to realize the effective in household appliances with the organization, control, this paper studies that realized to family equipment the core control, al network that master software, the al network softwar

11、e fully considered cross-platform-ability, can run in the arm equipment or pc devices, linux or windows system, chose has universal, cross-platform qt programming language to be, and the performance of the arm on qt is also good, as a graphic user interface design is better candidate language. the d

12、etailed design of the software on the interface design is more outstanding, designed three levels, upper middle and bottom, the realization of the upper as users, including various respond to user interaction interface layer, layer is most essential request, retrieve the users request, responsible 黑

13、龍江東方學院本科生畢業論文(設計)iiifor the system, and formed the packet and request of response to the record, send log bottom final equipment control data control. program takes into consideration some users request, according to the use, mainly on the arm is reflected on the equipments for pc users control, bec

14、ause the pc performance is higher, so in addition to give users the control equipment provides overall-control outside, still have added some extended module, these module can be according to compile options have choice of compiled into the program, to the user has brought more experience, more choi

15、ces. when designing the software had some problems, such as the control interface to the hardware design, the communication interface choice, is used or through bluetooth wireless network, or through a serial port, or through the router cable network for transmission to control. this software is pre

16、liminary already completed, but a mature product is must go through a series of tests, long-term use can make sure its performance and exposed problems, this software is not yet by the special test and use, so there may be potential problems, these remains to be continued research and improvement. k

17、eywords:qt;arm platform;interface;bluetooth;serial目錄 摘摘 要要.iabstract.ii第第 1 章章 緒論緒論.11.1 課題背景.11.2 智能家庭網絡的概念及功能.11.3 智能家庭網絡的國內外研究現狀.21.4 課題的主要研究內容和安排.31.4.1 課題的具體研究內容.31.4.2 人員及任務安排.41.5 本文的主要研究內容.4第第 2 章章 功能模塊設計功能模塊設計.62.1 開發環境的選擇.62.1.1 硬件平臺分析.62.1.2 arm 系列平臺.62.1.3 通用 pc 平臺.62.1.4 程序語言分析比較.62.2 接

18、口設計.82.2.1 界面接口.82.2.2 中間層控制.82.2.3 日志接口.92.2.4 串口.102.2.5 程序功能擴展的設計.11第第 3 章章 功能模塊設計的實現功能模塊設計的實現.123.1 用戶界面實現.123.2 中間層控制器功能實現.133.3 串口操作實現.153.4 日志功能實現.223.5 控制信息數據包定義.273.6 程序功能擴展的設計.30第四章第四章 總結總結.304.1 家庭網絡主控 v1.0 版本分析總結.304.2 變動性需求分析預測.314.3 發展趨勢.32參考文獻參考文獻.33致致 謝謝.34黑龍江東方學院本科生畢業論文(設計)1智能家電設備物聯

19、網絡核心控制平臺的設計與實現智能家電設備物聯網絡核心控制平臺的設計與實現第 1 章 緒論1.1 課題背景伴隨著網絡技術的發展和全球的信息化,人們的家居生活正面臨著重要的改革。網絡極大地便利了人們的各種活動,給社會帶來了巨大的進步。信息技術和網絡技術的觸角已經深入到普通家庭之中,這些技術帶給人們的不僅僅是舒適、智能和個性化的家居生活,而且使家庭更快速、更有效、更廣泛地與社會有機的聯系起來。在家庭生活中越來越多的電器出現,它們在方便人們的生活和提高生活質量的同時也給管理帶來了極大的問題。如果把這些電器設施連接成網絡,就可以實現方便、有效的統一管理和信息資源共享。因此,只能家庭網絡的出現成為了一種勢

20、不可擋的趨勢。只能家庭網絡從出現到現在,大致經歷了四個階段。最初為家庭自動化(home automation),即利用微處理電子技術來集成或控制家中的電子電器產品后來隨著網絡技術的發展,出現了家庭網絡(home network)這一名詞,它是指連接家庭里的pc、各種用電器和設備及與因特網互聯的網絡系統,這個時期真正的把家電設備與internet 聯系起來成為網絡。組建家庭網絡最重要的一個環節是核心控制軟件,主控端負責連接各部分家電設備并直接進行控制,主控如何設計會直接影響到各部分家電設備的有效控制,因此本論文在現有的家電控制的基礎上進行了對家庭網絡主控軟件的設計與實現。1.2 智能家庭網絡的概

21、念及功能所謂智能家庭網絡,即利用中央控制器(電腦或是嵌入式微處理器) 、網絡和綜合布線技術或是無線通信技術,通過家庭信息管理平臺將與家居生活有關的各種子系統有機地結合的一個系統。也就是說,首先,要在一個家具中建立一個通信網絡,為家黑龍江東方學院本科生畢業論文(設計)2庭信息提供必要的通路,在家庭網絡操作系統的控制下,通過相應的硬件和執行機構,實現對所有家庭網絡上的家電和設備的控制和檢測。其次,對它的更高要求是通過一定的媒介平臺,構成與外界的通信通道,以實現與家庭以外的世界溝通信息,滿足遠程控制、檢測和交換信息的需求。具體來說,家庭網絡應該具有以下一些功能:信息共享功能。共享 internet

22、訪問,共享微機外設,共享文件和應用。家庭娛樂功能。對內實現多媒體設備之間的視頻音頻信號傳輸,對外實現可視電話、視頻會議和視頻點播等是視頻音頻信息交流。信息采集收集。住戶家庭運行的各種參數,包括水表、電表、煤氣表的計量數據以及局勢溫濕度等,實現自動抄表,提高住宅檔次和物業管理水平。安全防范。通過住宅室內安裝的各種報警探測器和緊急按鈕進行防盜、防火和防災監控,能夠及時處理各種警情。信息服務。住戶可以了解自己家庭運作的各種參數,如房間溫濕度,各種計量表讀數,被控家庭狀態等,同時可以通過網絡進行各種交費的簡單查詢。智能化控制。根據周圍環境的變化進行對家用電器進行智能化控制,從而建立舒適健康的生活環境。

23、其它增值功能。如家庭電子商務、申請社區服務等功能。1.3 智能家庭網絡的國內外研究現狀自從世界上第一棟智能建筑于年在美國出現后,美國、加拿大、歐洲、澳大利亞和東南亞等經濟比較發達的國家先后提出了各種智能家居的方案。從上世紀九十年代中期開始,家庭網絡技術開始逐步發展起來,在國際上比較有影響的系統由:美國的-10、cebus(consume electronic bus)和 lonwork;其中 cebus 和 lontalk協議已被 eia 發布為 eia-600 標準和 eia-709 標準,并向國際標準發展。幾年來,以美國 micorsoft 公司、ibm 公司以及 motorola 公司等

24、為首的一批國際知名企業也先后躋身于智能家居的研究與開發領域,分別開發了“夢幻之家” 、 “家庭主任” 、 “居所之門”等家庭網絡產品,其智能化程度已經得以體現。此外 intel 公司、托馬杜多媒體黑龍江東方學院本科生畢業論文(設計)3公司、日本松下電器公司、新加坡科技電子公司、韓國三星公司等知名企業也一直致力于智能家居系統的研發工作。智能家居在中國經歷了近 6 年的起步階段,發展速度緩慢,這主要是因為沒有投入大量的資金,開發技術短期內也不成熟。但是隨著建筑智能化行業協會的成立以及技術水平的不斷提高,產品在市場上已逐漸推廣,前期主要集中在一些分散的智能家庭控制子系統的研究上,如三表(電表、水表和

25、天燃氣表)抄送子系統、門禁子系統、可視對講子系統、醫療求助子系統等等。這些子系統互相獨立,不能實現信息共享,使安裝和使用很不方便。國內一些知名企業,如方正、聯想、海爾、海信和 tcl 等家電企業也嘗試推出自己的產品,但是由于缺乏統一的標準、規范和接口協議,這些產品只能作為概念性產品,不能成為現實的產品大量上市。雖然智能家庭網絡系統還沒有大范圍普及,但是它的一些無線和有線標準都已經相當成熟,伴隨著我們對生活品質要求的不斷提高,集成技術、通訊技術、互操作能力以及布線標準的發展和不斷改進,智能家庭網絡必然成為一種發展趨勢,走進千家萬戶。據美國一家權威市場調查機構統計,到 2010 年,美國 20%5

26、0%以上的新房都已具有“智能家居”功能。據我國 06 年國家建設部科技委智能建筑技術開發推廣中心的報告稱:隨著環境、健康、安全、舒適的智能家居逐步普及,家居智能化的比例會大幅增加,目前已達到 20%左右;按照智能家居每年 500 多萬套的速度發展,智能家居市場對智能產品的需求量將大幅度的增長。在這種潮流的引領下,國內外的一些公司都在積極地研發更加便捷、舒適和人性化的智能家庭網絡產品。1.4 課題的主要研究內容和安排課題致力于研究一套完整智能家庭網絡系統,以實現家電設備間的互聯,實現它們之間的信息通信與共享,統一管理各家電設備。該系統主要由智能家庭網絡核心控制平臺、家電設備終端控制器、電源及安全

27、管理和移動手機控制端系統四部分組成,采用無線技術組建網絡實現各子系統間的信息通信與共享。1.4.1 課題的具體研究內容1)智能家庭網絡核心控制平臺的設計與實現。黑龍江東方學院本科生畢業論文(設計)4使用跨平臺 qt 語言實現主控軟件功能,面向對象的設計使程序日后更容易維護、代碼更容易復用,主控的設計分為三個接口層次(用戶界面、核心控制、底層功能)使程序更具邏輯性、具有可擴展性,底層功能以獨立的模塊化實現,主控的設計重點考慮在穩定性、易用性及擴展性上。2) 家電設備終端控制器的設計與實現設計一款低功耗、小體積的終端設備,完成以藍牙技術接收核心控制平臺發送過來的信息,在以紅外信息發送出去,以達到控

28、制家電設備的目的。并且該終端設備能夠做到與核心控制平臺、移動手機控制端的無縫連接。3) 電源及安全管理系統的設計與實現4) 移動手機控制端的設計與實現設計以 android 智能手機為平臺、以藍牙為通信信道的智能家庭網絡移動控制端,實現手機端與核心控制平臺的通信。達到手機控制核心控制平臺,再由核心控制平臺控制家庭網絡的目的。5) 無線通信技術及通信協議的研究研究使用藍牙技術、紅外技術和(.)作為家庭網絡的無線通信技術;研究定義系統通信過程中所需遵循的通信協議。1.4.2 人員及任務安排人員及任務安排如下表所示:研究者姓名研究內容石勝杰智能家庭網絡核心控制平臺的設計與實現劉金剛家庭設備終端控制器

29、與紅外通信的設計與實現李增亮電源及安全管理系統的設計與實現、通信協議的定義于永坤移動手機控制端與藍牙接口的設計與實現黑龍江東方學院本科生畢業論文(設計)51.5 本文的主要研究內容本文主要完成了主控端軟件的設計與實現,設計與實現分為兩章分別敘述,在設計的層面都會在實現的章節里找到相應的實現部分,本軟件設計了具有可添加第三方開源軟件的功能,這部分實現需要修改、調整需要擴充的開源軟件以運行在我們指定的平臺上,工作量比較大,時間比較長,因此暫時留出擴充的接口,待以后軟件的不斷完善再進行具體的添加、實現。設計開發環境的選擇硬件平臺分析程序語言分析比較接口設計界面接口中間層控制日志接口串口實現用戶界面實

30、現控制器功能實現串口操作實現日志功能實現控制信息數據包定義程序功能擴展的設計總結家庭網絡主控 v1.0 版本分析總結變動性需求分析預測未來發展趨勢黑龍江東方學院本科生畢業論文(設計)6第 2 章 功能模塊設計2.1 開發環境的選擇2.1.1 硬件平臺分析根據不同用戶在不同場景下的不同需求,程序選擇了兩種硬件平臺,低端arm以及通用的pc機,arm平臺上主要是以實現對家電控制為主,通用pc上既實現對家電的控制同時為了增加用戶的體驗又增加了一些功能,擴展功能主要是提供了些娛樂性的程序,如小游戲,小型管理工具等。2.1.2 arm 系列平臺arm適合在低端控制領域里做高性能控制,對于家電控制更有其優

31、越性,低廉的價格及低功耗可以使用戶花費更少的成本就能實現智能化家居管理,高性能的處理可以給用戶更多的體驗同時也增加了控制的實時性和穩定性。體積小、集成度高,可以安置在墻壁上或者任何想要的位置,可以擴展多種硬件接口從而擴展其功能,如無線網絡模塊,早上出門前點擊一個按鍵便獲取今天的天氣情況使你在出行前做好充分的準備。2.1.3 通用 pc 平臺同arm而言,pc追求的是高端技術,高速度、大容量,而且每家每戶一臺電腦已經成為現實,在用戶享受音樂的視聽與高清電影的暢快的同時也可以對家庭設備進行控黑龍江東方學院本科生畢業論文(設計)7制、檢測以及監控。正是由于pc機的高性能,為了增加用戶的更多體驗,對程

32、序進行了模塊化的擴展設計,擴展的功能主要有與arm進行通信(如上傳下載數據) ,遠程控制arm操作。2.1.4 程序語言分析比較c c+ java qt分析比較在低端運行程序,語言的選擇會直接影響到程序的性能,因此選擇一個具有跨平臺的高性能的語言是最重要的。標準c/c+本身就具有跨平臺性,其編譯目標代碼執行效率較高,語言簡介,靈活,自由度高,對于同用戶友好交互的圖形界面設計而言,在pc機上可選的c/c+圖形庫較多,跨平臺圖形庫也有很多可供選擇,如比較高效的繪制2d/3d的opengl圖形庫,更高級的cegui圖形庫都可作為其候選圖形設計語言。然而arm平臺上的圖形設計工具就相對很少了,而且有些

33、圖形庫并不提供比較完善的ide,因此也給設計、實現帶來了很多麻煩。java是解釋性語言,因此夸平臺較好,只要有特定的java虛擬機提供就可以順利執行java程序,然而這也增加了一定的性能負擔,尤其是在嵌入式平臺下運行。qt是一個擴展了c+部分功能的圖形設計類庫,這樣保證它的執行性能,同時具有較好的夸平臺性,適合在嵌入式,pc這樣的不同硬件平臺執行,qt如今已經集成了很多豐富的功能,如文件的操作,網絡處理的封裝,以及2d/3d繪圖,更有力的是qt開發的ide,更是提高了開發者的工作效率,qt有gpl協議和lgpl協議,很好的開放性更有利于問題的解決與學習,qt已成為嵌入式圖形設計語言的標志,因此

34、選擇用qt做夸平臺語言比較合適,此主控正式基于qt設計。黑龍江東方學院本科生畢業論文(設計)8qt開發使用的ide如圖:2.2 接口設計2.2.1 界面接口qt通過信號-槽機制響應事件,這種機制可以實現一對一、多對一、一對多、多對多信號響應,實現起來比較靈活,可根據程序功能的組織響應不同的信號觸發方式,程序與用戶的接口就在可操作的界面響應上,因此如何處理好界面與用戶的交互也是實現界面與底層功能交互的基礎,事件的觸發成了接口的重點,程序設計時考慮到了兩種處理信號觸發的過程,一種是用事件過濾器,另一種則是直接捕獲事件,兩種實現都有弊有利,事件過濾器可以集中管理用戶觸發的操作,集中管理分支執行響應,

35、這樣存在的問題是控制的設備過多,事件注冊較多,處理過程相對較麻煩,不易程序擴展,對于分散式捕獲用戶觸發信號實現起來比較容易,程序較易擴展功能,考慮到家電設備的控制比較多,采用了第二種方法,把所觸發的信號傳送到中間層,進行判斷、解析、分發等處理。主控界面截圖:黑龍江東方學院本科生畢業論文(設計)92.2.2 中間層控制考慮到界面層和底層的最大分離、模塊化,因此設計了中間控制層,即起到承上啟下的過渡作用,又把控制的核心封裝到了單獨一層,這樣也更有利于操作和維護,中間控制層設計為一個核心類,其主要功能是循環等待用戶觸發事件,分析用戶所要控制的設備及控制信息,根據用戶的操作產生控制信息(數據包) ,然

36、后檢測串口,發送數據控制設備,如果是對一些安全性較高的設備的控制,會根據用戶的操作,設備的狀態產生操作日志信息,并寫入日志,如果用戶選擇了擴展功能,進而轉到擴展功能界面等待用戶操作,因此中間層的分析實現了上層的響應與底層功能的調用,起到了核心中轉的作用。中間控制層設計簡圖:黑龍江東方學院本科生畢業論文(設計)102.2.3 日志接口及時的記錄操作信息是很有必要的,記錄下來的信息可以事后進行復查,可以推測一些原由,家庭電器設備的安全操作是很關鍵的一個環節,審計功能通常用在可能會存在安全隱患的地方,如非法用戶使用了非法操作就會被記錄下來,為事后檢測、分析提供了一定的保障,為此我們為提高安全檢測性、

37、有利分析排除故障增加了日志功能,日志通常記錄的是操作的過程,所以留出寫日志功能接口就可以實現我們的功能。日志功能模型圖:黑龍江東方學院本科生畢業論文(設計)112.2.4 串口對于控制外發消息,我們有兩種方案,一種是通過使用硬件擴展串口接口,每個設備接收一個獨立串口控制信息,從而完成對設備的控制,另外一個是通過一個中轉,藍牙或是網絡,把控制信息通過特定協議傳送到指定設備實現控制。控制設備存在一個問題就是硬件接口的問題,我們可以通過一對一的方式進行獨立控制,但如果想把這些設備用來集中控制的話就得需要有個好的解決方案,程序的設計主要考慮到硬件平臺的可移植性,所以要盡量避免對特殊硬件的依賴,由于現在

38、的技術能力有限,時間倉促,所以暫時實現了串口的控制,對于串口的控制首先需要初始化串口,設置好后就可以進行寫數據實現控制設備功能,因此串口的接口就在與寫串口。串口功能設計模型圖:黑龍江東方學院本科生畢業論文(設計)122.2.5 程序功能擴展的設計程序功能擴展的設計主要考慮本軟件的性質,如果僅僅只有單獨的控制設備,這樣在用戶不需要控制設備的時候就浪費現有的硬件資源,而且程序也更讓用戶感覺到枯燥、乏味,因此增加了這部分功能,添加一些娛樂性的軟件功能使用戶在休閑時刻也可以通過主控軟件來娛樂、放松一下,沒有添加更多的成本卻充分利用了資源,由于這部分功能的設計比較復雜,現在還沒有進行更多的調研,所以沒有

39、確定具體加入哪些第三方軟件(擴展的軟件均為第三方開源軟件,大多遵循lgpl協議) ,現階段考慮加入小型游戲類、管理和工具類軟件。這部分的實現比較復雜、事件較長,所以待版本的日后更新再逐漸擴展這部分功能。黑龍江東方學院本科生畢業論文(設計)13第 3 章 功能模塊設計的實現3.1 用戶界面實現dvd控制截圖:電視機控制截圖:黑龍江東方學院本科生畢業論文(設計)143.2 中間層控制器功能實現econtroller類實現了中間層控制器功能,通過封裝靜態函數實現與實例化對象不相關的操作作為連接上層與下層的接口。中間層控制器的設計還可以使用戶界面與具體的實現相分離,如果以后界面需要改動,只需添加新增界

40、面功能的對應控制器接口的實現即可,而不再因為界面的改動而引起過多實現細節的變動。同時也使下層的各部分功能相互獨立,各部分功能模塊都由控制器接口來調用實現相應的功能,使模塊有更好的內聚性與低耦合性。中間控制層的工作流程圖:黑龍江東方學院本科生畢業論文(設計)15中間控制層的源碼:黑龍江東方學院本科生畢業論文(設計)163.3 串口操作實現對串口的操作主要是接收數據和發送數據,由于qt沒有對串口的操作進行封裝,主控端使用linux操作系統,linux系統把設備都寫成了文件,對設備的操作主要就是對文件的操作,如基本的打開、讀寫、關閉和fcntl對文件的相關屬性設置等,因此操作起來比較簡單,所以對串口

41、的操作直接用linux下的串口操作的系統調用實現。對串口操作使用了c+語言實現,有利于代碼的復用和維護。串口功能實現流程圖:黑龍江東方學院本科生畢業論文(設計)17黑龍江東方學院本科生畢業論文(設計)18源碼如下(ele-serial.h):#include #include #include #include #include #include #define buffer_size 1024#define serial_open_flags o_rdwr|o_noctty|o_ndelay#define bit_size 24class sformatpublic:enum device

42、dvd, tv;sformat();virtual sformat();int produce_control_info(device flag);void copy_to_out(char *outbuffer);private:char bufferbit_size;class eserialpublic:eserial();virtual eserial();int seropen();void serclose();int serread();int serwrite(char *data = null, int count = 0);void setdevicename(std:st

43、ring new_device_name);黑龍江東方學院本科生畢業論文(設計)19std:string getdevicename();public:void setevr();private:int ser_fd;struct termios ser_pro_old, ser_pro_new;std:string device_name;char bufferbuffer_size;ele-serial.cpp 源碼如下:#include #include ele-serial.husing namespace std;sformat:sformat()sformat:sformat()/

44、* according to enum optismation ,produce control information * param flag enum device optismation ,produce relate device control information * return 1or-1 return 1 when producing successfully ,other return -1 */int sformat:produce_control_info(device flag)int i = 0;bzero(buffer, bit_size);/* head *

45、/bufferi+ = 0 xfa;bufferi+ = 0 xfa;bufferi+ = 0 xfa;bufferi+ = 0 xfb;黑龍江東方學院本科生畢業論文(設計)20switch(flag)case dvd:return 1;break;case tv:return 1;break;default:return -1;break;return -1;/* copy control information to out buffer * param outbuffer the char pointer of the out application, its size is equal

46、 to bit_size to store information enough */void sformat:copy_to_out(char *outbuffer)for(int i = 0; i bit_size; i+)outbufferi = bufferi;eserial:eserial():ser_fd(-1) ,device_name(/dev/ttysac0)bzero(buffer, buffer_size);bzero(&ser_pro_old, sizeof(struct termios);黑龍江東方學院本科生畢業論文(設計)21bzero(&ser_pro_new,

47、sizeof(struct termios);eserial:eserial()/* set serial port initial evirenment */void eserial:setevr()if(ser_fd device_name = new_device_name;/* get device name * return device_name return serial port device name */黑龍江東方學院本科生畢業論文(設計)22std:string eserial:getdevicename()return device_name;/* open seria

48、l port * return fd error return -1, else return a new file fd */int eserial:seropen()if(device_name.empty() return -1;ser_fd = :open(device_name.c_str(), serial_open_flags);return ser_fd;/* close serial port */void eserial:serclose()if(ser_fd 0) return ;tcsetattr(ser_fd, tcsanow, &ser_pro_old);close

49、(ser_fd);/* read data from serial port * return count return the counts from serial port,false less equal 0 */int eserial:serread()if(ser_fd 0) fprintf(stderr, ser_fd is illgal,cant read data from serialn);return -1;/* some functions can be add here * (append and store buffer data.) */bzero(buffer,

50、buffer_size);return read(ser_fd, buffer, buffer_size);/* write data to serial port 黑龍江東方學院本科生畢業論文(設計)23 * param data the pointer of written data,failed return value less equal 0 * return count the count of written data */int eserial:serwrite(char *data, int count)if(ser_fd 0) fprintf(stderr, ser_fd

51、is illegal, cant write data to serial portn);return -1;if(!data) fprintf(stderr, the data to be written to serial port is illegaln);return -1;return :write(ser_fd, data,count); 3.4 日志功能實現日志功能主要是記錄用戶的操作信息與讀取用戶操作信息。這兩部分功能的實現,對于閱讀用戶的操作日志信息沒有做更多的功能,日志的讀取在第二版本里進行更多的完善,預計的功能有設計日志操作的用戶界面,讀取部分主要有選擇用戶操作的設備,根

52、據用戶選擇的設備顯示出日志文件中的操作信息,根據時間范圍顯示日志的信息,主要是獲取在用戶選擇的時間段內特定設備的操作情況。對于日志功能設計時更重視用戶操作的記錄日志,通過clog類實現對日志的操作。日志功能實現流程圖:黑龍江東方學院本科生畢業論文(設計)24日志功能實現源碼:clog.h:#ifndef clog_h#define clog_h#include #include #include #include #define file_open_flag qfile:readwrite | qfile:appendclass clog : public qobjectq_objectpub

53、lic: explicit clog(qobject *parent = 0); clog(qstring newlogname, qobject *parent = 0); clog();黑龍江東方學院本科生畢業論文(設計)25 void setlogname(qstring newlogname); bool islogopen(); int writetolog(qstring winfo); qstring readfromlog(qstring filename = ./control.log, qstring device = serial); void clearlog();si

54、gnals:public slots:private: qfile logfile; qstring logname; bool logstate;#endif / clog_hclog.cpp#include clog.hclog:clog(qobject *parent) : qobject(parent) logname.append(./control.log); logfile.setfilename(logname); if(!logfile.open(file_open_flag) writetolog(file open failed); exit(-1); else writ

55、etolog(file open success); /* initial with a log file name */黑龍江東方學院本科生畢業論文(設計)26clog:clog(qstring newlogname,qobject *parent) : qobject(parent) logname.append(newlogname); logfile.setfilename(logname); if(!logfile.open(file_open_flag) qdebug()file open failed; exit(-1); else qdebug()file open succe

56、ss; clog:clog() if(logfile.isopen() logfile.close();/* set new log file name */void clog:setlogname(qstring newlogname) /* test file available */ qfile file(logname); if(!file.open(qfile:readwrite) return ; file.close(); logname.clear(); logname.append(logname); logfile.setfilename(logname); /* log

57、file open again , using new file */ logfile.open(qfile:readwrite);/* log file is open or not */黑龍江東方學院本科生畢業論文(設計)27bool clog:islogopen() if(logfile.isopen() return true; else return false;/* write information to log file */int clog:writetolog(qstring winfo) if(winfo.isempty() return -1; else if(logf

58、ile.isopen() winfo.append(n); int ret = logfile.write(winfo.toascii(); logfile.flush(); if(ret = 0) return -1; qdebug()ret; else return -1; /* read log information from log file */qstring clog:readfromlog(qstring filename, qstring device) qstring record; if(logfile.isopen() qstring tmp; while(logfil

59、e.atend() tmp = logfile.readline();黑龍江東方學院本科生畢業論文(設計)28 if(tmp.contains(device) record += tmp; tmp.clear(); return record; else return ; /* clear log information */void clog:clearlog() if(logfile.isopen() logfile.close(); logfile.remove(); logfile.open(file_open_flag);3.5 控制信息數據包定義示例:buf= fa fa fa f

60、b 00 10 00 00 05 fa 00 00 00 00 00 00 00 00 00 00 00 00 60 fc注:數據為16 進制第1到4位為固定第5位為設備碼第6位為數據長度 紅色數據長度第7位 保留黑龍江東方學院本科生畢業論文(設計)29第8位 保留第9位 命令位return_status 0 x01 /反回當前狀態restart 0 x02 /目標重起set_status 0 x04 /設置狀態第10位 動作位net_openac_en 0x03 /至位交流繼電器 net_openac_dis 0x02 /清零交流繼電器 net_openac_null 0x01 /無狀態交流

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論