亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        李俊杰 馮韜 奚志遠(yuǎn) 何異 耿磊

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

        關(guān)鍵詞:智能立體車庫 人機(jī)交互界面 Qt Linux

        中圖分類號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1672-3791(2016)02(c)-0000-00

        0 引言

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

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

        1 軟件總體框架

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

        2 軟件整體工作流程

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

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

        3.1 界面切換

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

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

        3.2 串口通信

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

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

        3.3 GPRS/GSM短信接收

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

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

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

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

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

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

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

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

        3.6 語音提示

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

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

        3.7 中文顯示

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

        QFont font;

        font.setFamily(("wenquanyi"));

        a.setFont(font);

        4 系統(tǒng)測(cè)試

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

        5 結(jié)束語

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

        參考文獻(xiàn)

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

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

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

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

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

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

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

        男人的天堂无码动漫av| 牛仔裤人妻痴汉电车中文字幕| 午夜理论片日本中文在线 | 亚洲精品国产第一区三区| 中国久久久一级特黄久久久| 久久超碰97人人做人人爱| 久久久久这里只有精品网| 亚洲av色香蕉一区二区三区蜜桃| 好看的日韩精品视频在线| 大屁股人妻女教师撅着屁股| 国产午夜成人久久无码一区二区| 亚洲女同系列高清在线观看| 久久一区二区三区少妇人妻| 2020无码专区人妻系列日韩| 美女裸体自慰在线观看| 中文字幕乱码av在线| 一本一道久久综合久久| 亚洲 自拍 另类小说综合图区| 真实国产乱视频国语| 国产国语一级免费黄片| 日产乱码一二三区别免费l| 午夜精品久久久久久久久久久久| 午夜视频在线在免费| 欧美在线专区| 97激情在线视频五月天视频| 一本到在线观看视频| 亚洲欧美日韩精品久久亚洲区| 国产精品久久无码免费看 | 精品亚洲第一区二区三区| 国产激情久久久久影院老熟女| 亚洲国产精品自产拍久久蜜AV | 91白浆在线视频| 能看不卡视频网站在线| 成人欧美一区二区三区在线观看| 亚洲av第一成肉网| 蜜桃视频在线免费观看完整版| 亚洲视频一区二区三区视频| 无码av免费一区二区三区| 欧美精品日韩一区二区三区| 91一区二区三区在线观看视频| 天天躁夜夜躁天干天干2020|