c语言 nmealib-0.5.3 学习 简单代码 ,供参考

void showInfo1(char *buf)
{
    char gps_str[1024];// ="$GPGGA,031105.000,4003.9196,N,11620.5765,E,1,05,3.4,109.0,M,-6.4,M,,0000*4A\r\n";
    sprintf(gps_str,"%s",buf);
    nmeaINFO info;                  // nmea协议解析结果结构体
    nmeaPARSER parser;              // nmea协议解析载体
    nmeaPOS dpos;
    
    nmea_zero_INFO(&info);          // 填入默认的解析结果
    nmea_parser_init(&parser);      // 为解析载体分配内存空间

    // 调用函数完成GPS信息解析,最终结果保留于info数组中
    if( (nmea_parse(&parser, gps_str, (int)strlen(gps_str), &info)) > 0 )
    {
        nmea_info2pos(&info, &dpos);
        printf("longitude   %.5f\r\n",info.lon);
        printf("latitude    %.5f\r\n",info.lat);
        printf("speed       %.2f\r\n",info.speed);
        printf("\r\n");
        printf("longitude   %10.8f\r\n",nmea_radian2degree(info.lon));
        printf("latitude    %10.8f\r\n",nmea_radian2degree(info.lat));
        printf("longitude   %10.8f\r\n",nmea_radian2degree(dpos.lon));
        printf("latitude    %10.8f\r\n",nmea_radian2degree(dpos.lat));
    }

    nmea_parser_destroy(&parser);   // 释放解析载体的内存空间
}

void showInfo_GPGGA(char *buf)
{
    char gps_str[1024];// ="$GPGGA,031105.000,4003.9196,N,11620.5765,E,1,05,3.4,109.0,M,-6.4,M,,0000*4A\r\n";

    sprintf(gps_str,"%s",buf);
    nmeaINFO info;                  // nmea协议解析结果结构体
    nmeaGPGGA pack;
    nmeaPOS dpos;
    
    nmea_zero_INFO(&info);          // 填入默认的解析结果
    nmea_zero_GPGGA(&pack);
    // 调用函数完成GPS信息解析,最终结果保留于info数组中
    if( (nmea_parse_GPGGA(gps_str, (int)strlen(gps_str), &pack)) > 0 )
    {
        nmea_GPGGA2info(&pack,&info);
        nmea_info2pos(&info, &dpos);
        printf("GPGGA longitude   %10.8f\r\n",nmea_radian2degree(dpos.lon));
        printf("GPGGA latitude    %10.8f\r\n",nmea_radian2degree(dpos.lat));
        printf("GPGGA height_sea   %10.8f\r\n",pack.elv);
        printf("GPGGA height_ground   %10.8f\r\n",pack.diff);
        printf("GPGGA GPS_Num   %2d\r\n",pack.satinuse);
    }
}

void showInfo_GPRMC(char *buf)
{
    char gps_str[1024];// ="$GPGGA,031105.000,4003.9196,N,11620.5765,E,1,05,3.4,109.0,M,-6.4,M,,0000*4A\r\n";
    sprintf(gps_str,"%s",buf);
    nmeaINFO info;                  // nmea协议解析结果结构体
    nmeaGPRMC pack;
    nmeaPOS dpos;
    nmea_zero_INFO(&info);          // 填入默认的解析结果
    nmea_zero_GPRMC(&pack);
    // 调用函数完成GPS信息解析,最终结果保留于info数组中
    if( (nmea_parse_GPRMC(gps_str, (int)strlen(gps_str), &pack)) > 0 )
    {
        nmea_GPRMC2info(&pack,&info);
        nmea_info2pos(&info, &dpos);
        //
        printf("GPRMC status  %c\r\n", pack.status);
        printf("DATE     : %4d-%02d-%02d \n",1900+pack.utc.year,pack.utc.mon+1,pack.utc.day);
        printf("TIME     :  %02d:%02d:%02d \n",pack.utc.hour+8,pack.utc.min,pack.utc.sec);
        printf("GPRMC longitude   %10.8f\r\n %c",nmea_radian2degree(dpos.lon),pack.ns);
        printf("GPRMC latitude    %10.8f\r\n %c",nmea_radian2degree(dpos.lat),pack.ew);
        printf("Speed   : %10.4f Km/h\n",pack.speed);
        printf("direction   : %10.4f \n",pack.direction);
    }
}

 

转载于:https://www.cnblogs.com/tianciliangen/p/3489255.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: physdiskwrite-0.5.3-physgui-bundle是一个用于将镜像文件写入磁盘的工具。它通过一个图形界面提供了一种方便且易于理解的方法,可以大大简化磁盘写入的过程。这个工具可以用于将操作系统、应用程序或其他文件写入启动盘或其他存储媒介,例如 USB 驱动器或 SD 卡。 镜像文件通常是操作系统或软件应用程序的完整副本,用户可以使用该副本在目标计算机或设备上还原它,无需重新安装所有软件或系统。 physdiskwrite-0.5.3-physgui-bundle的一个优点是,它支持多种操作系统,包括 Windows、Linux和MacOS等。此外,它还提供了许多高级选项,例如写入和校验速度、删除目标设备分区等。总的来说,physdiskwrite-0.5.3-physgui-bundle是一个非常实用的磁盘写入工具,对于需要在多个设备之间迁移或还原操作系统和应用程序的用户来说,它是一个必不可少的工具。 ### 回答2: Physdiskwrite-0.5.3-physgui-bundle 是一款用于将操作系统镜像写入USB存储设备的工具。它可以让我们将镜像文件写入USB设备,从而将操作系统安装到电脑上。此款工具在使用时需要管理员权限,并且需要根据电脑的不同操作系统版本选择相应的版本。此外,该工具还提供了基于图形用户界面的使用方法,使得使用过程更加简单方便。但是需要注意的是,使用该工具进行写入操作时,将会清空USB存储设备内的所有数据,因此在使用之前请务必备份重要的文件。总的来说,Physdiskwrite-0.5.3-physgui-bundle 是一款简单易用的 USB设备写入工具,可以轻松安装系统镜像到USB设备。 ### 回答3: physdiskwrite-0.5.3-physgui-bundle是一个软件包,用于将磁盘镜像写入USB设备或硬盘驱动器。它由两部分组成:physdiskwrite-0.5.3和physgui。physdiskwrite-0.5.3是一个命令行工具,而physgui是一个GUI(图形用户界面),可简化物理磁盘写入过程。 这个软件包可以在Windows和Linux系统中使用。它提供了完整的磁盘映像写入支持,包括GPT和MBR分区表和各种文件系统,如FAT32,NTFS,和EXT2 / 3/4。 使用physdiskwrite-0.5.3-physgui-bundle非常简单,只需双击physgui.exe程序即可启动GUI界面。通过选择磁盘映像、磁盘设备和分区表类型,然后单击“写入”按钮,就可以将映像写入目标设备。 总之,physdiskwrite-0.5.3-physgui-bundle是一个方便实用的磁盘写入软件包,为用户提供了简单易用的图形界面和丰富的功能。它适用于需要将磁盘映像写入外部设备的用户。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值