📄 gpsrecer.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 + -