蓋憲坤
摘 要:當(dāng)前,在公交系統(tǒng)中利用GPS實現(xiàn)自動語音報站已經(jīng)比較常見,但是將GPS定位功能結(jié)合車載移動電視,從而實現(xiàn)可視化的視頻報站和定點(diǎn)圖片廣告還鮮有耳聞。本文結(jié)合我公司自研的公交機(jī)頂盒,闡述了基于GPS定位的視頻報站和定點(diǎn)圖片廣告系統(tǒng)軟件設(shè)計思想及實現(xiàn),該設(shè)計提高了我們產(chǎn)品的附加值和技術(shù)含量,為我們的廣電客戶的廣告推廣提供了新的思路。
關(guān)鍵詞:公交機(jī)頂盒;GPS定位;視頻報站;定點(diǎn)圖片廣告
1.引言
GPS是全球定位系統(tǒng)(Global Positioning System)的縮寫形式,它是一種基于衛(wèi)星的定位系統(tǒng),用于獲得地理位置信息以及準(zhǔn)確的通用協(xié)調(diào)時間。該系統(tǒng)由美國政府放置在軌道中的24顆衛(wèi)星組成。GPS可提供精確度在10米之內(nèi)的導(dǎo)航。它可在任何天氣條件下、全球任何地方工作。GPS系統(tǒng)包括三大部分:空間部分---GPS衛(wèi)星;地面控制部分---地面監(jiān)控系統(tǒng);用戶設(shè)備部分---GPS信號接收機(jī)。普通的GPS用戶只要有GPS信號接收機(jī)就可以接收到包括經(jīng)度、緯度、時間、速度等信息。
2.設(shè)計思想
本款機(jī)頂盒在播放移動電視視頻的基礎(chǔ)上,具備自動播報站名的功能,可以顯示即將到達(dá)站的一些簡單介紹,能夠顯示一些宣傳文字和廣告圖片,以及一些重要信息的即時滾動宣傳發(fā)布功能。一般情況下,機(jī)頂盒正常全屏幕播放電視視頻,當(dāng)即將進(jìn)入公交站點(diǎn)的時候,依靠GPS的定位功能觸發(fā)視頻報站及廣告圖片的顯示,此時,視頻畫面被暫時的縮小,三十秒后,視頻報站及圖片廣告結(jié)束,視頻恢復(fù)為全屏幕。具體界面見圖1。
為了方便廣告圖片和公交站點(diǎn)GPS坐標(biāo)的更換,這些信息將被存儲在外接SD卡中,我們原有的公交機(jī)頂盒留有USB接口,在硬件設(shè)計時,需要將SD卡轉(zhuǎn)成USB接口。另外,GPS模塊和機(jī)頂盒之間的通信方式為串行接口。因此,公交機(jī)頂盒和外掛的GPS模塊盒子主要有兩個接口:USB接口和串行接口。
3.軟件設(shè)計
3.1 SD卡中文本文件的解析
SD卡中主要存儲各個公交站點(diǎn)的GPS坐標(biāo)信息以及該站點(diǎn)對應(yīng)的廣告圖片。廣告圖片的格式一律為bmp格式,并且bmp文件名的長度最長為五個英文或者數(shù)字字符。為了方便解析文本文件,規(guī)定該配置文件必須以”//end”為結(jié)尾,注釋從英文的”//”開始,可用漢字。
例:{38508230,121307860,"1.bmp"},//七賢嶺
這行文本的含義是七賢嶺站的緯度為3850.8230,經(jīng)度為12130.7860,該站點(diǎn)對應(yīng)的廣告圖片為1.bmp。在程序中用數(shù)據(jù)結(jié)構(gòu)
structGPS_Point
{
unsignedlongsLatitude;
unsignedlongsLongitude;
charsBmpFileName[BmpFileNameLen];
}GPS_Point;
來存儲每個站點(diǎn)的坐標(biāo)信息以及對應(yīng)的廣告圖片文件名。在機(jī)頂盒上電的時候,從SD卡中讀取配置文本文件,并逐行解析,形成一個GPS_Point數(shù)組,為下面的定點(diǎn)視頻報站做好準(zhǔn)備。
3.2機(jī)頂盒與GPS模塊之間通信協(xié)議解析
GPS的通訊協(xié)議比較多,其中NMEA(National Ma2rine Electronics Association),0183協(xié)議為GPS接收機(jī)和其他航海電子產(chǎn)品的導(dǎo)航數(shù)據(jù)輸出格式,是目前普遍使用且為大多數(shù)生產(chǎn)商遵循的協(xié)議之一。在本應(yīng)用中,我們只關(guān)心公交車當(dāng)前的經(jīng)緯度信息,因此不需要用到NMEA的全部信息,而只需解析GPS推薦的最短數(shù)據(jù)$GPRMC即可。該語句的基本格式如下:
$GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>*hh
下面先以一個具體的例子來分析該語句各個字段的含義:
$GPRMC,055142,A,3603.3291,N,10346.3723,E,0.0,230.4,250503,1.3,W,A*02
其中數(shù)據(jù)分別為:
$GPRMC 串頭,其中RMC表示該語句為定位語句
055142 表示UTC24小時制的標(biāo)準(zhǔn)時間,格式為“時時/分分/秒秒”。
A或V 表示信號接收狀態(tài),其中A表示數(shù)據(jù)OK,V表示一個警告
3603.3291 表示緯度值,格式為“ddmm.mmmm”
N或S 標(biāo)明南北半球,N為北半球(北緯)、S為南半球(南緯)
10346.3723 表示經(jīng)度值,格式為“dddmm.mmmm”
E或W 標(biāo)明東西半球,E為東半球(東經(jīng))、W為西半球(西經(jīng))
0.0 表示速度,(這里速度為0)
230.4 方位角,范圍為000.0到359.9度
250503 為UTC的日期,格式為“日日/月月/年年”
1.3 地磁變化(磁偏角),從000.0到180.0度
W 地磁變化方向,為E或W
A 模式指示(僅NMEA01833.00版本輸出,A=自主定位,D=差分,E=估算,N=數(shù)據(jù)無效)
*02 校驗值
視頻化的自動報站所依據(jù)的便是GPS模塊傳來的經(jīng)緯度信息。公交機(jī)頂盒與GPS模塊通過串口進(jìn)行物理連接,GPS模塊發(fā)出的信息遵從NMEA協(xié)議。每隔一秒鐘,GPS模塊將以9600的波特率發(fā)出GPRMC定位語句,給出當(dāng)前車輛的實時經(jīng)緯度坐標(biāo)信息。我們在機(jī)頂盒的底層串口驅(qū)動中,加入了NMEA協(xié)議解析任務(wù),該任務(wù)主要處理串口接收到的GPS信息,從各種各樣的信息中解析出當(dāng)前的經(jīng)緯度坐標(biāo),當(dāng)當(dāng)前的經(jīng)緯度坐標(biāo)落入預(yù)先設(shè)置的站點(diǎn)的坐標(biāo)范圍時,我們認(rèn)為公交車到達(dá)該站,通過向上層OSD發(fā)出到達(dá)該站信息,在OSD層上實現(xiàn)了可視化的視頻報站。在軟件設(shè)計中,我們需要從該語句中解析出信號的接收狀態(tài)(即字段2)以及當(dāng)前車輛的經(jīng)緯度坐標(biāo)(字段3和5),得到有效的經(jīng)緯度坐標(biāo)后,將它們和上面得到的GPS_Point數(shù)組中的經(jīng)緯度坐標(biāo)逐一比較,當(dāng)滿足一定閾值時,認(rèn)為到達(dá)某個站點(diǎn),我們調(diào)出包含該站點(diǎn)各種提示信息和廣告圖片,顯示30秒左右后,廣告圖片自動消失,恢復(fù)全屏幕視頻。當(dāng)?shù)玫揭粭l完整的GPRMC語句時,其解析和對比的流程如圖2。
參考文獻(xiàn):
[1]王建宏,GPS串口編程應(yīng)用,微機(jī)發(fā)展,2003年11月