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

📄 ogsextern.h

📁 OpenGPSSim是一个gps模拟程序
💻 H
字号:
/* ************************************************************************ 
   *                                                                      *
   *                          GPS Simulation                              *
   *                                                                      *
   * -------------------------------------------------------------------- *
   *                                                                      *
   *    Module:   ogsextern.h                                             *
   *                                                                      *
   *   Version:   0.1                                                     *
   *                                                                      *
   *      Date:   17.02.02                                                *
   *                                                                      *
   *    Author:   G. Beyerle                                              *
   *                                                                      *
   * -------------------------------------------------------------------- *
   *                                                                      *
   * Copyright (C) 2002-2006 Georg Beyerle                                *
   *                                                                      *
   * This program is free software; you can redistribute it and/or modify *
   * it under the terms of the GNU General Public License as published by *
   * the Free Software Foundation; either version 2 of the License, or    *
   * (at your option) any later version.                                  *
   *                                                                      *
   * This program is distributed in the hope that it will be useful,      *
   * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
   * GNU General Public License for more details.                         *
   *                                                                      *
   * You should have received a copy of the GNU General Public License    *
   * along with this program; if not, write to the Free Software          *
   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.            *
   *                                                                      *
   * -------------------------------------------------------------------- *
   *                                                                      *
   * The files 'gpsfuncs.cpp', 'gpsrcvr.cpp' are modified versions of     *
   * the files with the same name from Clifford Kelley's OpenSourceGPS    *
   * distribution. The unmodified files can be obtained from              *
   *   http://www.home.earthlink.net/~cwkelley                            *
   *                                                                      *
   * -------------------------------------------------------------------- *
   *                                                                      *
   *                            Global Variables                          *
   *                                                                      *
   ************************************************************************ */

/* ******************************* changes ********************************

   dd.mm.yy -

   ************************************************************************ */

/* ------------------------------------------------------------------------ */

//
// constants defined for GPS
//

#ifdef OGSEXTERN_H
# undef MAIN
#endif

#define OGSEXTERN_H

#ifdef MAIN

char *OGSBinDir;
char *OGSDataDir;

double    pi = 3.1415926535898E0,         // GPS values
          r_to_d = 57.29577951308232;
double    c = 2.99792458e8,               // WGS-84 speed of light m/sec
          omegae = 7.2921151467E-5;       // WGS-84 earth rotation rate rad/sec
double    a = 6378137.0, b = 6356752.314; // WGS-84 ellipsoid parameters
double    lambda = .1902936728;           // L1 wavelength in meters

CHANNEL   chan[NOFCHAN];
EPHEMERIS gps_eph[NOFSAT+1];              // index 1,...,NOFSAT
ALMANAC   gps_alm[NOFSAT+1];              // index 1,...,NOFSAT
int       SVh[NOFSAT+1],                  // satellite vehicle health
          ASV[NOFSAT+1];                  // anti-spoofing & satellite vehicle configuration

// Setting up the library of GP1020 GPS correlator functions
int  bit_pat[12] = {0x2,0x4,0x8,0x10,0x20,0x40,0x80,0x100,0x200,0x400,0x800,0x1000};
int  last_hi_carr[12], last_hi_code[12], ch_status;
char last_address;

char *tzstr = "TZ=PST8PDT";

FILE *stream, *in, *out;

//float b0, b1, b2, b3, al0, al1, al2, al3;       // broadcast ionospheric delay model
//float a0, a1, tot, WNt, dtls, WNlsf, DN, dtlsf; // broadcast UTC data

IONODATA Iono;
UTCDATA Utc;

float gdop, pdop, hdop, vdop, tdop, alm_toa;

unsigned long  clock_tow;
LLH   rec_pos_llh;
LLH   current_loc,rp_llh;
ECEFT track_sat[13];
ECEF  satuse[13], rec_pos_xyz;
int   alm_gps_week, gps_week, almanac_valid, almanac_flag;

unsigned long sf[6][11];
//unsigned long sf2[6][11];
int p_error[6], status;

unsigned long test_l[33]={0x00000000L,
  0x00000001L,0x00000002L,0x00000004L,0x00000008L,
  0x00000010L,0x00000020L,0x00000040L,0x00000080L,
  0x00000100L,0x00000200L,0x00000400L,0x00000800L,
  0x00001000L,0x00002000L,0x00004000L,0x00008000L,
  0x00010000L,0x00020000L,0x00040000L,0x00080000L,
  0x00100000L,0x00200000L,0x00400000L,0x00800000L,
  0x01000000L,0x02000000L,0x04000000L,0x08000000L,
  0x10000000L,0x20000000L,0x40000000L,0x80000000L};

float mask_angle;

char  header[45], text[27], trailer;

double meas_dop[13];

ECEF d_sat[13];

// write 0x1f7b1b9  -> CHx_CARRIER_DCO_INCR : 1.405396845 MHz
//                     resolution : 42.57475 mHz
// write 0x016ea4a8 -> CHx_CODE_DCO_INCR    : 1.022999968 MHz
//                     resolution : 42.57475 mHz
long carrier_ref = 0x1f7b1b9L,  
     code_ref    = 0x016ea4a8L; 
double  dt[13], cbias;
SATVIS  xyz[33];

//char *Buffer = NULL;
//unsigned long BufferLen = 0L;

int NofChanActive = 0;

// CA codes for all 32 PRNs; [1,...,32][0,...,1022]
short int CACode[NOFSAT+1][NOFCHIPS]; 

// options
int OutputIQ,
    OutputCarFrq,
    Verbose;

int PRNChn[NOFSAT+1];

//
//  conversion table sat ID to page
//
int satid2page[64] = 
{ 
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,
 16,17,18,19,20,21,22,23,24, 2, 3, 4, 5, 7, 8, 9,
 10,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 
 -1,-1,-1,25,13,14,15,17,18, 1,19,20,22,23,12,25
};

//
//  conversion page (4th/5th subframe) to table sat ID
//
int page4sf2page[26] = 
{
 0,57,25,26,27,28,57,29,30,31,32,57,62,52,53,54,57,55,56,58,59,57,60,61,62,63
};

int page5sf2page[26] = 
{
 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,51
};

#else

extern char *OGSBinDir;
extern char *OGSDataDir;

extern double pi, r_to_d;
extern double c,                       // WGS-84 speed of light m/sec
       omegae;                         // WGS-84 earth rotation rate rad/sec
extern double a, b;                    // WGS-84 ellipsoid parameters
extern double lambda;                  // L1 wavelength in meters

extern CHANNEL   chan[];
extern EPHEMERIS gps_eph[];
extern ALMANAC   gps_alm[];
extern int SVh[], ASV[];

extern int  bit_pat[];
extern int  last_hi_carr[], last_hi_code[], ch_status;
extern char last_address;

extern char *tzstr;

extern FILE *stream;

//extern float b0, b1, b2, b3, al0, al1, al2, al3;       // broadcast ionospheric delay model
//extern float a0, a1, tot, WNt, dtls, WNlsf, DN, dtlsf; // broadcast UTC data

extern IONODATA Iono;
extern UTCDATA Utc;

extern float gdop, pdop, hdop, vdop, tdop, alm_toa;
extern unsigned long  clock_tow;
extern LLH   rec_pos_llh;
extern LLH   current_loc,rp_llh;
extern ECEFT track_sat[];
extern ECEF  satuse[], rec_pos_xyz;
extern int   alm_gps_week, gps_week, almanac_valid, almanac_flag, handle;

extern unsigned long sf[][11];
//extern unsigned long sf2[][11];
extern int p_error[], status;

extern unsigned long test_l[];

extern float mask_angle;

extern char  header[], text[], trailer;

extern double meas_dop[];

extern ECEF d_sat[];

extern long carrier_ref, code_ref; 
extern double dt[], cbias;
extern FILE *in,*out;
extern SATVIS xyz[];

//extern char *Buffer;
//extern unsigned long BufferLen;

extern int NofChanActive;

extern short int CACode[][NOFCHIPS];     

// options
extern int OutputIQ,
           OutputCarFrq,
           Verbose;

extern int PRNChn[];

extern int satid2page[];
extern int page4sf2page[];
extern int page5sf2page[];

#endif

/* ------------------------------ end of file ----------------------------- */


⌨️ 快捷键说明

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