yincheng.zhong
2024-03-24 dbe010cbc556a3f07136b7eac67e62f115285db8
Src/application/GPS.h
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,150 @@
/*******************************************************************************
 * 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
{
    GPIO_TypeDef* m_pstGPIOx;
    HIDO_UINT16 m_u16GPIOPin;
}ST_GPIO;
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
    HIDO_FLOAT m_fAlt;
    HIDO_FLOAT m_fMsl;
}ST_GPS;
typedef enum
{
    GPS_TYPE_GGA,
    GPS_TYPE_MAX,
} E_GPSType;
typedef void (*FN_GPSEventCallback)(E_GPSType _eType, HIDO_CHAR *_pcData, HIDO_UINT32 _u32Len);
/*******************************************************************************
 *                             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);
HIDO_VOID GPS_Recv_Poll(uint8_t u8RecvChar);
/*******************************************************************************
 * Function Name     : GPS_SetEventCallback
 * Description       : GPS设置GPS事件回调
 * Input             : None
 * Output            : None
 * Return            : None
 * Author            : hido.ltd
 *******************************************************************************/
HIDO_VOID GPS_SetEventCallback(FN_GPSEventCallback _fnEventCallback);
/*******************************************************************************
 * Function Name     : GPS_IsIdle
 * Description       : GPS是否忙
 * Input             : None
 * Output            : None
 * Return            : None
 * Author            : hido.ltd
 *******************************************************************************/
HIDO_BOOL GPS_IsIdle(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);
HIDO_VOID GPS_PowerOn(void);
#endif /* _GPS_H_ */