⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gps.h

📁 S3C2410中bluetooth驱动源码,在ADS1.2下编译工程通过,附文档.
💻 H
📖 第 1 页 / 共 2 页
字号:

#define TSIP_VERNUM "7.68a"


#define GPS_PI 	(3.1415926535898)
#define	D2R		(GPS_PI/180.0)
#define	R2D		(180.0/GPS_PI)
#define WEEK 	(604800.)
#define MAXCHAN  (8)

/* control characters for TSIP packets */
#define DLE 	(0x10)
#define ETX 	(0x03)

#define MAX_RPTBUF (256)
#define OUTBUFSIZE  (1000)

extern char outbuf[OUTBUFSIZE];

/* values of TSIPPKT.status */
#define TSIP_PARSED_EMPTY 	0
#define TSIP_PARSED_FULL 	1
#define TSIP_PARSED_DLE_1 	2
#define TSIP_PARSED_DATA 	3
#define TSIP_PARSED_DLE_2 	4

typedef struct
{
    unsigned char latdir;	// 纬度
    char lat[15];
    unsigned char londir;	// 经度
    char lon[15];
    unsigned char altdir;	// 高度,海拔
    char alt[15];
    
 }POSITION;
 
 
 typedef struct
{
    unsigned char eastdir;
    char evel[15];
    unsigned char northdir;
    char nvel[15];
    unsigned char updir;
    char uvel[15];
    
 }VELOCITY;
 
   
/* TSIP packets have the following structure, whether report or command. */
typedef struct {
	short
		counter,				/* counter */
      len;				/* size of buf; < MAX_RPTBUF unsigned chars */
	unsigned char
		status,			 /* TSIP packet format/parse status */
		code;				/* TSIP code */
	unsigned char
		buf[MAX_RPTBUF];	/* report or command string */
} TSIPPKT;

/* TSIP binary data structures */
typedef struct {
	unsigned char
		t_oa_raw, SV_health;
	float
		e, t_oa, i_0, OMEGADOT, sqrt_A,
		OMEGA_0, omega, M_0, a_f0, a_f1,
		Axis, n, OMEGA_n, ODOT_n, t_zc;
	short
		weeknum, wn_oa;
} ALM_INFO;

typedef struct {     /*  Almanac health page (25) parameters  */
	unsigned char
		WN_a, SV_health[32], t_oa;
} ALH_PARMS;

typedef struct {     /*  Universal Coordinated Time (UTC) parms */
	double
		A_0;
	float
		A_1;
	short
		delta_t_LS;
	float
		t_ot;
	short
		WN_t, WN_LSF, DN, delta_t_LSF;
} UTC_INFO;

typedef struct {      /*  Ionospheric info (float)  */
	float
		alpha_0, alpha_1, alpha_2, alpha_3,
		beta_0, beta_1, beta_2, beta_3;
} ION_INFO;

typedef struct {      /*  Subframe 1 info (float)  */
	short
		weeknum;
	unsigned char
		codeL2, L2Pdata, SVacc_raw, SV_health;
	short
		IODC;
	float
		T_GD, t_oc, a_f2, a_f1, a_f0, SVacc;
} EPHEM_CLOCK;

typedef	struct {     /*  Ephemeris info (float)  */
	unsigned char
		IODE, fit_interval;
	float
		C_rs, delta_n;
	double
		M_0;
	float
		C_uc;
	double
		e;
	float
		C_us;
	double
		sqrt_A;
	float
		t_oe, C_ic;
	double
		OMEGA_0;
	float
		C_is;
	double
		i_0;
	float
		C_rc;
	double
		omega;
	float
		OMEGADOT, IDOT;
	double
		Axis, n, r1me2, OMEGA_n, ODOT_n;
} EPHEM_ORBIT;

typedef struct {     /* Navigation data structure */
	short
		sv_number;     /* SV number (0 = no entry) */
	float
		t_ephem;       /* time of ephemeris collection */
	EPHEM_CLOCK
		ephclk;        /* subframe 1 data */
	EPHEM_ORBIT
		ephorb;        /* ephemeris data */
} NAV_INFO;

typedef struct {
	float
		flt1;
	unsigned char
		chr1, chr2, chr3, chr4;
	float
		flt2, flt3, flt4, flt5;
	unsigned char
		chr5;
} TSIP_POS_FILT_PARMS;

typedef struct {
	unsigned char
		bSubcode,
		operating_mode,
		dgps_mode,
		dyn_code,
		trackmode;
	float
		elev_mask,
		cno_mask,
		dop_mask,
		dop_switch;
	unsigned char
		dgps_age_limit;
} TSIP_RCVR_CFG;

struct cph1_datablock_struct {
	unsigned char prn, flagbyte, reserved;
	signed char elev;
	short azim;
	unsigned char signal_strength;
	double pseudorange, carrier_phase;
	float Doppler;
};

struct cph1_msg_struct {
	unsigned char subcode, preamble;
	unsigned short length;
	double receive_time, clock_offset;
	unsigned char numsvs;
	struct cph1_datablock_struct db[MAXCHAN];
	unsigned short checksum;
	unsigned char postamble;
};

/*******************        PROTOYPES            *****************/
/*******************        PROTOYPES            *****************/
/*******************        PROTOYPES            *****************/

/*
 * This routine sends a command to the receiver.  It calls a
 * function sendb() that must be supplied by the user.  All
 * calls to this subroutine are within TSIP_IFC.C.
 */

void send_cmd
	(TSIPPKT *cmd, short sendb(unsigned char bb));

/* functions to add a byte from the receiver and "unstuffs" it */
void tsip_input_proc (TSIPPKT *rpt, char newbyte);

/**/
/**/
/* prototypes for command-encode primitives with suffix convention:  */
/* c = clear, s = set, q = query, e = enable, d = disable            */
void cmd_0x1Dc (TSIPPKT *cmd);
void cmd_0x1Ds (TSIPPKT *cmd,
	float offset);
void cmd_0x1E  (TSIPPKT *cmd,
	unsigned char reset_type);
void cmd_0x1F  (TSIPPKT *cmd);
void cmd_0x20  (TSIPPKT *cmd, unsigned char sv_prn);
void cmd_0x21  (TSIPPKT *cmd);
void cmd_0x22  (TSIPPKT *cmd,
	unsigned char nav_code);
void cmd_0x23  (TSIPPKT *cmd,
	float pos_ECEF[3]);
void cmd_0x24  (TSIPPKT *cmd);
void cmd_0x25  (TSIPPKT *cmd);
void cmd_0x26  (TSIPPKT *cmd);
void cmd_0x27  (TSIPPKT *cmd);
void cmd_0x28  (TSIPPKT *cmd);
void cmd_0x29  (TSIPPKT *cmd);
void cmd_0x2As  (TSIPPKT *cmd,
	float alt);
void cmd_0x2Ad  (TSIPPKT *cmd);
void cmd_0x2Aq  (TSIPPKT *cmd);
void cmd_0x2B  (TSIPPKT *cmd,
	float lat,
	float lon,
	float alt);
void cmd_0x2Cq (TSIPPKT *cmd);
void cmd_0x2Cs (TSIPPKT *cmd,
	unsigned char dyn_code,
	float elev_mask,
	float snr,
	float dop_mask,
	float dop_switch);
void cmd_0x2D  (TSIPPKT *cmd);
void cmd_0x2E  (TSIPPKT *cmd,
	float time_of_week,
	short week_num);
void cmd_0x2F  (TSIPPKT *cmd);
void cmd_0x31  (TSIPPKT *cmd,
	float ECEF_pos[3]);
void cmd_0x32  (TSIPPKT *cmd, 
	float lat,
	float lon,
	float alt);
void cmd_0x35q (TSIPPKT *cmd);
void cmd_0x35s (TSIPPKT *cmd, 
	unsigned char pos_code,
	unsigned char vel_code,
	unsigned char time_code,
	unsigned char opts_code);
void cmd_0x37  (TSIPPKT *cmd);
void cmd_0x38q (TSIPPKT *cmd, 
	unsigned char data_type,
	unsigned char sv_prn);
void cmd_0x38s (TSIPPKT *cmd, 
	unsigned char data_type,
	unsigned char sv_prn,
	unsigned char data_length,
	unsigned char *databuf);
void cmd_0x39  (TSIPPKT *cmd, 
	unsigned char op_code,
	unsigned char sv_prn);
void cmd_0x3A  (TSIPPKT *cmd, 
	unsigned char sv_prn);
void cmd_0x3B  (TSIPPKT *cmd, 
	unsigned char sv_prn);
void cmd_0x3C  (TSIPPKT *cmd, 
	unsigned char sv_prn);
void cmd_0x3Dq (TSIPPKT *cmd);
void cmd_0x3Ds (TSIPPKT *cmd, 
	unsigned char baud_out,
	unsigned char baud_inp,
	unsigned char char_code,
	unsigned char stopbitcode,
	unsigned char output_mode,
	unsigned char input_mode);
void cmd_0x3E  (TSIPPKT *cmd);
void cmd_0x62q (TSIPPKT *cmd);
void cmd_0x62s (TSIPPKT *cmd,
	unsigned char dgps_mode);
void cmd_0x65  (TSIPPKT *cmd,
	unsigned char sv_prn);
void cmd_0x6Eq (TSIPPKT *cmd,
	unsigned char subcode);
void cmd_0x6Ed (TSIPPKT *cmd,
	unsigned char subcode);
void cmd_0x6Es (TSIPPKT *cmd,
	unsigned char subcode,
	unsigned char interval);
void cmd_0x70q  (TSIPPKT *cmd);
void cmd_0x70s  (TSIPPKT *cmd,
	unsigned char dyn_switch,
	unsigned char static_switch,
	unsigned char alt_switch,
	unsigned char extra) ;
void cmd_0x71q (TSIPPKT *cmd);
void cmd_0x71s (TSIPPKT *cmd,
	short pf,
	TSIP_POS_FILT_PARMS *params);
void cmd_0x73q (TSIPPKT *cmd);
void cmd_0x73c (TSIPPKT *cmd);
void cmd_0x73d (TSIPPKT *cmd);
void cmd_0x73s (TSIPPKT *cmd,
	float alt_filter_parm);
void cmd_0x77q (TSIPPKT *cmd);
void cmd_0x77s (TSIPPKT *cmd,
	short dgps_max_age);
void cmd_0x7A_0s (TSIPPKT *cmd,
	unsigned char nmea_interval,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -