94 lines
3.6 KiB
C
94 lines
3.6 KiB
C
/*============================================================================================
|
|
Copyright(c) 2018 Quectel Wierless Solution,Co.,Ltd. All Rights Reserved.
|
|
Quectel Wireless Solution Proprietary and Confidential.
|
|
============================================================================*/
|
|
|
|
#ifndef __GPS_CHANNEL_H__
|
|
#define __GPS_CHANNEL_H__
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define NTP_SERVER_DOMAIN "ntp.aliyun.com\0"
|
|
|
|
typedef enum {
|
|
CHANNEL_TYPE_UART = 0,
|
|
CHANNEL_TYPE_SPI,
|
|
CHANNEL_TYPE_I2C
|
|
} GPS_CHANNEL_TYPE;
|
|
|
|
typedef void (*gnss_event_callback) (void *p);
|
|
|
|
typedef struct {
|
|
char (*m_com_init) (void);
|
|
unsigned int (*m_com_get_byte_status) (void);
|
|
unsigned int (*m_com_get_byte_buffer) (char *buf, unsigned int length);
|
|
unsigned int (*m_com_put_byte_buffer) (char *buf, unsigned int length);
|
|
void (*m_com_put_byte_complete) (char data);
|
|
void (*m_com_purge_fifo) (void);
|
|
void (*m_com_set_baudrate) (int baud_rate);
|
|
char (*m_com_deinit) (void);
|
|
void (*m_gpio_set_level) (unsigned int pin_num ,unsigned int level);
|
|
void (*m_com_event_register_cb) (gnss_event_callback cb);
|
|
unsigned int (*m_get_rtc_time) (void);
|
|
int (*m_nw_act) (void);
|
|
int (*m_nw_deact) (void);
|
|
int (*m_get_rtc_status) (void);
|
|
int (*m_get_netif_status) (void);
|
|
gnss_event_callback m_event_callback;
|
|
} g_gps_channel_t;
|
|
|
|
extern g_gps_channel_t g_gps_channel;
|
|
|
|
#define GPS_COM_Init g_gps_channel.m_com_init
|
|
#define GPS_COM_GetByteStatus g_gps_channel.m_com_get_byte_status
|
|
#define GPS_COM_GetByte_Buffer(buf,length) g_gps_channel.m_com_get_byte_buffer(buf, length)
|
|
#define GPS_COM_PutByte_Buffer(buf,length) g_gps_channel.m_com_put_byte_buffer(buf, length)
|
|
#define GPS_COM_PutByte_Complete(data) g_gps_channel.m_com_put_byte_complete(data)
|
|
#define GPS_COM_PurgeFIFO g_gps_channel.m_com_purge_fifo
|
|
#define GPS_COM_SetBaudRate(baud_rate) g_gps_channel.m_com_set_baudrate(baud_rate)
|
|
#define GPS_COM_Deinit g_gps_channel.m_com_deinit
|
|
#define GPS_GPIO_Set_Level(pin_num,level) g_gps_channel.m_gpio_set_level(pin_num,level)
|
|
#define GPS_COM_register_cb(cb) g_gps_channel.m_com_event_register_cb(cb)
|
|
#define GPS_GET_RTC_TIME g_gps_channel.m_get_rtc_time
|
|
#define GPS_NW_ACT g_gps_channel.m_nw_act
|
|
#define GPS_GET_RTC_STATUS g_gps_channel.m_get_rtc_status
|
|
#define GPS_GET_NETIF_STATUS g_gps_channel.m_get_netif_status
|
|
#define GPS_NW_DEACT g_gps_channel.m_nw_deact
|
|
|
|
char gps_channel_init(void);
|
|
char gps_get_channel_type(void);
|
|
void gps_delay_ms(unsigned int ms);
|
|
|
|
|
|
typedef struct quec_gnss_monitor_struct
|
|
{
|
|
volatile unsigned int monitor_write_flash_cnt;
|
|
volatile unsigned int monitor_agps_req_cnt;
|
|
unsigned int agps_req_time[24];
|
|
volatile unsigned int monitor_apflash_req_cnt;
|
|
unsigned int apflash_req_time[24];
|
|
|
|
}quec_gnss_monitor_struct_t;
|
|
extern quec_gnss_monitor_struct_t quec_gnss_monitor;
|
|
|
|
typedef struct quec_gnss_gpio_struct
|
|
{
|
|
int pwr_en;
|
|
int rst;
|
|
int blk;
|
|
int clock;
|
|
int tx;
|
|
int rx;
|
|
}quec_gps_gpio_struct_t;
|
|
extern quec_gps_gpio_struct_t gps_gpio_pin;
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif //__GPS_CHANNEL_H__
|
|
|