#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