1
WXK
9 天以前 aa14c757b47b2ef43ec8a6ced81fefe1e6594d2d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
/*******************************************************************************
 * File Name         : GPS.h
 * Description       :
 * Created on        : 2019��3��11��
 * Author            : www.hido-studio.com
 *******************************************************************************/
#ifndef _GPS_H_
#define _GPS_H_
 
/*******************************************************************************
 *                              Include Files                                  *
 *******************************************************************************/
#include "HIDO_TypeDef.h"
#include "GPIO.h"
 
/*******************************************************************************
 *                                  Macro                                      *
 *******************************************************************************/
 
/*******************************************************************************
 *                             Type Definition                                 *
 *******************************************************************************/
typedef enum
{
    GPS_STATE_INVALID = 0,
    GPS_STATE_VALID,
} E_GPSState;
 
typedef enum
{
    GPS_LAT_SIGN_NORTH = 0,
    GPS_LAT_SIGN_SOUTH,
} E_GPSLatSign;
 
typedef enum
{
    GPS_LON_SIGN_EAST = 0,
    GPS_LON_SIGN_WEST,
} E_GPSLonSign;
 
typedef enum
{
    GPS_PIN_REST,
    GPS_PIN_EN,
 
    GPS_PIN_LAST,
} E_GPSPin;
 
typedef struct
{
    HIDO_UINT16 m_u16Speed;
    HIDO_UINT16 m_u16Dir; //direction
    HIDO_DOUBLE m_dLat; //latitude
    HIDO_DOUBLE m_dLon; //longitude
    E_GPSState m_eState;
    HIDO_UINT16 m_u16Year;
    HIDO_UINT8 m_u8Mon; //month
    HIDO_UINT8 m_u8Day;
    HIDO_UINT8 m_u8Hour;
    HIDO_UINT8 m_u8Min; //minute
    HIDO_UINT8 m_u8Sec; //second
}ST_GPS;
 
/* GPRMI数据包结构 */
typedef struct
{
    HIDO_UINT32 m_u32UTCTime;           // <1> UTC时间, hhmmss.ss格式
    HIDO_UINT16 m_u16WeekNumber;        // <2> Week number, 周数
    HIDO_UINT32 m_u32TimeOfWeek;        // <3> Time of week, 周内秒, 格式为(ss.mmm)
    HIDO_DOUBLE m_dLatitude;             // <4> 纬度(°), 正数为北纬
    HIDO_DOUBLE m_dLongitude;            // <5> 经度(°), 正数为西经
    HIDO_FLOAT m_fAltitude;              // <6> 高程(m)
    HIDO_FLOAT m_fEastStdDev;            // <7> 纬度标准差(m)
    HIDO_FLOAT m_fNorthStdDev;           // <8> 经度标准差(m)
    HIDO_FLOAT m_fAltStdDev;             // <9> 高程标准差(m)
    HIDO_FLOAT m_fEastVelocity;          // <10> 东方向上的速度(m/s)
    HIDO_FLOAT m_fNorthVelocity;         // <11> 北方向上的速度(m/s)
    HIDO_FLOAT m_fUpVelocity;            // <12> 天顶方向的速度(m/s)
    HIDO_FLOAT m_fEastVelStdDev;         // <13> 水平速度标准差(m/s)
    HIDO_FLOAT m_fNorthVelStdDev;        // <14> 俯仰角(°)
    HIDO_FLOAT m_fUpVelStdDev;           // <15> 侧倾角(°)
    HIDO_FLOAT m_fRollAngle;             // <16> 翻滚角(°)
    HIDO_FLOAT m_fPitchAngleStdDev;      // <17> 俯仰角标准差(°)
    HIDO_FLOAT m_fRollAngleStdDev;       // <18> 侧倾角标准差(°)
    HIDO_FLOAT m_fHeadingAngleStdDev;    // <19> 翻滚角标准差(°)
    HIDO_FLOAT m_fBaselineDistance;      // <20> 基线距离(m)
    HIDO_UINT8 m_u8SatelliteCount;       // <21> 天线可见卫星数量
    HIDO_UINT8 m_u8ReservedFlags;        // <22> 载波整周固定模糊值个数,仅对固定定整意义
    HIDO_UINT8 m_u8PositionQuality;      // <23> 定位质量指示,0=无效,1=单点,2=差分,4=固定,5=浮点
    HIDO_BOOL m_bValid;                  // 数据有效标志
}ST_GPRMI;
 
/* GPIMU数据包结构 */
typedef struct
{
    HIDO_UINT32 m_u32UTCTime;           // <1> UTC时间, hhmmss.sss格式
    HIDO_FLOAT m_fAccelX;                // <2> x轴加速度(g)
    HIDO_FLOAT m_fAccelY;                // <3> y轴加速度(g)
    HIDO_FLOAT m_fAccelZ;                // <4> z轴加速度(g)
    HIDO_FLOAT m_fGyroX;                 // <5> 陀螺x轴角速度(°/s)
    HIDO_FLOAT m_fGyroY;                 // <6> 陀螺y轴角速度(°/s)
    HIDO_FLOAT m_fGyroZ;                 // <7> 陀螺z轴角速度(°/s)
    HIDO_FLOAT m_fTemperature;           // <8> 传感器温度(℃)
    HIDO_UINT8 m_u8Checksum;             // <9> 异或校验和
    HIDO_BOOL m_bValid;                  // 数据有效标志
}ST_GPIMU;
 
/*******************************************************************************
 *                             Global Function                                 *
 *******************************************************************************/
 
/*******************************************************************************
 * Function Name     : GPS_GetState
 * Description       : ��ȡGPS��λ״̬
 * Input             : None
 * Output            : None
 * Return            : ��λ״̬ 0 1 2 3
 * Author            : www.hido-studio.com
 * Modified Date:    : 2021��1��8��
 *******************************************************************************/
HIDO_UINT8 GPS_GetState(HIDO_VOID);
 
/*******************************************************************************
 * Function Name     : GPS_PinRegister
 * Description       : GPSģ��ܽ�ע��
 * Input             : _ePin �ܽŶ���
 *                   : _pstGPIOx GPIOx
 *                   : _u16GPIOPin GPIO_PIN_x
 * Output            : None
 * Return            : None
 * Author            : www.hido-studio.com
 * Modified Date:    : 2021��1��8��
 *******************************************************************************/
HIDO_VOID GPS_PinRegister(E_GPSPin _ePin, GPIO_TypeDef *_pstGPIOx, HIDO_UINT16 _u16GPIOPin);
 
/*******************************************************************************
 * Function Name     : GPS_Poll
 * Description       : GPS��ѯ����
 * Input             : None
 * Output            : None
 * Return            : None
 * Author            : www.hido-studio.com
 * Modified Date:    : 2021��1��8��
 *******************************************************************************/
HIDO_VOID GPS_Poll(void);
 
/*******************************************************************************
 * Function Name     : GPS_Init
 * Description       : GPSģ���ʼ��
 * Input             : None
 * Output            : None
 * Return            : None
 * Author            : www.hido-studio.com
 * Modified Date:    : 2021��1��8��
 *******************************************************************************/
HIDO_VOID GPS_Init(void);
 
/*******************************************************************************
 * Function Name     : GPS_GetGPRMI
 * Description       : 获取最新的GPRMI数据
 * Input             : _pstGPRMI - 存储GPRMI数据的结构体指针
 * Output            : None
 * Return            : HIDO_OK - 成功, HIDO_ERR - 失败
 * Author            : www.hido-studio.com
 * Modified Date:    : 2025年11月11日
 *******************************************************************************/
HIDO_INT32 GPS_GetGPRMI(ST_GPRMI *_pstGPRMI);
 
/*******************************************************************************
 * Function Name     : GPS_GetGPIMU
 * Description       : 获取最新的GPIMU数据
 * Input             : _pstGPIMU - 存储GPIMU数据的结构体指针
 * Output            : None
 * Return            : HIDO_OK - 成功, HIDO_ERR - 失败
 * Author            : www.hido-studio.com
 * Modified Date:    : 2025年11月11日
 *******************************************************************************/
HIDO_INT32 GPS_GetGPIMU(ST_GPIMU *_pstGPIMU);
 
#endif /* _GPS_H_ */