亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gps_receive.c.bak

?? 這是一個基于ARM7的GPS處理源代碼
?? BAK
?? 第 1 頁 / 共 2 頁
字號:
/****************************************Copyright (c)********************************************************
**                   (c) Copyright 2004-2005, ZhaiHai guangdong china  xu.sunny
**                                  All Rights Reserved
**                                zhiping_xu@hotmail.com
**
**-------------------------------------------File Info--------------------------------------------------------
* File          name:  GPS_Receive.c
* Last modified Date:	
* Last       Version:	1.0
* Descriptions      : GPS 接收處理程序 	
*			      
**----------------------------------------------------------------------------------------------------------*/

#define GPS_GLOBALS
#include "config.h"

/***************************************************************************************************************
*                                             OSGPSRecTask
*
* Description: GPS 接收處理任務
*
* Arguments  : 
*              
* Returns    : 
*	         	       
* Note       : GPS的每幀數(shù)據(jù)以'$'開始,以'\r\n'結(jié)尾。中間以','分隔每字段。需要處理的幀數(shù)據(jù)有:
*              分別以"$GPRMC", "$GPGGA","$GPGSV"開始的數(shù)據(jù)幀。只需將經(jīng)度、緯度、衛(wèi)星個數(shù)、速度等字段取出即可。
***************************************************************************************************************/
void OSGPSRecTask(void *pdata)
{       
  char  szLat[11] = {0}; // 緯度寄存器
  char  szLon[11] = {0}; // 經(jīng)度寄存器
  char  szTime[6] = {0}; // 時間寄存器
  char  szDate[6] = {0}; // 日期寄存器
  char  szSpeed[15]={0}; // 速率寄存器
  char  szState[32]={0}; // 衛(wèi)星個數(shù)寄存器
  //char  szHeight[32]={0};// 讀取海平面高度
  //float dCurLat = 0.0;
  //float dCurLot = 0.0;
  uint32 i,j,nIndex = 0,nFindComma = 0;
  void * GPSTemp;
  uint8 err;
  
  pdata = pdata;
  
  //UART0Init(4800);
  GPSData.OSSemGPS_State = 0;
  for (;;)
    {
     	GPSTemp = OSQPend(GPS_REC_QFlag,0,&err);
     	IO0SET = GPS_Detect;
           // GetGPSInfo((UART0DATA*) GPSTemp);
    
	       OS_ENTER_CRITICAL();
           //$GPRMC,174921,A,2216.386,N,11331.650,E,000.0,360.0,311205,001.9,W*6D 
           if ((((UART0DATA *)GPSTemp)->RecBuff[i]  == '$') && (((UART0DATA *)GPSTemp)->RecBuff[i+1] == 'G') && (((UART0DATA *)GPSTemp)->RecBuff[i+2] == 'P' )&
		      (((UART0DATA *)GPSTemp)->RecBuff[i+3] == 'R') && (((UART0DATA *)GPSTemp)->RecBuff[i+4] == 'M') && (((UART0DATA *)GPSTemp)->RecBuff[i+5] == 'C'))
		     {
		       i += 6;
		       if ((Time_Adjust == 1) | (Time_Count == 720))
				 {
		           nIndex = 0;	     
		           for (j = i; j < ((UART0DATA *)GPSTemp)->Rec_Lenght; j++) //讀取緯度
		             {
		               if (nFindComma == 1)
			             {
			               if (((UART0DATA *)GPSTemp)->RecBuff[j] != ',')
				             {
				               szTime[nIndex] = ((UART0DATA *)GPSTemp)->RecBuff[j];
				               nIndex++;
				         }
				     }
				   if (((UART0DATA *)GPSTemp)->RecBuff[j] == ',')
				     {
				       nFindComma++;
				       if (nFindComma > 1)
				         {					           
				        	   struct time sTime;
				        	   char k = 0;
				        	   char Time[2] = {0};
				        	   Time_Adjust = 0x00;
				        	   Time_Count  = 0x00;
                               Time[0] = szTime[0];
                               Time[1] = szTime[1]; 
                               k = atoi(Time) + 8;  // 字符串轉(zhuǎn)換為整型 
                               if (k > 0x18) 
                                  sTime.wHour = k - 0x18;
                               else               
				        	      sTime.wHour = k; 
				        	   Time[0] = szTime[2];
                               Time[1] = szTime[3];  
				        	   sTime.wMinute = atoi(Time);
				        	   Time[0] = szTime[4];
                               Time[1] = szTime[5]; 
				        	   sTime.wSecond	= atoi(Time);
				        	   settime(&sTime);
				        	
				           Time_Count++;		          
					       i = j + 2;
					       break;
					      }
				       }
			         }
			     }
			   //$GPRMC,174921,A,2216.386,N,11331.650,E,000.0,360.0,311205,001.9,W*6D						 
		       nIndex = 0;	     
		       for (j = i; j < ((UART0DATA *)GPSTemp)->Rec_Lenght; j++) //讀取緯度
		         {
		           if (nFindComma == 3)
			         {
			           if (((UART0DATA *)GPSTemp)->RecBuff[j] != ',')
				           {
				             szLat[nIndex] = ((UART0DATA *)GPSTemp)->RecBuff[j];
				             nIndex++;
				           }
				     }
				   if (((UART0DATA *)GPSTemp)->RecBuff[j] == ',')
				     {
				       nFindComma++;
				       if (nFindComma > 3)
				         {					          
				           int nLatInt = atoi(szLat) / 100;
				           GPSData.dLat = (atof(szLat) - nLatInt * 100) / 60.0 + nLatInt;
					       i = j + 2;
					       break;
					     }
				     }
			     }
			   //$GPRMC,174921,A,2216.386,N,11331.650,E,000.0,360.0,311205,001.9,W*6D						   		     
			   nIndex = 0;
			   for (j = i; j < ((UART0DATA *)GPSTemp)->Rec_Lenght; j++)//讀取經(jīng)度
		         {
			       if (nFindComma == 5)
			         {
			           if (((UART0DATA *)GPSTemp)->RecBuff[j] != ',')
			             {
			               szLon[nIndex] = ((UART0DATA *)GPSTemp)->RecBuff[j];
				           nIndex++;
   			             }
				     }
				   if (((UART0DATA *)GPSTemp)->RecBuff[j] == ',')
				     {
				       nFindComma++;
				       if (nFindComma > 5)
				         {
				           int nLonInt  = atoi(szLon) / 100;
				           GPSData.dLot = (atof(szLon) - nLonInt * 100) / 60.0 + nLonInt; 
				           i = j + 2;
				           break;
				         }
				     }
			     }
			   //$GPRMC,174921,A,2216.386,N,11331.650,E,000.0,360.0,311205,001.9,W*6D
			   nIndex = 0;
               for (j = i; j < ((UART0DATA *)GPSTemp)->Rec_Lenght; j++) // 讀取速度
			     {
			       if (nFindComma == 7)
			         {
			           if (((UART0DATA *)GPSTemp)->RecBuff[j] != ',')
			             {
			               szSpeed[nIndex] = ((UART0DATA *)GPSTemp)->RecBuff[j];
				           nIndex++;
				         }
				     }
				   if (((UART0DATA *)GPSTemp)->RecBuff[j] == ',')
				     {
				       nFindComma++;
				       if (nFindComma > 7)
				         {
				           GPSData.iSpeed = atof(szSpeed) * 1.852;
				           i = j + 2;				           
				           break;
				         }
				     }
				 }
			   //$GPRMC,174921,A,2216.386,N,11331.650,E,000.0,360.0,311205,001.9,W*6D 
			   if (Date_Adjust == 0X00)
			     { 
			       nIndex = 0;
			       for (j = i; j < ((UART0DATA *)GPSTemp)->Rec_Lenght; j++) // 讀取日期
			         {
			           if (nFindComma == 9)
			             {
			               Date_Adjust = 0X00;
			               if (((UART0DATA *)GPSTemp)->RecBuff[j] != ',')
			                 {
			                   szDate[nIndex] = ((UART0DATA *)GPSTemp)->RecBuff[j];
				               nIndex++;
				             }
				         }  //$GPRMC,174921,A,2216.386,N,11331.650,E,000.0,360.0,311205,001.9,W*6D
				       if (((UART0DATA *)GPSTemp)->RecBuff[j] == ',')
				         {
				           nFindComma++;
				           if (nFindComma > 9)
				             {
				               struct date sDate;
				               char Date[2] = {0};
                               Date[0]    = szDate[0];
                               Date[1]    = szDate[1]; 
                               sDate.wDay = atoi(Date);  // 日期 字符串轉(zhuǎn)換為整型
                               
                               Date[0]      = szDate[2];
                               Date[1]      = szDate[3]; 
                               sDate.wMonth = atoi(Date);  // 月期 字符串轉(zhuǎn)換為整型
                                
                               Date[0]     = szDate[4];
                               Date[1]     = szDate[5];
                               sDate.wYear = atoi(Date);  // 月期 字符串轉(zhuǎn)換為整型
                               sDate.wYear = sDate.wYear + 2000;
                               setdate(&sDate);
                               i = j + 1; 
				               break;
				             }
				         }
			         }
			     }						
		     } 
		   //$GPGGA,174921,2216.386,N,11331.650,E,1,03,5.4,-33.6,M,-3.3,M,,*46   
	       else if ((((UART0DATA *)GPSTemp)->RecBuff[i] =='$') && (((UART0DATA *)GPSTemp)->RecBuff[i+1]=='G') && (((UART0DATA *)GPSTemp)->RecBuff[i+2]=='P') &
				   (((UART0DATA *)GPSTemp)->RecBuff[i+3]=='G') && (((UART0DATA *)GPSTemp)->RecBuff[i+4]=='G') && (((UART0DATA *)GPSTemp)->RecBuff[i+5]=='A'))
		     {
		       i += 35;	// i+=6;	
		       /*nIndex = 0;
		       for (j = i; j < ((UART0DATA *)GPSTemp)->Rec_Lenght;j++) //讀取緯度
		         {
		           if (nFindComma == 2)
		             {
			           if (((UART0DATA *)GPSTemp)->RecBuff[j] != ',')
			             {
				           szLat[nIndex] = ((UART0DATA *)GPSTemp)->RecBuff[j];
				           nIndex++;
				         }
				     }
				   if (((UART0DATA *)GPSTemp)->RecBuff[j] == ',')
				     {
				       nFindComma++;
				       if (nFindComma > 2)
				         {					
   			               int nLatInt = atoi(szLat) / 100;
   			               i = j+1;
					       dCurLat = (atof(szLat) - nLatInt * 100) / 60.0+nLatInt;						
					       break;
					     }
				     }
			     }		
			   nIndex=0;
			   for (j = i; j < ((UART0DATA *)GPSTemp)->Rec_Lenght; j++)//讀取經(jīng)度
			     {
				   if (nFindComma == 4)
				     {
					   if (((UART0DATA *)GPSTemp)->RecBuff[j] != ',')
					     {
						   szLon[nIndex] = ((UART0DATA *)GPSTemp)->RecBuff[j];
						   nIndex++;
					     }
				     }				
				   if (((UART0DATA *)GPSTemp)->RecBuff[j] == ',')
				     {
					   nFindComma++;
					   if (nFindComma > 4)
					     {
					       int nLonInt = atoi(szLon) / 100;
						   i = j+1;						
						   dCurLot = (atof(szLon) - nLonInt * 100) / 60.0 + nLonInt;						
						   break;
					     }
				     }
			     }*/
			   for (j = i; j < ((UART0DATA *)GPSTemp)->Rec_Lenght; j++)// GPS狀態(tài)批示0-未定位 1-無差分定位信息 2-帶差分定位信息
			     {
				   if (nFindComma == 1)//if (nFindComma == 6)
				     {
					   if (((UART0DATA *)GPSTemp)->RecBuff[j] != ',')
					     {
					       uint8 GPS_State;
						   GPS_State = ((UART0DATA *)GPSTemp)->RecBuff[j];
                           if ((GPS_State == '1')||(GPS_State == '2'))
                             {  
                               IO0CLR = GPS_Detect;
         	  	               GPSData.OSSemGPS_State =0X01;
         	  	             }
                         }                  
				     }
				   if (((UART0DATA *)GPSTemp)->RecBuff[j] == ',')
				     {
					   nFindComma++;
					   if (nFindComma > 2)//if (nFindComma > 6)						
					       break;
				     }
			     }				
		     }
		  //$GPGSV,3,1,10,01,08,285,49,05,44,088,00,06,00,160,00,09,23,037,00*79                                                                    
          //$GPGSV,3,2,10,14,34,315,52,15,40,211,31,18,67,103,00,21,23,184,31*7C                                                                    
          //$GPGSV,3,3,10,22,62,342,53,30,45,134,00,,,,,,,,*7B  
	      else if((((UART0DATA *)GPSTemp)->RecBuff[i] =='$') && (((UART0DATA *)GPSTemp)->RecBuff[i+1]=='G') && (((UART0DATA *)GPSTemp)->RecBuff[i+2]=='P') &&
				(((UART0DATA *)GPSTemp)->RecBuff[i+3]=='G' ) && (((UART0DATA *)GPSTemp)->RecBuff[i+4]=='S') && (((UART0DATA *)GPSTemp)->RecBuff[i+5]=='V'))

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品国产三级国产普通话蜜臀 | www..com久久爱| 久久国产精品区| 成人免费毛片嘿嘿连载视频| 欧美艳星brazzers| 国产亚洲欧美日韩俺去了| 亚洲福利视频一区| 成人久久18免费网站麻豆| 制服丝袜国产精品| 亚洲午夜一二三区视频| av电影天堂一区二区在线观看| 日韩三级免费观看| 亚洲国产精品综合小说图片区| 99在线视频精品| 国产精品五月天| 久久精品国产99久久6| 欧美另类变人与禽xxxxx| 亚洲免费观看在线视频| 国产精品影视在线| 久久影视一区二区| 亚洲成人免费看| 99在线视频精品| 国产欧美久久久精品影院| 男人的天堂亚洲一区| 欧美怡红院视频| 亚洲精品成人少妇| 色琪琪一区二区三区亚洲区| 国产欧美日韩中文久久| 经典三级一区二区| 色先锋资源久久综合| 国产精品女同一区二区三区| 国产精品一区一区三区| 久久久久久久一区| 国产伦精一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 蜜臀av在线播放一区二区三区| 欧美巨大另类极品videosbest| 亚洲宅男天堂在线观看无病毒| 色狠狠桃花综合| 亚洲一区成人在线| 在线观看91精品国产麻豆| 日韩精品三区四区| 精品入口麻豆88视频| 看片网站欧美日韩| 337p日本欧洲亚洲大胆色噜噜| 蜜桃视频在线观看一区二区| 欧美va亚洲va国产综合| 国产一区二区剧情av在线| 国产欧美精品一区| 色综合天天综合狠狠| 一区二区三区四区高清精品免费观看| 欧美视频一区二| 日韩精品久久理论片| 精品国产精品一区二区夜夜嗨| 韩国三级中文字幕hd久久精品| 国产精品午夜在线观看| 欧美在线视频全部完| 免费欧美在线视频| 中文字幕av资源一区| 91偷拍与自偷拍精品| 丝瓜av网站精品一区二区| 亚洲精品一区在线观看| 9人人澡人人爽人人精品| 亚洲成人黄色影院| www国产精品av| 91国产福利在线| 精品一区二区三区免费播放 | 蜜乳av一区二区| 国产亲近乱来精品视频| 欧美日韩一级片在线观看| 国产乱码精品1区2区3区| 一区二区三区免费在线观看| 欧美不卡一区二区| 欧美午夜电影在线播放| 国产高清精品网站| 五月天中文字幕一区二区| 国产精品欧美一级免费| 欧美一级淫片007| 91免费精品国自产拍在线不卡 | 337p日本欧洲亚洲大胆色噜噜| 91在线播放网址| 久久se精品一区精品二区| 亚洲色图19p| 久久色视频免费观看| 欧美日韩电影在线播放| 99re这里只有精品6| 狠狠色2019综合网| 日日夜夜精品视频免费| 亚洲欧美国产高清| 国产亚洲精久久久久久| 日韩欧美久久久| 欧美日韩精品一区二区三区四区| 成人精品国产一区二区4080| 蜜臀av一区二区在线观看| 一区二区三区欧美日| 国产精品美女久久久久aⅴ| 日韩精品一区二区三区四区| 欧美性猛交xxxxxx富婆| 色综合网色综合| 成人激情综合网站| 国内精品写真在线观看| 久久99久久精品| 美女一区二区三区在线观看| 视频在线观看国产精品| 亚洲精品免费看| 亚洲精品高清视频在线观看| 国产精品久久久久久久久免费樱桃| 久久亚洲免费视频| 久久综合九色欧美综合狠狠| 欧美videossexotv100| 欧美一级电影网站| 欧美电影在线免费观看| 欧美日韩成人综合| 制服丝袜国产精品| 91精品国产黑色紧身裤美女| 欧美日本国产一区| 欧美一级夜夜爽| 欧美一区二区久久久| 日韩欧美中文一区二区| 欧美精品一区二区三区高清aⅴ | av色综合久久天堂av综合| 福利电影一区二区| 成人午夜在线免费| 99re成人在线| 欧美日韩视频在线第一区| 制服丝袜激情欧洲亚洲| 精品免费日韩av| 国产精品你懂的| 亚洲精品日产精品乱码不卡| 亚洲午夜视频在线| 久久99国产精品久久99果冻传媒| 国产一区二区三区蝌蚪| 波多野结衣亚洲| 在线免费精品视频| 91麻豆精品国产91久久久更新时间| 日韩一区二区三区视频| 国产丝袜在线精品| 亚洲精品成人a在线观看| 日韩1区2区日韩1区2区| 国产精品一级片在线观看| 91视频国产观看| 欧美精选午夜久久久乱码6080| 精品999久久久| 日韩理论片网站| 免费观看在线综合| 成人的网站免费观看| 欧美日韩一区久久| 久久久不卡网国产精品一区| 一区二区在线观看视频| 日韩精品每日更新| 成人高清视频免费观看| 欧美日韩一区视频| 国产三级精品三级在线专区| 亚洲国产视频一区| 国产乱对白刺激视频不卡| 色猫猫国产区一区二在线视频| 欧美一区二区三区爱爱| 日韩美女久久久| 精品一区二区三区蜜桃| 欧美性猛交xxxx乱大交退制版| 久久精品免费在线观看| 亚洲一级在线观看| 丁香另类激情小说| 欧美一级在线视频| 亚洲专区一二三| 成人黄色电影在线| 精品欧美乱码久久久久久| 一区二区三区加勒比av| 从欧美一区二区三区| 欧美一区二区视频网站| 亚洲视频在线观看三级| 国产精品99久久久久久久女警 | 欧美色倩网站大全免费| 国产视频亚洲色图| 麻豆精品一区二区三区| 欧洲在线/亚洲| 亚洲欧美日韩一区二区三区在线观看 | 91精品国产综合久久国产大片| 亚洲视频一区在线| 成人性生交大片| 国产欧美精品一区二区色综合| 久久99国产精品麻豆| 91精品国产乱码久久蜜臀| 亚洲成人黄色影院| 91黄色在线观看| 亚洲日本护士毛茸茸| 成人免费视频国产在线观看| 精品国产麻豆免费人成网站| 午夜久久电影网| 欧美美女一区二区| 亚洲国产综合人成综合网站| 91视频观看免费| 中文一区二区完整视频在线观看| 国产尤物一区二区| 久久一日本道色综合| 国产一区二区三区精品视频| 久久久久久久综合日本| 国产不卡视频在线播放| 国产日产欧产精品推荐色| 国产精品影视网|