android13/hardware/rockchip/gps/TD1030HAL/tdgnss.h

166 lines
3.2 KiB
C
Executable File

#ifndef __TDGNSS_H__
#define __TDGNSS_H__
#include <hardware/gps.h>
#include <cutils/log.h>
#define TD_LOG_TAG "TD1030DBG"
#define D(...) ALOGD(__VA_ARGS__)
#define DEFAULT_BDPRNADD 200
#define DEFAULT_UART_BAUD_RATE 115200
#define DEFAULT_GNSS_MODE 3
#define DEFAULT_UART_DRIVER "/dev/ttyS0"
#define CMD_BD_COLD "$CCSIR,1,1*48\r\n"
#define CMD_GPS_COLD "$CCSIR,2,1*4B\r\n"
#define CMD_BD_GP_COLD "$CCSIR,3,1*4A\r\n"
#define CMD_GL_COLD "$CCSIR,4,1*4D\r\n"
#define CMD_BD_GL_COLD "$CCSIR,5,1*4C\r\n"
#define CMD_GP_GL_COLD "$CCSIR,6,1*4F\r\n"
#define CMD_BD_HOT "$CCSIR,1,3*4A\r\n"
#define CMD_GPS_HOT "$CCSIR,2,3*49\r\n"
#define CMD_BD_GP_HOT "$CCSIR,3,3*48\r\n"
#define CMD_GL_HOT "$CCSIR,4,3*4F\r\n"
#define CMD_BD_GL_HOT "$CCSIR,5,3*4E\r\n"
#define CMD_GP_GL_HOT "$CCSIR,6,3*4D\r\n"
#define SET_CMD_TDMODULE_LEN 15
#define TD_CONFIGFILE_PATH "/vendor/etc/tdgnss.conf"
#define TD_AGPSFILE_PATH "/storage/.agpsdata"
#define TD_CONFIGFILE_NUM 25
#define TD_OFF 0
#define TD_ON 1
//#define TRUE 1
//#define FALSE 0
struct configfile_item
{
char *name;
char *value;
};
enum
{
MODE_OFF = 0,
MODE_GPS = 1,
MODE_BD = 2,
MODE_BD_GPS = 3,
MODE_GL = 4,
MODE_BD_GL = 5,
MODE_GP_GL = 6,
};
enum
{
CMD_QUIT = 0,
CMD_START = 1,
CMD_STOP = 2,
CMD_ENABLE_GPS,
CMD_ENABLE_BD,
CMD_ENABLE_GL,
CMD_ENABLE_BD_GP,
CMD_ENABLE_GP_GL,
CMD_ENABLE_BD_GL,
CMD_START_AGPS,
CMD_AGPS,
BD_GP_COLD,
GP_GL_COLD,
BD_GL_COLD,
BD_COLD,
GPS_COLD,
GL_COLD,
CMD_UPDATE_TD,
CMD_SENT_TO_CHIP,
};
enum nmea_state
{
NMEA_OFF = 0,
NMEA_BDRMC,
NMEA_GPRMC,
NMEA_GNRMC,
NMEA_GLRMC,
NMEA_1ST_GNGSA,
NMEA_2ND_GNGSA,
NMEA_OTHER,
};
enum debug_mask_bit
{
D_TOKEN = 0,
D_GSV,
D_GSA,
D_NMEA,
D_FIX,
D_FUCTION,
D_CONFIGFILE,
};
typedef struct
{
int init;
int fd;
GpsCallbacks callbacks;
GpsStatus status;
pthread_t thread;
int control[2];
} GpsState;
typedef struct
{
int agps_mode;
int nv_mode;
int work;
int on_need;
} TDMODE;
struct __updatefileinfo{
unsigned char updatefiletype;
};
struct __strconfigfile{
char projectname[100];
char uartpath[100];
};
typedef struct _TD1030Config
{
struct __strconfigfile strconfigfile;
struct __updatefileinfo updatefileinfo;
int gnss_mode;
int fast_fix;
int agnss_enable;
int uartboadrate;
int bdprnaddr;
int toallprn;
unsigned char power_flag;
unsigned char recvgpgsv;
unsigned char recvgpgsa;
unsigned int debugmask;
} TD1030Config;
struct utc_t{
int year;
int month;
int day;
int hour;
int min;
int sec;
};
int TdUartOpen(void);
void SetApUartbaud(int baud);
extern TD1030Config tdconfig;
unsigned int GetDebugMaskBit(enum debug_mask_bit bit);
void Creat_update_thread(void);
void SendResultToApp(int res);
#endif