<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 嵌入式Linux平臺的GPS數(shù)據(jù)采集研究

          嵌入式Linux平臺的GPS數(shù)據(jù)采集研究

          作者: 時間:2010-12-16 來源:網(wǎng)絡(luò) 收藏

          2.2 GPs中定位信息的獲取舉例
          系統(tǒng)中進(jìn)行串口編程,讀取數(shù)據(jù)的定位信息.
          /*包含必要的頭文件*/
          #include termios.h>
          #include stdio.h>
          #include unistd.h>
          #include fcntl.h>
          /*打開串口設(shè)備*/
          int fd=open(/dev/ttyS0,O_RDWR|O_NOCTTY)/* O_RDWR表示以讀寫方式打開,O_NOCTTY表示串口不是控制終端*/
          struet termios old_options,new_options
          /*定義兩個termios結(jié)構(gòu),其中,old_options用于保存原有的設(shè)備工作方式,new_options用于設(shè)置新的設(shè)備工作方式 */
          tcgetattr(fd,old_options) /*獲取當(dāng)前設(shè)備方式*/
          /*設(shè)置結(jié)構(gòu)體new_options中的c_jflag、c_oflag、c_cflag、c_lflag和c_cc,再用cfsetispeed()和cfsetospeed()函數(shù)設(shè)置波特率 */
          new_options.c_cflag = PARENB; /*無奇偶校驗位*/
          new_options.c_cflag = CSIZE; /*不隱藏數(shù)據(jù)位*/
          new_options.c_cflag = CSTOPB; /*無停止位*/
          new_options.c_cflag |=CS8; /*8位數(shù)據(jù)位*/
          new_options.c_oflag=ICRNL; /*將輸出的CR轉(zhuǎn)換成NL*/
          new_options.c_lflag=(ICANON | ECHO | ECHOE | SIG); /*選擇原始輸入模式,使輸入字符與接收到的字符相同*/
          new_options.c_cc[VTIME]=10; /*設(shè)置超時計時器為10x0.1=1秒*/
          new_options.c_ce[VMIN]=76; /*設(shè)置讀取的最小字符數(shù)為76個*/
          cfsetispeed(new_options,B4800); /*設(shè)置輸入波特率為4800*/
          cfsetospeed(new_options,B4800); /*設(shè)置輸出波特率為4800*/
          tcflush(fd,TCIOFLUSH); /*丟棄隊列中尚未傳送或接收的數(shù)據(jù)*/
          tcsetattr(fd,TCSANOW,new_options); /*設(shè)置新的設(shè)備方式*/
          /*完成終端的設(shè)置后,處理串口設(shè)備的數(shù)據(jù)輸入,從中選取有用的定位信息*/
          int nByteRead =read(fd,buf,LENGTH);
          if((buf[O]==$)(buf[3]==R)(buf[4]==M)(buf[5]==C))
          /*檢查語句串頭若為RMC則表示此語句為定位語句,選取此語句內(nèi)容,其余忽略*/
          {
          /*檢驗校驗和,如果校驗和正確繼續(xù),否則返回*/
          if(buf[i]= ,){/*提取并分解各逗號間的數(shù)據(jù)并進(jìn)行處理或發(fā)送至其它應(yīng)用程序*/}
          }
          以上代碼只是輸出數(shù)據(jù)中定位信息提取的關(guān)鍵代碼,要完成進(jìn)一步的完整功能還需編寫大量的代碼,這里就不一一列出.

          3 結(jié)束語
          GPS設(shè)備與平臺之間的數(shù)據(jù)是實現(xiàn)GIS定位功能的基礎(chǔ),隨著基于嵌入式的嵌入式GIS的應(yīng)用日益廣泛,GPS數(shù)據(jù)的采 集方法成為一項基礎(chǔ)性工作,本文針對GPS數(shù)據(jù)的采集,詳細(xì)分析了目前普遍采用的NMEA0183協(xié)議,并在此基礎(chǔ)上對嵌入式Linux環(huán)境下的GPS數(shù) 據(jù)采集進(jìn)行舉例分析.

          本文引用地址:http://www.ex-cimer.com/article/195179.htm
          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();