新聞中心

        EEPW首頁 > 測試測量 > 設計應用 > 嵌入式Linux平臺的GPS數據采集研究

        嵌入式Linux平臺的GPS數據采集研究

        作者: 時間:2010-12-16 來源:網絡 收藏

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

        3 結束語
        GPS設備與平臺之間的數據是實現GIS定位功能的基礎,隨著基于嵌入式的嵌入式GIS的應用日益廣泛,GPS數據的采 集方法成為一項基礎性工作,本文針對GPS數據的采集,詳細分析了目前普遍采用的NMEA0183協議,并在此基礎上對嵌入式Linux環境下的GPS數 據采集進行舉例分析.

        本文引用地址:http://www.104case.com/article/195179.htm
        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 北川| 北宁市| 青海省| 大宁县| 桑植县| 宁明县| 建阳市| 喀喇沁旗| 江口县| 长治县| 石棉县| 策勒县| 新沂市| 平潭县| 金寨县| 长沙县| 德庆县| 水富县| 威远县| 临洮县| 拉孜县| 巩留县| 和龙市| 朝阳区| 友谊县| 行唐县| 曲水县| 泸州市| 来凤县| 呼伦贝尔市| 永丰县| 秦皇岛市| 昌平区| 东明县| 本溪市| 竹山县| 怀仁县| 泰宁县| 衡阳县| 西乌| 武穴市|