Archived
SUPPORT:
1. be able to calculate the sat pos of BDS & Galileo 2. be able to Single postiting by GPS & Galileo
This commit is contained in:
1 parent
f29614d834
commit
aba6c009ab
13 files changed
+1830
-947
No files matched your search
+177
-150
@@ -1,6 +1,7 @@
|
||||
#ifndef _PUBLIC_H_
|
||||
#define _PUBLIC_H_
|
||||
/*---------------------------------- FOR UI ----------------------------------*/
|
||||
|
||||
/* --------------------------------- FOR UI --------------------------------- */
|
||||
//FILE SELECT DIALOGS
|
||||
#define FILEEXOP TEXT("RINEX OBS(*.o*.*.*obs.*.*d)\0*.*o;*.*obs;*.*d\0"\
|
||||
"All Files(*.*)\0*.*\0\0");
|
||||
@@ -50,104 +51,130 @@
|
||||
#define Earth_e 7.2921151467e-5
|
||||
|
||||
|
||||
/* ----------------------------- GPS OBSERV TYPE ---------------------------- */
|
||||
#define C1C 1
|
||||
#define C1S 2
|
||||
#define C1L 3
|
||||
#define C1X 4
|
||||
#define C1P 5
|
||||
#define C1W 6
|
||||
#define C1Y 7
|
||||
#define C1M 8
|
||||
/* ----------------------------- GNSS OBSERV TYPE --------------------------- */
|
||||
#define C1C 100
|
||||
#define C1S 101
|
||||
#define C1L 102
|
||||
#define C1X 103
|
||||
#define C1P 104
|
||||
#define C1W 105
|
||||
#define C1Y 106
|
||||
#define C1M 107
|
||||
#define C1A 108
|
||||
#define C1B 109
|
||||
#define C1Z 110
|
||||
|
||||
#define C2C 9
|
||||
#define C2S 10
|
||||
#define C2L 11
|
||||
#define C2X 12
|
||||
#define C2P 13
|
||||
#define C2W 14
|
||||
#define C2Y 15
|
||||
#define C2M 16
|
||||
#define C2C 200
|
||||
#define C2S 201
|
||||
#define C2L 202
|
||||
#define C2X 203
|
||||
#define C2P 204
|
||||
#define C2W 205
|
||||
#define C2Y 206
|
||||
#define C2M 207
|
||||
#define C2I 208
|
||||
#define C2Q 209
|
||||
#define C2X 210
|
||||
|
||||
#define C5I 17
|
||||
#define C5Q 18
|
||||
#define C5X 19
|
||||
#define C5I 500
|
||||
#define C5Q 501
|
||||
#define C5X 502
|
||||
|
||||
#define C6A 600
|
||||
#define C6B 601
|
||||
#define C6C 602
|
||||
#define C6X 603
|
||||
#define C6Z 604
|
||||
|
||||
#define C7I 700
|
||||
#define C7Q 701
|
||||
#define C7X 702
|
||||
#define C7D 703
|
||||
#define C7P 704
|
||||
#define C7Z 705
|
||||
|
||||
#define C8I 800
|
||||
#define C8Q 801
|
||||
#define C8X 802
|
||||
|
||||
/* ------------------------------- GNSS CODE -------------------------------- */
|
||||
#define GPS 0
|
||||
#define BDS 1
|
||||
#define CAL 2
|
||||
#define GLO 3
|
||||
#define SBAS 4
|
||||
#define GPS 03
|
||||
#define BDS 07
|
||||
#define GAL 11
|
||||
#define GLO 13
|
||||
#define SBAS 17
|
||||
|
||||
|
||||
/* ------------------------------ FOR CALMOD.H ------------------------------ */
|
||||
#define MAXRINEX 1000
|
||||
#define DAYSEC 86400
|
||||
|
||||
//卫星位置结构体
|
||||
typedef struct
|
||||
{
|
||||
double X[36];
|
||||
double Y[36];
|
||||
double Z[36];
|
||||
double deltat[36];//改正前的信号传播时间
|
||||
double delta_t[36];//改正后的信号传播时间
|
||||
double delta_clk[36];
|
||||
}pos_ts;
|
||||
//satellite position & clock bias structure
|
||||
typedef struct
|
||||
{
|
||||
double X;
|
||||
double Y;
|
||||
double Z;
|
||||
double deltat;
|
||||
double delta_t;
|
||||
double delta_clk;
|
||||
}pos_ts;
|
||||
|
||||
//测站位置结构体
|
||||
typedef struct
|
||||
{
|
||||
double X;
|
||||
double Y;
|
||||
double Z;
|
||||
double B;
|
||||
double L;
|
||||
double H;
|
||||
double delta_TR;
|
||||
}stations;
|
||||
//经纬高结构体
|
||||
typedef struct
|
||||
{
|
||||
double B;
|
||||
int B_d;
|
||||
int B_m;
|
||||
int B_s;
|
||||
double L;
|
||||
int L_d;
|
||||
int L_m;
|
||||
int L_s;
|
||||
double H;
|
||||
}blhs;
|
||||
//东北天结构体
|
||||
typedef struct
|
||||
{
|
||||
double E;
|
||||
double N;
|
||||
double U;
|
||||
}enus;
|
||||
//高度方位角结构体
|
||||
typedef struct
|
||||
{
|
||||
double R;
|
||||
double A;
|
||||
double H;
|
||||
}rahs;
|
||||
//receiver station position & clock bias structure
|
||||
typedef struct
|
||||
{
|
||||
double X;
|
||||
double Y;
|
||||
double Z;
|
||||
double B;
|
||||
double L;
|
||||
double H;
|
||||
double delta_TR;
|
||||
}stations;
|
||||
|
||||
//longitude & latitude structure
|
||||
typedef struct
|
||||
{
|
||||
double B;
|
||||
int B_d;
|
||||
int B_m;
|
||||
int B_s;
|
||||
double L;
|
||||
int L_d;
|
||||
int L_m;
|
||||
int L_s;
|
||||
double H;
|
||||
}blhs;
|
||||
|
||||
//local Cartesian coordinates coordinate system structure
|
||||
typedef struct
|
||||
{
|
||||
double E;
|
||||
double N;
|
||||
double U;
|
||||
}enus;
|
||||
|
||||
//satellite azimuth angle structure
|
||||
typedef struct
|
||||
{
|
||||
double R;
|
||||
double A;
|
||||
double H;
|
||||
}rahs;
|
||||
/* ------------------------------- FOR READ.H ------------------------------- */
|
||||
//导航头文件结构体
|
||||
|
||||
//header data of file of nav
|
||||
typedef struct nav_head
|
||||
{
|
||||
double ver;//rinex 版本号
|
||||
char type[20];//读取的数据类型
|
||||
double ION_GPSA[4];//8个电离层参数
|
||||
double ver;//rinex
|
||||
char type[20];
|
||||
double ION_GPSA[4];
|
||||
double ION_GPSB[4];
|
||||
double ION_BDSA[4];//8个电离层参数
|
||||
double ION_BDSA[4];
|
||||
double ION_BDSB[4];
|
||||
double ION_QZSA[4];//8个电离层参数
|
||||
double ION_QZSA[4];
|
||||
double ION_QZSB[4];
|
||||
double ION_IRNA[4];//8个电离层参数
|
||||
double ION_IRNA[4];
|
||||
double ION_IRNB[4];
|
||||
double GPUT[4];
|
||||
double GLUT[4];
|
||||
@@ -159,76 +186,76 @@ typedef struct nav_head
|
||||
int leap;
|
||||
}nav_head, *pnav_head;
|
||||
|
||||
//导航数据结构体
|
||||
//body data of file of nav: GPS BeiDou Galileo
|
||||
typedef struct nav_body
|
||||
{
|
||||
|
||||
int sPRN_GPS;//GPS卫星PRN
|
||||
int sPRN_BDS;//GPS卫星PRN
|
||||
int TOC_Y;//年
|
||||
int TOC_M;//月
|
||||
int TOC_D;//日
|
||||
int TOC_H;//时
|
||||
int TOC_Min;//分
|
||||
int TOC_Sec;//秒
|
||||
double sa0;//卫星钟差
|
||||
double sa1;//卫星钟偏
|
||||
double sa2;//卫星钟漂
|
||||
int sPRN_GPS; int sPRN_BDS; int sPRN_GAL;
|
||||
int TOC_Y;
|
||||
int TOC_M;
|
||||
int TOC_D;
|
||||
int TOC_H;
|
||||
int TOC_Min;
|
||||
int TOC_Sec;
|
||||
double sa0;
|
||||
double sa1;
|
||||
double sa2;
|
||||
|
||||
double IODE;//数据、星历发布时间(数据期龄)
|
||||
double Crs;//轨道半径的正弦调和改正项的振幅(单位:m)
|
||||
double deltan;//卫星平均运动速率与计算值之差(rad/s)
|
||||
double M0;//参考时间的平近点角(rad)
|
||||
double IODE; double AODE;
|
||||
double Crs;
|
||||
double deltan;
|
||||
double M0;
|
||||
|
||||
double Cuc;//维度幅角的余弦调和改正项的振幅(rad)
|
||||
double e;//轨道偏心率
|
||||
double Cus;//轨道幅角的正弦调和改正项的振幅(rad)
|
||||
double sqrtA;//长半轴平方根
|
||||
double Cuc;
|
||||
double e;
|
||||
double Cus;
|
||||
double sqrtA;
|
||||
|
||||
double TOE;//星历的参考时刻(GPS周内秒)
|
||||
double Cic;//轨道倾角的余弦调和改正项的振幅(rad)
|
||||
double OMEGA;//参考时刻的升交点赤经
|
||||
double Cis;//维度倾角的正弦调和改正项的振幅(rad)
|
||||
double TOE;
|
||||
double Cic;
|
||||
double OMEGA;
|
||||
double Cis;
|
||||
|
||||
double i0;//参考时间的轨道倾角(rad)
|
||||
double Crc;//轨道平径的余弦调和改正项的振幅(m)
|
||||
double omega;//近地点角距
|
||||
double deltaomega;//升交点赤经变化率(rad)
|
||||
double i0;
|
||||
double Crc;
|
||||
double omega;
|
||||
double deltaomega;
|
||||
|
||||
double IDOT;//近地点角距(rad/s)
|
||||
double L2code;//L2上的码
|
||||
double GPSweek;//GPS周,于TOE一同表示
|
||||
double L2Pflag;//L2,p码数据标记
|
||||
double IDOT;
|
||||
double L2code; int Datasource;
|
||||
double GPSweek; double BDTweek; double GALweek;
|
||||
double L2Pflag;
|
||||
|
||||
double sACC;//卫星精度
|
||||
double sHEA;//卫星健康状态
|
||||
double TGD;//sec
|
||||
double IODC;//钟的数据龄期
|
||||
double sACC;
|
||||
double sHEA;
|
||||
double TGD; double TGD1; double BGDa;
|
||||
double IODC; double TGD2; double BGDb;
|
||||
|
||||
double TTN;//电文发送时间
|
||||
double fit;//拟合区间
|
||||
double spare1;//空
|
||||
double spare2;//空
|
||||
double TTN;
|
||||
double fit; double AODC;
|
||||
double spare1;
|
||||
double spare2;
|
||||
|
||||
}nav_body, *pnav_body;
|
||||
|
||||
//观测值头文件结构体
|
||||
//header data of file of obs
|
||||
typedef struct obs_head
|
||||
{
|
||||
double ver;//RINEX文件版本号
|
||||
char type[30];//文件类型
|
||||
double apX;//测站近似位置XYZ(WGS84)
|
||||
double ver;
|
||||
char type[30];
|
||||
double apX;
|
||||
double apY;
|
||||
double apZ;
|
||||
double ANTH;//天线高
|
||||
double ANTdeltaE;//天线中心对于测站标志在东方向上的偏移量
|
||||
double ANTdeltaN;//天线中心对于测站标志在北方向上的偏移量
|
||||
int obstypenum_gps;//GPS观测值类型数量
|
||||
double ANTH;
|
||||
double ANTdeltaE;
|
||||
double ANTdeltaN;
|
||||
int obstypenum_gps;
|
||||
int obstypenum_bds;
|
||||
int obscode_gps[36];//rinex3.04GPS观测值类型列表
|
||||
int obscode_bds[36];
|
||||
double interval;//观测值的历元间隔
|
||||
int f_y;//第一个观测记录的时刻
|
||||
int obstypenum_gal;
|
||||
int obscode_gps[26];
|
||||
int obscode_bds[26];
|
||||
int obscode_gal[26];
|
||||
double interval;
|
||||
int f_y;
|
||||
int f_m;
|
||||
int f_d;
|
||||
int f_h;
|
||||
@@ -240,35 +267,35 @@ typedef struct obs_head
|
||||
int l_h;
|
||||
int l_min;
|
||||
double l_sec;
|
||||
char tsys[5];//时间系统
|
||||
char tsys[5];//time system
|
||||
}obs_head,*pobs_head;
|
||||
|
||||
|
||||
//观测值历元数据结构体
|
||||
//epoch data of file of obs
|
||||
typedef struct obs_epoch
|
||||
{
|
||||
//观测历元时刻
|
||||
int y;
|
||||
int m;
|
||||
int d;
|
||||
int h;
|
||||
int min;
|
||||
double sec;
|
||||
int p_flag;//历元标志
|
||||
int sat_num;//当前历元所观测到的卫星数量
|
||||
int gps_num;//当前历元所观测到的GPS卫星数量
|
||||
int bds_num;//当前历元所观测到的BDS卫星数量
|
||||
int sPRN[84];//当前历元所能观测到的卫星的PRN列表
|
||||
int sPRN_GPS[25];
|
||||
int sPRN_BDS[36];
|
||||
double sec;//epoch time
|
||||
int p_flag;//epoch flag
|
||||
int sat_num;//the total number of obsable sat
|
||||
int gps_num;//the total gps sat
|
||||
int bds_num;//the total bds sat
|
||||
int gal_num;//the total galileo sat
|
||||
int sPRN[84];//total sprn of obs sat
|
||||
int sPRN_GPS[30];
|
||||
int sPRN_BDS[60];
|
||||
int sPRN_GAL[30];
|
||||
}obs_epoch,*pobs_epoch;
|
||||
|
||||
|
||||
//观测值数据结构体
|
||||
//body data of file of obs
|
||||
typedef struct obs_body
|
||||
{
|
||||
double obs_gps[100][24];//GPS观测值
|
||||
double obs_bds[100][24];//BDS观测值
|
||||
double obs_gps[30][26];//GPS obs data
|
||||
double obs_bds[60][26];//BDS obs data
|
||||
double obs_gal[30][26];//GALILEO obs data
|
||||
}obs_body,*pobs_body;
|
||||
/* -------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
Reference in new issue
Block a user