学前班
最后登录1970-1-1
在线时间 小时
注册时间2015-4-13
|
楼主 |
发表于 2015-4-16 12:26:47
|
显示全部楼层
int nmea_decode_test(void)
{
nmeaINFO info; //GPS解码后得到的信息
nmeaPARSER parser; //解码时使用的数据结构
uint8_t new_parse=0; //是否有新的解码数据标志
nmeaTIME beiJingTime; //北京时间
/* 设置用于输出调试信息的函数 */
nmea_property()->trace_func = &trace;
nmea_property()->error_func = &error;
/* 初始化GPS数据结构 */
nmea_zero_INFO(&info);
nmea_parser_init(&parser);
uint8_t len;
u16 i;
char *gps_buf;
while(1)
{
if (1) {
gps_buf = get_rebuff(&len);
printf("\r\nlen: %d\r\n", len);
for (i = 0; i < len; i++) {
printf("%c", gps_buf[i]);
}
/* 进行nmea格式解码 */
nmea_parse(&parser, (const char*)gps_buf, len, &info);
//nmea_parse(&parser, get_rebuff(&len), len, &info);
new_parse = 1;
if(new_parse ) //有新的解码消息
{
/* 对解码后的时间进行转换,转换成北京时间 */
GMTconvert(&info.utc,&beiJingTime,8,1);
/* 输出解码得到的信息 */
printf("\r\n时间%d,%d,%d,%d,%d,%d\r\n", beiJingTime.year+1900, beiJingTime.mon+1,beiJingTime.day,beiJingTime.hour,beiJingTime.min,beiJingTime.sec);
printf("\r\n纬度:%f,经度%f\r\n",info.lat,info.lon);
printf("\r\n正在使用的卫星:%d,可见卫星:%d",info.satinfo.inuse,info.satinfo.inview);
printf("\r\n海拔高度:%f 米 ", info.elv);
printf("\r\n速度:%f km/h ", info.speed);
printf("\r\n航向:%f 度", info.direction);
new_parse = 0;
}
}
/* 释放GPS数据结构 */
// nmea_parser_destroy(&parser);
// return 0;
}
#endif |
|