PhaseCodeAlignment.hpp

Go to the documentation of this file.
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 //  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 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2008, 2009
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             // Default constructor initializing the data in the structure
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    }; // End of class 'PhaseCodeAlignment'
00319 
00320 
00322 
00323 }  // End of namespace gpstk
00324 
00325 #endif   // GPSTK_PHASECODEALIGNMENT_HPP

Generated on Thu Feb 9 03:30:59 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1