00001 #pragma ident "$Id: PhaseCodeAlignment.hpp 2121 2009-09-03 11:32:31Z architest $"
00002
00008 #ifndef GPSTK_PHASECODEALIGNMENT_HPP
00009 #define GPSTK_PHASECODEALIGNMENT_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 #include "ProcessingClass.hpp"
00036
00037
00038
00039 namespace gpstk
00040 {
00041
00044
00045
00134 class PhaseCodeAlignment : public ProcessingClass
00135 {
00136 public:
00137
00139 PhaseCodeAlignment()
00140 : phaseType(TypeID::LC), codeType(TypeID::PC),
00141 phaseWavelength(0.1069533781421467), useSatArcs(true),
00142 watchCSFlag(TypeID::CSL1)
00143 { setIndex(); };
00144
00145
00153 PhaseCodeAlignment( const TypeID& phase,
00154 const TypeID& code,
00155 const double wavelength,
00156 bool useArc = true );
00157
00158
00160 virtual TypeID getPhaseType() const
00161 { return phaseType; };
00162
00163
00168 virtual PhaseCodeAlignment& setPhaseType(const TypeID& phase)
00169 { phaseType = phase; return (*this); };
00170
00171
00173 virtual TypeID getCodeType() const
00174 { return codeType; };
00175
00176
00181 virtual PhaseCodeAlignment& setCodeType(const TypeID& code)
00182 { codeType = code; return (*this); };
00183
00184
00186 virtual double getPhaseWavelength() const
00187 { return phaseWavelength; };
00188
00189
00194 virtual PhaseCodeAlignment& setPhaseWavelength(double wavelength);
00195
00196
00199 virtual bool getUseSatArc() const
00200 { return useSatArcs; };
00201
00202
00209 virtual PhaseCodeAlignment& setUseSatArc(bool useArc)
00210 { useSatArcs = useArc; return (*this); };
00211
00212
00214 virtual TypeID getCSFlag() const
00215 { return watchCSFlag; };
00216
00217
00222 virtual PhaseCodeAlignment& setCSFlag(const TypeID& watchFlag)
00223 { watchCSFlag = watchFlag; return (*this); };
00224
00225
00232 virtual satTypeValueMap& Process( const DayTime& epoch,
00233 satTypeValueMap& gData )
00234 throw(ProcessingException);
00235
00236
00242 virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00243 throw(ProcessingException);
00244
00245
00251 virtual gnssRinex& Process(gnssRinex& gData)
00252 throw(ProcessingException);
00253
00254
00256 virtual int getIndex(void) const;
00257
00258
00260 virtual std::string getClassName(void) const;
00261
00262
00264 virtual ~PhaseCodeAlignment() {};
00265
00266
00267 private:
00268
00269
00271 TypeID phaseType;
00272
00273
00275 TypeID codeType;
00276
00277
00279 double phaseWavelength;
00280
00281
00285 bool useSatArcs;
00286
00287
00289 TypeID watchCSFlag;
00290
00291
00293 struct alignData
00294 {
00295
00296 alignData() : arcNumber(0.0), offset(0.0) {};
00297
00298 double arcNumber;
00299 double offset;
00300 };
00301
00302
00304 std::map<SatID, alignData> svData;
00305
00306
00308 static int classIndex;
00309
00311 int index;
00312
00314 void setIndex(void)
00315 { index = classIndex++; };
00316
00317
00318 };
00319
00320
00322
00323 }
00324
00325 #endif // GPSTK_PHASECODEALIGNMENT_HPP