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

📄 gpsdecode.c

📁 该文件是一用ADS 开发的GPS 定位系统
💻 C
字号:
#include <stdio.h>

#define INFO_GPGGA 1

struct inf_gpgga
{
    char hour;//时(UTC)
    char min;//分
    float sec;//秒
    //
    unsigned char Lat_dd;
    float lat_mm_mmmmm;
    char ns;
    //
    unsigned char LONG_ddd;
    float LONG_mm_mmmmm;
    char ew;
    //
    int height;
    char unit[6];
};

struct gpsinfo
{
    int type;
    struct inf_gpgga gpgga;
};

int main()
{
    int a,b;
    float c = 0.0;
    a = b = 0;
    scanf("%2d%2d%f", &a, &b, &c);
    printf("\n%d, %d, %f\n", a, b, c);
}

char GetGPSChar()
{
    return 0;
}

/*获取GPS消息的一个字段*/
int GetMsgField(char *buf, size_t size)
{
    int i;
    for(i=0; i<size; i++, buf++)
    {
        *buf = GetGPSChar();
        if(*buf == ',' || *buf == '\r' || *buf == '\n')
        {
            *buf = '\0';
            break;
        }
    }
    return i;
}


int decode_GPGGA(struct inf_gpgga * ptr)
{
    char str[32];
    int len;
    len = GetMsgField(str, sizeof(str));
    /*ptr->hour = (str[0]-'0')*10 + (str[1]-'0');
    ptr->min = (str[2]-'0')*10 + (str[3]-'0');
    ptr->sec = (str[4]-'0')*10 + (str[5]-'0') +*/
    sscanf(str, "%2d%2d%", &ptr->hour, &ptr->min, &ptr->sec);
    return 0;
}

int gpsdecode(struct gpsinfo * ptr)
{
    char buf[32];
    int len;
    while(GetGPSChar() != '$');
    len = GetMsgField(buf, sizeof(buf));
    if(!strncmp(buf, "GPGGA", len))
    {
        ptr->type = INFO_GPGGA;
        return decode_GPGGA(&ptr->gpgga);
    }
    return -1;
}

⌨️ 快捷键说明

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