00001 #pragma ident "$Id: SP3Header.hpp 114 2006-09-13 03:15:34Z ocibu $"
00002
00008 #ifndef GPSTK_SP3HEADER_HPP
00009 #define GPSTK_SP3HEADER_HPP
00010
00011
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 #include <string>
00048 #include <map>
00049 #include <vector>
00050 #include "DayTime.hpp"
00051 #include "SP3Base.hpp"
00052 #include "SP3SatID.hpp"
00053
00054 namespace gpstk
00055 {
00058
00069 class SP3Header : public SP3Base
00070 {
00071 public:
00072
00074 enum TimeSystem
00075 {
00076 timeGPS=1,
00077 timeUTC
00078 };
00079
00081 SP3Header() : version('a'), numberOfEpochs(0),
00082 system(1, SP3SatID::systemGPS), timeSystem(timeGPS),
00083 basePV(0.0), baseClk(0.0)
00084 {}
00085
00087 virtual ~SP3Header() {}
00088
00090 std::string timeSystemString() const
00091 {
00092 switch(timeSystem) {
00093 case timeGPS: return "GPS";
00094 case timeUTC: return "UTC";
00095 default: return "??";
00096 }
00097 };
00098
00099
00101 virtual bool isHeader() const {return true;}
00102
00104 virtual void dump(std::ostream& s) const;
00105
00106 char version;
00107 char pvFlag;
00108
00109 DayTime time;
00110 double epochInterval;
00111 int numberOfEpochs;
00112 std::string dataUsed;
00113 std::string coordSystem;
00114 std::string orbitType;
00115 std::string agency;
00116
00117 SP3SatID system;
00118 TimeSystem timeSystem;
00119 double basePV;
00120 double baseClk;
00121
00122 std::map<SatID, short> satList;
00123 std::vector<std::string> comments;
00124
00125 friend class SP3Data;
00126
00127 protected:
00130 virtual void reallyPutRecord(FFStream& s) const
00131 throw(std::exception, FFStreamError,
00132 StringUtils::StringException);
00133
00143 virtual void reallyGetRecord(FFStream& s)
00144 throw(std::exception, FFStreamError,
00145 StringUtils::StringException);
00146 };
00147
00149
00150 }
00151
00152 #endif
00153