999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

智能立體車庫控制系統人機交互軟件設計

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

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

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

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

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

0 引言

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

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

1 軟件總體框架

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

2 軟件整體工作流程

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

3 軟件功能實現分析

3.1 界面切換

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

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

3.2 串口通信

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

3.3 GPRS/GSM短信接收

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

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

3.4 數據庫搭建

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

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

3.5 數據共享

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

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

3.6 語音提示

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

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

3.7 中文顯示

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

QFont font;

font.setFamily(("wenquanyi"));

a.setFont(font);

4 系統測試

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

5 結束語

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

參考文獻

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

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

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

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

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

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

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

主站蜘蛛池模板: 欧美.成人.综合在线| 成年人视频一区二区| 亚洲精品天堂自在久久77| 爆乳熟妇一区二区三区| 国产99视频在线| 国产SUV精品一区二区6| 久久久久国产精品免费免费不卡| 99视频有精品视频免费观看| 亚洲欧洲天堂色AV| 国产精品蜜臀| 国产真实自在自线免费精品| 国产尤物jk自慰制服喷水| 亚洲中字无码AV电影在线观看| 中国国产高清免费AV片| 国产在线第二页| 超碰色了色| 91无码网站| 国产主播在线观看| 亚洲欧美天堂网| 久久一级电影| 天天躁日日躁狠狠躁中文字幕| 国产一区二区免费播放| 亚洲精品动漫| 国产日本一区二区三区| 欧美午夜一区| 精品国产毛片| 伊人色天堂| 91毛片网| 中文字幕亚洲精品2页| 狠狠色丁婷婷综合久久| 五月天在线网站| 丁香婷婷久久| 成年片色大黄全免费网站久久| 波多野结衣一区二区三区四区视频 | 欧美一区二区精品久久久| 久久九九热视频| 狠狠亚洲婷婷综合色香| 国产成人综合亚洲欧洲色就色| 成人国产一区二区三区| 亚洲最大综合网| 国产91特黄特色A级毛片| 在线精品亚洲国产| 中文字幕无码电影| 久久国产精品麻豆系列| 久久黄色毛片| 亚洲成年人网| 伊人久久久大香线蕉综合直播| 国产综合另类小说色区色噜噜| 中文国产成人精品久久| 99久久精品免费视频| 日本亚洲成高清一区二区三区| 国产在线拍偷自揄拍精品| 国产一级二级三级毛片| 国产成人AV大片大片在线播放 | 欧美区国产区| 99国产精品国产高清一区二区| 国产91av在线| 精品自窥自偷在线看| 全部无卡免费的毛片在线看| 久久特级毛片| 国产Av无码精品色午夜| 91日本在线观看亚洲精品| 免费一级大毛片a一观看不卡| 91综合色区亚洲熟妇p| 中文无码日韩精品| 日韩毛片免费视频| 91精品国产无线乱码在线| 亚洲av无码成人专区| 国产欧美亚洲精品第3页在线| 99视频精品全国免费品| 91高清在线视频| 日韩精品专区免费无码aⅴ| 国产又色又爽又黄| 国外欧美一区另类中文字幕| 国产乱子伦无码精品小说| 午夜福利视频一区| 欧美一级在线播放| 婷婷开心中文字幕| 午夜福利亚洲精品| 九九香蕉视频| 91小视频在线观看免费版高清| 亚洲 成人国产|