- Timestamp:
- Oct 14, 2007, 3:03:00 PM (17 years ago)
- Location:
- trunk/BNC
- Files:
-
- 1 added
- 1 deleted
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BNC/RTCM3/RTCM3Decoder.cpp
r464 r504 51 51 #endif 52 52 53 #define LEAPSECONDS 14 /* only needed for approx. time */ 54 53 55 // Error Handling 54 56 //////////////////////////////////////////////////////////////////////////// 55 void RTCM3Error(const char *fmt, ...) {57 void RTCM3Error(const char*, ...) { 56 58 57 59 } … … 104 106 obs->GPSWeeks = _Parser.Data.timeofweek / 1000.0; 105 107 106 for (int jj = 0; jj < _Parser.numdatatypes ; jj++) {108 for (int jj = 0; jj < _Parser.numdatatypesGPS; jj++) { 107 109 int v = 0; 108 110 int df = _Parser.dataflag[jj]; … … 114 116 } 115 117 else { 116 df = _Parser.dataflag 2[jj];117 pos = _Parser.datapos 2[jj];118 df = _Parser.dataflagGPS[jj]; 119 pos = _Parser.dataposGPS[jj]; 118 120 if ( (_Parser.Data.dataflags[ii] & df) 119 121 && !isnan(_Parser.Data.measdata[ii][pos]) -
trunk/BNC/RTCM3/RTCM3Decoder.h
r464 r504 27 27 28 28 #include "../RTCM/GPSDecoder.h" 29 30 extern "C" { 29 31 #include "rtcm3torinex.h" 32 } 30 33 31 34 class RTCM3Decoder : public GPSDecoder { -
trunk/BNC/RTCM3/rtcm3torinex.h
r366 r504 4 4 /* 5 5 Converter for RTCM3 data to RINEX. 6 $Id: rtcm3torinex.h,v 1. 5 2007/01/11 14:10:13stoecker Exp $7 Copyright (C) 2005-2006 by Dirk Stoecker <stoecker@ euronik.eu>6 $Id: rtcm3torinex.h,v 1.7 2007/10/08 12:51:24 stoecker Exp $ 7 Copyright (C) 2005-2006 by Dirk Stoecker <stoecker@alberding.eu> 8 8 9 9 This program is free software; you can redistribute it and/or modify … … 98 98 #define GNSSDF_LOCKLOSSL2 (1<<30) /* lost lock on L2 */ 99 99 100 #define LEAPSECONDS 14 /* only needed for approx. time */101 102 100 struct gnssdata { 103 101 int flags; /* GPSF_xxx */ … … 112 110 }; 113 111 112 #define GPSEPHF_L2PCODEDATA (1<<0) /* set, if NAV data OFF on L2 P-code, s1w4b01 */ 113 #define GPSEPHF_L2PCODE (1<<1) /* set, if P-code available, s1w3b12 */ 114 #define GPSEPHF_L2CACODE (1<<2) /* set, if CA-code available, s1w3b11 */ 115 #define GPSEPHF_VALIDATED (1<<3) /* data is completely valid */ 116 117 #define PI 3.1415926535898 118 119 struct gpsephemeris { 120 int flags; /* GPSEPHF_xxx */ 121 int satellite; /* SV ID ICD-GPS data position */ 122 int IODE; /* [s2w3b01-08] */ 123 int URAindex; /* [1..15] [s1w3b13-16] */ 124 int SVhealth; /* [s1w3b17-22] */ 125 int GPSweek; /* [s1w3b01-10] */ 126 int IODC; /* [s1w3b23-32,w8b01-08] */ 127 int TOW; /* [s] [s1w2b01-17] */ 128 int TOC; /* [s] [s1w8b09-24] */ 129 int TOE; /* [s] [s2w10b1-16] */ 130 double clock_bias; /* [s] [s1w10b1-22, af0] */ 131 double clock_drift; /* [s/s] [s1w9b09-24, af1] */ 132 double clock_driftrate; /* [s/s^2] [s1w9b01-08, af2] */ 133 double Crs; /* [m] [s2w3b09-24] */ 134 double Delta_n; /* [rad/s] [s2w4b01-16 * Pi] */ 135 double M0; /* [rad] [s2w4b17-24,w5b01-24 * Pi]*/ 136 double Cuc; /* [rad] [s2w6b01-16] */ 137 double e; /* [s2w6b17-24,w6b01-24] */ 138 double Cus; /* [rad] [s2w8b01-16] */ 139 double sqrt_A; /* [m^0.5] [s2w8b16-24,w9b01-24] */ 140 double Cic; /* [rad] [s3w3b01-16] */ 141 double OMEGA0; /* [rad] [s3w3b17-24,w4b01-24 * Pi]*/ 142 double Cis; /* [rad] [s3w5b01-16] */ 143 double i0; /* [rad] [s3w5b17-24,w6b01-24 * Pi]*/ 144 double Crc; /* [m] [s3w701-16] */ 145 double omega; /* [rad] [s3w7b17-24,w8b01-24 * Pi]*/ 146 double OMEGADOT; /* [rad/s] [s3w9b01-24 * Pi] */ 147 double IDOT; /* [rad/s] [s3w10b9-22 * Pi] */ 148 double TGD; /* [s] [s1w7b17-24] */ 149 }; 150 151 #define GLOEPHF_UNHEALTHY (1<<0) /* set if unhealty satellite, f2b78 */ 152 #define GLOEPHF_ALMANACHEALTHOK (1<<1) /* set if ALM health is available */ 153 #define GLOEPHF_ALMANACHEALTHY (1<<2) /* set if Cn word is true */ 154 #define GLOEPHF_PAVAILABLE (1<<3) /* set if the 3 P flags are available */ 155 #define GLOEPHF_P10TRUE (1<<4) 156 #define GLOEPHF_P11TRUE (1<<5) 157 #define GLOEPHF_P2TRUE (1<<6) 158 #define GLOEPHF_P3TRUE (1<<7) 159 160 struct glonassephemeris { 161 int GPSWeek; 162 int GPSTOW; 163 int flags; /* GLOEPHF_xxx */ 164 int almanac_number; 165 int frequency_number; /* ICD-GLONASS data position */ 166 int tb; /* [s] [f2b70-76] */ 167 int tk; /* [s] [f1b65-76] */ 168 int E; /* [days] [f4b49-53] */ 169 double tau; /* [s] [f4b59-80] */ 170 double gamma; /* [f3b69-79] */ 171 double x_pos; /* [km] [f1b09-35] */ 172 double x_velocity; /* [km/s] [f1b41-64] */ 173 double x_acceleration; /* [km/s^2][f1b36-40] */ 174 double y_pos; /* [km] [f2b09-35] */ 175 double y_velocity; /* [km/s] [f2b41-64] */ 176 double y_acceleration; /* [km/s^2][f2b36-40] */ 177 double z_pos; /* [km] [f3b09-35] */ 178 double z_velocity; /* [km/s] [f3b41-64] */ 179 double z_acceleration; /* [km/s^2][f3b36-40] */ 180 }; 181 114 182 struct RTCM3ParserData { 115 183 unsigned char Message[2048]; /* input-buffer */ … … 120 188 int GPSTOW; /* in seconds */ 121 189 struct gnssdata Data; 190 struct gpsephemeris ephemerisGPS; 191 struct glonassephemeris ephemerisGLONASS; 122 192 struct gnssdata DataNew; 123 193 int size; … … 126 196 int datapos[RINEXENTRY_NUMBER]; 127 197 int dataflag[RINEXENTRY_NUMBER]; 128 int datapos2[RINEXENTRY_NUMBER]; 129 int dataflag2[RINEXENTRY_NUMBER]; 130 int numdatatypes; 198 /* for RINEX2 GPS and GLO are both handled in GPS */ 199 int dataposGPS[RINEXENTRY_NUMBER]; /* SBAS has same entries */ 200 int dataflagGPS[RINEXENTRY_NUMBER]; 201 int dataposGLO[RINEXENTRY_NUMBER]; /* only used for RINEX3 */ 202 int dataflagGLO[RINEXENTRY_NUMBER]; 203 int numdatatypesGPS; 204 int numdatatypesGLO; /* only used for RINEX3 */ 131 205 int validwarning; 132 206 int init; 133 207 int startflags; 208 int rinex3; 134 209 const char * headerfile; 210 const char * glonassephemeris; 211 const char * gpsephemeris; 212 FILE *glonassfile; 213 FILE *gpsfile; 135 214 }; 136 215 -
trunk/BNC/bnc.pro
r453 r504 32 32 bnczerodecoder.cpp \ 33 33 RTCM/RTCM2.cpp RTCM/RTCM2Decoder.cpp \ 34 RTCM3/RTCM3Decoder.cpp RTCM3/rtcm3torinex.c pp\34 RTCM3/RTCM3Decoder.cpp RTCM3/rtcm3torinex.c \ 35 35 RTIGS/RTIGSDecoder.cpp RTIGS/cgps_transform.cpp 36 36
Note:
See TracChangeset
for help on using the changeset viewer.