




已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
國家大學生創(chuàng)新性實驗計劃項目結題論文中央民族大學基于gps+arm+gsm智能電子導游設計與實現 項目組成員: 邵燕 鄭旅軍 孫福成 指導教師:程衛(wèi)軍 職稱:副教授項目編號:nmoe2008110162009年12月15日目錄:一、選題背景- 3 -二、系統(tǒng)設計的關鍵問題及解決方案- 4 -1、gis電子地圖制作:- 4 -2、數據的接收及精度的提高- 8 -1)測量的誤差來源- 8 -2)gps nmea0183接受協(xié)議- 9 -3)定位信息的提取及處理- 10 -4)改善定位精度- 11 -3、gsm數據處理- 12 -4、 gps與gsm及地圖顯示部分相互整合- 14 -1系統(tǒng)硬件的選擇- 15 -2系統(tǒng)軟件的選擇- 15 -3系統(tǒng)整個程序流程的設計- 18 -五、研究成果- 21 -參考文獻:- 22 -致謝- 23 -基于gps+arm+gsm智能電子導游設計與實現中央民族大學 邵燕 鄭旅軍 孫福成 指導教師:程衛(wèi)軍 職稱:副教授摘要:本項目在gps、gsm的技術基礎上,制作了數據格式的中央民族大學電子地圖來開發(fā)智能導游系統(tǒng)。選取arm9-2410開發(fā)板和嵌入式linux 操作系統(tǒng)進行設計。通過改進卡爾曼算法實現更高精度的gps定位;通過gsm模塊短信通信實現導游儀間的相互定位,將全球定位技術與第二代移動通信技術相結合很好地實現了系統(tǒng)功能;使用qt進行程序界面設計來實現人機交互,界面著重從藝術設計的角度出發(fā),注重人性化、智能化,界面美觀大方,易于操作。關鍵字:gps;arm;gsm;電子導游一、 選題背景目前,先進的發(fā)達國家旅游業(yè)界內已經廣泛采用非人工講解的導游儀。在我國,電子導游還屬于新生事物,主要體現在運用范圍不夠廣,開發(fā)技術不夠成熟。最早的電子導游使用是在廣西桂林漓江開始出現,幾年來國內的各著名旅游景點也逐步開始引入電子導游,但是國內的應用主要還集中在觸摸式視頻講解系統(tǒng)和僅基于gps定位的自動講解系統(tǒng)。1 在智能化和人性化服務方面相對薄弱。電子導游在我國具有良好的發(fā)展勢頭,與人工導游相比,它在保護環(huán)境、避免游客之間的干擾、服務的質量穩(wěn)定性、滿足游客的個性化需求等方面更有優(yōu)勢。智能型電子導游在我國具有良好的發(fā)展勢頭,首先與人工導游相比,它在保護環(huán)境、避免游客之間的干擾、導游服務的質量穩(wěn)定性、滿足游客的個性化需求等方面更有優(yōu)勢,智能型電子導游更能體現人性化的特點。其次,智能型電子導游在我國的市場需求將逐步變大。我國旅游資源豐富,歷史悠久,文化傳統(tǒng)別具一格。無論是自然風光、文化古跡、民族風情和革命紀念地,都有豐富多彩、引人入勝的內容;隨著國內人民生活水平的提高,人們對精神生活質量的追求逐年提升,外加世界范圍內旅游者對中國的興趣逐年上升,中國將成為世界旅游業(yè)最發(fā)達的國家之一;智能電子導游在保證旅游質量的同時接納來自世界各地的旅游者將發(fā)揮它的無可比擬的優(yōu)越性。但是在調研過程中我們發(fā)現,雖然電子導游能夠滿足游客自主游覽的需求,但游客在游覽過程中很容易出現和隊友走散的狀況,即使有手機等通訊工具,在陌生的特別是面積比較大的自然景區(qū),游客仍然不能快而方便的找到彼此,因此項目組進行了智能電子導游的設計與實現,使得上述情況發(fā)生時雙方能夠通過電子導游互相定位,直觀而方便的尋找到隊友。同時改進電子導游的服務內容,使其更加智能化。在操作界面風格上注重人性化設計,使其更好的為旅游者服務。二、 系統(tǒng)設計的關鍵問題及解決方案1、gis電子地圖制作:項目涉及的是gis(地理信息系統(tǒng))在嵌入式設備上的應用電子地圖瀏覽。典型的嵌入式gis應用由嵌入式硬件系統(tǒng)、嵌入式操作系統(tǒng)、和嵌入式gis軟件組成。由于嵌入式設備本身的條件限制,其數據存儲和處理能力有限,在項目中我們采用mapinfo格式的地圖,對其數據進行了適當裁剪,并選擇了合適的數據結構來組織裁剪后的數據,減小了數據冗余,解決了在嵌入式設備上存儲大批量數據的問題1。在此基礎上,以qt/embedded為開發(fā)環(huán)境,實現了一種能運行在以嵌入式linux為操作系統(tǒng)的設備上的導航電子地圖。a.生成電子地圖;利用mapinfo7.0軟件制作本校區(qū)電子地圖,如下圖1-1所示。這里要注意地圖的地理坐標,因為這將涉及到后面gps的定位能否與電子地圖的坐標匹配問題,也就是精度的問題。b.電子地圖數據:制作好本校的電子地圖之后,將其轉換成mif/mid 文件, mapinfo 主要通過mif、mid兩個文件向外交換數據以及與其他gis軟件建立數據接口,其中mif數據文件主要保存空間數據的圖形信息,mid數據文件主要保存空間數據的屬性信息。mif由頭文件和數據段組成,數據段包含mapinfo定義的點、線、面、多義線、區(qū)域、圓弧、文本、矩形、圓角矩形和橢圓等實體,具體如圖1-2所示。mid文件為對應實體的屬性。掌握了文件關系之后,就可以用或語言編程實現對.mif文件的讀取。圖1-1 mipinfo編輯軟件制作民大地圖 圖1-2 .mif文件內容 c.地圖投影和坐標轉換:由于從mapinfo的mif文件中獲得的數據是位于地球橢球面上的經緯度坐標,所以需要經過地圖投影將經緯度坐標數據投影為平面坐標數據,才能在qt圖形界面里正確繪制地圖。具體原理過程如下:大地坐標轉換成地圖平面坐標2。以o 為圓心,長軸a 為半徑做圓弧rq ,又以o 為圓心, 短軸b 為半徑做圓弧l m ,如圖3 所示, kk 垂直op 軸,設o k與op 軸夾角為u , kt 為k 點在子午橢圓的切線,得: 圖1-3則橢球圓上一點k 坐標( p , z) 為:其中:由圖1-3可得: 其中, h 為高度。地圖平面坐標轉換成大地坐標 。由式(2) 可得其逆變換為:地圖平面坐標轉換為屏幕坐標3由于地圖平面坐標系和屏幕坐標系都是平面直角坐標系,它們之間的差別在于坐標原點的不同,坐標軸的方向和刻度單位不同。因此,它們之間的變換只要通過比例變換、平移變換和旋轉變換就可以實現。假設原坐標系的坐標值為( x , y) ,變換后的坐標值為( sx , sy) , x 軸, y 軸的比例變換因子分別為xs , ys ;平移變換因子分別為t x , ty ,旋轉角度為;則它們之間的坐標變換可用下列方程實現 :比例變換方程為:平移變換方程為:旋轉變換方程為:本項目中采用高斯-克呂格投影。經過地圖投影后,原來的經緯度坐標數據就轉化成了平面上以米為單位的坐標數據。但是要把地圖繪制在嵌入式設備的屏幕上,還需要把平面坐標數據轉化為屏幕上以像素為單位的坐標數據。代碼實現為:首先調用translate()函數轉化繪圖設備坐標系統(tǒng)的原點(0,0)到窗口的左上角。具體實現的核心代碼如下所示- r.movetopleft( qpoint(-r.width()/2, -r.height()/2) ); eraserect = eraserect.unite( mtx.map(r) ); eraserect.moveby( -1, -1 ); eraserect.setsize( qsize( eraserect.width() + 2,eraserect.height() + 2 ) ); um.translate( pw/2, ph/2 );/ 0,0 is center um = mtx * um;p.setworldmatrix( um );在qt圖形界面的圖形繪制: 圖形的繪制包括點、線等的繪制,繪制工作都是在類show中的paintevent(qpaintevent*)函數中完成的。 主要代碼如下:class mymap:public qwidget protected:void paintevent(qpaintevent*);void mymap:paintevent(qpaintevent*0qpainter p(this);qpen pen(qcolor(2,142,188),3);p.setpen(pen);p.drawployline(draw);d.電子地圖的縮放和漫游電子地圖數據結構選用矢量結構,這樣在地圖縮放顯示時,原圖的各個部分成比例的縮放。以坐標變換和地圖的顯示為基礎,地圖的縮放和漫游就比較容易實現。地圖縮放只需在將平面坐標轉化為屏幕坐標時,將轉化比例再乘上一個縮放因子k;同樣,地圖漫游只需在坐標轉化時,加上或減去一個漫游常數scale.即可實現放大和縮小效果。但是在實際實現時,每一次地圖刷新都要重繪一次地圖,使得系統(tǒng)處理速度驟降,不能很好的工作,因此,項目在實際中采用柵格形式和實時繪制結合的方案,地圖主體以柵格顯示為主,關鍵點的數據采用讀取.mif文件中的信息來繪制。這樣,系統(tǒng)處理的速度得到了很大的提高,而美中不足是在放大縮小時圖像邊緣會有細小模糊出現,但完全不影響整體效果。2、數據的接收及精度的提高1)測量的誤差來源在衛(wèi)星信號的收發(fā)過程中, 以及對信號的傳播時間計算方面都不可避免的帶來誤差, 引起定位誤差的因素有很多, 大致可以分成以下幾類。設備誤差首先, 雖然衛(wèi)星上裝了精確度很高的原子鐘, 但是原子鐘還是存在誤差, 衛(wèi)星軌道本身雖然很高但是收到地球大氣層的影響要產生漂移, 其次接收器本身時鐘也存在誤差和噪聲, 這些都影響定位的精確度,但這些不是主要的。大氣層的干擾gps 通過電波發(fā)送定時信號, 當gps 信號經過電離層(ionosphere)上一些帶電性的粒子及對流層(troposphere)上的水汽時, 信號便產生遲滯延時的現象。這些延時不可能提前預知, 因為受到天氣的影響, 另外還受到大氣環(huán)境的影響, 在好的接收器中考慮了典型大氣層延時的影響, 做了相應的修正, 但是不可能對大氣層的變化做出實時的, 精準的數學模型, 所以大氣層對定時信號的延時影響依然存在, 這也是影響定位精度的又一原因。sa( selective availability) 策略gps 衛(wèi)星傳送兩種頻率的載波l1 (link 1) 載波的頻率為1575.42 mhz, l2 (link 2) 載波的頻率為1227.60mhz。這兩種載波可修正電離層遲滯效應的誤差, 在載波上除了狀態(tài)訊息之外, 并調制了2 個供定時的碼c/a 碼(coarse acqusition), 頻率為1.023mhz, 僅在l1 載波上作調變, 每1023 位重復一次, 這種碼制的定位精度大大超出了原來的設計, 出于美國自身及其盟國安全的考慮, 在這一碼制當中加入了時鐘偽碼和星歷偽碼, 導致其定位精度在100 米左右,提供給民間和非軍事同盟國使用。p 碼(precise code), 頻率為10.23mhz, 每七天重復一次可同時采用l1 及l(fā)2 載波變, 主要提供軍事用途p 碼的頻率大約是c/a 碼的10 倍不但更為精確,也更不易被干擾。這種定位精度很高的碼制只有美國軍方獨家使用其他因素以上前兩種都可以說是固有的誤差, 而sa 策略則是人為的, 這個是造成gps 定位精度下降的關鍵因素, 本文提供的方法就能大大改善由此策略造成的精度下降。另外還有其他的因素影響精度, 比如信號的多徑效應, 太空當中的一些偶發(fā)事件都會對衛(wèi)星造成影響, 從而導致精度下降, 不過這些和sa略相比而言不占主要地位。2)gps nmea0183接受協(xié)議 全球定位位系統(tǒng)(global positioning system - gps)是美國從本世紀70年代開始研制,歷時20年,耗資200億美元,于1994年全面建成,具有在海、陸、空進行全方位實時三維導航與定位能力的新一代衛(wèi)星導航與定位系統(tǒng)。gps接收機接收到的數據通過串口輸入,其數據格式符合nmea0183標準,格式如下圖1-4所示:圖1-4nmea0183標準語句中,字段0(gpgga)中包含了我們所需要的所有定位信息,所以我們只取這段數據做為有用數據,其定義如下:字段0:$gpgga,語句id,表明該語句為global positioning system fix data(gga)gps定位信息字段1:utc 時間,hhmmss.sss,時分秒格式字段2:緯度ddmm.mmmm,度分格式(前導位數不足則補0)字段3:緯度n(北緯)或s(南緯)字段4:經度dddmm.mmmm,度分格式(前導位數不足則補0)字段5:經度e(東經)或w(西經)字段6:gps狀態(tài),0=未定位,1=非差分定位,2=差分定位,3=無效pps,6=正在估算字段7:正在使用的衛(wèi)星數量(00 - 12)(前導位數不足則補0)字段8:hdop水平精度因子(0.5 - 99.9)字段9:海拔高度(-9999.9 - 99999.9)字段10:地球橢球面相對大地水準面的高度字段11:差分時間(從最近一次接收到差分信號開始的秒數,如果不是差分定位將為空)字段12:差分站id號0000 - 1023(前導位數不足則補0,如果不是差分定位將為空字段13:校驗值3)定位信息的提取及處理gps接收機接收到的數據以字符的形式進入串口,我們把字符“ga”作為標志符,獲取經度和緯度信息,程序代碼如下:(注)變量buffi,buff_lati,buff_loni都是char型變量,電子地圖中使用的是double型變量,所以需要把char型轉變成double型,程序代碼如下:4)改善定位精度gps 單點定位系統(tǒng)誤差改正 比較實測觀測值與其真值, 可以看出, y 坐標、x 坐標均偏大。因此,本手持式gps 定位中存在著明顯的系統(tǒng)誤差, 而量級在10 米級, 因此需要對所使用的儀器進行誤差模擬來改善系統(tǒng)誤差對單點定位精度的影響。按式(3) 計算系統(tǒng)誤差均值ix, iy 為控制點的觀測值與其已知值之差。經系統(tǒng)誤差改正后的結果由式( 4) 計算。4算法上改善定位精度系統(tǒng)使用改進的卡爾曼濾波算法來提高定位精度,5針對最小二乘法和標準卡爾曼濾波的特點,通過偽距離估計出接收機的位置和鐘差,避免由于濾波初值,系統(tǒng)噪聲方差以及測量噪聲方差帶來的濾波發(fā)散問題。在進行卡爾曼濾波時,關鍵是建立數學模型、確定狀態(tài)向量、建立系統(tǒng)方程和測量方程、確定噪聲統(tǒng)計特性等。63、gsm數據處理 gsm 是global system for mobile communication 的簡稱,中文名稱為全球移動通信系統(tǒng),是1992 年由歐洲標準化委員會統(tǒng)一推出的,以數字為主的第二帶代移動電話系統(tǒng)。它采用數字通信技術、統(tǒng)一的網絡標準,使通信質量得以保證,是全球最成熟的數字移動電話網絡標準之一,用的是窄帶tdma,能提供全面的語音、文字和數據業(yè)務,并提供一些諸如短消息服務、語音信箱、呼叫轉移等的增值業(yè)務。7在本導游系統(tǒng)中,gps定位信息交互是通過gsm網絡的短信來實現的,gsm模塊同樣是通過串口操作。我們使用的gsm通信貓使用的是法國wavecom(微控科技)生產的模塊,雙波段(900/1800mhz)工作,支持通用at 命令。at 命令集是用于終端機(如pc 機)和調制解調器(modem)之間通訊控制的一組命令。at 是attention 的縮寫。所有at 命令都是以ascii 字符“at”開始,并由回車符或換行符結束。我們用到的at命令及其功能介紹如下:at命令功能at+ipr=9600設置波特率為b9600at&w保存設置(未保存,斷電后設置將還原)at+cmgs=”138*”發(fā)送信息at+cmgr=1讀取第一條信息at+cmgd=1,4刪除所有信息對gsm模塊的操作通過串口ttys0,打開串口后,對串口進行初始化,接著就可以進行收發(fā)信息的操作了。其流程圖和代碼如圖1-5所示: 圖1-5發(fā)送信息代碼如下:接收信息代碼如下:刪除信息代碼如下:4、 gps與gsm及地圖顯示部分相互整合 在嵌入式linux下針對gps與gsm模塊分別編碼,成功實現各自功能后,需要在qt界面中將二者的代碼相互整合,實現信息共享和命令的互相響應,例如利用gsm模塊將gps接受的當前系統(tǒng)的位置信息以短信形式發(fā)送到另一個導游系統(tǒng)上,另一個導游系統(tǒng)利用gsm模塊接受位置信息后共享給電子地圖繪制程序段,將第一個系統(tǒng)的位置在地圖上顯示出來。此處主要應用了qt設計的最重要特點:信號-槽機制,這個機制可以在對象之間彼此并不了解的情況下將它們的行為聯系起來,取代了老舊的開發(fā)套件所使用的粗糙的回調和消息映射。其次模塊間任務的優(yōu)先級別不同,gps需要實時的不斷接受信息,而gsm則只在需要的時候使用,因此要合適設計二者的運行方式,才能達到高效快捷的使用效果三、方案選擇1系統(tǒng)硬件的選擇1)本項目選擇芯 片arm9-2410 作為系統(tǒng)處理器,arm9系列芯片具有高性能、廉價、耗能低等特點,目前已經成功地廣泛應用于嵌入控制、消費/教育類多媒體、dsp和移動式應用等領域。它的如下特點能充分的完成本項目的各項性能要求:5 級整數流水線,指令執(zhí)行效率更高;提供 1.1mips/mhz 的哈佛結構;支持 32 位 arm 指令集和 16 位 thumb 指令集;支持 32 位的高速 amba 總線接口;全性能的 mmu ,支持 windows ce 、 linux 、 palm os 等多種主流嵌入式操作系統(tǒng);支持數據 cache 和指令 cache ,具有更高的指令和數據處理能力。82)本項目選擇gsm模塊來實現系統(tǒng)間的相互通信。gsm是當前應用最為廣泛的移動電話標準。它是目前基于時分多址技術的移動通信體制中成熟、完善、應用最廣泛的一種系統(tǒng),而短信息服務作為gsm網絡的一種基本業(yè)務,已得到越來越多的系統(tǒng)運營商和系統(tǒng)開發(fā)商的重視,基于這種業(yè)務的各種應用也蓬勃發(fā)展起來。利用gsm短信息(sms)進行電子導游之間的通訊具有成本低、可靠性高等特點。利用gsm短信息系統(tǒng)進行無線通信還具有雙向數據傳輸功能,性能穩(wěn)定。3)本項目選擇xw-gps100作為gps定位模塊,它具有速度快、靈敏度高、定位精度準、智能化多徑檢測與抑制等優(yōu)點。gps即全球定位系統(tǒng)(global positioning system)是美國從本世紀70年代開始研制,于1994年全面建成,具有在海、陸、空進行全方位實時三維導航與定位能力的新一代衛(wèi)星導航與定位系統(tǒng)。 全球定位系統(tǒng)的主要特點包括全天候運行、全球覆蓋、三維定速定時高精度、快速省時高效率、應用廣泛多功能等等。9gps是目前世界上運用最廣泛,技術最成熟的定位技術,可充分實現本項目的定位要求。2系統(tǒng)軟件的選擇1)pc端系統(tǒng)的選擇進行嵌入式開發(fā),pc端系統(tǒng)選擇一般有兩種方式,一是選擇雙系統(tǒng)(linuxwindows xp);二是選擇虛擬機安裝linux。前者的優(yōu)點是運行速度快,缺點是切換系統(tǒng)的時候需要重新啟動。后者的優(yōu)點是可以任意切換系統(tǒng),缺點是對硬件要求較高。為了共享資料和方便查找網絡資源,本項目選擇方法2,即在windows主機上安裝虛擬宿主機,作為開發(fā)環(huán)境。2)嵌入式操作系統(tǒng)的選擇 本項目選擇嵌入式linux作為操作系統(tǒng)。純商業(yè)性的嵌入式操作系統(tǒng)主要有wince和vxworks,開源的嵌入式操作系統(tǒng)有嵌入式linux,其他的還有uc/os-ii等。經過比對幾款系統(tǒng)之間的利弊選擇了嵌入式linux,它是按照嵌入式操作系統(tǒng)的要求而設計的一種小型操作系統(tǒng)。相對于wince、vxworks等作系統(tǒng),具有源碼開放、易移植、模塊化、資源豐富等優(yōu)勢;支持多線程、多進程;支持多種平臺,如x86、powerpc、arm、mips 等等。10其可伸縮的結構使系統(tǒng)適合于從簡單到復雜的各種嵌入式應用;另外它擁有有大量的開發(fā)工具,這些工具為嵌入式系統(tǒng)的開發(fā)提供了良好的開發(fā)環(huán)境也是我們選擇linux 的主要原因之一。而與之相匹配的實現我們選擇了qt來實現各種應與程序的人機交互,力求整個系統(tǒng)更加人性化和智能化。(1)qt/ embedded 軟件體系結構介紹qte 是著名的qt 庫開發(fā)商trolltech 公司開發(fā)的面向嵌入式系統(tǒng)的qt 版本, 熟悉linux 界面設計的人一定對qt 不會陌生, 很多人正在使用的kde 就是基于qt 圖形庫開發(fā)的,qt 自身則是通過使用xlib 來實現其圖像顯示功能的。由于xlib 本身比較大, 無法適應嵌入式開發(fā)的需要,trolltech 公司設計了新的qte 圖形庫, 它在底層徹底摒棄了x lib, 僅采用framebuffer 作為底層圖形接口, 而在上層依然保持原來qt 的架構, 使在很多x window 上設計的程序能非常方便的移植。11從qt 到qte 的這個開發(fā)過程體現了軟件開發(fā)中非常重要的一個思想: 軟件設計一定要保持易用性和可移植性。qte是使用c+語言設計的, 雖然犧牲了一些效率, 但在當前很多界面開發(fā)人員已經適應了mfc 的開發(fā)模式時, 使用c+無疑會更方便開發(fā)人員 。在代碼設計上, qt/embedded 利用了c+獨有的機制, 如繼承、多態(tài)、模板等, 具體實現非常靈活。但其底層代碼由于追求與多種系統(tǒng)、多種硬件的兼容, 代碼補丁較多, 風格稍顯混亂。2 . 軟件總體架構 圖1-6上圖描述了qte 軟件的總體架構。qte 共可分為三層架構:a. 圖形引擎和事件驅動層: 這一層通過調用和直接訪問linux 操作系統(tǒng)的framebuffer 和輸入設備驅動實現。b. 上層圖形層: 圖形引擎封裝了對framebuffer 的繪圖操作, 是低級別的繪圖層, 這一層抽象出對于顯示設備的具體操作接口( 圖形設備環(huán)境) , 如選擇畫刷、畫線、畫矩形、alpha操作等, 為上層開發(fā)和用戶提供了圖形的抽象層。c. 上層控件層: 這一層通過公共抽象類qwidget , 實現了用戶所需的主要控件類。3 . 圖形引擎層的實現這是整個系統(tǒng)最復雜的一部分, 也使用了很多典型的設計模式。底層圖形引擎基于framebuffer , framebuffer 是在linux 內核架構版本2.2 以后推出的標準顯示設備驅動接口。采用mmap系統(tǒng)調用, 可以將framebuffer 的顯示緩存映射為可連續(xù)訪問的一段內存儲針。由于目前比較高級的arm 體系的嵌入式cpu 中大多集成了lcd 控制模塊, lcd 控制模塊一般采用雙dma 控制器組成的專用dma 通道。其中一個dma 可以自動從一個數據結構隊列中取出并裝入新的參數, 直到整個隊列中的dma 操作都已完成為止。另外一個dma 與畫面緩沖區(qū)相關, 這部分由兩個dma 控制器交替執(zhí)行, 并每次都自動按照預定的規(guī)則改變參數。雖然使用了雙dma, 但這兩個dma控制器的交替使用對于cpu 來說是不可見的。cpu 所獲得的只是由兩個dma 組成的一個“ 通道” 而已。在qt/embedded中, qscreen 類為抽象出的底層顯示設備基類, 其中聲明了對于顯示設備的基本描述和操作方式, 如打開、關閉、獲得顯示能力、創(chuàng)建gfx 操作對象等。另外一個重要的基類是qgfx類。該類抽象出對于顯示設備的具體操作接口( 圖形設備環(huán)境) , 如選擇畫刷、畫線、畫矩形、alpha 操作等。以上兩個基類是qt/embedded 圖形引擎的底層抽象。其中所有具體函數基本都是虛函數, qt/embedded 對于具體的顯示設備, 如linux的framebuffer、qt virtual framebuffer 做的抽象接口類全都由此繼承并重載基類中的虛函數實現。下圖為qt/embedded 中底層圖形引擎實現結構。圖1-7如圖1-7: 對于基本的framebuffer 設備, qt/embedded 用qlinuxfbscreen來處理。針對具體顯示硬件( 如mach 卡、voodoo卡) 的加速特性, qt/embedded 從qlinuxfbscreen 和圖形設備環(huán)境模板類qgfxraster 繼承出相應子類, 并針對相應硬件重載相關虛函數。qt/embedded 在體系上為c/s 結構, 任何一個qt/embedded程序都可以作為系統(tǒng)中唯一的一個gui server 存在。當應用程序首次以系統(tǒng)gui server 的方式加載時, 將建立qwsserver實體。此時調用qwsserver:opendisplay () 函數創(chuàng)建窗體, 在qwsserver:opendisplay( ) 中對qwsdisplay: : data 中的init ()加以調用; 根據qgfxdriverfactory 實體中的定義( qlinuxfbscreen)設置關鍵的qscreen 指針qt_screen 并調用connect ()打開顯示設備( dev/fb0) 。在qwsserver 中所有對于顯示設備的調用都由qt_screen 發(fā)起。至此完成了qt/embedded 中qwsserver 的圖形發(fā)生引擎的創(chuàng)建。當系統(tǒng)中建立好gui server 后, 其它需要運行的qt/embedded 程序在加載后采用共享內存及有名管道的進程通信方式, 以同步訪問模式獲得對共享資源framebuffer設備的訪問權。隨著嵌入式處理器運算能力的不斷提高, 對外設支持的不斷豐富, 嵌入式linux 系統(tǒng)的應用也逐漸增多。12qte 延續(xù)了qt 在桌面系統(tǒng)的所有功能, 豐富的api 接口和基于組件的編程模型使得嵌入式linux 系統(tǒng)中的應用程序開發(fā)更加便捷。由于qt/embedded 本身面向高端的手持設備和移動設備, 將成為未來嵌入式系統(tǒng)的主要gui。3系統(tǒng)整個程序流程的設計作為一個同時使用gps和gsm模塊的系統(tǒng),如何處理好收發(fā)信息之間的同步關系和數據交互這個問題特別重要,本項目使用是使用定時器的方式來實現功能。gps和gsm的相關程序用c語言編寫,然后與qt圖形界面c+代碼整合在一起,核心程序流程下圖所示。主要包括系統(tǒng)初始化、gps數據處理、gsm數據處理3部分。如下圖1-8所示。 gps數據處理:通過定時器動態(tài)實時地接受gps數據,每一次從完整數據中提取出所需的基本信息如時間,經緯度等內容,然后通過定時器觸發(fā)顯示到界面上,考慮到人的肉眼分辨頻率,數據刷新次數不易過快,同時也因為人的步行速度較慢,不需要達到車載導航時的要求,因此界面顯示設置為每3秒鐘刷新一次信息。gsm數據處理 主機選擇gsm功能,則彈出新的對話框,將當前系統(tǒng)的地理位置信息傳送給通訊模塊,以短信形式發(fā)送出去,同時,通訊模塊循環(huán)以查詢方式來檢測是否有別人給本機發(fā)送信息,如果有,則顯示提示信息后自動接收,然后在電子地圖上顯示出來,如果接受信息不是位置信息而是其他信息內容則報錯提示然后退出子程序繼續(xù)查詢。gsm的短信業(yè)務sms利用信令信道傳輸,它不用撥號建立連接,把要發(fā)送的信息加上目的地址和其他控制信息發(fā)到短信服務中心,經短信服務中心完成存儲再轉發(fā)送給目標機,這種特性適合數據遠程傳送。13本項目采用的是pdu mode,采用at命令完成短信息的讀取和發(fā)送。如發(fā)送一條消息可以采用at+cmgs命令,格式如下:at+cmgs=+系統(tǒng)上電后,arm微控制器開始執(zhí)行主程序。在主程序中,首先進行系統(tǒng)初始化,初始化的內容包括gps模塊和gsm模塊的基本參數設置,然后進入主程序的數據處理部分,后文將有詳細的論述,此處不展開講解。 設置共享方手機號碼彈出gsm對話框若“介紹”功能鍵按下每3秒觸發(fā)定時器,刷新一次,顯示信息到界面,繪制位置點到地圖上循環(huán)提取出所需數據并進行優(yōu)化處理提高精度。自動接受gps信息系統(tǒng)初始化,設置串口,讀入地圖主界面開始提取當前位置信息若“評分”功能鍵按下若“gsm”功能鍵按下發(fā)送 點擊“關閉”返回主界面彈出學校介紹對話框彈出評分系統(tǒng)對話框點擊按鈕瀏覽信息點擊按鈕進行投票統(tǒng)計點擊“關閉”返回主界面點擊“關閉”返回主界面查詢是否有隊友位置信息判斷是否為地理信息顯示提示信息,自動接收 y繪制對方位置點到地圖上返回主界面是是否等待下次查詢 nyy 圖1-8四、系統(tǒng)總體開發(fā)流程圖及進度1、系統(tǒng)總體開發(fā)流程圖,如圖1-9所示。arm9-2410開發(fā)板bootloader的移植裁剪編譯linux2.4+qtopia制作系統(tǒng)鏡像文件燒錄鏡像文件,并能成功在開發(fā)板上運行qt環(huán)境的配置和搭建gps模塊串口通信的實現、制作電子地圖應用程序的ui設計,讀取地圖gsm模塊發(fā)送短信功能實現界面與模塊之間的整合測試,調試,完成軟件系統(tǒng)設計硬件系統(tǒng)設計安裝交叉編譯工具鏈圖1-92、項目整體進度表及工作涉及工作量本項目整體進度表如下圖1-10所示,主要工作量和涉及相關知識為:系統(tǒng)平臺搭建(硬件+軟件):嵌入式系統(tǒng)開發(fā),linux操作系統(tǒng)應用。gps、gsm模塊使用部分:單片機,微機接口,主要用于串口操作實現信息提取、查詢,進制計算轉換。 地圖部分:使用mapinfo制作電子地圖, gis導航使用,圖形學系統(tǒng)主體部分:嵌入式應用程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建漳州三模數學試卷
- 廣東高分突破九年級數學試卷
- 肛腸術后護理課件
- 高三寫不完的數學試卷
- 肋骨骨折護理
- 2024年09月湖北省農村信用社聯合社網絡信息中心度招考35名勞務派遣科技專業(yè)人才筆試歷年參考題庫附帶答案詳解
- 2025至2030袋泡茶市場前景分析及發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 高血糖引起的并發(fā)癥的早期干預
- 2025至2030寵物袋運動衫行業(yè)市場深度研究與戰(zhàn)略咨詢分析報告
- 2024年山東煙臺干部學院招聘教師筆試真題
- 小學五年級第一學期體育教案(新版)
- 北京市西城區(qū)2021-2022學年八年級下學期期末歷史試題(試題+答案)
- 土地綜合整治項目施工組織設計
- 大疆無人機租賃合同協(xié)議書
- HG∕T 4592-2014 離子膜法金屬陽極電解槽電極活性層
- 訂婚解除婚約協(xié)議書模板
- 進入車間管理制度
- 急性肝衰竭的護理查房
- 卵巢癌教學查房課件
- 全國職業(yè)大賽(中職)ZZ006水利工程制圖與應用賽項賽題第2套
- 監(jiān)控安裝項目計劃書
評論
0/150
提交評論