<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Arm-Linux的嵌入式智能家居控制系統(tǒng)的設(shè)計

          基于Arm-Linux的嵌入式智能家居控制系統(tǒng)的設(shè)計

          作者: 時間:2011-04-06 來源:網(wǎng)絡(luò) 收藏

          首先用Qt Desinger根據(jù)系統(tǒng)要求圖形界面,建立槽函數(shù)開槽并且通過語句connect(PushButtonl,SIGNAL(clicked()),this,SLOT(set_userandphone()));建立信號與槽函數(shù)的連接。槽函數(shù)需要根據(jù)的功能需要編寫。用UIC與MOC工具生成文件user.h、user.cpp及完成信號與插槽功能的moc_user.cpp程序,由PROGEN與TMAKE生成工程文件user.pro與Makefile。user.cpp中有SQLite數(shù)據(jù)庫代碼,要把庫路徑加到Makefile庫文件的搜索路徑中否則會因為找不到SQLite的庫文件而編譯失敗。
          i.jpg
          j.jpg
          要實現(xiàn)用戶的用戶名、密碼等信息存到前面創(chuàng)建的user.db數(shù)據(jù)庫中,要把創(chuàng)建表與插入數(shù)據(jù)的代碼放到槽函數(shù)下。點擊set按鈕后就會產(chǎn)生一個信號來觸發(fā)槽函數(shù),實現(xiàn)數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)的存儲。實現(xiàn)串口通信的功能把設(shè)置的信息傳遞給的各個控制模塊,需通過設(shè)置struct termios結(jié)構(gòu)體的各成員值實現(xiàn)波特率、校驗位、停止位等設(shè)置,完成之后對串口的操作就可以像普通文件一樣進行讀寫操作。串口通信程序代碼也放到槽函數(shù)下邊
          k.jpg
          l.jpg
          完成X86環(huán)境下的編譯之后需要修改Makefile文件把PC環(huán)境編譯器gcc和g++修改為環(huán)境下的arm-linux-gcc和arm-linux-g++,編譯完成下載到文件系統(tǒng)的相應(yīng)目錄下并運行測試,系統(tǒng)的其他應(yīng)用程序如系統(tǒng)工作模式設(shè)定、狀態(tài)查詢等也遵循同樣的開發(fā)流程。
          圖5為第一個為系統(tǒng)的總體界面,里面包含12應(yīng)用程序的圖標。第二幅為示例應(yīng)用程序的界面,在輸入相應(yīng)的信息后點擊set按鈕,用戶名密碼以及報警電話分別保存到了namekey與tel表中并發(fā)送給電話報警模塊。達到了設(shè)定用戶信息的目標。

          本文引用地址:http://www.ex-cimer.com/article/150896.htm

          h.JPG

          5 結(jié)束語
          本文利用數(shù)據(jù)庫SQLite實現(xiàn)了對的數(shù)據(jù)管理,在管理效率上有了很大提高,節(jié)省了系統(tǒng)資源開銷。應(yīng)用Qtopia圖形系統(tǒng)實現(xiàn)了操作界面的可視化界面更加友好,操作更加簡單明了。系統(tǒng)運行穩(wěn)定,很好的滿足了設(shè)計要求。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 3 4 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();