173 lines
5.0 KiB
C
173 lines
5.0 KiB
C
#ifndef _QUEC_ASR_GPS_SUPPORT_H_
|
|
#define _QUEC_ASR_GPS_SUPPORT_H_
|
|
#include "xscale_types.h"
|
|
#include "gpio.h"
|
|
typedef unsigned int size_t;
|
|
|
|
/*========macro defined for customer control start========*/
|
|
#ifndef PROJ_ASR_APP_001
|
|
#define AGPS_UPDATE_DEFAULT
|
|
#else
|
|
#define CUSTOMER_AGPS_UPDATE_ENABLE
|
|
#endif
|
|
|
|
#ifdef CRANE_MCU_DONGLE
|
|
/* MCU -> CranG Platform.*/
|
|
#if (defined(CRANELR_SUPPORT) || defined(CRANELRH_SUPPORT))
|
|
#define JACANA_ASR1602_DKB_V10_ASR
|
|
#elif (defined(CRANELS_SUPPORT) || defined(CRANELG_SUPPORT))
|
|
#define JACANA_ASR1609_DKB_V10_ASR
|
|
#elif defined(CRANEL_4MRAM) || defined (CRANEL_8MRAM)
|
|
#define JACANA_ASR1606L_DKB_V10_ASR
|
|
#define ASR_UPDATE_AGPS
|
|
#elif defined CRANEM_GOOME_4G03N
|
|
#define JACANA_ASR1603_4G03N_V10_GOOME
|
|
#define GOOME_UPDATE_AGPS
|
|
#else
|
|
#define JACANA_ASR1603_DKB_V11_ASR
|
|
#define ASR_UPDATE_AGPS
|
|
#endif
|
|
/* MCU -> CranG Platform.*/
|
|
#else
|
|
#define JACANA_ASR3603_DKB_V10_ASR
|
|
#define ASR_UPDATE_AGPS
|
|
#endif
|
|
|
|
#if defined (JACANA_ASR1603_4G03N_V10_GOOME) || defined(JACANA_ASR1602_DKB_V10_ASR)
|
|
#define VRCR_MODE_VCXO_REQ
|
|
#else
|
|
#define VRCR_MODE_MN_CLK_REQ
|
|
#endif
|
|
|
|
#define GPS_DEBUG 1
|
|
#define NMEA_DEBUG 0
|
|
#define SUPL_TEST 0
|
|
|
|
#if defined (CRANELS_SUPPORT) || defined (CRANELG_SUPPORT)
|
|
|
|
#define GPS_CMD_TIMER 0
|
|
#define GPS_FWDL_TIMER 0
|
|
#define GPS_SWDT_TIMER 1
|
|
#else
|
|
#define GPS_CMD_TIMER 1
|
|
#define GPS_FWDL_TIMER 1
|
|
#define GPS_SWDT_TIMER 1
|
|
#endif
|
|
|
|
#ifdef CRANELS_SUPPORT
|
|
#define GPS_PPS_GPIO (GPIO_PIN_32)
|
|
#endif
|
|
#ifdef CRANELG_SUPPORT
|
|
#define GPS_PPS_GPIO (GPIO_PIN_56)
|
|
#endif
|
|
|
|
extern int HOST_RESET_GPS_GPIO;//gps复位引脚
|
|
extern int HOST_RESET_FUNC_MFPR;
|
|
extern int HOST_WAKE_GPS_GPIO;//主机唤醒gps引脚
|
|
extern int HOST_WAKE_GPS_FUNC_MFPR;
|
|
extern int GPS_WAKE_HOST_GPIO;//gps唤醒主机
|
|
extern int GPS_WAKE_HOST_FUNC_MFPR;
|
|
|
|
#ifdef VRCR_MODE_MN_CLK_REQ
|
|
#define VRCR_ADDR (0xD4050018)
|
|
#define CLK_REQ (0xD401E0CC)
|
|
|
|
#endif
|
|
|
|
#ifdef VRCR_MODE_VCXO_REQ
|
|
#define VRCR_ADDR (0xD4050018)
|
|
#define CLK_REQ (0xD401E0D4)
|
|
#endif
|
|
|
|
#if defined (CRANELS_SUPPORT) || defined (CRANELG_SUPPORT)
|
|
|
|
#define GPS_WAKELOCK_UART_RECV (1 << 0)
|
|
#define GPS_WAKELOCK_IPC (1 <<1)
|
|
#else
|
|
#define GPS_WAKELOCK_UART_RX_DMA (1 << 0)
|
|
#define GPS_WAKELOCK_UART_RECV (1 << 1)
|
|
#define GPS_WAKELOCK_UART_TX_DMA (1 << 2)
|
|
#endif
|
|
|
|
|
|
#define ASR_GPS_WORKMODE_WAKEUP 1
|
|
#define ASR_GPS_WORKMODE_POWEROFF 2
|
|
#define ASR_GPS_WORKMODE_SLEEP 0
|
|
|
|
|
|
#define ASR_GPS_STATE_POWEROFF 0
|
|
#define ASR_GPS_STATE_ACTIVE 1
|
|
#define ASR_GPS_STATE_SLEEP 2
|
|
#define ASR_GPS_STATE_SLEEPING 3
|
|
#define ASR_GPS_STATE_POWEROFFING 4
|
|
|
|
|
|
|
|
#define HOST_DOWNLOAD_GPS_FW_BAUDRATE 921600
|
|
#define HOST_COMMUNICATE_WITH_GPS_BAUDRATE 115200
|
|
|
|
#define JACANA_ASR_PVT_DATA_LEN (4096u)
|
|
#define JACANA_NMEA_PACK_FIFO_SIZE (2048u)
|
|
#define JACANA_PVT_PACK_FIFO_SIZE (4096u)
|
|
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
|
|
typedef enum {
|
|
GPS_COLD_RESET,
|
|
GPS_HOT_RESET,
|
|
GPS_WARM_RESET
|
|
}GPS_RESET_TYPE;
|
|
|
|
typedef struct {
|
|
char enflag;
|
|
char* data;
|
|
unsigned int len;
|
|
}quec_asr_agps_t;
|
|
|
|
int quec_asr_get_agps_en(void);
|
|
void quec_asr_gnss_nmea_cfg(void);
|
|
void quec_asr_gnss_sys_cfg(void);
|
|
void quec_agps_init(void);
|
|
void quec_agps_deinit(void);
|
|
int quec_asr_set_gnss_nmea(int val);
|
|
int quec_asr_set_gnss_sys(char val);
|
|
void quec_asr_agps_enable(char flag);
|
|
void quec_asr_gnss_pin_init(void);
|
|
void asr_gps_reset(GPS_RESET_TYPE type);
|
|
void set_callback_execute_endflag(const BOOL flag);
|
|
static BOOL check_callback_is_endflag(void);
|
|
BOOL check_gpsfw_download_is_completed(void);
|
|
void set_gpsfw_download_done(void);
|
|
void reset_gpsfw_download_state(void);
|
|
void gps_wake_host_isr(void);
|
|
void gps_wake_host_isr2(void);
|
|
void gps_module_reset(void);
|
|
void gps_wake_host_gpio_clear(void);
|
|
void gps_uart_cfg(UINT32 baudrate);
|
|
void gps_uart_send_config_cmd(char *msg);
|
|
void gps_module_wakeup(void);
|
|
void gps_module_sleep(void);
|
|
void gps_module_poweroff(void);
|
|
void gps_module_boot(void);
|
|
void quec_gps_data_cb(void * para);
|
|
unsigned int get_gpsuart_dma_total_cnt(void);
|
|
void asr_gps_start_keepalive_timer(void);
|
|
void asr_gps_stop_keepalive_timer(void);
|
|
void set_gpsuart_dma_last_cnt(unsigned int cnt);
|
|
void clear_gps_pm_lock(unsigned char lock_type);
|
|
void set_gps_pm_lock(unsigned char lock_type);
|
|
unsigned char get_gps_pm_lock(void);
|
|
int gps_uart_get_rxbuffer2(unsigned char * buff);
|
|
void gps_uart_send_raw_msg(unsigned char *msg, unsigned int len);
|
|
void gps_uart_send_raw_msg2(unsigned char *msg, unsigned int len);
|
|
unsigned int gps_vuart_get_rxbuffer(unsigned int index, unsigned char *msg);
|
|
void gps_module_init(void);
|
|
void gps_module_register_ipc_interrupt(void);
|
|
|
|
void quec_asr_gnss_default_cfg(void);
|
|
int quec_asr_agps_request(char* url,char** data ,unsigned int *len);
|
|
void gps_wake_host_gpio_init(void);
|
|
void asr_gnss_pin_init(void);
|
|
#endif
|