00001
00027
00028
00029
00030
00031 #include "SVNumXRef.hpp"
00032
00033 using namespace std;
00034 namespace gpstk
00035 {
00036
00037 SVNumXRef::SVNumXRef( )
00038 {
00039 NtoBMap.insert( make_pair( 1, I ));
00040 NtoBMap.insert( make_pair( 2, I ));
00041 NtoBMap.insert( make_pair( 3, I ));
00042 NtoBMap.insert( make_pair( 4, I ));
00043 NtoBMap.insert( make_pair( 5, I ));
00044 NtoBMap.insert( make_pair( 6, I ));
00045
00046 NtoBMap.insert( make_pair( 8, I ));
00047 NtoBMap.insert( make_pair( 9, I ));
00048 NtoBMap.insert( make_pair( 10, I ));
00049 NtoBMap.insert( make_pair( 11, I ));
00050
00051 NtoBMap.insert( make_pair( 13, II ));
00052 NtoBMap.insert( make_pair( 14, II ));
00053 NtoBMap.insert( make_pair( 15, II ));
00054 NtoBMap.insert( make_pair( 16, II ));
00055 NtoBMap.insert( make_pair( 17, II ));
00056 NtoBMap.insert( make_pair( 18, II ));
00057 NtoBMap.insert( make_pair( 19, II ));
00058 NtoBMap.insert( make_pair( 20, II ));
00059 NtoBMap.insert( make_pair( 21, II ));
00060 NtoBMap.insert( make_pair( 22,IIA ));
00061 NtoBMap.insert( make_pair( 23,IIA ));
00062 NtoBMap.insert( make_pair( 24,IIA ));
00063 NtoBMap.insert( make_pair( 25,IIA ));
00064 NtoBMap.insert( make_pair( 26,IIA ));
00065 NtoBMap.insert( make_pair( 27,IIA ));
00066 NtoBMap.insert( make_pair( 28,IIA ));
00067 NtoBMap.insert( make_pair( 29,IIA ));
00068 NtoBMap.insert( make_pair( 30,IIA ));
00069 NtoBMap.insert( make_pair( 31,IIA ));
00070 NtoBMap.insert( make_pair( 32,IIA ));
00071 NtoBMap.insert( make_pair( 33,IIA ));
00072 NtoBMap.insert( make_pair( 34,IIA ));
00073 NtoBMap.insert( make_pair( 35,IIA ));
00074 NtoBMap.insert( make_pair( 36,IIA ));
00075 NtoBMap.insert( make_pair( 37,IIA ));
00076 NtoBMap.insert( make_pair( 38,IIA ));
00077 NtoBMap.insert( make_pair( 39,IIA ));
00078 NtoBMap.insert( make_pair( 40,IIA ));
00079 NtoBMap.insert( make_pair( 41,IIR ));
00080
00081 NtoBMap.insert( make_pair( 43,IIR ));
00082 NtoBMap.insert( make_pair( 44,IIR ));
00083 NtoBMap.insert( make_pair( 45,IIR ));
00084 NtoBMap.insert( make_pair( 46,IIR ));
00085 NtoBMap.insert( make_pair( 47,IIR ));
00086 NtoBMap.insert( make_pair( 48,IIR_M));
00087 NtoBMap.insert( make_pair( 49,IIR_M));
00088 NtoBMap.insert( make_pair( 50,IIR_M));
00089 NtoBMap.insert( make_pair( 51,IIR ));
00090 NtoBMap.insert( make_pair( 52,IIR_M));
00091 NtoBMap.insert( make_pair( 53,IIR_M));
00092 NtoBMap.insert( make_pair( 54,IIR ));
00093 NtoBMap.insert( make_pair( 55,IIR_M));
00094 NtoBMap.insert( make_pair( 56,IIR ));
00095 NtoBMap.insert( make_pair( 57,IIR_M));
00096 NtoBMap.insert( make_pair( 58,IIR_M));
00097 NtoBMap.insert( make_pair( 59,IIR ));
00098 NtoBMap.insert( make_pair( 60,IIR ));
00099 NtoBMap.insert( make_pair( 61,IIR ));
00100 NtoBMap.insert( make_pair( 62,IIF ));
00101
00102
00103
00104
00105 NtoPMap.insert( std::pair<const int, XRefNode>( 1, XRefNode( 4,
00106 DayTime( 1978, 2, 22, 0, 0, 0.0),
00107 DayTime( 1985, 7, 17, 17, 30, 0.0))));
00108 NtoPMap.insert( std::pair<const int, XRefNode>( 2, XRefNode( 7,
00109 DayTime( 1978, 6, 13, 0, 0, 0.0),
00110 DayTime( 1988, 2, 12, 23, 59, 0.0))));
00111 NtoPMap.insert( std::pair<const int, XRefNode>( 3, XRefNode( 6,
00112 DayTime( 1978, 10, 6, 0, 0, 0.0),
00113 DayTime( 1992, 5, 18, 23, 41, 0.0))));
00114 NtoPMap.insert( std::pair<const int, XRefNode>( 4, XRefNode( 8,
00115 DayTime( 1978, 12, 10, 0, 0, 0.0),
00116 DayTime( 1990, 5, 31, 23, 59, 0.0))));
00117 NtoPMap.insert( std::pair<const int, XRefNode>( 5, XRefNode( 5,
00118 DayTime( 1980, 2, 9, 0, 0, 0.0),
00119 DayTime( 1984, 5, 11, 23, 59, 0.0))));
00120 NtoPMap.insert( std::pair<const int, XRefNode>( 6, XRefNode( 9,
00121 DayTime( 1980, 4, 26, 0, 0, 0.0),
00122 DayTime( 1991, 3, 6, 3, 42, 0.0))));
00123
00124 NtoPMap.insert( std::pair<const int, XRefNode>( 8, XRefNode( 11,
00125 DayTime( 1983, 7, 14, 0, 0, 0.0),
00126 DayTime( 1993, 5, 4, 0, 20, 0.0))));
00127 NtoPMap.insert( std::pair<const int, XRefNode>( 9, XRefNode( 13,
00128 DayTime( 1984, 6, 13, 0, 0, 0.0),
00129 DayTime( 1993, 5, 4, 18, 17, 0.0))));
00130 NtoPMap.insert( std::pair<const int, XRefNode>( 10, XRefNode( 12,
00131 DayTime( 1984, 9, 8, 0, 0, 0.0),
00132 DayTime( 1996, 3, 26, 23, 59, 0.0))));
00133 NtoPMap.insert( std::pair<const int, XRefNode>( 11, XRefNode( 3,
00134 DayTime( 1985, 10, 30, 0, 0, 0.0),
00135 DayTime( 1994, 4, 14, 21, 0, 0.0))));
00136
00137 NtoPMap.insert( std::pair<const int, XRefNode>( 13, XRefNode( 2,
00138 DayTime( 1989, 6, 10, 0, 0, 0.0),
00139 DayTime( 2004, 5, 12, 17, 1, 0.0))));
00140 NtoPMap.insert( std::pair<const int, XRefNode>( 14, XRefNode( 14,
00141 DayTime( 1989, 2, 14, 0, 0, 0.0),
00142 DayTime( 2000, 4, 14, 13, 47, 0.0))));
00143 NtoPMap.insert( std::pair<const int, XRefNode>( 15, XRefNode( 15,
00144 DayTime( 1990, 10, 1, 0, 0, 0.0),
00145 DayTime( 2007, 3, 15, 23, 59, 0.0))));
00146 NtoPMap.insert( std::pair<const int, XRefNode>( 16, XRefNode( 16,
00147 DayTime( 1989, 8, 18, 0, 0, 0.0),
00148 DayTime( 2000, 10, 13, 0, 45, 0.0))));
00149 NtoPMap.insert( std::pair<const int, XRefNode>( 17, XRefNode( 17,
00150 DayTime( 1989, 12, 11, 0, 0, 0.0),
00151 DayTime( 2005, 2, 23, 22, 0, 0.0))));
00152 NtoPMap.insert( std::pair<const int, XRefNode>( 18, XRefNode( 18,
00153 DayTime( 1990, 1, 24, 0, 0, 0.0),
00154 DayTime( 2000, 8, 18, 7, 42, 0.0))));
00155 NtoPMap.insert( std::pair<const int, XRefNode>( 19, XRefNode( 19,
00156 DayTime( 1989, 10, 21, 0, 0, 0.0),
00157 DayTime( 2001, 9, 11, 22, 0, 0.0))));
00158 NtoPMap.insert( std::pair<const int, XRefNode>( 20, XRefNode( 20,
00159 DayTime( 1990, 3, 26, 0, 0, 0.0),
00160 DayTime( 1996, 12, 13, 23, 59, 0.0))));
00161 NtoPMap.insert( std::pair<const int, XRefNode>( 21, XRefNode( 21,
00162 DayTime( 1990, 8, 2, 0, 0, 0.0),
00163 DayTime( 2003, 1, 27, 22, 0, 0.0))));
00164 NtoPMap.insert( std::pair<const int, XRefNode>( 22, XRefNode( 22,
00165 DayTime( 1993, 2, 3, 0, 0, 0.0),
00166 DayTime( 2003, 8, 6, 22, 0, 0.0))));
00167 NtoPMap.insert( std::pair<const int, XRefNode>( 23, XRefNode( 23,
00168 DayTime( 1990, 11, 26, 0, 0, 0.0),
00169 DayTime( 2004, 2, 13, 22, 0, 0.0))));
00170 NtoPMap.insert( std::pair<const int, XRefNode>( 23, XRefNode( 32,
00171 DayTime( 2006, 12, 1, 0, 0, 0.0),
00172 DayTime::END_OF_TIME )));
00173 NtoPMap.insert( std::pair<const int, XRefNode>( 24, XRefNode( 24,
00174 DayTime( 1991, 7, 4, 0, 0, 0.0),
00175 DayTime::END_OF_TIME )));
00176 NtoPMap.insert( std::pair<const int, XRefNode>( 25, XRefNode( 25,
00177 DayTime( 1992, 2, 23, 0, 0, 0.0),
00178 DayTime::END_OF_TIME )));
00179 NtoPMap.insert( std::pair<const int, XRefNode>( 26, XRefNode( 26,
00180 DayTime( 1992, 7, 7, 0, 0, 0.0),
00181 DayTime::END_OF_TIME )));
00182 NtoPMap.insert( std::pair<const int, XRefNode>( 27, XRefNode( 27,
00183 DayTime( 1992, 9, 9, 0, 0, 0.0),
00184 DayTime::END_OF_TIME )));
00185 NtoPMap.insert( std::pair<const int, XRefNode>( 28, XRefNode( 28,
00186 DayTime( 1992, 4, 10, 0, 0, 0.0),
00187 DayTime( 1997, 8, 15, 23, 59, 0.0))));
00188 NtoPMap.insert( std::pair<const int, XRefNode>( 29, XRefNode( 29,
00189 DayTime( 1992, 12, 18, 0, 0, 0.0),
00190 DayTime( 2007, 10, 23, 23, 59, 0.0))));
00191 NtoPMap.insert( std::pair<const int, XRefNode>( 30, XRefNode( 30,
00192 DayTime( 1996, 9, 12, 0, 0, 0.0),
00193 DayTime::END_OF_TIME )));
00194 NtoPMap.insert( std::pair<const int, XRefNode>( 31, XRefNode( 31,
00195 DayTime( 1993, 3, 30, 0, 0, 0.0),
00196 DayTime( 2005, 10, 24, 23, 59, 0.0))));
00197 NtoPMap.insert( std::pair<const int, XRefNode>( 32, XRefNode( 1,
00198 DayTime( 1992, 11, 22, 0, 0, 0.0),
00199 DayTime( 2008, 3, 17, 22, 0, 0.0))));
00200 NtoPMap.insert( std::pair<const int, XRefNode>( 33, XRefNode( 3,
00201 DayTime( 1996, 3, 28, 0, 0, 0.0),
00202 DayTime::END_OF_TIME )));
00203 NtoPMap.insert( std::pair<const int, XRefNode>( 34, XRefNode( 4,
00204 DayTime( 1993, 10, 26, 0, 0, 0.0),
00205 DayTime::END_OF_TIME )));
00206 NtoPMap.insert( std::pair<const int, XRefNode>( 35, XRefNode( 5,
00207 DayTime( 1993, 8, 30, 0, 0, 0.0),
00208 DayTime( 2009, 3, 26, 20, 31, 0.0))));
00209 NtoPMap.insert( std::pair<const int, XRefNode>( 36, XRefNode( 6,
00210 DayTime( 1995, 3, 10, 0, 0, 0.0),
00211 DayTime::END_OF_TIME )));
00212 NtoPMap.insert( std::pair<const int, XRefNode>( 37, XRefNode( 7,
00213 DayTime( 1993, 5, 13, 0, 0, 0.0),
00214 DayTime( 2007, 7, 20, 23, 59, 0.0))));
00215 NtoPMap.insert( std::pair<const int, XRefNode>( 37, XRefNode( 1,
00216 DayTime( 2008, 10, 23, 0, 0, 0.0),
00217 DayTime( 2009, 1, 6, 23, 59, 0.0))));
00218 NtoPMap.insert( std::pair<const int, XRefNode>( 38, XRefNode( 8,
00219 DayTime( 1997, 11, 6, 0, 0, 0.0),
00220 DayTime::END_OF_TIME )));
00221 NtoPMap.insert( std::pair<const int, XRefNode>( 39, XRefNode( 9,
00222 DayTime( 1993, 6, 26, 0, 0, 0.0),
00223 DayTime::END_OF_TIME )));
00224 NtoPMap.insert( std::pair<const int, XRefNode>( 40, XRefNode( 10,
00225 DayTime( 1996, 7, 16, 0, 0, 0.0),
00226 DayTime::END_OF_TIME )));
00227 NtoPMap.insert( std::pair<const int, XRefNode>( 41, XRefNode( 14,
00228 DayTime( 2000, 11, 10, 0, 0, 0.0),
00229 DayTime::END_OF_TIME )));
00230
00231 NtoPMap.insert( std::pair<const int, XRefNode>( 43, XRefNode( 13,
00232 DayTime( 1997, 7, 23, 0, 0, 0.0),
00233 DayTime::END_OF_TIME )));
00234 NtoPMap.insert( std::pair<const int, XRefNode>( 44, XRefNode( 28,
00235 DayTime( 2000, 7, 16, 0, 0, 0.0),
00236 DayTime::END_OF_TIME )));
00237 NtoPMap.insert( std::pair<const int, XRefNode>( 45, XRefNode( 21,
00238 DayTime( 2003, 3, 31, 0, 0, 0.0),
00239 DayTime::END_OF_TIME )));
00240 NtoPMap.insert( std::pair<const int, XRefNode>( 46, XRefNode( 11,
00241 DayTime( 1999, 10, 7, 0, 0, 0.0),
00242 DayTime::END_OF_TIME )));
00243 NtoPMap.insert( std::pair<const int, XRefNode>( 47, XRefNode( 22,
00244 DayTime( 2003, 12, 21, 0, 0, 0.0),
00245 DayTime::END_OF_TIME )));
00246 NtoPMap.insert( std::pair<const int, XRefNode>( 48, XRefNode( 7,
00247 DayTime( 2008, 3, 15, 0, 0, 0.0),
00248 DayTime::END_OF_TIME )));
00249 NtoPMap.insert( std::pair<const int, XRefNode>( 49, XRefNode( 1,
00250 DayTime( 2009, 3, 24, 0, 0, 0.0),
00251 DayTime::END_OF_TIME )));
00252 NtoPMap.insert( std::pair<const int, XRefNode>( 50, XRefNode( 5,
00253 DayTime( 2009, 8, 27, 0, 0, 0.0),
00254 DayTime::END_OF_TIME )));
00255 NtoPMap.insert( std::pair<const int, XRefNode>( 51, XRefNode( 20,
00256 DayTime( 2000, 5, 11, 0, 0, 0.0),
00257 DayTime::END_OF_TIME )));
00258 NtoPMap.insert( std::pair<const int, XRefNode>( 52, XRefNode( 31,
00259 DayTime( 2006, 9, 25, 0, 0, 0.0),
00260 DayTime::END_OF_TIME )));
00261 NtoPMap.insert( std::pair<const int, XRefNode>( 53, XRefNode( 17,
00262 DayTime( 2005, 9, 26, 0, 0, 0.0),
00263 DayTime::END_OF_TIME )));
00264 NtoPMap.insert( std::pair<const int, XRefNode>( 54, XRefNode( 18,
00265 DayTime( 2001, 1, 30, 0, 0, 0.0),
00266 DayTime::END_OF_TIME )));
00267 NtoPMap.insert( std::pair<const int, XRefNode>( 55, XRefNode( 15,
00268 DayTime( 2007, 10, 17, 0, 0, 0.0),
00269 DayTime::END_OF_TIME )));
00270 NtoPMap.insert( std::pair<const int, XRefNode>( 56, XRefNode( 16,
00271 DayTime( 2003, 1, 29, 0, 0, 0.0),
00272 DayTime::END_OF_TIME )));
00273 NtoPMap.insert( std::pair<const int, XRefNode>( 57, XRefNode( 29,
00274 DayTime( 2007, 12, 21, 0, 0, 0.0),
00275 DayTime::END_OF_TIME )));
00276 NtoPMap.insert( std::pair<const int, XRefNode>( 58, XRefNode( 12,
00277 DayTime( 2006, 11, 17, 0, 0, 0.0),
00278 DayTime::END_OF_TIME )));
00279 NtoPMap.insert( std::pair<const int, XRefNode>( 59, XRefNode( 19,
00280 DayTime( 2004, 3, 20, 0, 0, 0.0),
00281 DayTime::END_OF_TIME )));
00282 NtoPMap.insert( std::pair<const int, XRefNode>( 60, XRefNode( 23,
00283 DayTime( 2004, 6, 23, 0, 0, 0.0),
00284 DayTime::END_OF_TIME )));
00285 NtoPMap.insert( std::pair<const int, XRefNode>( 61, XRefNode( 2,
00286 DayTime( 2004, 6, 6, 0, 0, 0.0),
00287 DayTime::END_OF_TIME )));
00288 NtoPMap.insert( std::pair<const int, XRefNode>( 62, XRefNode( 25,
00289 DayTime( 2010, 5, 28, 3, 0, 0.0),
00290 DayTime::END_OF_TIME )));
00291
00292
00293
00294
00295
00296
00297 PtoNMap.insert( std::pair<const int, XRefNode>( 1, XRefNode( 32,
00298 DayTime( 1992, 11, 22, 0, 0, 0.0),
00299 DayTime( 2008, 3, 17, 22, 0, 0.0))));
00300 PtoNMap.insert( std::pair<const int, XRefNode>( 1, XRefNode( 37,
00301 DayTime( 2008, 10, 23, 0, 0, 0.0),
00302 DayTime( 2009, 1, 7, 23, 59, 59.0))));
00303 PtoNMap.insert( std::pair<const int, XRefNode>( 1, XRefNode( 49,
00304 DayTime( 2009, 3, 24, 0, 0, 0.0),
00305 DayTime::END_OF_TIME )));
00306 PtoNMap.insert( std::pair<const int, XRefNode>( 2, XRefNode( 13,
00307 DayTime( 1989, 6, 10, 0, 0, 0.0),
00308 DayTime( 2004, 5, 12, 17, 1, 0.0))));
00309 PtoNMap.insert( std::pair<const int, XRefNode>( 2, XRefNode( 61,
00310 DayTime( 2004, 6, 6, 0, 0, 0.0),
00311 DayTime::END_OF_TIME )));
00312 PtoNMap.insert( std::pair<const int, XRefNode>( 3, XRefNode( 11,
00313 DayTime( 1985, 10, 30, 0, 0, 0.0),
00314 DayTime( 1994, 4, 14, 21, 0, 0.0))));
00315 PtoNMap.insert( std::pair<const int, XRefNode>( 3, XRefNode( 33,
00316 DayTime( 1996, 3, 28, 0, 0, 0.0),
00317 DayTime::END_OF_TIME )));
00318 PtoNMap.insert( std::pair<const int, XRefNode>( 4, XRefNode( 1,
00319 DayTime( 1978, 2, 22, 0, 0, 0.0),
00320 DayTime( 1985, 7, 17, 17, 30, 0.0))));
00321 PtoNMap.insert( std::pair<const int, XRefNode>( 4, XRefNode( 34,
00322 DayTime( 1993, 10, 26, 0, 0, 0.0),
00323 DayTime::END_OF_TIME )));
00324 PtoNMap.insert( std::pair<const int, XRefNode>( 5, XRefNode( 5,
00325 DayTime( 1980, 2, 9, 0, 0, 0.0),
00326 DayTime( 1984, 5, 11, 23, 59, 0.0))));
00327 PtoNMap.insert( std::pair<const int, XRefNode>( 5, XRefNode( 35,
00328 DayTime( 1993, 8, 30, 0, 0, 0.0),
00329 DayTime( 2009, 3, 26, 20, 31, 0.0))));
00330 PtoNMap.insert( std::pair<const int, XRefNode>( 5, XRefNode( 50,
00331 DayTime( 2009, 8, 27, 0, 0, 0.0),
00332 DayTime::END_OF_TIME )));
00333 PtoNMap.insert( std::pair<const int, XRefNode>( 6, XRefNode( 3,
00334 DayTime( 1978, 10, 6, 0, 0, 0.0),
00335 DayTime( 1992, 5, 18, 23, 41, 0.0))));
00336 PtoNMap.insert( std::pair<const int, XRefNode>( 6, XRefNode( 36,
00337 DayTime( 1995, 3, 10, 0, 0, 0.0),
00338 DayTime::END_OF_TIME )));
00339 PtoNMap.insert( std::pair<const int, XRefNode>( 7, XRefNode( 2,
00340 DayTime( 1978, 6, 13, 0, 0, 0.0),
00341 DayTime( 1988, 2, 12, 23, 59, 0.0))));
00342 PtoNMap.insert( std::pair<const int, XRefNode>( 7, XRefNode( 37,
00343 DayTime( 1993, 5, 13, 0, 0, 0.0),
00344 DayTime( 2007, 7, 20, 23, 59, 0.0))));
00345 PtoNMap.insert( std::pair<const int, XRefNode>( 7, XRefNode( 48,
00346 DayTime( 2008, 3, 15, 0, 0, 0.0),
00347 DayTime::END_OF_TIME )));
00348 PtoNMap.insert( std::pair<const int, XRefNode>( 8, XRefNode( 4,
00349 DayTime( 1978, 12, 10, 0, 0, 0.0),
00350 DayTime( 1990, 5, 31, 23, 59, 0.0))));
00351 PtoNMap.insert( std::pair<const int, XRefNode>( 8, XRefNode( 38,
00352 DayTime( 1997, 11, 6, 0, 0, 0.0),
00353 DayTime::END_OF_TIME )));
00354 PtoNMap.insert( std::pair<const int, XRefNode>( 9, XRefNode( 6,
00355 DayTime( 1980, 4, 26, 0, 0, 0.0),
00356 DayTime( 1991, 3, 6, 3, 42, 0.0))));
00357 PtoNMap.insert( std::pair<const int, XRefNode>( 9, XRefNode( 39,
00358 DayTime( 1993, 6, 26, 0, 0, 0.0),
00359 DayTime::END_OF_TIME )));
00360 PtoNMap.insert( std::pair<const int, XRefNode>( 10, XRefNode( 40,
00361 DayTime( 1996, 7, 16, 0, 0, 0.0),
00362 DayTime::END_OF_TIME )));
00363 PtoNMap.insert( std::pair<const int, XRefNode>( 11, XRefNode( 8,
00364 DayTime( 1983, 7, 14, 0, 0, 0.0),
00365 DayTime( 1993, 5, 4, 0, 20, 0.0))));
00366 PtoNMap.insert( std::pair<const int, XRefNode>( 11, XRefNode( 46,
00367 DayTime( 1999, 10, 7, 0, 0, 0.0),
00368 DayTime::END_OF_TIME )));
00369 PtoNMap.insert( std::pair<const int, XRefNode>( 12, XRefNode( 10,
00370 DayTime( 1984, 9, 8, 0, 0, 0.0),
00371 DayTime( 1996, 3, 26, 23, 59, 0.0))));
00372 PtoNMap.insert( std::pair<const int, XRefNode>( 12, XRefNode( 58,
00373 DayTime( 2006, 11, 17, 0, 0, 0.0),
00374 DayTime::END_OF_TIME )));
00375 PtoNMap.insert( std::pair<const int, XRefNode>( 13, XRefNode( 9,
00376 DayTime( 1984, 6, 13, 0, 0, 0.0),
00377 DayTime( 1993, 5, 4, 18, 17, 0.0))));
00378 PtoNMap.insert( std::pair<const int, XRefNode>( 13, XRefNode( 43,
00379 DayTime( 1997, 7, 23, 0, 0, 0.0),
00380 DayTime::END_OF_TIME )));
00381 PtoNMap.insert( std::pair<const int, XRefNode>( 14, XRefNode( 14,
00382 DayTime( 1989, 2, 14, 0, 0, 0.0),
00383 DayTime( 2000, 4, 14, 13, 47, 0.0))));
00384 PtoNMap.insert( std::pair<const int, XRefNode>( 14, XRefNode( 41,
00385 DayTime( 2000, 11, 10, 0, 0, 0.0),
00386 DayTime::END_OF_TIME )));
00387 PtoNMap.insert( std::pair<const int, XRefNode>( 15, XRefNode( 15,
00388 DayTime( 1990, 10, 1, 0, 0, 0.0),
00389 DayTime( 2007, 3, 15, 23, 59, 0.0))));
00390 PtoNMap.insert( std::pair<const int, XRefNode>( 15, XRefNode( 55,
00391 DayTime( 2007, 10, 17, 0, 0, 0.0),
00392 DayTime::END_OF_TIME )));
00393 PtoNMap.insert( std::pair<const int, XRefNode>( 16, XRefNode( 16,
00394 DayTime( 1989, 8, 18, 0, 0, 0.0),
00395 DayTime( 2000, 10, 13, 0, 45, 0.0))));
00396 PtoNMap.insert( std::pair<const int, XRefNode>( 16, XRefNode( 56,
00397 DayTime( 2003, 1, 29, 0, 0, 0.0),
00398 DayTime::END_OF_TIME )));
00399 PtoNMap.insert( std::pair<const int, XRefNode>( 17, XRefNode( 17,
00400 DayTime( 1989, 12, 11, 0, 0, 0.0),
00401 DayTime( 2005, 2, 23, 22, 0, 0.0))));
00402 PtoNMap.insert( std::pair<const int, XRefNode>( 17, XRefNode( 53,
00403 DayTime( 2005, 9, 26, 0, 0, 0.0),
00404 DayTime::END_OF_TIME )));
00405 PtoNMap.insert( std::pair<const int, XRefNode>( 18, XRefNode( 18,
00406 DayTime( 1990, 1, 24, 0, 0, 0.0),
00407 DayTime( 2000, 8, 18, 7, 42, 0.0))));
00408 PtoNMap.insert( std::pair<const int, XRefNode>( 18, XRefNode( 54,
00409 DayTime( 2001, 1, 30, 0, 0, 0.0),
00410 DayTime::END_OF_TIME )));
00411 PtoNMap.insert( std::pair<const int, XRefNode>( 19, XRefNode( 19,
00412 DayTime( 1989, 10, 21, 0, 0, 0.0),
00413 DayTime( 2001, 9, 11, 22, 0, 0.0))));
00414 PtoNMap.insert( std::pair<const int, XRefNode>( 19, XRefNode( 59,
00415 DayTime( 2004, 3, 20, 0, 0, 0.0),
00416 DayTime::END_OF_TIME )));
00417 PtoNMap.insert( std::pair<const int, XRefNode>( 20, XRefNode( 20,
00418 DayTime( 1990, 3, 26, 0, 0, 0.0),
00419 DayTime( 1996, 12, 13, 23, 59, 0.0))));
00420 PtoNMap.insert( std::pair<const int, XRefNode>( 20, XRefNode( 51,
00421 DayTime( 2000, 5, 11, 0, 0, 0.0),
00422 DayTime::END_OF_TIME )));
00423 PtoNMap.insert( std::pair<const int, XRefNode>( 21, XRefNode( 21,
00424 DayTime( 1990, 8, 2, 0, 0, 0.0),
00425 DayTime( 2003, 1, 27, 22, 0, 0.0))));
00426 PtoNMap.insert( std::pair<const int, XRefNode>( 21, XRefNode( 45,
00427 DayTime( 2003, 3, 31, 0, 0, 0.0),
00428 DayTime::END_OF_TIME )));
00429 PtoNMap.insert( std::pair<const int, XRefNode>( 22, XRefNode( 22,
00430 DayTime( 1993, 2, 3, 0, 0, 0.0),
00431 DayTime( 2003, 8, 6, 22, 0, 0.0))));
00432 PtoNMap.insert( std::pair<const int, XRefNode>( 22, XRefNode( 47,
00433 DayTime( 2003, 12, 21, 0, 0, 0.0),
00434 DayTime::END_OF_TIME )));
00435 PtoNMap.insert( std::pair<const int, XRefNode>( 23, XRefNode( 23,
00436 DayTime( 1990, 11, 26, 0, 0, 0.0),
00437 DayTime( 2004, 2, 13, 22, 0, 0.0))));
00438 PtoNMap.insert( std::pair<const int, XRefNode>( 23, XRefNode( 60,
00439 DayTime( 2004, 6, 23, 0, 0, 0.0),
00440 DayTime::END_OF_TIME )));
00441 PtoNMap.insert( std::pair<const int, XRefNode>( 24, XRefNode( 24,
00442 DayTime( 1991, 7, 4, 0, 0, 0.0),
00443 DayTime::END_OF_TIME )));
00444 PtoNMap.insert( std::pair<const int, XRefNode>( 25, XRefNode( 25,
00445 DayTime( 1992, 2, 23, 0, 0, 0.0),
00446 DayTime( 2009, 12, 18, 22, 28, 0.0))));
00447 PtoNMap.insert( std::pair<const int, XRefNode>( 25, XRefNode( 62,
00448 DayTime( 2010, 5, 28, 3, 0, 0.0),
00449 DayTime::END_OF_TIME )));
00450 PtoNMap.insert( std::pair<const int, XRefNode>( 26, XRefNode( 26,
00451 DayTime( 1992, 7, 7, 0, 0, 0.0),
00452 DayTime::END_OF_TIME )));
00453 PtoNMap.insert( std::pair<const int, XRefNode>( 27, XRefNode( 27,
00454 DayTime( 1992, 9, 9, 0, 0, 0.0),
00455 DayTime::END_OF_TIME )));
00456 PtoNMap.insert( std::pair<const int, XRefNode>( 28, XRefNode( 28,
00457 DayTime( 1992, 4, 10, 0, 0, 0.0),
00458 DayTime( 1997, 8, 15, 23, 59, 0.0))));
00459 PtoNMap.insert( std::pair<const int, XRefNode>( 28, XRefNode( 44,
00460 DayTime( 2000, 7, 16, 0, 0, 0.0),
00461 DayTime::END_OF_TIME )));
00462 PtoNMap.insert( std::pair<const int, XRefNode>( 29, XRefNode( 29,
00463 DayTime( 1992, 12, 18, 0, 0, 0.0),
00464 DayTime( 2007, 10, 23, 23, 59, 0.0))));
00465 PtoNMap.insert( std::pair<const int, XRefNode>( 29, XRefNode( 57,
00466 DayTime( 2007, 12, 21, 0, 0, 0.0),
00467 DayTime::END_OF_TIME )));
00468 PtoNMap.insert( std::pair<const int, XRefNode>( 30, XRefNode( 30,
00469 DayTime( 1996, 9, 12, 0, 0, 0.0),
00470 DayTime::END_OF_TIME )));
00471 PtoNMap.insert( std::pair<const int, XRefNode>( 31, XRefNode( 31,
00472 DayTime( 1993, 3, 30, 0, 0, 0.0),
00473 DayTime( 2005, 10, 24, 23, 59, 0.0))));
00474 PtoNMap.insert( std::pair<const int, XRefNode>( 31, XRefNode( 52,
00475 DayTime( 2006, 9, 25, 0, 0, 0.0),
00476 DayTime::END_OF_TIME )));
00477 PtoNMap.insert( std::pair<const int, XRefNode>( 32, XRefNode( 23,
00478 DayTime( 2006, 12, 1, 0, 0, 0.0),
00479 DayTime::END_OF_TIME )));
00480 }
00481
00482 int SVNumXRef::getNAVSTAR( const int PRNID, const gpstk::DayTime dt ) const
00483 {
00484 SVNumXRefPair p = PtoNMap.equal_range( PRNID );
00485 for (SVNumXRefListCI ci=p.first; ci != p.second; ++ci )
00486 {
00487 if (ci->second.isApplicable( dt )) return( ci->second.getNAVSTARNum() );
00488 }
00489
00490
00491
00492 char textOut[80];
00493 sprintf(textOut,"No NAVSTAR # found associated with PRN ID %d at requested date: %s.",
00494 PRNID,dt.printf("%02m/%02d/%04Y").c_str() );
00495 std::string sout = textOut;
00496 NoNAVSTARNumberFound noFound( sout );
00497 GPSTK_THROW(noFound);
00498 }
00499
00500 bool SVNumXRef::NAVSTARIDAvailable( const int PRNID, const gpstk::DayTime dt ) const
00501 {
00502 SVNumXRefPair p = PtoNMap.equal_range( PRNID );
00503 for (SVNumXRefListCI ci=p.first; ci != p.second; ++ci )
00504 {
00505 if (ci->second.isApplicable( dt )) return( true );
00506 }
00507 return( false );
00508 }
00509
00510 bool SVNumXRef::NAVSTARIDActive( const int NAVSTARID, const gpstk::DayTime dt ) const
00511 {
00512 for (SVNumXRefListCI ci=PtoNMap.begin(); ci != PtoNMap.end(); ++ci )
00513 {
00514 if (ci->second.getNAVSTARNum()==NAVSTARID &&
00515 ci->second.isApplicable( dt ) ) return( true );
00516 }
00517 return( false );
00518 }
00519
00520 SVNumXRef::BlockType SVNumXRef::getBlockType( const int NAVSTARID ) const
00521 {
00522 map<int,BlockType>::const_iterator i;
00523 i = NtoBMap.find( NAVSTARID );
00524 if (i!=NtoBMap.end()) return(i->second);
00525
00526
00527
00528 char textOut[80];
00529 sprintf(textOut,"No BlockType found associated with NAVSTAR Num %d.",
00530 NAVSTARID);
00531 std::string sout = textOut;
00532 NoNAVSTARNumberFound noFound( sout );
00533 GPSTK_THROW(noFound);
00534 throw( noFound );
00535 }
00536
00537 std::string SVNumXRef::getBlockTypeString( const int NAVSTARID ) const
00538 {
00539 std::map<int,BlockType>::const_iterator i;
00540 i = NtoBMap.find( NAVSTARID );
00541 if (i!=NtoBMap.end())
00542 {
00543 switch( getBlockType( NAVSTARID ) )
00544 {
00545 case I: return("Block I"); break;
00546 case II: return("Block II"); break;
00547 case IIA: return("Block IIA"); break;
00548 case IIR: return("Block IIR"); break;
00549 case IIR_M: return("Block IIR_M"); break;
00550 case IIF: return("Block IIF"); break;
00551 }
00552
00553 }
00554 return("unknown");
00555 }
00556
00557 int SVNumXRef::getPRNID( const int NAVSTARID, const gpstk::DayTime dt ) const
00558 {
00559 NAVNumXRefPair p = NtoPMap.equal_range( NAVSTARID );
00560
00561
00562 if( p.first == (--p.second) ) return ( p.first->second.getPRNNum() );
00563 ++p.second;
00564 for (NAVNumXRefCI ci=p.first; ci != p.second; ++ci )
00565 {
00566 if (ci->second.isApplicable( dt )) return( ci->second.getPRNNum() );
00567 }
00568
00569
00570
00571 char textOut[80];
00572 sprintf(textOut,"No PRN ID found associated with NAVSTAR Num %d at requested date: %s.",
00573 NAVSTARID,dt.printf("%02m/%02d/%04Y").c_str() );
00574 std::string sout = textOut;
00575 NoNAVSTARNumberFound noFound( sout );
00576 GPSTK_THROW(noFound);
00577 throw( noFound );
00578 }
00579
00580 bool SVNumXRef::PRNIDAvailable( const int NAVSTARID, const gpstk::DayTime dt ) const
00581 {
00582 NAVNumXRefPair p = NtoPMap.equal_range( NAVSTARID );
00583 if( p.first == (--p.second) ) return ( true );
00584 ++p.second;
00585 for (NAVNumXRefCI ci=p.first; ci != p.second; ++ci )
00586 {
00587 if (ci->second.isApplicable( dt )) return( true );
00588 }
00589 return( false );
00590 }
00591
00592 bool SVNumXRef::BlockTypeAvailable( const int NAVSTARID ) const
00593 {
00594 map<int,BlockType>::const_iterator i;
00595 i = NtoBMap.find( NAVSTARID );
00596 if (i!=NtoBMap.end()) return(true);
00597 return(false);
00598 }
00599
00600
00601 XRefNode::XRefNode( const int NumArg,
00602 const gpstk::DayTime begDT,
00603 const gpstk::DayTime endDT )
00604 {
00605 Num = NumArg;
00606 begValid = begDT;
00607 endValid = endDT;
00608 }
00609
00610 bool XRefNode::isApplicable( gpstk::DayTime dt ) const
00611 {
00612 if (dt>=begValid && dt<=endValid) return(true);
00613 return(false);
00614 }
00615 }