⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 parse.h

📁 GPS信号模拟器源代码
💻 H
字号:
// Parse.h: interface for the CParse class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_PARSE_H__AE82CE5D_92E6_4918_A0E5_B00AE24B97CA__INCLUDED_)
#define AFX_PARSE_H__AE82CE5D_92E6_4918_A0E5_B00AE24B97CA__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


#include <fstream>
using namespace std;

struct GPGGA
{
    char    time[12];       // 时间
    char    latitude[16];   // 纬度
    char    ns[2];          // N,S
    char    longitude[16];  // 经度
    char    ew[2];          // E,W
    char    state[2];       // GPS状态
    char    satellite[4];   // 卫星数量
    char    hdop[8];        // HDOP水平因子
    char    heighta[8];     // 海拔高度
    char    heightg[8];     // 地球椭球面对大地水准面高度
    char    difftime[8];    // 差分时间
    char    diffid[8];      // 差分ID
};

struct GPGSA
{
    char    mode[2];        // 模式
    char    type[2];        // 类型
    char    prn[4];         // 伪随即噪声码
    char    pdop[8]; 
    char    hdop[8];
    char    vdop[8];
};

struct GPGSV
{
    char    gsv[8];         // GSV语句总数
    char    index[4];       // 本语句编号
    char    count[4];       // 可见卫星数

    char    prn1[4];         //
    char    elev1[4];        // 仰角
    char    azim1[4];        // 方位角
    char    snr1[4];         // 信噪比

    char    prn2[4];         //
    char    elev2[4];        // 仰角
    char    azim2[4];        // 方位角
    char    snr2[4];         // 信噪比

    char    prn3[4];         //
    char    elev3[4];        // 仰角
    char    azim3[4];        // 方位角
    char    snr3[4];         // 信噪比

    char    prn4[4];         //
    char    elev4[4];        // 仰角
    char    azim4[4];        // 方位角
    char    snr4[4];         // 信噪比
};

struct GPRMC
{
    char    time[12];       // 时间
    char    state[2];       // 定位状态
    char    latitude[16];   // 纬度
    char    ns[2];             
    char    longitude[16];  // 经度
    char    ew[2];
    char    speed[8];       // 地面速度
    char    crs[8];         // 地面航向 
    char    date[12];       // 日期          
    char    mag[8];         // 磁偏角
    char    dir[8];         // 磁偏角方向
    char    mode[2];        // 模式指示
};

struct GPVTG
{
    char    crsn[8];       // 地面航向(真北)
    char    crsm[8];       // 地面航向(磁北)
    char    kts[8];        // 地面速率(节)
    char    speed[8];      // 地面速率(千米时)
    char    mode[2];       // 模式指示
};


class CParse  
{
public:
	CParse();
	virtual ~CParse();

    int Open(const char *filename);
    void Close();
    bool Validate();

    void Reset();
    void Seek(int off, ios_base::seekdir way);
    int NextGGA(char *buff, int len);

    int NextLine(char *buff, int len);  
    
    int ParseGGA(const char *buff, GPGGA &gga);
    int ParseGSA(const char *buff, GPGSA &gsa);
    int ParseGSV(const char *buff, GPGSV &gsv);
    int ParseRMC(const char *buff, GPRMC &rmc);
    int ParseVTG(const char *buff, GPVTG &vtg);

protected:

    void Split(const char *buff, ...);

    ifstream m_stream;
};

#endif // !defined(AFX_PARSE_H__AE82CE5D_92E6_4918_A0E5_B00AE24B97CA__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -