设为首页 加入收藏

TOP

c语言解码GPS--实现篇(二)
2014-11-23 23:36:30 来源: 作者: 【 】 浏览:8
Tags:语言 解码 GPS-- 实现
MIN] =5;
//处理未接收字符
tcflush(fd,TCIFLUSH);

if((tcsetattr(fd,TCSANOW,&new_cfg))!=0)
{
perror("tcsetattr");
return -1;
}

return 0;
}


//打开串口函数
int open_port(int com_port)
{
int fd;
#if (COM_TYPE == GNR_COM) //使用普通串口
char* dev[] = {"/dev/ttyS0","/dev/ttyS1","/dev/ttyS2"};
#else//使用USB转串口
char* dev[] = {"/dev/ttyUSB0","/dev/ttyUSB1","/dev/ttyUSB2"};
#endif
if((com_port<0)||(com_port > MAX_COM_NUM))
{
return -1;
}
//打开串口
if((fd=open(dev[com_port-1],O_RDWR|O_NOCTTY|O_NDELAY))<0)
{
perror("open serial port");
return -1;
}
//恢复串口为堵塞状态
if(fcntl(fd,F_SETFL,0) <0 )
{
perror("fcntl F_SETFL\n");
return -1;

}
//测试是否为终端设备
if(isatty(STDIN_FILENO)==0)
{
perror("standard input is not a terminal device");
}
return fd;
}

void print_info(void)
{
//打印选择界面,即引导的字符号
printf("Now the receive time is %s\n",GPS_DATA.GPS_time);
printf("The star is %c 3\n",GPS_DATA.GPS_sv);
printf("The earth latitude is :%s\n",GPS_DATA.GPS_wd);
printf("The earth longitude is :%s\n",GPS_DATA.GPS_jd);
printf("The train speed is:%s km/h\n",GPS_DATA.GPS_speed);
printf("The date is:%s\n",GPS_DATA.GPS_date);

}


void GPS_resolve_GPRMC(char data)
{
//$GPRMC,092427.604,V,4002.1531,N,11618.3097,E,0.000,0.00,280812,,E,N*08


if(data==',')
{
++SectionID;
i=0;
}
else
{
switch(SectionID)
{
case 1://02:48:13
GPS_DATA.GPS_time[i++]=data;
if(i==2 || i==5)
{
GPS_DATA.GPS_time[i++]=':';
}
GPS_DATA.GPS_time[8]='\0';
break;
case 2:
if(data=='A')
GPS_DATA.GPS_sv='>';
else
GPS_DATA.GPS_sv='<';
break;
case 3://3158.4608
GPS_DATA.GPS_wd[++i]=data;
GPS_DATA.GPS_wd[12]='\0';
break;

case 4:
if(data=='N')
GPS_DATA.GPS_wd[0]='N';
else if(data=='S')
GPS_DATA.GPS_wd[0]='S';

break;
case 5://11848.3737,E

GPS_DATA.GPS_jd[++i]=data;
GPS_DATA.GPS_jd[12]='\0';
break;

case 6:
if(data=='E')
GPS_DATA.GPS_jd[0]='E';
else if(data=='W')
GPS_DATA.GPS_jd[0]='W';

break;
case 7://10.05
GPS_DATA.GPS_speed[i++]=data;
GPS_DATA.GPS_speed[4]='\0';
break;
case 9://15-07-06 -> 06-07-15
GPS_DATA.GPS_date[i++]=data;
首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇c 常量 const 下一篇openssl/md5.h没有此文件

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: