CorrectCodeBiases.hpp

Go to the documentation of this file.
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 //  This file is part of GPSTk, the GPS Toolkit.
00014 //
00015 //  The GPSTk is free software; you can redistribute it and/or modify
00016 //  it under the terms of the GNU Lesser General Public License as published
00017 //  by the Free Software Foundation; either version 2.1 of the License, or
00018 //  any later version.
00019 //
00020 //  The GPSTk is distributed in the hope that it will be useful,
00021 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 //  GNU Lesser General Public License for more details.
00024 //
00025 //  You should have received a copy of the GNU Lesser General Public
00026 //  License along with GPSTk; if not, write to the Free Software Foundation,
00027 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //
00029 //  Wei Yan - Chinese Academy of Sciences . 2009, 2010
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          // it's false by default
00163       bool crossCorrelationReceiver;
00164       
00165    private:
00167       const static double factoP1P2[6];
00168       const static double factorP1C1[6];
00169       const static double factorC1X2[6];  // for cross-correlation receiver
00170 
00172       static int classIndex;
00173 
00175       int index;
00176 
00178       void setIndex(void)
00179       { index = classIndex++; };
00180 
00181 
00182    }; // End of class 'CorrectCodeBiases'
00183 
00185 
00186 }  // End of namespace gpstk
00187 
00188 
00189 
00190 #endif   // GPSTK_CORRECT_CODE_BIASES_HPP
00191 

Generated on Tue May 22 03:30:57 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1