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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? gps_handle.c

?? C語(yǔ)言源代碼及相關(guān)資料
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
	if( DBits <= 5 )
	{
		do
		{
			if(str[i] != '.')
			{
				j=(str[i]-0x30)+j*10;
				DBits--;
			}
			i++;
			
		}while(DBits > 0);
	}
	return j;
}


#if defined(__AMOD_GPS_PARSER)

unsigned char gxbgps_nState;
unsigned char gxbgps_Checksum;					// Calculated NMEA sentence checksum
unsigned char gxbgps_ReceivedChecksum;			// Received NMEA sentence checksum (if exists)
unsigned short gxwgps_Index;						// Index used for command and data
unsigned char gxbgps_Command[8];	// NMEA command
unsigned char gxbgps_Data[96];		// NMEA data
unsigned char gxbgps_HasNMEAData;

unsigned char gxbgps_pField[32];
unsigned char gxbgps_GGAGPSQuality;
unsigned char gxbgps_pRMCDataValid;
unsigned char gxbgps_pConvBuff[10];

// 
unsigned char gxbgps_GPSNMEADataType;

// 
unsigned short gxwgps_NMEAIndex;						// Index used for Whole NMEA command and data
unsigned char gxbgps_NMEAData[128];		// NMEA command + data

/*
extern unsigned char gxbgps_nState;
extern unsigned char gxbgps_Checksum;					// Calculated NMEA sentence checksum
extern unsigned char gxbgps_ReceivedChecksum;			// Received NMEA sentence checksum (if exists)
extern unsigned short gxwgps_Index;						// Index used for command and data
extern unsigned char gxbgps_Command[8];	// NMEA command
extern unsigned char gxbgps_Data[96];		// NMEA data
extern unsigned char gxbgps_HasNMEAData;

extern unsigned char gxbgps_pField[32];
extern unsigned char gxbgps_GGAGPSQuality;
extern unsigned char gxbgps_pRMCDataValid;
extern unsigned char gxbgps_pConvBuff[10];

// 
extern unsigned char gxbgps_GPSNMEADataType;

// 
extern unsigned short gxwgps_NMEAIndex;						// Index used for Whole NMEA command and data
extern unsigned char gxbgps_NMEAData[128];		// NMEA command + data
*/

// Gps module
#define NP_STATE_SOM 0						// Search for start of message
#define NP_STATE_CMD 1						// Get command
#define NP_STATE_DATA 2						// Get data
#define NP_STATE_CHECKSUM_1 3			// Get first checksum character
#define NP_STATE_CHECKSUM_2 4			// get second checksum character

#define NP_MAX_CMD_LEN			8		// maximum command length (NMEA address)
#define NP_MAX_DATA_LEN			96		// maximum data length

#define MAXFIELD	32		// maximum field length

///////////////////////////////////////////////////////////////////////////////
// Name:		GetField
//
// Description:	This function will get the specified field in a NMEA string.
//
// Entry:		BYTE *pData -		Pointer to NMEA string
//				BYTE *pField -		pointer to returned field
//				int nfieldNum -		Field offset to get
//				int nMaxFieldLen -	Maximum of bytes pFiled can handle
///////////////////////////////////////////////////////////////////////////////
unsigned char gps_GetField(unsigned char *pData, 
						unsigned char *pField, 
						unsigned short nFieldNum, 
						unsigned short nMaxFieldLen )
{
	unsigned short i = 0;
	unsigned short nField = 0;	
	unsigned short i2 = 0;
		
	//
	// Validate params
	//
	if(pData == 0 || pField == 0 || nMaxFieldLen == 0)
	{
		pField[0] = '\0';
		return 0;
	}

	//
	// Go to the beginning of the selected field
	//
	i = 0;
	nField = 0;
	while(nField != nFieldNum && pData[i])
	{
		if(pData[i] == ',')
		{
			nField++;
		}

		i++;

		if(pData[i] == 0)
		{
			pField[0] = '\0';
			return 0;
		}
	}

	if(pData[i] == ',' || pData[i] == '*')
	{
		pField[0] = '\0';
		return 0;
	}

	//
	// copy field from pData to Field
	//
	i2 = 0;
	while(pData[i] != ',' && pData[i] != '*' && pData[i])
	{
		pField[i2] = pData[i];
		i2++; i++;

		//
		// check if field is too big to fit on passed parameter. If it is,
		// crop returned field to its max length.
		//
		if(i2 >= nMaxFieldLen)
		{
			i2 = nMaxFieldLen-1;
			break;
		}
	} // emd of while

	pField[i2] = '\0';

	return i2;
}

void gps_ProcessGPRMC(void)
{
	unsigned short shRtnLen=0;
	
	sprintf(gw_tempout,"\r\nRMC: (%s)\r\n", gxbgps_Data);
	__DBG3_printf1(gw_tempout);	
	//
	// Time
	//	
	if ( (shRtnLen=gps_GetField(gxbgps_Data, gxbgps_pField, 0, MAXFIELD))>0 )
	{
		if ( shRtnLen>=6 ) {
			// <hhmmss> or <hhmmss.sss>
			// Hour
			//gxbgps_pConvBuff[0] = gxbgps_pField[0];
			//gxbgps_pConvBuff[1] = gxbgps_pField[1];
			//gxbgps_pConvBuff[2] = '\0';
			//GPS_DATA.Time.Hour = (uint8) atoi(gxbgps_pConvBuff);
			GPS_DATA.Time.Hour = (uint8)(( gxbgps_pField[0] - '0' ) * 10 + ( gxbgps_pField[1] - '0' ));
			
			// minute
			//gxbgps_pConvBuff[0] = gxbgps_pField[2];
			//gxbgps_pConvBuff[1] = gxbgps_pField[3];
			//gxbgps_pConvBuff[2] = '\0';
			//GPS_DATA.Time.Min = (uint8) atoi(gxbgps_pConvBuff);
			GPS_DATA.Time.Min = (uint8)(( gxbgps_pField[2] - '0' ) * 10 + ( gxbgps_pField[3] - '0' ));
			
			// Second
			//gxbgps_pConvBuff[0] = gxbgps_pField[4];
			//gxbgps_pConvBuff[1] = gxbgps_pField[5];
			//gxbgps_pConvBuff[2] = '\0';
			//GPS_DATA.Time.Sec = (uint8) atoi(gxbgps_pConvBuff);
			GPS_DATA.Time.Sec = (uint8)(( gxbgps_pField[4] - '0' ) * 10 + ( gxbgps_pField[5] - '0' ));
			
			if ( shRtnLen>=10 ) {
				//.sss
				// minisecond
				gxbgps_pConvBuff[0] = gxbgps_pField[7];
				gxbgps_pConvBuff[1] = gxbgps_pField[8];
				gxbgps_pConvBuff[2] = gxbgps_pField[9];
				gxbgps_pConvBuff[3] = '\0';
				GPS_DATA.Time.ms = (uint8) atoi((char *)gxbgps_pConvBuff);
			} else {
				GPS_DATA.Time.ms = 0;
			} // end of if ( shRtnLen>=10 )
		} // end of if ( shRtnLen>=6 )
	}
	
	//
	// Data valid
	//
	if ( gps_GetField(gxbgps_Data, gxbgps_pField, 1, MAXFIELD) )
	{
		if ( gxbgps_pField[0] == 'A' || gxbgps_pField[0] == 'V' ) {
			gxbgps_pRMCDataValid = gxbgps_pField[0];
			GPS_DATA.Time.Flag = gxbgps_pRMCDataValid;
		}
	}
	
	//
	// Latitude
	//
	if ( (shRtnLen=gps_GetField(gxbgps_Data, gxbgps_pField, 2, MAXFIELD))>0 )
	{
		if ( shRtnLen>=9 ) {
			// <ddmm.mmmm>
			// dd
			gxbgps_pConvBuff[0] = gxbgps_pField[0];
			gxbgps_pConvBuff[1] = gxbgps_pField[1];
			gxbgps_pConvBuff[2] = '\0';
			GPS_DATA.Latitude.dd = (uint8) atoi((char *)gxbgps_pConvBuff);
			
			// mm
			gxbgps_pConvBuff[0] = gxbgps_pField[2];
			gxbgps_pConvBuff[1] = gxbgps_pField[3];
			gxbgps_pConvBuff[2] = '\0';
			GPS_DATA.Latitude.mm = (uint8) atoi((char *)gxbgps_pConvBuff);
			
			// mmmm
			gxbgps_pConvBuff[0] = gxbgps_pField[5];
			gxbgps_pConvBuff[1] = gxbgps_pField[6];
			gxbgps_pConvBuff[2] = gxbgps_pField[7];
			gxbgps_pConvBuff[3] = gxbgps_pField[8];
			gxbgps_pConvBuff[4] = '\0';
			GPS_DATA.Latitude.mmmm = (uint16) atoi((char *)gxbgps_pConvBuff);
		} // end of if ( shRtnLen>=9 )
	}
	if ( (shRtnLen=gps_GetField(gxbgps_Data, gxbgps_pField, 3, MAXFIELD))>0 )
	{
		if( (gxbgps_pField[0] == 'S') || (gxbgps_pField[0] == 'N') )
		{
			GPS_DATA.Latitude.Indicator = gxbgps_pField[0];
		}
	}

	//
	// Longitude
	//
	if ( (shRtnLen=gps_GetField(gxbgps_Data, gxbgps_pField, 4, MAXFIELD))>0 )
	{
		if ( shRtnLen>=10 ) {
			// <dddmm.mmmm>
			// dd
			gxbgps_pConvBuff[0] = gxbgps_pField[0];
			gxbgps_pConvBuff[1] = gxbgps_pField[1];
			gxbgps_pConvBuff[2] = gxbgps_pField[2];
			gxbgps_pConvBuff[3] = '\0';
			GPS_DATA.Longitude.ddd = (uint16) atoi((char *)gxbgps_pConvBuff);
			
			// mm
			gxbgps_pConvBuff[0] = gxbgps_pField[3];
			gxbgps_pConvBuff[1] = gxbgps_pField[4];
			gxbgps_pConvBuff[2] = '\0';
			GPS_DATA.Longitude.mm = (uint8) atoi((char *)gxbgps_pConvBuff);
			
			// mmmm
			gxbgps_pConvBuff[0] = gxbgps_pField[6];
			gxbgps_pConvBuff[1] = gxbgps_pField[7];
			gxbgps_pConvBuff[2] = gxbgps_pField[8];
			gxbgps_pConvBuff[3] = gxbgps_pField[9];
			gxbgps_pConvBuff[4] = '\0';
			GPS_DATA.Longitude.mmmm = (uint16) atoi((char *)gxbgps_pConvBuff);
		} // end of if ( shRtnLen>=10 )
	}
	if ( gps_GetField(gxbgps_Data, gxbgps_pField, 5, MAXFIELD) )
	{
		if( (gxbgps_pField[0] == 'W') || (gxbgps_pField[0] == 'E') )
		{
			GPS_DATA.Longitude.Indicator = gxbgps_pField[0];
		}
	}
	
	//
	// Ground speed
	//
	if ( (shRtnLen=gps_GetField(gxbgps_Data, gxbgps_pField, 6, MAXFIELD))>0 )
	{
		/*
		char *pIdx;
		if( (pIdx=strchr(gxbgps_pField,'.'))!=0 )
			//if(strlen(pIdx)>2)
			if ( (shRtnLen-pIdx-1)>2 )
				//gxbgps_pField[pIdx-gxbgps_pField+2]='\0';
				pIdx[0]='\0';
		GPS_DATA.Speed = StrTOUINT((char*)gxbgps_pField, strlen(gxbgps_pField)-1) ;
		*/
		double dAltitude = atof((char*)gxbgps_pField);
		dAltitude = dAltitude * 100;
		GPS_DATA.Speed = (uint16) dAltitude;
	}
	
	//
	// course over ground, degrees true
	//
	if ( gps_GetField(gxbgps_Data, gxbgps_pField, 7, MAXFIELD) ) {
		char *pIdx;
		if( (pIdx=strchr((char*)gxbgps_pField,'.'))!=0 )
			//gxbgps_pField[pIdx-gxbgps_pField]='\0';
			pIdx[0]='\0';
		GPS_DATA.Direction.ddd =  StrTOUINT((char*)gxbgps_pField,strlen((char*)gxbgps_pField));
		//pIdx = gxbgps_pField + strlen(gxbgps_pField) + 1;
		pIdx++;
		if( pIdx!='\0' )
		{	
			GPS_DATA.Direction.m =  (uint8)StrTOUINT(pIdx,strlen(pIdx));	
		}
	}

	//
	// Date
	//
	if ( gps_GetField(gxbgps_Data, gxbgps_pField, 8, MAXFIELD) ) {
		// Day
		//gxbgps_pConvBuff[0] = gxbgps_pField[0];
		//gxbgps_pConvBuff[1] = gxbgps_pField[1];
		//gxbgps_pConvBuff[2] = '\0';
		//GPS_DATA.Time.Day = (uint8) atoi((char *)gxbgps_pConvBuff);
		GPS_DATA.Time.Day = ( gxbgps_pField[0] - '0' ) * 10 + ( gxbgps_pField[1] - '0' );
		
		// Month
		//gxbgps_pConvBuff[0] = gxbgps_pField[2];
		//gxbgps_pConvBuff[1] = gxbgps_pField[3];
		//gxbgps_pConvBuff[2] = '\0';
		//GPS_DATA.Time.Mon = (uint8) atoi(gxbgps_pConvBuff);
		GPS_DATA.Time.Mon = ( gxbgps_pField[2] - '0' ) * 10 + ( gxbgps_pField[3] - '0' );
		
		// Year
		//gxbgps_pConvBuff[0] = gxbgps_pField[4];
		//gxbgps_pConvBuff[1] = gxbgps_pField[5];
		//gxbgps_pConvBuff[2] = '\0';
		//GPS_DATA.Time.Year = (uint8) atoi(gxbgps_pConvBuff);		
		GPS_DATA.Time.Year = ( gxbgps_pField[4] - '0' ) * 10 + ( gxbgps_pField[5] - '0' );
	}
	
	// Set RTC Time
	if(RTC_Init_OK!=2 )	//GPS

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国内二区三区| 欧美视频一区在线观看| 国产欧美一区二区精品秋霞影院| 国产在线播放一区| 国产精品区一区二区三| 91香蕉视频mp4| 亚洲综合视频在线| 91精品欧美综合在线观看最新| 日本女人一区二区三区| 欧美精品一区二区久久婷婷 | 亚洲激情网站免费观看| 欧洲一区在线电影| 奇米色777欧美一区二区| 日韩免费看的电影| 国产成人精品www牛牛影视| **性色生活片久久毛片| 欧美日韩国产123区| 国内精品伊人久久久久影院对白| 中文字幕欧美激情| 欧美视频三区在线播放| 国产一本一道久久香蕉| 亚洲美女一区二区三区| 日韩三级中文字幕| 成人av免费网站| 午夜精品免费在线观看| 久久精品夜色噜噜亚洲a∨| 91麻豆精东视频| 美女精品一区二区| 亚洲乱码国产乱码精品精的特点| 欧美日韩视频在线一区二区| 国产一区亚洲一区| 亚洲在线观看免费| 国产网红主播福利一区二区| 欧美三级乱人伦电影| 懂色av一区二区三区蜜臀 | 国产欧美精品在线观看| 欧美日本一道本| 成人不卡免费av| 免费不卡在线观看| 一区二区三区日韩精品| 国产日韩综合av| 7777精品久久久大香线蕉| 成人手机电影网| 男人的天堂亚洲一区| 亚洲欧洲综合另类在线| 国产丝袜美腿一区二区三区| 69堂精品视频| 欧美亚洲愉拍一区二区| 高清日韩电视剧大全免费| 日日夜夜免费精品视频| 一区二区三区四区在线免费观看 | 国产女主播在线一区二区| 欧美一区二区在线免费观看| 91蝌蚪porny| 成人免费不卡视频| 国内国产精品久久| 日韩极品在线观看| 亚洲一区免费在线观看| 亚洲另类色综合网站| 中文字幕av资源一区| 国产亚洲精品福利| 精品三级在线看| 日韩无一区二区| 91精品国产色综合久久久蜜香臀| 一本色道久久综合狠狠躁的推荐| 成人avav影音| a级高清视频欧美日韩| 成人污污视频在线观看| 国产91精品露脸国语对白| 国产精品一区免费在线观看| 久久97超碰色| 国产精品996| 国产成人亚洲综合a∨婷婷| 国产精品18久久久| 豆国产96在线|亚洲| 成人av综合在线| 99精品国产99久久久久久白柏| 成人在线一区二区三区| 成人av网在线| 一本到不卡精品视频在线观看| 91美女在线看| 在线亚洲一区二区| 欧美肥妇free| 日韩欧美中文字幕一区| 欧美精品一区二区三区很污很色的| 精品电影一区二区三区| 久久久噜噜噜久噜久久综合| 中文字幕第一区第二区| 最新日韩在线视频| 亚洲一线二线三线久久久| 五月天网站亚洲| 麻豆国产精品777777在线| 国产伦精品一区二区三区在线观看| 国产一区在线精品| 99精品欧美一区二区三区小说| 色综合久久88色综合天天6| 欧美午夜精品免费| 日韩欧美一级在线播放| 欧美国产97人人爽人人喊| 一区二区三区在线视频观看58| 亚洲成人黄色影院| 韩国女主播一区二区三区| 波多野结衣中文字幕一区二区三区| 99亚偷拍自图区亚洲| 欧美日韩精品欧美日韩精品一| 精品欧美久久久| 亚洲欧美视频在线观看视频| 日韩国产欧美三级| 高清视频一区二区| 精品国产伦一区二区三区观看方式 | 国产三区在线成人av| 亚洲黄色性网站| 裸体一区二区三区| 9i在线看片成人免费| 欧美日韩国产综合视频在线观看| 精品国产一二三区| 亚洲少妇最新在线视频| 蜜臀精品久久久久久蜜臀| 成人免费三级在线| 欧美二区在线观看| 成人免费在线观看入口| 美女看a上一区| 在线影视一区二区三区| 久久夜色精品国产噜噜av | 久久久久久久一区| 亚洲精品视频在线| 国产在线播放一区| 欧美片网站yy| 亚洲欧洲精品成人久久奇米网| 日韩专区欧美专区| 99国产精品视频免费观看| 日韩一级黄色片| 一区二区三区在线视频免费观看| 精品一区二区三区免费| 欧美剧在线免费观看网站| 国产精品久久久久久久久晋中| 看电视剧不卡顿的网站| 欧美综合欧美视频| 国产欧美精品一区aⅴ影院| 免费观看30秒视频久久| 在线一区二区三区四区五区| 蜜桃久久久久久| 欧美在线不卡一区| 国产精品三级视频| 国产美女在线精品| 欧美成人午夜电影| 视频一区在线播放| 在线视频你懂得一区二区三区| 国产精品美女久久久久高潮| 黄页网站大全一区二区| 欧美一卡二卡三卡四卡| 亚洲国产另类精品专区| 一本一本大道香蕉久在线精品| 国产精品久久毛片| 成人一区二区三区中文字幕| 久久免费偷拍视频| 国产一区美女在线| 久久婷婷国产综合国色天香| 精品一区二区三区香蕉蜜桃| 日韩一区二区三区四区| 日本成人在线不卡视频| 4438成人网| 久久精品av麻豆的观看方式| 日韩欧美一级片| 国内精品久久久久影院薰衣草| 日韩精品一区二区三区swag| 精品亚洲porn| 26uuu精品一区二区| 国产一本一道久久香蕉| 国产午夜一区二区三区| 国产成人无遮挡在线视频| 国产欧美一区二区精品久导航| 国产精品一二三四五| 国产精品福利一区| 91福利资源站| 五月天婷婷综合| 日韩精品中文字幕在线不卡尤物 | 国产乱码精品一区二区三区五月婷| 欧美精品一区二区三区蜜桃视频 | 欧美一区中文字幕| 国产在线精品一区二区夜色| 久久精品一区八戒影视| 成人一级黄色片| 亚洲精品一卡二卡| 91麻豆精品国产91久久久久| 激情成人午夜视频| 日韩一区日韩二区| 欧美午夜一区二区三区免费大片| 日产国产欧美视频一区精品 | 日韩一级大片在线观看| 国内久久婷婷综合| 国产日韩影视精品| 色综合一个色综合| 日韩国产欧美视频| 日本一区二区三级电影在线观看| 99re热视频精品| 毛片一区二区三区| 国产精品久久久久久久久动漫| 欧美日韩和欧美的一区二区| 激情综合色综合久久综合|