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

📄 sv.h

📁 GPS数据处理源代码
💻 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
/********* type definitions *********/

typedef char  i1;  /* data type allowing for the use of  8 bits. */
typedef short i2;  /* data type allowing for the use of 16 bits. */
typedef long  i4;  /* data type allowing for the use of 32 bits. */

typedef unsigned char  u1;          /* unsigned  8 bits */
typedef unsigned short u2;          /* unsigned 16 bits */
typedef unsigned long  u4;         /* unsigned 32 bits */
typedef float    r4;
typedef double   r8;

typedef struct
{
  double B;  /* Unit Degree */
  double L;
  double H;  /* Unit Metre */
}GeoCoor;

typedef struct
{
  double X;   /* Unit Metre */
  double Y;
  double Z;
}XYZCoor;

typedef struct
{
  double azi;  /* unit Degree */
  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;

#define PI          3.1415926535898      /* GPS value of Pi */
#define WE          7.2921151467E-5      /* WGS84 earths rotation rate (rads/sec) */

#define SQRMU       1.99649818432174E7   /* Square root of MU.               */
#define FCONST     -4.442807633E-10      /* FCONST is used in relativistic clock
					    correction.  Defined on pg. 73 of
					    ICD-GPS-200.                     */

#define TWOM5       0.03125000000000     /* 2^-5  */
#define TWOM11      (TWOM5  /  64.0)
#define TWOM12      (TWOM11  /  2.0)
#define TWOM19      (TWOM11 / 256.0)
#define TWOM20      (TWOM19 /   2.0)
#define TWOM21      (TWOM20 /   2.0)
#define TWOM23      (TWOM21 /   4.0)
#define TWOM24      (TWOM23 /   2.0)
#define TWOM27      (TWOM24 /   8.0)
#define TWOM29      (TWOM23 /  64.0)
#define TWOM30      (TWOM29 /   2.0)
#define TWOM31      (TWOM30 /   2.0)
#define TWOM33      (TWOM31 /   4.0)
#define TWOM38      (TWOM33 /  32.0)
#define TWOM43      (TWOM38 /  32.0)
#define TWOM50      (TWOM43 / 128.0)
#define TWOM55      (TWOM50 /  32.0)
#define TWOM3125    (0.25 * TWOM31)

#define TWOP11      2048.0               /* 2^11  */
#define TWOP12      (TWOP11 * 2.0)
#define TWOP14      (TWOP12 * 4.0)
#define TWOP16      (TWOP14 * 4.0)

#define TWOP12_INTEGER   4096            /* 2^12  */
#define TWOP16_INTEGER  65536            /* 2^16  */

#define PITWOM19    (PI * TWOM19)
#define PITWOM23    (PI * TWOM23)
#define PITWOM31    (PI * TWOM31)
#define PITWOM38    (PI * TWOM38)
#define PITWOM43    (PI * TWOM43)


int WriteRinexNavFile( FILE *RinexRecFile, SVText *snv);
void findtext(char *s, char *r);
void ResetRinexEpp(SVText * Epp);
void InitRinexObsHeader();

⌨️ 快捷键说明

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