/*******************************************************************************
|
* 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_fLatStdDev; // <7> 纬度标准差(m)
|
HIDO_FLOAT m_fLonStdDev; // <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_fHorizontalVelStdDev; // <13> 水平速度标准差(m/s)
|
HIDO_FLOAT m_fHeadingAngle; // <14> 航向角(°)
|
HIDO_FLOAT m_fPitchAngle; // <15> 俯仰角(°)
|
HIDO_FLOAT m_fRollAngle; // <16> 横滚角(°)
|
HIDO_FLOAT m_fHeadingAngleStdDev; // <17> 航向角标准差(°)
|
HIDO_FLOAT m_fPitchAngleStdDev; // <18> 俯仰角标准差(°)
|
HIDO_FLOAT m_fRollAngleStdDev; // <19> 横滚角标准差(°)
|
HIDO_FLOAT m_fBaselineDistance; // <20> 基线距离(m)
|
HIDO_UINT8 m_u8SatelliteCount; // <21> 天线可见卫星数量
|
HIDO_UINT8 m_u8FixedAmbiguityCount; // <22> 载波整周固定观测量个数(仅固定解有效)
|
HIDO_UINT8 m_u8PositionQuality; // <23> 定位质量指示
|
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_ */
|