<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式物流信息終端定位功能設計與實(shí)現

嵌入式物流信息終端定位功能設計與實(shí)現

作者: 時(shí)間:2012-11-16 來(lái)源:網(wǎng)絡(luò ) 收藏


  對于終端導航而言,“$GPRMC”幀格式可以滿(mǎn)足大部分需求,其幀長(cháng)相對較短,便于信息處理。因此,在本系統中,選取“$GPRMC”幀進(jìn)行定位信息提取。系統通過(guò)RS232串口從-OEM模塊中接收定位數據,從接收數據中的“$GPRMC”幀提取時(shí)間、經(jīng)緯度、速度、方位角等定位導航信息。其程序模塊主體結構如下:

……
//判斷是否為$GPRMC幀頭,并進(jìn)行標記
if(Data[i]=='$' Data[i+3]=='R')
……
//判斷是否為幀尾,幀尾以換行字符LF>表示,數值為10 ''
if(Data[i]==10 SectionID==13) { ……
id_check=m*16+n; //得到檢驗數據的INT型
if(chk_result!=id_check) //比較異或運算結果與檢驗數據是否一致
…… i f( Data[i]=='*' SectionID==12 ) //異或運算結果
……
//對$至*之間的字符進(jìn)行異或運算,得到結果chk_result
for( ; Data[n]!='*"; n++) chk_result^=Data[n];
//判斷逗號,區分識別數據,并判別*號,區分校驗數據
if(Data[i]==','||(Data[i]=='*' SectionID==12) )
SectionID++;
else
{ switch(SectionID)
{ case 1: //提取時(shí)間
m_sTime[a++]=Data[i];
break;
case 2: //接收判別有效性數據A為有效,V為無(wú)效
……
case 3: //提取緯度
……//提取經(jīng)度、速度、方位角、校驗數據等其它信息

2)Linux串口通信編程

  嵌入式Linux操作系統使用接口標準POSIX的termios接口來(lái)控制串口的行為。在Linux系統中,串口等設備被當作文件進(jìn)行處理,其程序模塊主體實(shí)現如下:

int fd=open("/dev/ttyS1",O_RDWRIO_NOCTTY);//打開(kāi)串口
……
new_options.c_cflag =~PARENB;//無(wú)奇偶校驗
new_options.c_cflag =~CSIZE;//不隱藏數據位
new_options.c_cflag =~CSTOP8;//無(wú)停止位
new_options.c_cflag |=CS8;//8位數據位
cfsetispeed(new_options,B4800);//設置波特率4800bit/s
cfsetospeed(new_options,B4800);
tcflush(fd,TCIOFLUSH);
tcsetattr(fd,TCSANOW,new_options);//設置新的設備方式

  完成串口設置后,就可以使用read( )、write( )函數對串口進(jìn)行操作。需注意的是,串口默認是阻塞型的,當沒(méi)有數據到達時(shí),將會(huì )阻塞掛起,這時(shí)可以通過(guò)多線(xiàn)程編程、串口超時(shí)設定或使用select輪詢(xún)等方式進(jìn)行調整控制。本系統主要采用多線(xiàn)程編程實(shí)現對串口阻塞的調控,使用的是QT的Qthread類(lèi),也可以直接使用Linux自身的多線(xiàn)程函數進(jìn)行操作。

3)QT/Embedded編程

  Qt/Embedded是著(zhù)名的Qt庫開(kāi)發(fā)商TrollTech正在進(jìn)行的基于framebuffer的面向嵌入式系統的Qt版本。因其面向對象、跨平臺和界面設計方便美觀(guān)而得到廣泛應用。

  本設計采用QT/Embedded 3.3.4版本,它支持SQLITE數據庫驅動(dòng),便于數據庫操作與編程。設計主要使用了QTE的畫(huà)布模塊、SQL模塊和網(wǎng)絡(luò )模塊。畫(huà)布模塊中,QCanvas庫是一個(gè)高度優(yōu)化的二維繪圖庫,與其它畫(huà)布模塊結合使用,能很方便地實(shí)現導航地圖的顯示、縮放、漫游以及鷹眼等功能。而SQL模塊和網(wǎng)絡(luò )模塊能很方便地實(shí)現數據庫編程和網(wǎng)絡(luò )通信功能,極大地縮短了程序的開(kāi)發(fā)周期,提高了開(kāi)發(fā)效率。

初步實(shí)現

  定位誤差主要取決于-OEM模塊的定位精度,實(shí)驗顯示本系統能初步滿(mǎn)足的需求。


結束語(yǔ)

  本文提出了一套基于嵌入式Linux系統的物流信息化終端的設計方案,并對其進(jìn)行了初步實(shí)現。實(shí)驗證明:系統定位數據精確、界面友好、系統可擴展性強,較好地完成了物流信息化終端。本系統可用于物流終端定位導航,也可適用于其它需要定位導航服務(wù)的場(chǎng)合,具有較普遍的適用價(jià)值和參考價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>