00001 #pragma ident "$Id: RinexNavData.hpp 236 2006-10-15 18:13:18Z architest $"
00002
00003
00004
00010 #ifndef RINEXNAVDATA_HPP
00011 #define RINEXNAVDATA_HPP
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 #include <list>
00055
00056 #include "StringUtils.hpp"
00057 #include "DayTime.hpp"
00058 #include "FFStream.hpp"
00059 #include "RinexNavBase.hpp"
00060 #include "EngEphemeris.hpp"
00061
00062 namespace gpstk
00063 {
00066
00073 class RinexNavData : public RinexNavBase
00074 {
00075 public:
00081 RinexNavData(void)
00082 : time(gpstk::DayTime::BEGINNING_OF_TIME), PRNID(-1), fitint(4)
00083 {}
00084
00086 RinexNavData(const EngEphemeris& ee);
00087
00089 virtual ~RinexNavData() {}
00090
00091
00093 virtual bool isData(void) const {return true;}
00094
00099 virtual void dump(std::ostream& s) const;
00100
00104 operator EngEphemeris() const throw();
00105
00110 std::list<double> toList() const;
00111
00115 DayTime time;
00116 short PRNID;
00117 long HOWtime;
00118 short weeknum;
00119
00120
00121 short codeflgs;
00122 double accuracy;
00123 short health;
00124 short L2Pdata;
00125 double IODC;
00126 double IODE;
00127
00128
00132 double Toc;
00133 double af0;
00134 double af1;
00135 double af2;
00136 double Tgd;
00137
00138
00142 double Cuc;
00143 double Cus;
00144 double Crc;
00145 double Crs;
00146 double Cic;
00147 double Cis;
00148
00149
00153 double Toe;
00154 double M0;
00155 double dn;
00156 double ecc;
00157 double Ahalf;
00158 double OMEGA0;
00159 double i0;
00160 double w;
00161 double OMEGAdot;
00162 double idot;
00163 double fitint;
00164
00165
00166 private:
00168 void getPRNEpoch(const std::string& currentLine)
00169 throw(gpstk::StringUtils::StringException, FFStreamError);
00174
00175 void getBroadcastOrbit1(const std::string& currentLine)
00176 throw(gpstk::StringUtils::StringException, FFStreamError);
00178 void getBroadcastOrbit2(const std::string& currentLine)
00179 throw(gpstk::StringUtils::StringException, FFStreamError);
00181 void getBroadcastOrbit3(const std::string& currentLine)
00182 throw(gpstk::StringUtils::StringException, FFStreamError);
00184 void getBroadcastOrbit4(const std::string& currentLine)
00185 throw(gpstk::StringUtils::StringException, FFStreamError);
00187 void getBroadcastOrbit5(const std::string& currentLine)
00188 throw(gpstk::StringUtils::StringException, FFStreamError);
00190 void getBroadcastOrbit6(const std::string& currentLine)
00191 throw(gpstk::StringUtils::StringException, FFStreamError);
00193 void getBroadcastOrbit7(const std::string& currentLine)
00194 throw(gpstk::StringUtils::StringException, FFStreamError);
00196
00198 std::string putPRNEpoch(void) const
00199 throw(gpstk::StringUtils::StringException);
00204
00205 std::string putBroadcastOrbit1(void) const
00206 throw(gpstk::StringUtils::StringException);
00208 std::string putBroadcastOrbit2(void) const
00209 throw(gpstk::StringUtils::StringException);
00211 std::string putBroadcastOrbit3(void) const
00212 throw(gpstk::StringUtils::StringException);
00214 std::string putBroadcastOrbit4(void) const
00215 throw(gpstk::StringUtils::StringException);
00217 std::string putBroadcastOrbit5(void) const
00218 throw(gpstk::StringUtils::StringException);
00220 std::string putBroadcastOrbit6(void) const
00221 throw(gpstk::StringUtils::StringException);
00225 std::string putBroadcastOrbit7(const double ver) const
00226 throw(gpstk::StringUtils::StringException);
00228
00229 protected:
00231 virtual void reallyPutRecord(FFStream& s) const
00232 throw(std::exception, FFStreamError,
00233 gpstk::StringUtils::StringException);
00234
00244 virtual void reallyGetRecord(FFStream& s)
00245 throw(std::exception, FFStreamError,
00246 gpstk::StringUtils::StringException);
00247 };
00248
00250
00251 }
00252
00253
00254 #endif