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

📄 gpsrecer.h

📁 在ARM7和UC/OSII的平台上实现了GPS自动报站的功能,涉及GPS模块LEA_4S的驱动,位置速寻算法,语音芯片ISD4004的录放音驱动,LED页面管理等等.从启动代码到操作系统的移植以及到业
💻 H
字号:
/****************************************************************
**                                                              *
**  FILE         :  GpsRecer.H                                  *
**  COPYRIGHT    :  (c) 2001 .Xiamen Yaxon NetWork CO.LTD       *
**                                                              *
**                                                              *
**  By : CCH 2002.1.15                                          *
****************************************************************/
#ifndef DEF_GPSRECER
#define DEF_GPSRECER

#include "structs.h"

#if EN_GSV > 0
#define GPS_PERFECT     0x02
#define GPS_GOOD        0x01
#define GPS_BAD         0x00
#endif

/*
********************************************************************************
*                  DEFINE DATUM_STRUCT
********************************************************************************
*/
/* HBIT = 01A000GV      A: VALID BIT,   0 ----- VALID    1 ----- INVALID
                        G: LONGITUDE
                        V: VECTOR
   LOGINTUDE[0]:        0x0 -----> 0xff    0x80 -----> 0xfe
   VECTOR:              0x0 -----> 0xff    0x80 -----> 0xfe                   */
typedef PACKED struct {
    INT8U       hbit;
    INT8U       latitude[4];
    INT8U       longitude[4];
    INT8U       vector;
    INT8U       direction;
} DATUM_STRUCT;


/*
********************************************************************************
*                  DEFINE OFFSET1_STRUCT
********************************************************************************
*/
/* HBIT = 0SAASGGV      S: SIGN  A: LATITUDE  G: LONGITUDE  V: VECTOR
   0x0 -----> 0x7f                                                        */
typedef PACKED struct {
    INT8U       hbit;
    INT8U       vla_c[2];           /* cent of latitude offset */
    INT8U       vlg_c[2];           /* cent of lonngitude offset */
    INT8U       vector;
    INT8U       direction;
} OFFSET1_STRUCT;


/*
********************************************************************************
*                  DEFINE OFFSET2_STRUCT
********************************************************************************
*/
typedef PACKED struct {
    INT8U       vla_d;              /* SDDDDDDD, degree of offset */
    INT8U       vla_c[2];           /* cent of latitude offset */
    INT8U       vlg_d;              /* SDDDDDDD, degree of offset */
    INT8U       vlg_c[2];           /* cent of longitude offset */
    INT8U       vector;
} OFFSET2_STRUCT;



BOOLEAN GpsDataValid(void);
INT8U   GetVector(void);
INT8U   GetDirection(void);
INT8U   GetGpsTime(TIME_STRUCT *gpstime);
INT8U   GetGpsDate(DATE_STRUCT *gpsdate);
void    GetLatitude(INT8U *ptr);
void    GetLongitude(INT8U *ptr);

INT16S  GetGpsHeight(void);
INT16U  GetGpsWeek(void);
INT32U  GetGpsUTC(void);
INT8U   GetGpsAsciiUTC(INT8U *ptr);

INT8U   GetGpsFixMode(void);                                    /* 获取GPS定位模式,'1':未定位,'2':2D定位,'3':3D定位 */
INT8U   GetGpsFixUsedStat(void);                                /* 获取GPS定位时所用的卫星数 */
INT8U   GetGpsFixPDOP(void);                                    /* 获取GPS定位时的PDOP值 */
BOOLEAN GpsFixIsValid(INT8U PDOP);                              /* 只有GPS是3D定位,所用卫星数>=4,PDOP值小于输入值,才返回true */

void    InitSatInf(void);
void    InitFixInf(void);

void    ConvertDatumData(DATUM_STRUCT *datum);
HWORD_UNION GetDatumData(DATUM_STRUCT *datum);
HWORD_UNION GetOffsetData1(DATUM_STRUCT *predatum, OFFSET1_STRUCT *offsetdata);

void    ResolveGPGGA(INT8U  *msgbuf, INT8U len);
void    ResolveGPGSA(INT8U  *msgbuf, INT8U len);

void    ResolvePUBX04(INT8U  *msgbuf, INT8U len);

#if EN_GSV>0

INT8U   GetGpsSNR(INT8U index);                                 /* 获取指定星号的信噪比,如星号不存在返回0xff */
INT8U   GetGpsViewNum(void);                                    /* 获取可见卫星数 */
INT8U   GetGpsUsedNum(INT8U minsnr);                            /* 信噪比大于设定值的卫星数 */
INT8U   GetGpsElevation(INT8U index);                           /* 获取卫星仰角 */
INT16U  GetGpsAzimuth(INT8U index);                             /* 获取卫星方位角 */

void    ResolveGPGSV(INT8U *msgbuf, INT8U len);
INT8U   GSVStatus(void);////
#endif
void    ResolveGPRMC(void);
void    StoreOldPosition(void);
void    InitOldPosition(void);
BOOLEAN GpsTimeError(void);
BOOLEAN GpsDateValid(void);

#endif

⌨️ 快捷键说明

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