• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      智能立體車庫控制系統(tǒng)人機交互軟件設計

      2016-05-14 11:20:04李俊杰馮韜奚志遠何異耿磊
      科技資訊 2016年6期

      李俊杰 馮韜 奚志遠 何異 耿磊

      摘 要:目前,“停車難”已成為困擾我國諸多城市的嚴重問題。興建智能立體車庫是解決這一難題行之有效的辦法。作為用戶和智能立體車庫進行交流的最直接方式,人機交互界面的設計顯得特別重要。本文在Linux系統(tǒng)下采用Qt語言對人機交互界面進行設計,利用信號與槽機制簡單地實現(xiàn)界面之間的跳轉(zhuǎn),結(jié)合多線程技術實現(xiàn)串口通信和語音提示,同時引入了數(shù)據(jù)庫存儲車庫日常運行時的數(shù)據(jù)與信息。本次設計的交互系統(tǒng)界面簡潔美觀,操作方便,可以直接移植到Linux嵌入式系統(tǒng)中運行使用。

      關鍵詞:智能立體車庫 人機交互界面 Qt Linux

      中圖分類號:TP273 文獻標識碼:A 文章編號:1672-3791(2016)02(c)-0000-00

      0 引言

      截止2015年底,我國的機動車數(shù)量達到2.79億輛,機動車駕駛?cè)藬?shù)達3.27億,給城市交通帶來了諸多的問題。為解決停車難的問題,機械式立體車庫應運而生。在立體式車庫的設計中,人機交互界面占有重要的地位,它是用戶體驗車庫的主要方式,其展示結(jié)果將直接影響到用戶體驗。

      目前,我國大多數(shù)機械式立體車庫的人機交互界面的設計都過于簡單,或是直接采用機械式操作和非接觸式刷卡存取車。隨著大數(shù)據(jù)時代的到來,這些設計方式不利于對車庫用戶信息的日常管理,滿足不了現(xiàn)代科技飛速發(fā)展帶來的種種需求。針對以上問題,本文采用Qt語言實現(xiàn)了人機交互界面的設計。管理員和用戶均可以通過此界面對各自的信息進行管理,隨時查看自己車位的使用狀況。在出現(xiàn)緊急情況時,管理員可以通過該界面第一時間與用戶取得聯(lián)系。在使用的過程中,系統(tǒng)會以語音的形式引導使用者更好的操作該軟件系統(tǒng)。本設計還支持手機移動端的操作,以短信的形式,通過GSM模塊發(fā)送特定的內(nèi)容到該軟件系統(tǒng),該系統(tǒng)就可以向下位機發(fā)送相應的數(shù)據(jù)進行存取車操作。

      1 軟件總體框架

      本軟件實現(xiàn)的功能主要是創(chuàng)建多個操作界面,并根據(jù)不同功能完成各個界面之間的跳轉(zhuǎn);在對界面進行操作時,通過配置串口、GPRS/GSM完成和下位機、手機APP的通信;搭建數(shù)據(jù)庫,對管理員、用戶和車位的信息進行存儲,在數(shù)據(jù)的錄入中,可以隨時調(diào)用軟鍵盤進行輸入[1];軟件在運行時還可支持中文的顯示,并在操作車庫的同時進行語音提示,使車庫的使用更加便捷。本軟件的總體框架圖如圖1所示。

      2 軟件整體工作流程

      軟件在啟動時,應先對數(shù)據(jù)庫、車位信息、串口等進行初始化。運行的過程中,始終對下位機串口、手機APP串口和軟件自身界面進行監(jiān)控。當有數(shù)據(jù)傳入,即刻將收到的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)進行對比驗證,驗證成功方可進入系統(tǒng)。進入系統(tǒng)后,若操作車位,則向下位機發(fā)送數(shù)據(jù);若聯(lián)系用戶,則向手機APP發(fā)送數(shù)據(jù);若操作數(shù)據(jù)庫,則在對比驗證成功后對數(shù)據(jù)庫進行更新。具體流程圖如圖2所示。

      3 軟件功能實現(xiàn)分析

      3.1 界面切換

      本文中采用了大量的信號(signals)和槽(slots),它們是Qt中的典型機制[2]。在本文中的具體使用方法如下:

      Connect(發(fā)送者sender,信號函數(shù)SIGNAL,接受者reciever,槽函數(shù)SLOT)信號與槽主要對按下(QPushButton)事件進行捕捉,實現(xiàn)界面與界面之間的調(diào)轉(zhuǎn)切換,完成該按鍵按下時相應的數(shù)據(jù)操作。圖3為軟件界面的調(diào)用框圖。

      3.2 串口通信

      串口通信是本文實現(xiàn)的重點,它是連接下位機和手機APP的通信橋梁。在Qt語言中,提供了第三方類Posix_QextSerialPort對串口進行操作[3],Posix_QextSerialPort類打開串口及對串口進行初始化的主要代碼如下所示:

      uartCom = new Posix_QextSerialPort("/dev/ttySAC0", QextSerialBase::Polling);

      uartCom->open(QIODevice::ReadWrite);

      uartCom->setBaudRate(BAUD115200);

      uartCom->setDataBits(DATA_8);

      uartCom->setParity(PAR_NONE);

      uartCom->setStopBits(STOP_1);

      其中,uartCom為Posix_QextSerialPort的類對象,通過構(gòu)造函數(shù)操作Linux系統(tǒng)/dev/路徑下串口0的驅(qū)動程序ttySAC0。在Linux系統(tǒng)中,Posix_QextSerialPort對串口的操作只能采取輪詢方式Polling,即定義一個定時器,每隔一段時間對串口進行掃描,查看是否有數(shù)據(jù)的操作。在以讀寫方式打開串口后,定義串口的通信方式。本文使用的串口0和串口1的通信方式均約定為:波特率115200,8個數(shù)據(jù)位,無奇偶校驗,1個停止位。利用Posix_QextSerialPort類提供的write(const char *)函數(shù)和readAll()函數(shù)完成對串口數(shù)據(jù)的寫入與讀取。

      3.3 GPRS/GSM短信接收

      上位機與手機APP的通信主要通過串口控制GPRS/GSM模塊完成[4]。GPRS/GSM模塊內(nèi)置了TCP/IP協(xié)議,只需往該模塊中寫入AT指令即可實現(xiàn)收發(fā)短信和撥打電話的功能。表1為本文中用到的基本AT指令。

      在通過串口往GPRS/GSM模塊寫入AT指令時,需要在寫入的字符串后面加上“\r”,Linux系統(tǒng)中“\r”為回車標志。收到手機APP端發(fā)送的短信后,要提取發(fā)送者的號碼以及發(fā)送的信息內(nèi)容與數(shù)據(jù)庫中的內(nèi)容進行比對,才能正確的將相應的命令發(fā)送到下位機。經(jīng)過多次測試,接收到短信時串口會收到并讀取帶有“+CMTI”字符串的數(shù)據(jù),每次讀取到的短信數(shù)據(jù)中,發(fā)送者的手機號碼在“+86”(移動卡)或“"86”(聯(lián)通卡)字符串后面,收到的短信內(nèi)容位于“+32"”后面。根據(jù)這些數(shù)據(jù),就可以將字符串中的號碼和內(nèi)容截取出來。

      3.4 數(shù)據(jù)庫搭建

      Qt中支持多種數(shù)據(jù)庫語言,本文選用最基礎的sql語言搭建存儲管理員、用戶和車位具體信息的數(shù)據(jù)庫[5]。本文調(diào)用QSqlDatabase的addDatabase函數(shù)創(chuàng)建了名為database.db的sql數(shù)據(jù)庫,并通過QSqlQuery對象的exec()在數(shù)據(jù)庫中創(chuàng)建了兩個表格(userinfo和managerinfo)分別存放用戶信息、管理員信息和車位信息,其中用戶信息和車位信息如表2所示。

      在上位機軟件的編寫過程中,會多次對數(shù)據(jù)庫進行操作,比如密碼驗證、密碼修改、添加刪除用戶、車位選擇界面的顯示等。

      3.5 數(shù)據(jù)共享

      在程序的編寫過程中,經(jīng)常出現(xiàn)多個類調(diào)用同一個對象的情況,為此,本文使用定義全局變量的方法來實現(xiàn)數(shù)據(jù)的共享,其中定義的全局變量如表3所示。

      其中,user為停車位選擇界面類的對象,在用戶操作界面和管理員操作界面都要調(diào)用該對象,將其定義為全局變量,方便引用;gprsCom為操作GPRS/GSM模塊的串口類對象,在歡迎界面、聯(lián)系用戶界面都使用同一串口,故定義為全局變量;uartCom為與下位機通信串口的類對象,在歡迎界面、管理員操作界面、用戶操作界面都會使用該串口發(fā)數(shù)據(jù),定義為全局變量;closeParkingFlag為bool型變量,當其值為true時,任何界面都可以調(diào)用它來關閉本界面。

      3.6 語音提示

      為了使人機交互界面更加人性化,本文加入了語音提示功能。在Linux系統(tǒng)中,madplay是一款通過命令行控制的音樂播放軟件,只需將madplay移植入Linux系統(tǒng)中即可。完成madplay的移植后,需要單獨創(chuàng)建一個線程來播放語音,否則會導致系統(tǒng)界面運行崩潰。在程序中用system()寫入命令就可以實現(xiàn)語音播放功能。如下所示:

      system("madplay /music/addok.mp3");

      3.7 中文顯示

      QT/E-4.7.1支持中文顯示[6],格式為wenquanyi,在main函數(shù)中定義QFont的對象,使用該對象的setFamily()函數(shù)設置此格式,具體代碼為:

      QFont font;

      font.setFamily(("wenquanyi"));

      a.setFont(font);

      4 系統(tǒng)測試

      把編譯好的可執(zhí)行文件移植到嵌入式系統(tǒng)中[7],上電開機。設計的軟件系統(tǒng)界面運行流暢,語音提示清晰,支持中文顯示。進入管理員或用戶操作界面,輸入密碼進行驗證,密碼錯誤報警提示,密碼一致則正確跳轉(zhuǎn);對車庫用戶進行管里,在信息表中可以看到數(shù)據(jù)庫運行正常。用USB轉(zhuǎn)串口線與電腦連接模擬與下位機的通信,存取車時均發(fā)送了正確數(shù)據(jù);進入聯(lián)系用戶界面,成功給數(shù)據(jù)庫中的用戶撥打電話和發(fā)送短信,用手機給軟件系統(tǒng)發(fā)送數(shù)據(jù),成功接收并向下位機(電腦)發(fā)送了相應數(shù)據(jù)。經(jīng)過多次測試,整個軟件系統(tǒng)運行穩(wěn)定,效率高,使用方便。

      5 結(jié)束語

      本文采用Qt實現(xiàn)了友好的智能立體車庫人機交互界面,可方便地移植到Linux嵌入式系統(tǒng)中使用;引入數(shù)據(jù)庫存儲車庫的數(shù)據(jù)信息,符合現(xiàn)代社會的大數(shù)據(jù)發(fā)展趨勢;通過觸摸屏完成存取車的操作,操作過程中伴有語音提示,更加貼近人們的日常生活。

      參考文獻

      [1] 謝芬,潘麗,劉守印.基才QT/E的嵌入式Linux系統(tǒng)的軟鍵盤實現(xiàn) [J].電子設計工程,2012,20(5):177-179.

      [2] 丁林松,黃麗琴.Qt4圖形設計與嵌入式開發(fā)[M].北京:人民郵電出版社,2009:78-489.

      [3] 陳靜.基于Ubuntu13.04系統(tǒng)下QT串口通信設計 [J].電子世界,2014(18):244-244.

      [4] 白潔.基于ARM的嵌入式GPRS通訊系統(tǒng)的設計與實現(xiàn) [J].高校實驗室工作研究,2013(44):44-46

      [5] 梁隆愷,韓改寧,王曉妮.嵌入式Qt下的數(shù)據(jù)庫程序設計與開發(fā)[J].辦公自動化,綜合版,2014(11):58-61.

      [6] 周繼芹,薛天宇.基于嵌入式Linux和Qtopia平臺中文環(huán)境的實現(xiàn) [J]網(wǎng)絡新媒體技術,2008, 29(2):80-83.

      [7] 陳敬,向偉.基于嵌入式Linux的QT/Embedded移植與應用開發(fā) [J].電腦與信息技術,2013, 21(1):57-59.

      孟州市| 达孜县| 昌黎县| 云梦县| 共和县| 曲靖市| 隆昌县| 郓城县| 普陀区| 兴安盟| 沛县| 白沙| 青岛市| 财经| 宣威市| 施甸县| 清徐县| 达州市| 湖南省| 延吉市| 元谋县| 万盛区| 曲麻莱县| 精河县| 房产| 湟中县| 宜川县| 廉江市| 临桂县| 晋州市| 瑞安市| 友谊县| 濉溪县| 广东省| 梁河县| 娄烦县| 禄丰县| 曲靖市| 神农架林区| 汽车| 安阳县|