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

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

?? gps.c

?? w77E58開發的具備藍牙功能的GPS導航儀
?? C
字號:
#include <w77e58.h>
#include "global.h"
#include "io.h"
#include "serial.h"
#include "timer.h"
#include "gps.h"

enum
{
  LONLAT_DMM=1,    /*LONGITUDE LATITUDE DEGREE MINUTE MINUTE/10000 format */
  LONLAT_DMS,	   /*LONGITUDE LATITUDE DEGREE MINUTE SECOND format */
	
};

#define GPRMC_TIME             1
#define GPRMC_AV_STATUS        2
#define GPRMC_NS_STATUS        4
#define GPRMC_EW_STATUS        6


#define GPRMC_LONGITUDE        5
#define GPRMC_LATTUDE          3
#define GPRMC_SPEED            7
#define GPRMC_ANGLE            8
#define GPRMC_YMD              9

#ifdef DEBUG_GPS
code uchar * debug_gps ="$GPRMC,090058.01,A,2233.4264,N,11406.1970,E,000.0,000.0,041206,002.1,W,A*29";
#endif

bit             GPSReady;
bit             GPSav;           //1 = A
bit             GPSns;           //1 = N 
bit             GPSew;           //1 = E
uchar    xdata  JWDMode;
UINT32   xdata  Speed;
UINT32   xdata  LonDeg,LonMin1,LonMin2,LatDeg,LatMin1,LatMin2;
UINT32	 xdata  xYear,xMonth,xDay;
UINT32	 xdata  xHour,xMin,xSec;

enum
{
   JWD_DU=0,
   JWD_DMS,
   JWD_DMM,
};


uchar xdata m_Buffer[100];



extern char xdata TP_UD[];


//void ParseGPRMC(uchar xdata* GprmcBuff);
//void ParseNMEA0183(uchar xdata* GpsBuff);

int Split(uchar* str,uchar dot)
{
      int i;
      uchar dot_count;

      dot_count=0;
 
      for(i=0;i<250;i++)
      {
      	  if(str[i]==',')
      	  {
      	     dot_count++;
          }
      	  if(str[i]=='\r'&&str[i+1]=='\n') break;	
          if(dot_count==dot) return i;
      	
      }	
      return 0;   
     
}




void GPSModule_init(void)
{

     GPS_EN = HIGH;
	 delay_ms(20);
     GPS_RESET=HIGH;
     delay_ms(20);
     GPS_RESET=LOW;
     delay_ms(100);
     GPS_RESET=HIGH;

}


UINT32 GetGpsInfoDmm(UINT32 degree,UINT32 minute1,UINT32 minute2,UINT8 mode)
{

            if(mode==LONLAT_DMM)
               return degree*600000+minute1*10000+minute2;
            else
                return degree*600000+minute1*10000+minute2*10000/60;
            
}

extern char xdata cmd[];                       // 命令串     


void ParseGPRMC(uchar* GprmcBuff)
{
        int   i,j,k;
		UINT32   xdata Longitude;
        UINT32   xdata Latitude;
    
	    
		i=Split(GprmcBuff,GPRMC_TIME);   /*GPRMC_TIME =1*/
        if(i==0) return;
           
        /*	檢查時間數據,eg:204700,A,*/
        if(GprmcBuff[i+10]==',')  //16
        {
          	
          if(GprmcBuff[i+1]<'0'||GprmcBuff[i+1]>'9'||
	      GprmcBuff[i+2]<'0'||GprmcBuff[i+2]>'9'||
	      GprmcBuff[i+3]<'0'||GprmcBuff[i+3]>'9'||
	      GprmcBuff[i+4]<'0'||GprmcBuff[i+4]>'9'||
	      GprmcBuff[i+5]<'0'||GprmcBuff[i+5]>'9'||
	      GprmcBuff[i+6]<'0'||GprmcBuff[i+6]>'9'||
	      GprmcBuff[i+7]!='.'||
	      GprmcBuff[i+8]<'0'||GprmcBuff[i+8]>'9'||
	      GprmcBuff[i+9]<'0'||GprmcBuff[i+9]>'9')
	      return;
	  
        
        }	
        else
        {
            if(	GprmcBuff[i+1]<'0'||GprmcBuff[i+1]>'9'||
		    GprmcBuff[i+2]<'0'||GprmcBuff[i+2]>'9'||
		    GprmcBuff[i+3]<'0'||GprmcBuff[i+3]>'9'||
		    GprmcBuff[i+4]<'0'||GprmcBuff[i+4]>'9'||
		    GprmcBuff[i+5]<'0'||GprmcBuff[i+5]>'9'||
		    GprmcBuff[i+6]<'0'||GprmcBuff[i+6]>'9'||
		    GprmcBuff[i+7]!='.'||
		    GprmcBuff[i+8]<'0'||GprmcBuff[i+8]>'9'||
		    GprmcBuff[i+9]<'0'||GprmcBuff[i+9]>'9'||
	   	    GprmcBuff[i+10]<'0'||GprmcBuff[i+10]>'9')
	        return;	
     
     
     
        } 	
        xHour=(GprmcBuff[i+1]-'0')*10+(GprmcBuff[i+2]-'0');
 	    xMin =(GprmcBuff[i+3]-'0')*10+(GprmcBuff[i+4]-'0');
	    xSec =(GprmcBuff[i+5]-'0')*10+(GprmcBuff[i+6]-'0');

		i=Split(GprmcBuff,GPRMC_AV_STATUS);   
        if(i==0) return;
        if(GprmcBuff[i+1]!='A'&& GprmcBuff[i+1]!='V')return; 
        
		GPSav = ((GprmcBuff[i+1]=='A')? 1:0); 
		
        //if(GPSav=='V')return;	

  
        /*	檢查經度數據,eg:11709.432,W,*/
        i=Split(GprmcBuff,GPRMC_LONGITUDE);   
        if(i==0) return;
	    if(	GprmcBuff[i+1]<'0'||GprmcBuff[i+1]>'9'||
		GprmcBuff[i+2]<'0'||GprmcBuff[i+2]>'9'||
		GprmcBuff[i+3]<'0'||GprmcBuff[i+3]>'9'||
		GprmcBuff[i+4]<'0'||GprmcBuff[i+4]>'9'||
		GprmcBuff[i+5]<'0'||GprmcBuff[i+5]>'9'||
		GprmcBuff[i+6]!='.'||
		GprmcBuff[i+7]<'0'||GprmcBuff[i+7]>'9'||
		GprmcBuff[i+8]<'0'||GprmcBuff[i+8]>'9'||
		GprmcBuff[i+9]<'0'||GprmcBuff[i+9]>'9'||
		GprmcBuff[i+10]<'0'||GprmcBuff[i+10]>'9')
	    return;

   	    LonDeg=(GprmcBuff[i+1]-'0')*100+
                                   (GprmcBuff[i+2]-'0')*10+
                                   GprmcBuff[i+3]-'0';
        LonMin1=(GprmcBuff[i+4]-'0')*10+
       	                     GprmcBuff[i+5]-'0';  
        LonMin2=(GprmcBuff[i+7]-'0')*1000+
       	                     (GprmcBuff[i+8]-'0')*100+
       	                     (GprmcBuff[i+9]-'0')*10+
       	                     GprmcBuff[i+10]-'0';


      /*	檢查緯度數據,eg:3403.868,N,*/
       i=Split(GprmcBuff,GPRMC_LATTUDE);   
       if(i==0) return;
       if(	GprmcBuff[i+1]<'0'||GprmcBuff[i+1]>'9'||
		GprmcBuff[i+2]<'0'||GprmcBuff[i+2]>'9'||
		GprmcBuff[i+3]<'0'||GprmcBuff[i+3]>'9'||
		GprmcBuff[i+4]<'0'||GprmcBuff[i+4]>'9'||
		GprmcBuff[i+5]!='.'||
		GprmcBuff[i+6]<'0'||GprmcBuff[i+6]>'9'||
		GprmcBuff[i+7]<'0'||GprmcBuff[i+7]>'9'||
		GprmcBuff[i+8]<'0'||GprmcBuff[i+8]>'9'||
		GprmcBuff[i+9]<'0'||GprmcBuff[i+9]>'9')
        return;		

        LatDeg=(GprmcBuff[i+1]-'0')*10+
                                   GprmcBuff[i+2]-'0';
        LatMin1=(GprmcBuff[i+3]-'0')*10+
       	                     GprmcBuff[i+4]-'0';  
        LatMin2=(GprmcBuff[i+6]-'0')*1000+
       	                     (GprmcBuff[i+7]-'0')*100+
       	                     (GprmcBuff[i+8]-'0')*10+
                             GprmcBuff[i+9]-'0';

        i=Split(GprmcBuff,GPRMC_YMD);   
        if(i==0) return;
        
        if(	GprmcBuff[i+1]<'0'||GprmcBuff[i+1]>'9'||
		GprmcBuff[i+2]<'0'||GprmcBuff[i+2]>'9'||
		GprmcBuff[i+3]<'0'||GprmcBuff[i+3]>'9'||
		GprmcBuff[i+4]<'0'||GprmcBuff[i+4]>'9'||
		GprmcBuff[i+5]<'0'||GprmcBuff[i+5]>'9'||
		GprmcBuff[i+6]<'0'||GprmcBuff[i+6]>'9')
	    return;
      
        xYear =(GprmcBuff[i+5]-'0')*10+GprmcBuff[i+6]-'0';
	    xMonth=(GprmcBuff[i+3]-'0')*10+GprmcBuff[i+4]-'0';
	    xDay  =(GprmcBuff[i+1]-'0')*10+GprmcBuff[i+2]-'0';


        i=Split(GprmcBuff,GPRMC_SPEED);   
        if(i==0) return;
	    if(GprmcBuff[i+4]=='.')
	    {
	     if(GprmcBuff[i+1]<'0'||GprmcBuff[i+1]>'9'||
	        GprmcBuff[i+2]<'0'||GprmcBuff[i+2]>'9'||
	        GprmcBuff[i+3]<'0'||GprmcBuff[i+3]>'9'||
	        GprmcBuff[i+4]!='.'||
	        GprmcBuff[i+5]<'0'||GprmcBuff[i+5]>'9')
	        return;      
	      Speed = (GprmcBuff[i+1]-'0')*1000+(GprmcBuff[i+2]-'0')*100+(GprmcBuff[i+3]-'0')*10+(GprmcBuff[i+5]-'0'); /*ELARGE 10*/
	    }	
	    else
	    if(GprmcBuff[i+3]=='.')
	    {
	      if(GprmcBuff[i+1]<'0'||GprmcBuff[i+1]>'9'||
	        GprmcBuff[i+2]<'0'||GprmcBuff[i+2]>'9'||
	        GprmcBuff[i+3]!='.'||
	        GprmcBuff[i+4]<'0'||GprmcBuff[i+4]>'9')
	        return;      
	      Speed = (GprmcBuff[i+1]-'0')*100+(GprmcBuff[i+2]-'0')*10+(GprmcBuff[i+4]-'0'); /*ELARGE 10*/
	    }	
	    else
	    if(GprmcBuff[i+2]=='.')
	    {
	       if(GprmcBuff[i+1]<'0'||GprmcBuff[i+1]>'9'||
	       GprmcBuff[i+2]!='.'||
	       GprmcBuff[i+3]<'0'||GprmcBuff[i+3]>'9')
	       return;      
	       Speed = (GprmcBuff[i+1]-'0')*10+(GprmcBuff[i+3]-'0'); /*ELARGE 10*/
	    }	
	    else
	    if(GprmcBuff[i+1]==',' && GprmcBuff[i+2] != '.' && GPSav==1)
	    {
	       Speed = 0;
	    }
        else
            return;

        JWDMode=JWD_DU;
	    
		sprintf(TP_UD,"Lat:");
        if(JWDMode==JWD_DU)   //度,如114。573124度
		{
	    
	      i= LatDeg;
		  j= (LatMin1*10000+LatMin2)/60;                   //33.4264  ==> 33*10000=330000+4264=334264/60=5571
		  k= (LatMin1*10000+LatMin2-j*60);       //(334264-5571X60)=4/60
          k=k*100/6;
		  if(k>=100)
		     sprintf(cmd,"%d.%d%d",i,j,k);
	      else
          {
      	     sprintf(cmd,"%d.%d0%d",i,j,k);
         
		  }

		}
		else
       	if(JWDMode==JWD_DMS) //度分秒 如114。27'34"
		{
    	  
		  i= LatDeg;     
          j= LatMin1;      //MIN 
		  k= LatMin2*60/10000;      //SEC

          sprintf(cmd,"%d %d'%d\"",i,j,k);


        }       	
        strcat(TP_UD, cmd);                               
        strcat(TP_UD, "\r\n");                               
        strcat(TP_UD, "Long:");                               

        if(JWDMode==JWD_DU)   //度,如114。573124度
		{
		  i= LonDeg;
		  j= (LonMin1*10000+LonMin2)/60;                   //33.4264  ==> 33*10000=330000+4264=334264/60=5571
		  k= (LonMin1*10000+LonMin2-j*60);       //(334264-5571X60)=4/60
          k=k*100/6;
		  if(k>=100)
		     sprintf(cmd,"%d.%d%d",i,j,k);
	      else
          {
      	     sprintf(cmd,"%d.%d0%d",i,j,k);
         
		  }
		}
		else
       	if(JWDMode==JWD_DMS) //度分秒 如114。27'34"
		{
		  i= LonDeg;     
          j= LonMin1;      //MIN 
		  k= LonMin2*60/10000;      //SEC
		  sprintf(cmd,"%d %d'%d\"",i,j,k);

        }       	
	
	    strcat(TP_UD, cmd);                               
        strcat(TP_UD, "\r\n");                               
        strcat(TP_UD, "Speed:");                               
        
		i= (Speed/10);
        j= Speed%10;   
        sprintf(cmd,"%d.%d",i,j);
       	strcat(TP_UD, cmd);                               
        strcat(TP_UD, "\r\n"); 

        sprintf(cmd,"%d-%d-%d",(int)xYear+2000,(int)xMonth,(int)xDay);
        strcat(TP_UD, cmd);                               
        strcat(TP_UD, "\r\n"); 

	    
        sprintf(cmd,"%d:%d:%d",(int)xHour+8,(int)xMin,(int)xSec);
        strcat(TP_UD, cmd);                               
        strcat(TP_UD, "\r\n"); 



		GPSns = ((GprmcBuff[i+10]=='N')? 1:0);
        GPSew = ((GprmcBuff[i+23]=='E')? 1:0);
        
        GPSReady = TRUE;
     
}	


void ParseNMEA0183(uchar* GpsBuff)
{
        
       
	    if(strncmp(GpsBuff, "$GPRMC",5)==0)
        {

/*jiuwang data format:*/	
/*      $GPRMC,090058.01,A,2233.4264,N,11406.1970,E,000.0,000.0,041206,002.1,W,A*29*/
            if(GpsBuff[6]==',')
		    {
		       ParseGPRMC(GpsBuff);
            } 
           
        }
	

}       



void ReadGPS(void)
{
     int i;
     uchar retry;
#ifdef DEBUG_GPS    
     ParseNMEA0183(debug_gps);

#else
     //if(GPS_UART1_RDY==FALSE) return NULL; 
     
	 retry=250;
     i=0;
     while(retry--)
     {  
       if((m_Buffer[i]=getdp310())=='$') break;
     
	 }       
     
     if(retry!=0)
     {
          while(1)
          {
              m_Buffer[++i]=getbyte1();
              if(m_Buffer[i-1]=='\r' &&  m_Buffer[i]=='\n') break;       
              else if(i>100)break;
                     
          }
     }
     

     if(m_Buffer[0]=='$') 
     {
          ParseNMEA0183(m_Buffer);
         //gsmSendMessage();
	   #ifdef DEBUG  
		 for(i=0;i<100;i++)
		 {
            if(m_Buffer[i-1]=='\r' &&  m_Buffer[i]=='\n')
       	    {
               
               m_Buffer[i+1]=0;     
			   putstring(m_Buffer);
	  		   break;
			}
              
		 }
        #endif 
         m_Buffer[0]=NULL; 
     }

#endif

     
}






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲女爱视频在线| 精品国产一区久久| 亚洲视频一区二区免费在线观看| 成人一区二区视频| 亚洲精选一二三| 欧美影院一区二区| 日本网站在线观看一区二区三区| 日韩视频一区二区三区| 欧美日韩一区二区三区高清| 午夜欧美电影在线观看| 日韩欧美国产一二三区| 国产在线精品一区在线观看麻豆| 国产日韩欧美高清在线| 色噜噜狠狠色综合中国| 五月天精品一区二区三区| 欧美一级生活片| 国产老肥熟一区二区三区| 亚洲天堂av老司机| 欧美日韩国产成人在线免费| 九色porny丨国产精品| 日本一区二区三区久久久久久久久不| av福利精品导航| 日韩一区精品视频| 国产欧美一区二区三区在线老狼| 色香蕉成人二区免费| 激情另类小说区图片区视频区| 国产精品丝袜在线| 欧美丰满高潮xxxx喷水动漫| 国产精品自产自拍| 一二三区精品视频| 2023国产精华国产精品| 91久久国产最好的精华液| 麻豆91精品91久久久的内涵| 国产色一区二区| 欧美午夜片在线看| 高清av一区二区| 日韩av一区二区在线影视| 亚洲国产精品国自产拍av| 欧美日韩一区二区三区不卡| 粉嫩嫩av羞羞动漫久久久| 日韩电影免费在线观看网站| 亚洲国产精品99久久久久久久久| 欧美午夜一区二区三区| 99天天综合性| 激情文学综合插| 午夜激情综合网| 亚洲视频一区二区在线| 国产人成亚洲第一网站在线播放 | 欧美在线一二三| 国产真实乱偷精品视频免| 亚洲一区二区三区美女| 国产精品久久777777| 精品国产三级a在线观看| 在线成人午夜影院| 欧美亚一区二区| av亚洲精华国产精华精| 国产寡妇亲子伦一区二区| 精品在线观看免费| 日本视频一区二区三区| 亚洲妇女屁股眼交7| 成人欧美一区二区三区小说| 久久女同互慰一区二区三区| 日韩一区二区视频在线观看| 欧美日韩国产天堂| 欧美性大战久久久| 99v久久综合狠狠综合久久| 国产成人亚洲综合a∨猫咪| 韩国欧美国产1区| 免费观看在线色综合| 天使萌一区二区三区免费观看| 亚洲猫色日本管| 亚洲精品五月天| 亚洲欧美另类图片小说| 亚洲女与黑人做爰| 玉米视频成人免费看| 一区二区三区欧美日韩| 亚洲激情成人在线| 一区二区高清视频在线观看| 亚洲精品高清视频在线观看| 亚洲免费伊人电影| 亚洲成年人影院| 奇米一区二区三区| 久久99久久精品欧美| 国内久久婷婷综合| 国产精品亚洲а∨天堂免在线| 国产成人免费视频网站高清观看视频| 国产一区二区三区四| 国产成人福利片| 成人av电影免费在线播放| 色综合久久综合中文综合网| 色偷偷成人一区二区三区91| 在线一区二区视频| 91精品黄色片免费大全| 欧美xxx久久| 国产色婷婷亚洲99精品小说| 国产精品丝袜黑色高跟| 一区二区三区.www| 日产欧产美韩系列久久99| 免费高清不卡av| 国产精品综合久久| 91小视频免费看| 欧美日韩精品一区二区三区 | 日韩免费视频线观看| 久久久久久电影| 亚洲免费av高清| 日韩电影在线观看网站| 国产成人av一区二区三区在线观看| 粉嫩aⅴ一区二区三区四区五区| 成人丝袜高跟foot| 欧美日韩一区二区电影| 精品久久久久久久人人人人传媒 | 国产精品伦一区二区三级视频| 亚洲天堂网中文字| 美国毛片一区二区| 99re亚洲国产精品| 7777女厕盗摄久久久| 中文一区在线播放| 日本一道高清亚洲日美韩| 成人av电影在线播放| 欧美一区二区三区日韩| 国产精品高潮久久久久无| 天堂在线亚洲视频| av一区二区三区黑人| 日韩一区二区视频| 一区二区三区国产精品| 国产传媒日韩欧美成人| 欧美老肥妇做.爰bbww视频| 国产精品天天摸av网| 日韩成人精品在线| 99re免费视频精品全部| 日韩一区二区电影网| 亚洲免费av在线| 国产a级毛片一区| 日韩一本二本av| 夜夜操天天操亚洲| 成人精品视频一区二区三区| 欧美大片日本大片免费观看| 一区二区三区精品视频| 成人午夜免费av| 欧美一级免费观看| 一区二区三区成人| 99re6这里只有精品视频在线观看| 日韩一区二区三区电影在线观看| 亚洲美女一区二区三区| 波多野结衣中文字幕一区| 国产亚洲一区二区三区在线观看| 日韩**一区毛片| 欧美日韩国产免费| 有坂深雪av一区二区精品| 成人黄色免费短视频| 久久久精品国产99久久精品芒果| 在线精品视频小说1| 国产精品久久久久永久免费观看| 狠狠色狠狠色综合系列| 日韩欧美不卡在线观看视频| 亚洲成av人片一区二区| 在线一区二区三区| 一区二区三区在线视频免费| youjizz国产精品| 欧美国产综合一区二区| 国产一区二区美女| 久久午夜色播影院免费高清| 久久精品噜噜噜成人88aⅴ | 色综合久久久久综合体| 国产精品私房写真福利视频| 成人中文字幕合集| 国产精品精品国产色婷婷| 成人精品免费视频| 日韩码欧中文字| 色噜噜狠狠一区二区三区果冻| 亚洲男人天堂一区| 色噜噜狠狠色综合欧洲selulu| 亚洲综合一二三区| 欧美日韩二区三区| 日本欧美韩国一区三区| 日韩午夜小视频| 精品伊人久久久久7777人| 久久综合视频网| 国产乱码精品1区2区3区| 国产精品青草久久| 欧美中文字幕亚洲一区二区va在线 | 91免费视频网| 亚洲欧美电影一区二区| 欧美伊人久久久久久午夜久久久久| 亚洲手机成人高清视频| 欧洲另类一二三四区| 日韩成人一级片| 久久久久久**毛片大全| 成人理论电影网| 91美女在线观看| 樱桃视频在线观看一区| 欧美日韩精品久久久| 国内精品国产成人国产三级粉色| 国产欧美日韩另类视频免费观看| 91免费小视频| 美女国产一区二区三区| 中日韩av电影| 欧美天堂亚洲电影院在线播放| 蜜桃精品视频在线观看| 国产精品第一页第二页第三页|