www.pudn.com > gps_program.rar > GLOBALS.H


 
#ifdef MAIN 
 
 
int  Register_address; 
int  Data_address; 
channel chan[N_channels]; 
int  a_missed,n_chan,chmax=11,display_page=0,alm_page; 
char IOtxt[3]; 
 
 
unsigned test[16]= 
{ 0x0001,0x0002,0x0004,0x0008,0x0010,0x0020,0x0040,0x0080, 
  0x0100,0x0200,0x0400,0x0800,0x1000,0x2000,0x4000,0x8000}; 
 
unsigned int tr_ch[N_channels+1]; 
 
int prn_code[37]={0,0x3f6,0x3ec,0x3d8,0x3b0,0x04b,0x096,0x2cb,0x196,0x32c, 
		    0x3ba,0x374,0x1d0,0x3a0,0x340,0x280,0x100,0x113,0x226, 
		    0x04c,0x098,0x130,0x260,0x267,0x338,0x270,0x0e0,0x1c0, 
		    0x380,0x22b,0x056,0x0ac,0x158,0x058,0x18b,0x316,0x058}; 
 
int out_debug,out_pos,out_vel,out_time,out_kalman,out_data; 
 
hms cur_lat,cur_long; 
int ext_bit_count; 
 
#define IRQLEVEL        0       // IRQ Line 
 
char Version[40]; // NMEA 
//  These are arrays for debugging 
//  they can be written into while running and dumped to a 
//  file at the end of the run 
//long qdither[6][1500]; 
//long qprompt[6][1500]; 
//long idither[6][1500]; 
//long iprompt[6][1500]; 
//int qdither0[30000]; 
//int qprompt0[30000]; 
//int idither0[30000]; 
//int iprompt0[30000]; 
int data_0[1500],data_1[1500]; 
 
  long store_code,store_carrier; 
// definitions with default values which can be overridden in 
// file rcvr_par.dat 
int  nav_tic,search_max_f=30,search_min_f=0,cold_prn=1,ICP_CTL=0; 
long rms=312,acq_thresh=650,code_corr,time_on=0; 
long pull_code_k=111,pull_code_d=7,pull_carr_k=-12,pull_carr_d=28; 
long trk_code_k=55, trk_code_d=3, trk_carr_k=-9, trk_carr_d=21; 
long cc_scale=1540; 
float nav_up=1.0; 
double speed,heading; 
int  pull_in_time=1000,phase_test=500; 
long  d_freq=4698,d_tow,trk_div=19643; 
int   confirm_m=10,n_of_m_thresh=8,key,tic_count=0,hms_count=0; 
int   nav_count,min_flag,nav_flag,sec_flag,n_track; 
unsigned int interr_int=512; 
float clock_offset=-0.6; 
ecef rec_pos_ecef; 
long   i_TIC_dt; 
double m_time[3],delta_m_time,m_error,TIC_dt; 
long   TIC_cntr,old_TIC_cntr,TIC_ref=571427L,TIC_sum; 
 
int bit_pat[12]={0x2,0x4,0x8,0x10,0x20,0x40,0x80,0x100,0x200,0x400,0x800,0x1000}; 
int last_hi_carr[N_channels],last_hi_code[N_channels],ch_status; 
 
char last_address; 
 
int ms_count; 
int astat,mstat; 
 
unsigned int Com0Baud;  // NMEA 
unsigned int Com1Baud; 
unsigned int GPGGA; 
unsigned int GPGSV; 
unsigned int GPGSA; 
unsigned int GPVTG; 
unsigned int GPRMC; 
unsigned int GPZDA; 
 
char tzstr[40];// = "TZ=PST8PDT"; 
 
time_t thetime; 
 
FILE *stream,*debug,*in,*out,*kalm,*data_bits; 
 
almanac gps_alm[33]; 
 
int   SVh[33],ASV[33]; 
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 
 
ephemeris gps_eph[33]; 
 
pvt rpvt; 
 
state receiver; 
 
float gdop,pdop,hdop,vdop,tdop,alm_toa; 
unsigned long  clock_tow; 
llh  rec_pos_llh; 
llh current_loc,rp_llh; 
eceft track_sat[N_channels+1]; 
ecef rec_pos_xyz; 
int alm_gps_week,gps_week,almanac_valid,handle; 
unsigned long sf[6][11]; 
int p_error[6],status; 
 
enum {off,acquisition,confirm,pull_in,track}; 
//     0       1         2       3      4 
enum {cold_start,warm_start,hot_start,tracking,navigating}; 
//        0          1          2        3          4 
 
unsigned long test_l[33]={0x00000000L,              // single bit set numbers 
  0x00000001L,0x00000002L,0x00000004L,0x00000008L,  // for testing bit positions 
  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],trailer; 
double meas_dop[N_channels+1]; 
 
ecef d_sat[N_channels+1]; 
 
long carrier_ref=0x1f7b1b9L,code_ref=0x016ea4a8L; 
double  dt[N_channels+1],cbias; 
 
 
int m_tropo, m_iono, align_t; // flags for using tropo and iono models 
unsigned int i4page,i5page; 
 
satvis  xyz[33]; 
 
#else 
 
extern int  Register_address; 
extern int  Data_address; 
extern char IOtxt[3]; 
 
extern channel chan[N_channels]; 
extern int a_missed, n_chan, chmax, display_page,alm_page; 
 
extern unsigned test[16]; 
extern unsigned int tr_ch[N_channels+1]; 
extern int prn_code[37]; 
extern int out_debug,out_pos,out_vel,out_time,out_kalman,out_data; 
 
extern hms cur_lat,cur_long; 
extern int ext_bit_count; 
 
#define IRQLEVEL        0       // IRQ Line 
 
extern char Version[40]; // NMEA 
//  These are arrays for debugging 
//  they can be written into while running and dumped to a 
//  file at the end of the run 
//  long far i_prompta[4500],far q_prompta[4500]; 
//  long far i_dithera[4500],far q_dithera[4500]; 
//  long far car_freq[4500],far chip_freq[4500]; 
//  int far data_bit[4500]; 
 
//extern long qdither[6][1500]; 
//extern long qprompt[6][1500]; 
//extern long idither[6][1500]; 
//extern long iprompt[6][1500]; 
//extern int qdither0[30000]; 
//extern int qprompt0[30000]; 
//extern int idither0[30000]; 
//extern int iprompt0[30000]; 
extern int data_0[1500],data_1[1500]; 
 
extern  long store_code,store_carrier; 
// definitions with default values which can be overridden in 
// file rcvr_par.dat 
extern int  nav_tic,search_max_f,search_min_f,cold_prn,ICP_CTL; 
extern long rms,acq_thresh,code_corr,time_on; 
extern long pull_code_k,pull_code_d,pull_carr_k,pull_carr_d; 
extern long trk_code_k, trk_code_d, trk_carr_k, trk_carr_d; 
extern long cc_scale; 
extern float nav_up; 
extern double speed,heading; 
extern int  pull_in_time,phase_test; 
extern long  d_freq,d_tow,trk_div; 
extern int   confirm_m,n_of_m_thresh,key,tic_count,hms_count; 
extern int   nav_count,min_flag,nav_flag,sec_flag,n_track; 
extern unsigned int interr_int; 
extern float clock_offset; 
extern ecef rec_pos_ecef; 
extern long   i_TIC_dt; 
extern double m_time[3],delta_m_time,m_error,TIC_dt; 
extern long   TIC_cntr,old_TIC_cntr,TIC_ref,TIC_sum; 
 
extern int bit_pat[12]; 
extern int last_hi_carr[N_channels],last_hi_code[N_channels],ch_status; 
 
extern char last_address; 
 
extern int ms_count; 
extern int astat,mstat; 
 
extern unsigned int Com0Baud;  // NMEA 
extern unsigned int Com1Baud; 
extern unsigned int GPGGA; 
extern unsigned int GPGSV; 
extern unsigned int GPGSA; 
extern unsigned int GPVTG; 
extern unsigned int GPRMC; 
extern unsigned int GPZDA; 
 
extern char tzstr[40];// = "TZ=PST8PDT"; 
 
extern time_t thetime; 
 
extern FILE *stream,*debug,*in,*out,*kalm,*data_bits; 
 
extern almanac gps_alm[33]; 
 
extern int   SVh[33],ASV[33]; 
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 ephemeris gps_eph[33]; 
 
extern pvt rpvt; 
 
extern state receiver; 
 
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[N_channels+1]; 
extern ecef rec_pos_xyz; 
extern int alm_gps_week,gps_week,almanac_valid,handle; 
extern unsigned long sf[6][11]; 
extern int p_error[6],status; 
 
enum {off,acquisition,confirm,pull_in,track}; 
//     0       1         2       3      4 
enum {cold_start,warm_start,hot_start,tracking,navigating}; 
//        0          1          2        3          4 
 
extern unsigned long test_l[33]; 
 
extern float mask_angle; 
extern char  header[45],trailer; 
extern double meas_dop[N_channels+1]; 
 
extern ecef d_sat[N_channels+1]; 
 
extern long carrier_ref,code_ref; 
extern double  dt[N_channels+1],cbias; 
 
 
extern int m_tropo, m_iono, align_t; // flags for using tropo and iono models 
extern unsigned int i4page,i5page; 
 
 
extern satvis  xyz[33]; 
 
#endif