版主
最后登录1970-1-1
在线时间 小时
注册时间2019-1-11
|
发表于 2019-5-9 10:14:16
|
显示全部楼层
while(1)
{
if(GPS_HalfTransferEnd) /* 接收到GPS_RBUFF_SIZE一半的数据 */
{
/* 进行nmea格式解码 */
nmea_parse(&parser, (const char*)&gps_rbuff[0], HALF_GPS_RBUFF_SIZE, &info);
GPS_HalfTransferEnd = 0; //清空标志位
new_parse = 1; //设置解码消息标志
}
else if(GPS_TransferEnd) /* 接收到另一半数据 */
{
nmea_parse(&parser, (const char*)&gps_rbuff[HALF_GPS_RBUFF_SIZE], HALF_GPS_RBUFF_SIZE, &info);
GPS_TransferEnd = 0;
new_parse =1;
}
if(new_parse ) //有新的解码消息
{
/* 对解码后的时间进行转换,转换成北京时间 */
GMTconvert(&info.utc,&beiJingTime,8,1);
/* 输出解码得到的信息 */
printf("\r\n时间%d-%02d-%02d,%d:%d:%d\r\n", beiJingTime.year+1900, beiJingTime.mon,beiJingTime.day,beiJingTime.hour,beiJingTime.min,beiJingTime.sec);
//info.lat lon中的格式为[degree][min].[sec/60],使用以下函数转换成[degree].[degree]格式
deg_lat = nmea_ndeg2degree(info.lat);
deg_lon = nmea_ndeg2degree(info.lon);
printf("\r\n纬度:%f,经度%f\r\n",deg_lat,deg_lon);
printf("\r\n海拔高度:%f 米 ", info.elv);
printf("\r\n速度:%f km/h ", info.speed);
printf("\r\n航向:%f 度", info.direction);
printf("\r\n正在使用的GPS卫星:%d,可见GPS卫星:%d",info.satinfo.inuse,info.satinfo.inview);
printf("\r\n正在使用的北斗卫星:%d,可见北斗卫星:%d",info.BDsatinfo.inuse,info.BDsatinfo.inview);
printf("\r\nPDOP:%f,HDOP:%f,VDOP:%f",info.PDOP,info.HDOP,info.VDOP);
new_parse = 0;
}
}
|
|