?? gpssub.h
字號:
#include <math.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <mem.h>
//typedef unsigned char Boolean ;
#define True 1
#define False 0
typedef struct
{
double B; /* Unit Rad */
double L;
double H; /* Unit Metre */
}GeoCoor;
typedef struct
{
double X; /* Unit Metre */
double Y;
double Z;
}XYZCoor;
typedef struct
{
char Name[ ] ; /*點名*/
XYZCoor XYZ; /*空間直角坐標(近似) */
GeoCoor BLH; /*已知大地坐標*/
int No ; /*代碼,0-BLH已知,1-BL-已知,2-H已知,3-BLH未知*/
}PointType ;
typedef struct
{
int P1 , P2 ; /*基線向量的起點和終點序號*/
double Dx , Dy , Dz ; /*基線向量三維坐標差*/
double far *P ; /*基線向量觀測值的協(xié)方差陣*/
}BlineType ;
typedef struct
{
char Name [5] ; /* 橢球名稱 */
double A , /* 橢球長半軸 */
Alfa, /* Alfa為扁率 */
E2 , /* 第一偏心率的平方 */
UTM ; /* 中央子午線投影長度比為0.9996,其他為1 */
double L0 , /* L0為中央子午線(rad) */
X0 , /* X0、Y0分別為X、Y坐標加常數(shù)(km)*/
Y0,
H0 ; /* H0為大地高(m) */
double DN ; /* DN為高程(m) */
} CoordSysType ;
typedef struct
{
double azi; /* unit RAD */
double elev;
double r; /* unit meters */
} AngleCoor;
typedef struct
{
double GDOP;
double PDOP;
double HDOP;
double VDOP;
double TDOP;
}DOPStruct;
typedef struct /* standard ephemerus type for ALL programs */
{
long TLW;
long HOW;
char URA;
int prn;
short wn; /* GPS week number */
long tow; /* sec of GPS week */
double tgd; /* grup delay (s)*/
long aodc; /* clock date issue */
long toc; /* clock data reference time(sec) */
double af2, /* clock correction(sec/sec2) */
af1, /* clock correction(sec/sec) */
af0; /* clock correction(sec) */
double alph0; /* ionospheric parameter(second) */
alph1; /* ionospheric parameter(sec/semi-circles) */
alph2; /* ionospheric parameter(s/semi-circles2) */
alph3; /* ionospheric parameter(s/semi-circles3) */
belta0; /* ionospheric parameter(s) */
belta1; /* ionospheric parameter(s/semi-circles) */
belta2; /* ionospheric parameter(s/semi-circles2) */
belta3; /* ionospheric parameter(s/semi-circles3) */
long aode,aode3; /* orbit date issue in subframes 2 and 3 */
double deltan; /* mean anomoly correction
semi-circles per sec*pi = rads */
double m0, /* mean anomoly at ref time
semi-circles*pi = rads */
e, /* eccentricity */
roota; /* sqr root a ( metres 1/2 ) */
long toe; /* ref time (sec) */
double cic, /* harmonic correction term(rads) */
crc, /* harmonic correction term(metres) */
cis, /* harmonic correction term(rads) */
crs, /* harmonic correction term(metres) */
cuc, /* harmonic correction term(rads) */
cus; /* harmonic correction term(rads) */
double omega0, /* longitude of asccending node
semi-circles*pi = rads */
omega, /* argument of perigee
semi-circles*pi */
i0; /* inclination angle at ref time
semi-circles*pi */
double omegadot, /* rate of right ascension
semi-circles/sec*pi */
idot; /* rate of inclination
semi-circles/sec*pi */
int accuracy, /* User range accuracy */
health, /* Satellite health */
fit; /* Curve fit interval */
char prnum; /* sv prn number */
char res; /* Reserved character */
unsigned checksum; /* check sum */
} SVText;
void BLH_XYZ ( CoordSysType Cs, double B, double L, double H,
double *X, double *Y, double *Z );
void BLHtoXYZ(GeoCoor *GeoPoint,XYZCoor *ECEFPoint);
void XYZ_BLH ( CoordSysType Cs ,double X, double Y, double Z,
double *B, double *L, double *H );
void XYZtoBLH(XYZCoor *ECEFPoint,GeoCoor *GeoPoint);
void GetSVPos(SVText *Text,double t,XYZCoor *ECEF);
void ECEFtoObs(XYZCoor *ECEFPoint,XYZCoor XYZObs0,GeoCoor GeoObs0,
XYZCoor *ObsPoint);
void XYZtoAngle(XYZCoor *Input, AngleCoor *Result);
void AnlgetoXYZ(AngleCoor *Input, XYZCoor *Result);
void ComputeDOP0(AngleCoor SV[4],DOPStruct *DOP);
void ComputeDOP1(XYZCoor SV[4],DOPStruct *DOP);
void ComputeDOP2(XYZCoor Obs,XYZCoor SV[4],DOPStruct *DOP);
void ComputeDOP3(AngleCoor SV[4],DOPStruct *DOP);
void PR_Pos(int Num,XYZCoor InitUser,double p1[],XYZCoor S[],double Bs[],XYZCoor *Xu);
void DMStoRAD(int Deg, int Min, double Sec, double *Rad );
void RADtoDMS ( double Rad , int *Deg , int *Min , double *Sec);
double GetAngleXY(double dx , double dy );
int GetCoordSys ( CoordSysType *Cs );
void GaussXYBLH ( CoordSysType Cs,double X, double Y, double H1,
double *B, double *L, double *H );
void GaussBLHXY ( CoordSysType Cs, double B, double L, double H1,
double *X, double *Y, double *H);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -