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

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

?? gps.c

?? GPS的一個幾碼程序
?? C
字號:



#include <termios.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/signal.h>
#include <pthread.h>
#include <string.h>
#include <stdlib.h>  // Must include . or, the result is wrong!!!!!!!!!
  
#include     "serial.h"
#include     "gps.h"
#include     "comm.h"

#define USE_BEIJING_TIMEZONE
#define MAXMSGLEN 256

char GPS_BUF[MAXMSGLEN];
GPS_INFO gps_info;
 
int GetCharPos(int num,char* str);
void UTC2BTC(date_time *GPS);
double get_double_number(char *s);

////////////////////////////////////////////////////////////////////////
// Test main()
//
#if 1   

#define ENDMINITERM 27 /* ESC to quit miniterm */
volatile int STOP=FALSE;
void child_handler(int s);
void* keyboard(void * data);
void* receive(void * data);
void* show_gps_info(void * data);



int main(int argc,char** argv)
{	
	struct sigaction sa;
	int ok;
 	pthread_t th_a, th_b, th_c;
 	void * retval;	
 	
  	GPS_Init();

  	sa.sa_handler = child_handler;
  	sa.sa_flags = 0;
  	sigaction(SIGCHLD,&sa,NULL); /* handle dying child */

  	pthread_create(&th_a, NULL, keyboard, 0);
  	pthread_create(&th_b, NULL, receive, 0);

  	pthread_join(th_a, &retval);
  	pthread_join(th_b, &retval);
 
  	printf("exit main 1\n");
  	close(fd2);
	printf("exit main 2\n");
return(0);	
}
void child_handler(int s)
{
  printf("stop!!!\n");
   STOP=TRUE;
}
void* keyboard(void * data)
{
    int c;
    c=getchar();
    STOP=TRUE;
	printf("exit keyboard\n");
    return NULL;
}
void* receive(void * data)
{
	int i=0, tmp=0;
	char c;
	char buf[256];
  
	GPS_INFO GPS;

	while (STOP==FALSE) {		
		//tmp = read(fd2,&c,1);  /* 直接阻塞讀串口 */
		tmp = readport(fd2,2000,&c);
	  	buf[i++] = c;
		
		if(c == '\n'){			
			buf[i]='\0';
			i=0;
     		if( buf[5]=='C' || (buf[4]=='G'&&buf[5]=='A')){        //"GPRMC"  "$GPGGA"
				strcpy(GPS_BUF, buf);       			
				gps_parse(GPS_BUF,&gps_info);
				show_gps(&gps_info);
				printf("%s", GPS_BUF);
   			}
			
		}
    }	
    printf("exit from reading modem\n");
    return NULL; 
}

#endif
//
// Test main()
////////////////////////////////////////////////////////////////////////

void GPS_Init()
{
  fd2 = OpenDev(COM2);  
  set_speed(fd2,4800);	//設置開發平臺的串口2波特率
  if (set_Parity(fd2,8,1,'N') == FALSE)  {
		printf("Set Parity Error\n");
		exit (0);
  } 
  usleep(1000000);  
}


void show_gps(GPS_INFO *GPS)
{
	printf("DATE       : %d-%02d-%02d \n",GPS->D.year,GPS->D.month,GPS->D.day);
	printf("TIME       :  %02d:%02d:%02d \n",GPS->D.hour,GPS->D.minute,GPS->D.second);
	printf("Latitude   : %.4f %c\n",GPS->latitude,GPS->NS);
	printf("Longitude  : %.4f%c\n",GPS->longitude,GPS->EW);
	printf("Highness   : %.4f \n",GPS->high);
	printf("STATUS     : %c\n",GPS->status);
}

////////////////////////////////////////////////////////////////////////////////
//解釋gps
//0      7  0   4 6   0     6 8 0        90         0  3      0        9
//$GPRMC,091400,A,3958.9870,N,11620.3278,E,000.0,000.0,120302,005.6,W*62
//$GPGGA,091400,3958.9870,N,11620.3278,E,1,03,1.9,114.2,M,-8.3,M,,*5E

void gps_parse(char *line,GPS_INFO *GPS)
////////////////////////////////////////////////////////////////////////////////
{
	int tmp;
	char c;
	char* buf=line;
	c=buf[5];

 if(buf[0]!='$')return;
 
	if(c=='C'){//"GPRMC"
  
		GPS->D.hour   =(buf[ 7]-'0')*10+(buf[ 8]-'0');
		GPS->D.minute =(buf[ 9]-'0')*10+(buf[10]-'0');
		GPS->D.second =(buf[11]-'0')*10+(buf[12]-'0');
		tmp = GetCharPos(9,buf);
		GPS->D.day    =(buf[tmp+0]-'0')*10+(buf[tmp+1]-'0');
		GPS->D.month  =(buf[tmp+2]-'0')*10+(buf[tmp+3]-'0');
		GPS->D.year   =(buf[tmp+4]-'0')*10+(buf[tmp+5]-'0')+2000;
		//------------------------------
		GPS->status	  =buf[GetCharPos(2,buf)];
		GPS->latitude =get_double_number(&buf[GetCharPos(3,buf)]);
		GPS->NS       =buf[GetCharPos(4,buf)];
		GPS->longitude=get_double_number(&buf[GetCharPos(5,buf)]);
		GPS->EW       =buf[GetCharPos(6,buf)];
#ifdef USE_BEIJING_TIMEZONE
		UTC2BTC(&GPS->D);
#endif
	}
	if(c=='A'){ //"$GPGGA"
		GPS->high     = get_double_number(&buf[GetCharPos(9,buf)]); 
	}
}

double get_double_number(char *s)
{
	char buf[128];
	int i;
	double rev;
	i=GetCharPos(1,s);
	strncpy(buf,s,i);
	buf[i-1]='\0';         
	rev=atof(buf);          
	return rev;

}

////////////////////////////////////////////////////////////////////////////////
//
int GetCharPos(int num,char *str)
{
	int i,j=0;
	int len=strlen(str);
	for(i=0;i<len;i++)
	{
		if(str[i]==',')j++;
		if(j==num)return i+1;
	}
	return 0;
}


//#ifdef USE_BEIJING_TIMEZONE
////////////////////////////////////////////////////////////////////////////////
//
void UTC2BTC(date_time *GPS)
{

//***************************************************
//如果秒號先出,再出時間數據,則將時間數據+1
		GPS->second++; //
		if(GPS->second>59){
			GPS->second=0;
			GPS->minute++;
			if(GPS->minute>59){
				GPS->minute=0;
				GPS->hour++;
			}
		}

//***************************************************
		GPS->hour+=8;
		if(GPS->hour>23)
		{
			GPS->hour-=24;
			GPS->day+=1;
			if(GPS->month==2 ||
			   		GPS->month==4 ||
			   		GPS->month==6 ||
			   		GPS->month==9 ||
			   		GPS->month==11 ){
				if(GPS->day>30){
			   		GPS->day=1;
					GPS->month++;
				}
			}
			else{
				if(GPS->day>31){
			   		GPS->day=1;
					GPS->month++;
				}
			}
			if(GPS->year % 4 == 0 ){//
		   		if(GPS->day > 29 && GPS->month ==2){
		   			GPS->day=1;
					GPS->month++;
				}
			}
			else{
		   		if(GPS->day>28 &&GPS->month ==2){
		   			GPS->day=1;
					GPS->month++;
				}
			}
			if(GPS->month>12){
				GPS->month-=12;
				GPS->year++;
			}
		}
}

void ReceiveOneBL( GPS_INFO* GPS_info)
{
	int i=0, tmp=0;
	char c;
	char buf[256];	
  
	while (1) {		
	  tmp = read(fd2,&c,1);  
	  buf[i++] = c;
	  if(c == '\n'){			
	    buf[i]='\0';
	    i=0;	    
     	    if( buf[5]=='C'&&buf[0]=='$') break;           //完整的"GPRMC"	   		  		
	  }
  	}
	gps_parse(buf,GPS_info);	
  return ; 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区在线观看网站| 欧美一区二区三区不卡| 欧美激情一区三区| 国产一区欧美二区| 久久免费视频一区| av色综合久久天堂av综合| 综合久久久久久| 欧美日韩在线不卡| 美女免费视频一区| 国产日韩精品久久久| 91欧美激情一区二区三区成人| 一区二区三区不卡在线观看 | 欧美一级理论性理论a| 全国精品久久少妇| 久久精品在线免费观看| www.66久久| 五月天欧美精品| 337p日本欧洲亚洲大胆精品| 波多野结衣中文一区| 亚洲影院久久精品| 2024国产精品| 色先锋aa成人| 久草中文综合在线| 亚洲色大成网站www久久九九| 欧美自拍丝袜亚洲| 国产永久精品大片wwwapp| 日韩毛片精品高清免费| 欧美精品第1页| 丰满岳乱妇一区二区三区| 亚洲一区二区三区视频在线播放| 日韩欧美一卡二卡| 一本大道久久a久久综合婷婷| 日韩成人精品在线观看| 中文字幕在线播放不卡一区| 欧美久久久久久久久久| 成人av在线电影| 日产国产欧美视频一区精品| 欧美国产欧美亚州国产日韩mv天天看完整| 在线视频一区二区三| 国产美女精品在线| 偷拍一区二区三区| 中文字幕一区二区5566日韩| 欧美一区二区三区四区五区| jvid福利写真一区二区三区| 久久疯狂做爰流白浆xx| 亚洲国产欧美在线| 国产精品久久免费看| 精品奇米国产一区二区三区| 色噜噜狠狠成人网p站| 成人一区二区三区视频在线观看| 日韩国产精品久久| 亚洲精品中文在线| 国产精品视频一二三区| 欧美一级二级三级乱码| 欧美无乱码久久久免费午夜一区| 成人网在线播放| 国产在线麻豆精品观看| 视频一区二区三区入口| 一区二区三区四区亚洲| 国产精品视频你懂的| 久久久www成人免费毛片麻豆| 欧美一级视频精品观看| 欧美日韩久久久久久| 色网综合在线观看| 色伊人久久综合中文字幕| 成人精品电影在线观看| 狠狠色丁香婷婷综合久久片| 日韩国产精品久久久| 五月天欧美精品| 亚洲国产精品麻豆| 亚洲综合视频在线| 亚洲精品免费在线播放| 亚洲人一二三区| 亚洲国产精品99久久久久久久久| www亚洲一区| 精品国产91洋老外米糕| 日韩女优视频免费观看| 日韩美女天天操| 精品不卡在线视频| 久久综合九色综合久久久精品综合| 91精品福利在线一区二区三区 | 亚洲激情第一区| 亚洲精品中文字幕在线观看| 亚洲精品高清视频在线观看| 亚洲欧美日韩国产中文在线| 亚洲在线视频一区| 亚洲图片欧美一区| 美日韩黄色大片| 青青草原综合久久大伊人精品| 日本aⅴ免费视频一区二区三区| 日本欧美一区二区三区| 麻豆精品精品国产自在97香蕉| 另类人妖一区二区av| 国产伦精品一区二区三区视频青涩 | 欧美国产亚洲另类动漫| 中文字幕一区三区| 亚洲一区二区三区四区在线| 亚洲色图一区二区三区| 亚洲福利视频一区二区| 日本欧美一区二区三区乱码| 国产精品77777竹菊影视小说| 懂色av中文一区二区三区 | 91激情五月电影| 欧美日韩国产中文| 日韩欧美久久久| 国产亲近乱来精品视频| 18欧美亚洲精品| 亚洲成a人v欧美综合天堂 | 国产精品国产三级国产三级人妇| 日本一区二区三区高清不卡 | 国产日韩一级二级三级| 亚洲欧美色图小说| 日韩激情一区二区| 高清在线不卡av| 欧美曰成人黄网| 国产午夜三级一区二区三| 亚洲综合免费观看高清完整版 | 免费一级片91| 成人国产免费视频| 555夜色666亚洲国产免| 久久久午夜电影| 亚洲午夜一区二区| 蜜臀久久久99精品久久久久久| 99麻豆久久久国产精品免费 | 久久久激情视频| 亚洲国产一区二区视频| 国产一区二区伦理| 在线影院国内精品| 国产日产欧美一区二区三区| 午夜精品久久久久久久久久 | 欧美videos大乳护士334| 亚洲三级电影全部在线观看高清| 琪琪一区二区三区| 色综合一区二区| 久久久久高清精品| 水蜜桃久久夜色精品一区的特点| 成人开心网精品视频| 26uuu国产一区二区三区| 午夜视频久久久久久| 99久久夜色精品国产网站| 日韩欧美久久一区| 亚洲chinese男男1069| 国产成人av资源| 日韩免费性生活视频播放| 亚洲丝袜美腿综合| 国产白丝精品91爽爽久久| 日韩欧美一区二区免费| 午夜精品久久久久久久久久| 91国模大尺度私拍在线视频| 中文字幕色av一区二区三区| 国产在线播放一区三区四| 欧美一区二区精品在线| 一区二区三区av电影| 91在线精品一区二区| 国产精品久久久久久久久久久免费看| 日韩高清一级片| 欧美精品自拍偷拍| 亚洲五月六月丁香激情| 91极品美女在线| 亚洲一区在线观看免费观看电影高清 | 国产亚洲精品中文字幕| 日韩不卡一区二区| 911精品产国品一二三产区| 一区二区三区不卡在线观看| 91搞黄在线观看| 亚洲综合丝袜美腿| 欧美无人高清视频在线观看| 亚洲成人激情综合网| 欧美午夜一区二区三区| 亚洲福利一二三区| 4hu四虎永久在线影院成人| 日韩av一区二区三区四区| 欧美人与性动xxxx| 亚洲国产va精品久久久不卡综合| 欧美伊人久久久久久午夜久久久久| 亚洲自拍偷拍av| 91精品国产91久久久久久最新毛片| 日韩精品亚洲一区二区三区免费| 91精品国产乱码| 国产一区二区在线影院| 欧美激情艳妇裸体舞| 91免费小视频| 亚洲综合精品自拍| 日韩欧美一区二区在线视频| 久久99精品国产| 国产蜜臀97一区二区三区| 91欧美一区二区| 亚洲制服丝袜一区| 欧美一区二区三区系列电影| 久久精品国产99| 欧美激情一区二区三区在线| 一本一本久久a久久精品综合麻豆 一本一道波多野结衣一区二区 | 成人久久久精品乱码一区二区三区| 亚洲欧洲性图库| 欧美日韩一区不卡| 国产专区欧美精品| 亚洲天堂a在线| 日韩一区二区在线看| 国产精品一级片在线观看| 亚洲精品视频一区二区|