00001 #pragma ident "$Id: CorrectCodeBiases.hpp 2475 2010-09-20 02:53:06Z yanweignss $"
00002
00008 #ifndef GPSTK_CORRECT_CODE_BIASES_HPP
00009 #define GPSTK_CORRECT_CODE_BIASES_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 #include "ProcessingClass.hpp"
00034 #include "DCBDataReader.hpp"
00035 #include <string>
00036
00037 namespace gpstk
00038 {
00039 using namespace std;
00040
00043
00075 class CorrectCodeBiases : public ProcessingClass
00076 {
00077 public:
00078
00080 CorrectCodeBiases();
00081
00083 virtual ~CorrectCodeBiases();
00084
00089 virtual CorrectCodeBiases& setDCBFile( const string& fileP1P2,
00090 const string& fileP1C1);
00091
00095 virtual CorrectCodeBiases& setUsingC1(const bool& useC1)
00096 { usingC1 = useC1; return (*this);}
00097
00098
00102 virtual CorrectCodeBiases& setReceiver(const string& receiver)
00103 { receiverName = receiver; return (*this);}
00104
00105
00112 virtual satTypeValueMap& Process( const DayTime& time,
00113 satTypeValueMap& gData )
00114 throw(ProcessingException);
00115
00116
00122 virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00123 throw(ProcessingException)
00124 { Process(gData.header.epoch, gData.body); return gData; };
00125
00126
00132 virtual gnssRinex& Process(gnssRinex& gData)
00133 throw(ProcessingException)
00134 { Process(gData.header.epoch, gData.body); return gData; };
00135
00136
00138 virtual int getIndex() const;
00139
00140
00142 virtual std::string getClassName() const;
00143
00144 protected:
00145
00147 virtual double getDCBCorrection(const string& receiver,
00148 const SatID& sat,
00149 const TypeID& type,
00150 const bool& useC1 = false);
00151
00152 DCBDataReader dcbP1P2;
00153 DCBDataReader dcbP1C1;
00154
00156 bool usingC1;
00157
00159 std::string receiverName;
00160
00162
00163 bool crossCorrelationReceiver;
00164
00165 private:
00167 const static double factoP1P2[6];
00168 const static double factorP1C1[6];
00169 const static double factorC1X2[6];
00170
00172 static int classIndex;
00173
00175 int index;
00176
00178 void setIndex(void)
00179 { index = classIndex++; };
00180
00181
00182 };
00183
00185
00186 }
00187
00188
00189
00190 #endif // GPSTK_CORRECT_CODE_BIASES_HPP
00191