欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

基于C语言的NMEA-0183解析程序(五)

程序员文章站 2022-07-12 21:56:16
...

实现基于输入的筛选条件,自定义格式化输出信息

#ifndef _PRINTOUT_H_
#define _PRINTOUT_H_

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>

#include"Type.h"
/******************************************************************************
 *  Function    -  Printout analyse message
 *
 *  Purpose     -  格式输出解析信息
 *
 *  Description -
 *
 * modification history
 * ----------------------------------------
 * v1.0  , 2018-12-12,  zhanglixv  written
 * ----------------------------------------
 ******************************************************************************/
void printout(Nmea_msg *res, int s_n,FILE *fp)
{
    int k;
    static int serial = 0;/*输出序号计数*/
    char node1[3];
    char node2[3];
    char temp[85]=" ";
    char a[]="[";
    char b[]="]";
    char c[]=" ";

    serial++;
    fprintf(fp,"%d  %d-%d-%d %d:%d:%d %c %f %c %f %c %f %d",\
        serial,res->utc.year,res->utc.month,res->utc.date,res->utc.hour,res->utc.mint,res->utc.sec,\
        res->avhemi,res->longitude,res->ewhemi,res->latitude,res->nshemi,res->speed,res->svnum);

    for(k=0;k<(res->svnum);k++)
    {
        if(((res->slmsg[k].sn) != 0) && ((res->slmsg[k].sn) >= s_n))/*无信号不输出*/
        {
            itoa((res->slmsg[k].num),node1,10);/*按十进制进行整型转字符串,itoa函数使用的内存内容于下次调用时会清空*/
            strcat(temp,node1);/*strcpy与strcat的区别*/
            strcat(temp,a);
            itoa((res->slmsg[k].sn),node2,10);
            strcat(temp,node2);
            strcat(temp,b);
            strcat(temp,c);
        }
    }
    fprintf(fp,"%s\n",temp);
}

#endif // _PRINTOUT_H_

 

相关标签: C GPS NMEA-0183