📄 eph.h
字号:
/*****************************************************************
* *
* NAV Technology Co., Ltd. *
* Copyright 2005 *
* *
* Copying is prohibited except by written permission. *
* *
******************************************************************/
/*Header file*/
#ifndef _EPH_DEF_H_
#define _EPH_DEF_H_
#include "nvdef.h"
#if(PC_SIM==1)
#ifdef EPH_DEF
#define EXTERN_YY
#else
#define EXTERN_YY extern
#endif
#else
#ifdef EPH_DEF
#define EXTERN_YY far
#else
#define EXTERN_YY extern far
#endif
#endif
#define EPH_REQUEST_INTERVAL (30)
/*EPHEMERIS DATA
CONSTANT DEFINITION needed to scale ephemeris value as per ICD_GPS_200 */
// WORD 3 SUBFRAME 1
#define IODC_2_MSB_DELTA (double)(256.0) /* 2.0 ** (+8) */
#define SV_ACCURACY_DELTA (double)(1.0)
#define WN_DELTA (double)(1.0)
// WORD 7 SUBFRAME 1
#define TGD_DELTA (double)(1/((double)(1ul<<31))) /* 2.0 ** (-31) */
// WORD 8 SUBFRAME 1
#define TOC_DELTA (double)(16.0)
#define IODC_8_LSB_DELTA (double)(1.0)
// WORD 9 SUBFRAME 1
#define AF2_DELTA (double)(1/((double)(1ul<<30)*(double)(1ul<<25))) /* 2.0 ** (-55) */
#define AF1_DELTA (double)(1/((double)(1ul<<20)*(double)(1ul<<23))) /* 2.0 ** (-43) */
// WORD 10 SUBFRAME 1
#define SCALE_UP_AF0 (unsigned int)(1ul<<10)
#define AF0_DELTA (double)(1/((double)(1ul<<31)* (SCALE_UP_AF0))) /* 2.0**(-31) */
/* SUBFRAME 2 */
// WORD 3 SUBFRAME 2
#define CRS_DELTA (double)(1/((double)(1ul<<5))) /* 2.0 ** ( - 5) */
// WORD 4 SUBFRAME 2
#define DEL_N_DELTA (double)(PI/((double)(1ul<<20)*(double)(1ul<<23))) /* 2.0 ** ( - 43) */
// WORD 5 SUBFRAME 2
#define M0_24_LSB_DELTA (double)(PI/((double)(1ul<<31))) /* 2.0 ** ( - 31) */
// WORD 6 SUBFRAME 2
#define CUC_DELTA (double)(1/((double)(1ul<<29))) /* 2.0 ** ( - 29) */
// WORD 7 SUBFRAME 2
#define E_24_LSB_DELTA (double)(1/((double)(1ul<<30)*(double)(1ul<<3))) /* 2.0 ** ( - 33) */
// WORD 8 SUBFRAME 2
#define ROOT_A_8_MSB_DELTA (double)(32.0) /* 2.0 ** ( + 5) */
#define CUS_DELTA (double)(1/((double)(1ul<<29))) /* 2.0 ** ( - 29) */
// WORD 9 SUBFRAME 2
#define ROOT_A_24_LSB_DELTA (double)(1/((double)(1ul<<19))) /* 2.0 ** ( - 19) */
// WORD 10 SUBFRAME 2
#define TOE_DELTA (double)(16.0)
/* SUBFRAME 3*/
// WORD 3 SUBFRAME 3
#define CIC_DELTA (double)(1/((double)(1ul<<29))) /* 2.0 ** ( - 29) */
#define OMEGA_0_8_MSB_DELTA (double)(1/((double)(1ul<<7))) /* 2.0 ** ( - 7) */
// WORD 4 SUBFRAME 3
#define OMEGA_0_24_LSB_DELTA (double)(PI/((double)(1ul<<31))) /* 2.0 ** ( - 31) */
// WORD 5 SUBFRAME 3
#define CIS_DELTA (double)(1/((double)(1ul<<29))) /* 2.0 ** ( - 29)*/
#define I0_8_MSB_DELTA (double)(1/((double)(1ul<<7))) /* 2.0 ** ( - 7) */
// WORD 6 SUBFRAME 3
#define I0_24_LSB_DELTA (double)(PI/((double)(1ul<<31))) /* 2.0 ** ( - 31) */
// WORD 7 SUBFRAME 3
#define CRC_DELTA (double)(1/((double)(1ul<<5))) /* 2.0 ** ( - 5) */
#define W_8_MSB_DELTA (double)(1/((double)(1ul<<7))) /* 2.0 ** ( - 7) */
// WORD 8 SUBFRAME 3
#define W_24_LSB_DELTA (double)(PI/((double)(1ul<<31))) /* 2.0 ** ( - 31) */
// WORD 9 SUBFRAME 3
#define SCALE_UP_OMEGA_DOT (unsigned int)(1ul<<8)
#define OMEGA_DOT_DELTA (double)(PI/((double)(1ul<<23)*(double)(1ul<<20)\
*(double)(SCALE_UP_OMEGA_DOT))) /* 2.0 ** ( - 43) */
// WORD 10 SUBFRAME 3
#define I_DOT_DELTA (double)(PI/((double)(1ul<<23)*(double)(1ul<<20))) /* 2.0 ** ( - 43) */
typedef struct
{
unsigned char Svs;
unsigned char Bytes[72];
}RAW_EPHEM_TYPE;
typedef struct
{
unsigned int Wd3_10[8];
}SUBFRAME_ARRAY_TYPE;
typedef struct
{
double X;
double Y;
double Z;
}SV_XYZ_POS_TYPE;
typedef enum
{
NO_DATA = 0,
ALMANAC = 1,
EPHEMERID = 2
}SV_DSRC_TYPE;
typedef struct
{
double Root_A;
double N;
double C0;
double Sin_W;
double Cos_W;
double I_Dot;
double Omega;
double Omega_Dot;
double Crc;
double I_0;
double Cis;
double Omega_0;
double Cic;
double Toe;
double Cus;
double E;
double Cuc;
double M0;
double Crs;
unsigned char Curve_Interval;
SV_DSRC_TYPE SV_Data_Source;
unsigned int IODE;
unsigned char Valid_Ephem_Decoded;
double Nav_Delta_T_Rel;
} ORBIT_PARAM_TYPE;
typedef struct
{
double Af0;
double Af1;
double Af2;
double Toc;
double Tgd;
} CLOCK_PARAM_TYPE;
typedef struct
{
CLOCK_PARAM_TYPE Clk_Param[MAX_SATS_NUM];
ORBIT_PARAM_TYPE Orbt_Param[MAX_SATS_NUM];
unsigned char Ephem_Valid[MAX_SATS_NUM];
unsigned char Ephem_Request;
unsigned char Ephem_Request_PRN;
unsigned int Seconds_After_Request;
}GNSS_EPHEM_TYPE;
//#pragma pack (pop)
EXTERN_YY void readRawEphemMeas( RAW_EPHEM_TYPE blks, GNSS_EPHEM_TYPE *ephem);
#undef EXTERN_YY
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -