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

基于WindML的導(dǎo)航儀顯控軟件界面設(shè)計與實(shí)現(xiàn)

2016-11-07 05:37:01羅文
全球定位系統(tǒng) 2016年4期
關(guān)鍵詞:頁面嵌入式界面

羅文

(四川九洲空管科技有限責(zé)任公司,綿陽 621000)

?

基于WindML的導(dǎo)航儀顯控軟件界面設(shè)計與實(shí)現(xiàn)

羅文

(四川九洲空管科技有限責(zé)任公司,綿陽 621000)

針對導(dǎo)航儀顯控軟件外部接口多、實(shí)時性要求高、人機(jī)交互操作頻繁的特點(diǎn),在VxWorks平臺下利用其自帶的基礎(chǔ)圖形庫(WindML),采用圖形雙緩沖防閃爍等技術(shù), 解決了顯控軟件人機(jī)交互頻繁、實(shí)時性要求高的問題。經(jīng)測試,軟件可靠性高,界面友好,具有導(dǎo)航的各項(xiàng)基本功能。

導(dǎo)航軟件;VxWorks;WindML

0 引 言

本文設(shè)計的導(dǎo)航儀軟件是一種集北斗、GPS、格洛納斯(GLONASS)三種導(dǎo)航模式于一體的導(dǎo)航軟件。在海上航行中,如果沒有導(dǎo)航儀支持,航行者很容易迷失方向。從最開始的羅盤,以地球磁場指示方向,到現(xiàn)在以衛(wèi)星信號作為導(dǎo)航。目前,美國、俄羅斯各自已獨(dú)立開發(fā)出兩套免費(fèi)的導(dǎo)航系統(tǒng),因此開發(fā)基于北斗衛(wèi)星導(dǎo)航系統(tǒng)的導(dǎo)航軟件意義重大。

在航行中,為減小導(dǎo)航儀的尺寸和降低功耗,顯控軟件運(yùn)行在嵌入式平臺下。嵌入式系統(tǒng)采用VxWorks.VxWorks以其良好的持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的開發(fā)環(huán)境在嵌入式實(shí)時操作系統(tǒng)領(lǐng)域占據(jù)一席之地。本文在VxWorks嵌入式平臺下采用圖形雙緩沖防閃爍等技術(shù), 解決了顯控軟件人機(jī)交互頻繁、實(shí)時性要求高的問題,基本滿足航海導(dǎo)航儀的要求。

1 軟件架構(gòu)設(shè)計

根據(jù)導(dǎo)航儀功能的需求,顯控軟件分為衛(wèi)星狀態(tài)、導(dǎo)航頁面、系統(tǒng)設(shè)置三個功能模塊,每個功能模塊下包含幾個主界面,如圖1所示。

圖1 顯控軟件整體功能示意圖

綜合信息頁面為開機(jī)主界面,每個主界面中又包含多個子界面,如衛(wèi)星狀態(tài)信息主界面包含BD衛(wèi)星信息、GPS衛(wèi)星信息、GLO衛(wèi)星信息等子界面。主界面和子界面構(gòu)成了軟件的框架。

1.1導(dǎo)航軟件外部接口

軟件外部接口如圖2所示,顯控軟件通過串口與主板上的導(dǎo)航板相連,實(shí)現(xiàn)顯控軟件與導(dǎo)航板之間的數(shù)據(jù)通信(接收、發(fā)送)和數(shù)據(jù)解算、處理,得到位置、速度、衛(wèi)星信息等數(shù)據(jù),并將這些信息轉(zhuǎn)發(fā)至終端顯示器顯示,顯控軟件可通過串口將用戶需求信息發(fā)送給外部系統(tǒng),另外,也可將面板的按鍵信息發(fā)送至后臺,對導(dǎo)航板進(jìn)行操控。

圖2 軟件外部接口示意圖

1.2軟件架構(gòu)設(shè)計

顯控軟件功能復(fù)雜,頁面較多,其軟件架構(gòu)設(shè)計示意圖如圖3所示,顯控軟件首先對串口進(jìn)行輪詢,讀取導(dǎo)航板數(shù)據(jù)并解碼,然后將解碼后的數(shù)據(jù)存儲在緩沖區(qū)消息隊(duì)列并傳送至終端;同時,終端按鍵監(jiān)聽任務(wù)一直處于阻塞狀態(tài),當(dāng)監(jiān)聽到用戶的按鍵響應(yīng)后時,通過串口將指令發(fā)送給導(dǎo)航板,對導(dǎo)航板的工作狀態(tài)進(jìn)行操控。

圖3 軟件架構(gòu)設(shè)計示意圖

顯控軟件還可以將節(jié)點(diǎn)的位置、速度等數(shù)據(jù)通過主板上的串口發(fā)送至外部系統(tǒng),也可將外部系統(tǒng)的指令通過串口轉(zhuǎn)發(fā)至導(dǎo)航板,對導(dǎo)航板進(jìn)行操控。

2 WindML圖形界面設(shè)計

WindML為VxWorks自帶的基礎(chǔ)圖形庫,支持基于嵌入式系統(tǒng)的多媒體應(yīng)用程序,軟件獨(dú)立性和可移植性較好[1]。

WindML包括軟件開發(fā)工具包(SDK)、設(shè)備驅(qū)動程序開發(fā)包(DDK)兩個組件,SDK組件提供了完整的可供用戶調(diào)用的API函數(shù)集,可用來開發(fā)應(yīng)用程序,包括圖形、輸入處理、多媒體、字體和內(nèi)存管理。DDK 組件提供了一個全面的驅(qū)動程序參考庫[2],包括API函數(shù)庫和硬件配置。WindML的層次結(jié)構(gòu)如圖4所示。其中應(yīng)用程序?yàn)轱@控軟件的主體,包括導(dǎo)航算法、任務(wù)調(diào)度、接口數(shù)據(jù)處理等,輸出設(shè)備包括終端顯示器、與導(dǎo)航板和外部相連的串口設(shè)備等,輸入設(shè)備包括終端控制按鍵等。

圖4 WindML層次結(jié)構(gòu)圖

2.1漢字顯示技術(shù)

由于WindML 不支持漢字的顯示,為實(shí)現(xiàn)漢字的顯示,需根據(jù) WindML 的字符輸出原理創(chuàng)建漢字字庫。

利用WindML的字體API 函數(shù)集,調(diào)用字體驅(qū)動來顯示文字。字體API 函數(shù)與字體驅(qū)動之間的接口靈活,支持各種字體。如向量字體[3],可以通過增加字體引擎,修改字體驅(qū)動來實(shí)現(xiàn)向量字體的顯示。

WindML 支持雙字節(jié)編碼,用于漢字的點(diǎn)陣存儲、點(diǎn)陣獲取、點(diǎn)陣顯示,漢字碼到漢字的顯示可通過 WindML 的雙字節(jié)顯示函數(shù)實(shí)現(xiàn)。這種方法使 WindML 的其他上層組件很方便地實(shí)現(xiàn)漢字顯示[4]。實(shí)現(xiàn)的大體過程如下

1) 通過獲取顯示設(shè)備標(biāo)識

pRegistryData=uglRegistryFind (UGL-DISPLAY-TYPE, 0, 0, 0);

devId=(UGL-DEVICE-ID)pRegistryData->id;

2) 獲取字體驅(qū)動

pRegistryData=uglRegistryFind (UGL-FONT-ENGINE-TYPE, 0, 0, 0);

fontDrvId=(UGL-FONT-DRIVER-ID)pRegistryData->id;

3) 設(shè)置字體

在tornado安裝目錄下的WIND-BASE/target/h/ugl/config/uglConfig.h文件描述了整個系統(tǒng)能使用的字符集。

uglFontFindString(fontDrvId, "pixelSize=12", &fontDef);

font=uglFontCreate(fontDrvId, &fontDef);

4) 顯示字體

gc=uglGcCreate(devId);

uglTextDraw(gc, x, y,-1, message).

2.2中文輸入法

為方便用戶輸入操作,能夠快速地輸入漢字。輸入法具有拼音組合自動識別功能,不需要用戶在一個個字母間進(jìn)行切換,如圖5所示。

圖5 中文輸入法邏輯流程圖

當(dāng)用戶在字體編輯框中輸入字母“BD”時,就會根據(jù)拼音搜尋可能的組合,“笨蛋”、“百度”、“北斗”、“部隊(duì)”等,這些組合素材以文件的形式保存在Hanzi0.c,Hanzi1.c和Hanzi2.c文件中。由于所有的拼音組合在編輯框內(nèi)沒法全部展示,就通過分篇顯示,在編輯框中展示的效果就是“1. 笨蛋 2. 百度 3. 北斗 4. 部隊(duì)”,還有分篇符“上一篇”,“下一篇”。

根據(jù)輸入拼音,查找可能的漢字組合

int Hanzifind(const char *msg, char neirong[][15], int start, int maxnum)/*msg由用戶選擇的拼音組合,根據(jù)數(shù)字找到。neirong:返回找到漢字內(nèi)容,start 對應(yīng)上例中序號為1的 “笨蛋”, maxnum為本篇的最大組合長度*/

{

hanzitmp=HanzifindCollection(msg[0]);/*在Hanzi0.c,Hanzi1.c和Hanzi2.c中搜索首字母開頭的數(shù)組,如上面例子中的首字母“B”,*/

for(i=0; 1;i++)

{

if(hanzitmp[i].num==0) break;/*搜索完畢或者拼音組合為空 */

if(Hanzipincmp(msg, &(hanzitmp[i]))==OK)/*漢字拼音比較函數(shù) */

{

/*將搜索到的組合保存至neirong */

}

}

return num;/*返回拼音組合的個數(shù) */

2.3圖形雙緩沖防閃爍技術(shù)

由于導(dǎo)航儀顯控軟件功能多,圖形操作計算量大,需要多次訪問存放在消息隊(duì)列(msgRecUpdateQ)中的緩沖數(shù)據(jù)才能寫入完整的圖形數(shù)據(jù)。對于衛(wèi)星狀態(tài)信息等數(shù)據(jù)量大的頁面,如果采用通用的方法繪制頁面,看到的效果可能是一部分一部分地顯示出來,畫面閃爍抖動都很大??紤]到此情況,本文采用雙緩沖技術(shù),該技術(shù)使中間結(jié)果存放在另一個緩沖區(qū)中,所有的計算結(jié)束時,該緩沖區(qū)已經(jīng)存儲了完整的圖形后,再將該緩沖區(qū)的圖形數(shù)據(jù)一次性復(fù)制到顯示緩沖區(qū)[5]。

以衛(wèi)星狀態(tài)信息為例,背景圖和底部的頁面切換欄是不變的,發(fā)生變化的是當(dāng)前的各衛(wèi)星位置信息,因此繪制當(dāng)前頁面時,先在后臺處理,處理完成后,將后臺的處理結(jié)果復(fù)制到前端。這樣就完成界面的整體顯示,而不會出現(xiàn)閃爍抖動。

先進(jìn)行雙緩沖設(shè)置,初始化兩個內(nèi)存區(qū)域

UGL-PAGE-ID page[2];

page[0]=UGL-PAGE-ZERO-ID;

page[1]=uglPageCreate(devId);/*創(chuàng)建雙緩沖*/

page[0]為前端頁面,page[1]為后臺處理頁面

uglPageDrawSet(devId, page[0]);

page[0]、page[1]前后臺交替處理,完成頁面繪制。

int flag=0;/*頁面切換控制變量 */

while(1)

{

ClearScreen(gc);

if(flag==0)/*page[0]在前臺顯示*/

{

uglPageVisibleSet(devId,page[0]);

uglPageDrawSet(devId,page[1]);

flag=1;/*0,1交替賦值,實(shí)現(xiàn)前臺、后臺頁面切換 */

}

Else/*page[1]在前臺顯示*/

{

uglPageVisibleSet(devId,page[1]);

uglPageDrawSet(devId,page[0]);

flag=0;

}

3 軟件測試情況和軟件的可靠性

本文采用WindML圖形設(shè)計技術(shù),設(shè)計了一款基于WindML的導(dǎo)航儀顯控軟件。在華力創(chuàng)通的HWA-GNSS-8000多體制衛(wèi)星導(dǎo)航信號模擬器模擬的高動態(tài)場景下,軟件持續(xù)穩(wěn)定運(yùn)行時間大于720小時。軟件界面友好如圖6所示,基本實(shí)現(xiàn)航點(diǎn)航線管理、航線規(guī)劃、衛(wèi)星星座圖等功能??赏茝V應(yīng)用于其他導(dǎo)航定位終端軟件的設(shè)計。

圖6 顯控軟件定位主界面

4 結(jié)束語

我國北斗導(dǎo)航終端設(shè)備、技術(shù)與國際先進(jìn)水平還存在一定的差距,如終端設(shè)備體積較大,產(chǎn)品價格比GPS偏高,定位精度不夠高,基于網(wǎng)絡(luò)化的位置服務(wù)應(yīng)用還不夠廣,伴隨著導(dǎo)航系統(tǒng)的發(fā)展,北斗導(dǎo)航終端設(shè)備與技術(shù)未來的發(fā)展趨勢為:

1) 小型化:為滿足航海導(dǎo)航的需求,導(dǎo)航儀的體積小,功耗低,導(dǎo)航軟件運(yùn)行的嵌入式平臺也將升級換代,顯控軟件的設(shè)計將更高效。

2) 實(shí)時監(jiān)控和網(wǎng)絡(luò)化位置查詢:利用北斗導(dǎo)航系統(tǒng),可以把當(dāng)前位置上報給監(jiān)控中心,同時可以在地圖上實(shí)時查看其他船只的位置信息。

3) 構(gòu)建北斗“位置云”平臺,位置云是一種基于 3S 技術(shù)、IT 技術(shù)、網(wǎng)絡(luò)與通信技術(shù)的綜合體系,網(wǎng)絡(luò)中各節(jié)點(diǎn)可以實(shí)時共享位置信息,利用云計算的架構(gòu)和特點(diǎn),為用戶終端提供基于位置的相關(guān)服務(wù)。

[1]陳智育, 溫彥軍, 陳琪. VxWorks 程序開發(fā)實(shí)踐[M]. 北京: 人民郵電出版社, 2004.

[2]Wind River System Inc. WindML 3.0 API Reference[R].2002.[3]黃秀珍, 何加銘, 邰曉英. 基于FreeType嵌入式矢量字體引擎的研究[J]. 寧波大學(xué)學(xué)報, 2010,23(4): 56-60.

[4]梁小琴,王峰. WindML 漢字顯示技術(shù)[J]. 應(yīng)用天地. 2008(2):51-53.

[5]周代發(fā).基于VxWorks的移動終端組合導(dǎo)航系統(tǒng)的研究與設(shè)計[D]. 西安:西安電子科技大學(xué) 2014.

Interface Design of Display& Control Software of Navigation Systems Based on WindML

LUO Wen

(JiuzhouATCTechnologyCo.,Ltd,Mianyang621000,China)

Display& Control software of Navigation systems has the features of many external interfaces, highly real-time, frequent human-computer interaction,to solve the problem of the high frequency and high real-time, this paper adopts screen double buffering anti flicker, and other technologies. The test has proved the reliability of the software and the interface of the software is friendly with good function.

Navigation software; VxWorks; WindML

10.13442/j.gnss.1008-9268.2016.04.020

2016-01-22

TN967.1

A

1008-9268(2016)04-0094-05

羅文(1981-)男,湖南漢壽人,碩士,工程師,現(xiàn)從事實(shí)時嵌入式軟件開發(fā)工作。

聯(lián)系人: 羅文 E-mail:30983638@163.com

猜你喜歡
頁面嵌入式界面
大狗熊在睡覺
刷新生活的頁面
國企黨委前置研究的“四個界面”
搭建基于Qt的嵌入式開發(fā)平臺
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
人機(jī)交互界面發(fā)展趨勢研究
手機(jī)界面中圖形符號的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
Altera加入嵌入式視覺聯(lián)盟
倍福 CX8091嵌入式控制器
自動化博覽(2014年4期)2014-02-28 22:31:15
主站蜘蛛池模板: 国产精品一区二区不卡的视频| 国产91av在线| 国产精品女熟高潮视频| 国产97色在线| 99精品视频在线观看免费播放| 成人a免费α片在线视频网站| 中国国语毛片免费观看视频| 久久香蕉国产线| 67194成是人免费无码| 毛片大全免费观看| 黄色a一级视频| 国产一二三区视频| 久久精品国产精品国产一区| 亚洲天堂日本| 国产精女同一区二区三区久| 亚欧乱色视频网站大全| 伊人成人在线视频| 欧美综合区自拍亚洲综合绿色 | 日本黄色不卡视频| 自偷自拍三级全三级视频| 伊人久久福利中文字幕| 色九九视频| 国产精品va| 精品国产一区二区三区在线观看| 成年人视频一区二区| 亚国产欧美在线人成| 无码丝袜人妻| 欧美精品色视频| 无码丝袜人妻| 在线国产毛片手机小视频| 欧美日本在线一区二区三区| 中文无码伦av中文字幕| 9啪在线视频| 国产男人天堂| 国产丝袜第一页| 欧美啪啪网| 亚洲天堂成人在线观看| 国产av无码日韩av无码网站| 华人在线亚洲欧美精品| 美女被狂躁www在线观看| 国产微拍一区| 亚洲精品无码久久毛片波多野吉| 国产成人精品综合| 91精品在线视频观看| 日韩午夜福利在线观看| 国产区91| 天堂网国产| 精品欧美一区二区三区久久久| 国产网站黄| 久久精品视频亚洲| 美女被操91视频| 亚洲精品爱草草视频在线| 色婷婷视频在线| 免费又黄又爽又猛大片午夜| 毛片在线看网站| 国产精品一老牛影视频| 欧美午夜理伦三级在线观看| 制服丝袜无码每日更新| 999精品视频在线| 无码内射在线| 精品一区二区久久久久网站| 爆乳熟妇一区二区三区| 亚洲天堂视频在线观看免费| 亚洲制服丝袜第一页| 国产精品无码影视久久久久久久| 国产色婷婷| 欧洲高清无码在线| 国产精品免费电影| 欧美有码在线| 国产成人一区| 久久久久久久蜜桃| 不卡午夜视频| 成人综合网址| 亚洲欧美成aⅴ人在线观看| 青青操国产| 国产女人在线视频| 伊人久久大香线蕉aⅴ色| 日韩在线视频网站| a色毛片免费视频| 国产美女无遮挡免费视频| 992Tv视频国产精品| 91一级片|