33、BDS B1I星历处理定义

\qquad 下面是HD-GR GNSS导航软件的BDS B1I星历处理相关定义:

// b1i_ephemeris.h -- Header file for the b1i_ephemeris.c file

/* 
 * Copyright (C) 2005 Andrew Greenberg
 * Distributed under the GNU GENERAL PUBLIC LICENSE (GPL) Version 2 (June 1991).
 * See the "COPYING" file distributed with this software for more information.
 */

/* Namuru GPS receiver project
 * Original : ephemeris.h
 * Modes    : None
 * version  : V1.0
 * date     : 21st/Dec/2006
 */

/* 
 * HD-GR GNSS receiver project
 * Modes    : Inherited the definitions of ephemeris.h and ephemeris.c in the 
 *            Namuru GPS receiver project V1.0 and made necessary adjustments 
 *            to adapt to the new RTOS and functions.
 * version  : V1.0
 * date     : xx/xx/2015
 */

#ifndef __B1I_EPHEMERIS_H__
#define __B1I_EPHEMERIS_H__

#include "main_ephemeris.h"

/*******************************************************************************
 * Definitions
 ******************************************************************************/

/*******************************************************************************
 * Declarations
 ******************************************************************************/

typedef struct {
	unsigned short  prn;            // which satellite we're talkin' about
	unsigned short  valid;          // Use me, I'm valid.
	unsigned short  have_subframe;  // 5bits of how many valid subframe we have;
									// have all = 0x1F (or 0x7 if no 4/5)
	unsigned short iode_new_flag;	// new iode flag

	// Subframe 1: 

	unsigned short sath1;	// satellite health flag					(1bit)
	unsigned short iodc;	// issue of data, clock						(5bit)
	unsigned short ura;		// user range accuracy index				(4bit)

	double toc;		// reference time: s				(max = 604792, 17b * 2^3)
	double tgd1;	// group delay differential 1: s			(2C 10b*10^ -10)
	double tgd2;	// group delay differential 2: s			(2C 10b*10^ -10)

	// 64 bits parameters for ionospheric delay model
	bc_ion_t ion;
	// double alf0;	// : s										(2C 8b * 2^ -30)
	// double alf1;	// : s/PI									(2C 8b * 2^ -27)
	// double alf2;	// : s/PI^2									(2C 8b * 2^ -24)
	// double alf3;	// : s/PI^3									(2C 8b * 2^ -24)
	// double bta0;	// : s										(2C 8b * 2^ +11)
	// double bta1;	// : s/PI									(2C 8b * 2^ +14)
	// double bta2;	// : s/PI^2									(2C 8b * 2^ +16)
	// double bta3;	// : s/PI^3									(2C 8b * 2^ +16)

	double af2;		// Squared term: s							(2C 11b * 2^ -66)
	double af0;		// Constant term: s/s						(2C 24b * 2^ -33)
	double af1;		// Linear term: s/s^2						(2C 22b * 2^ -50)

	unsigned short iode;	// issue of data, ephemeris					(5bit)

	// Subframe 2

	double dn;		// Delta n: mean motion difference: PI/s	(2C 16b * 2^-43)
	double cuc;		// C(uc): COS correction latitude: rad		(2C 18b * 2^-31)
	double ma;		// M(0): mean anomaly: PI					(2C 32b * 2^-31)
	double ety;		// e: eccentricity of orbit			  (max=0.5, 32b * 2^-33)
	double cus;		// C(us): SIN correctoin latitude: rad		(2C 18b * 2^-31)
	double crc;		// C(rc): COS correction radius: m			(2C 18b * 2^ -6)
	double crs;		// C(rs): SIN correction radius: m			(2C 18b * 2^ -6)
	double sqra;	// (A)^1/2: sqrt semimajor axis: m^0.5		   (32b * 2^-19)
	double toe;		// T(oe):ephemeris ref. time: s		 (max=604792, 17b * 2^3)
	unsigned long ul_toe;

	// Subframe 3: ephemeris

	double inc0;	// I(0): inclination angle @ ref. : PI		(2C 32b * 2^-31)
	double cic;		// C(ic): COS correction inclination: rad	(2C 18b * 2^-31)
	double omegadot;// OMEGADOT: rate of right asc. : PI/s		(2C 24b * 2^-43)
	double cis;		// C(is): SIN correction inclination: rad	(2C 18b * 2^-31)
	double idot;	// IDOT: rate of inclination angle: PI/s	(2C 14b * 2^-43)
	double w0;		// Omega(0): longitude of asc. node: PI		(2C 32b * 2^-31)
	double w;		// Omega: arguemnt of perigee: PI			(2C 32b * 2^-31)


	// D2 nav. message supports
	unsigned short have_sf1_page;	// 10bits of how many valid page in Subframe 1
									// we have, all = 0x3ff
	unsigned short iodc_new_flag;	// new iodc flag
	unsigned long ul_ety;
	signed long sl_af1, sl_cuc, sl_cic, sl_inc0, sl_omegadot, sl_w;

} b1i_ephemeris_t;


void b1i_ephemeris_task(OS_FLAGS channels_ready);
void b1i_clear_ephemeris(unsigned short ch);
void b1i_initialize_ephetable( void);

/*******************************************************************************
 * Externs
 ******************************************************************************/

extern b1i_ephemeris_t m_b1i_ephetable[B1I_MAX_SATELLITES];
extern unsigned short m_b1i_new_almanac;

#endif // __B1I_EPHEMERIS_H__

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值