SolverPPPFB.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: SolverPPPFB.hpp 1914 2009-05-24 22:09:30Z architest $"
00002 
00008 #ifndef GPSTK_SOLVERPPPFB_HPP
00009 #define GPSTK_SOLVERPPPFB_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 #include "SolverPPP.hpp"
00035 #include <list>
00036 #include <set>
00037 
00038 
00039 namespace gpstk
00040 {
00041 
00043 
00044 
00046 
00285    class SolverPPPFB : public SolverPPP
00286    {
00287    public:
00288 
00294       SolverPPPFB(bool useNEU = false);
00295 
00296 
00302       virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00303          throw(ProcessingException);
00304 
00305 
00311       virtual gnssRinex& Process(gnssRinex& gData)
00312          throw(ProcessingException);
00313 
00314 
00322       virtual void ReProcess( int cycles )
00323          throw(ProcessingException);
00324 
00325 
00332       virtual void ReProcess( void )
00333          throw(ProcessingException);
00334 
00335 
00343       virtual bool LastProcess(gnssSatTypeValue& gData)
00344          throw(ProcessingException);
00345 
00346 
00354       virtual bool LastProcess(gnssRinex& gData)
00355          throw(ProcessingException);
00356 
00357 
00359       virtual std::list<double> getCodeList( void ) const
00360       { return limitsCodeList; };
00361 
00362 
00369       virtual SolverPPPFB& setCodeList( std::list<double> codeList )
00370       { limitsCodeList = codeList; return (*this); };
00371 
00372 
00379       virtual SolverPPPFB& addCodeLimit( double codeLimit )
00380       { limitsCodeList.push_back( codeLimit ); return (*this); };
00381 
00382 
00384       virtual SolverPPPFB& clearCodeList( void )
00385       { limitsCodeList.clear(); return (*this); };
00386 
00387 
00389       virtual std::list<double> getPhaseList( void ) const
00390       { return limitsPhaseList; };
00391 
00392 
00399       virtual SolverPPPFB& setPhaseList( std::list<double> phaseList )
00400       { limitsPhaseList = phaseList; return (*this); };
00401 
00402 
00409       virtual SolverPPPFB& addPhaseLimit( double phaseLimit )
00410       { limitsPhaseList.push_back( phaseLimit ); return (*this); };
00411 
00412 
00414       virtual SolverPPPFB& clearPhaseList( void )
00415       { limitsPhaseList.clear(); return (*this); };
00416 
00417 
00419       virtual int getProcessedMeasurements(void) const
00420       { return processedMeasurements; };
00421 
00422 
00425       virtual int getRejectedMeasurements(void) const
00426       { return rejectedMeasurements; };
00427 
00428 
00435       virtual SolverPPPFB& setNEU( bool useNEU );
00436 
00437 
00439       virtual int getIndex(void) const;
00440 
00441 
00443       virtual std::string getClassName(void) const;
00444 
00445 
00447       virtual ~SolverPPPFB() {};
00448 
00449 
00450    private:
00451 
00452 
00454       bool firstIteration;
00455 
00456 
00458       std::list<gnssRinex> ObsData;
00459 
00460 
00462       TypeIDSet keepTypeSet;
00463 
00464 
00466       int processedMeasurements;
00467 
00468 
00470       int rejectedMeasurements;
00471 
00472 
00474       std::list<double> limitsCodeList;
00475 
00476 
00478       std::list<double> limitsPhaseList;
00479 
00480 
00482       static int classIndex;
00483 
00484 
00486       void checkLimits( gnssRinex& gData, double codeLimit, double phaseLimit );
00487 
00488 
00490       int index;
00491 
00493       void setIndex(void)
00494       { index = classIndex++; };
00495 
00496 
00497          // Some methods that we want to hide
00498       virtual int Compute( const Vector<double>& prefitResiduals,
00499                            const Matrix<double>& designMatrix )
00500          throw(InvalidSolver)
00501       { return 0; };
00502 
00503 
00504       virtual SolverPPPFB& setDefaultEqDefinition(
00505                                        const gnssEquationDefinition& eqDef )
00506       { return (*this); };
00507 
00508 
00509       virtual SolverPPPFB& Reset( const Vector<double>& newState,
00510                                   const Matrix<double>& newErrorCov )
00511       { return (*this); };
00512 
00513 
00514    }; // End of class 'SolverPPPFB'
00515 
00516 
00518 
00519 }  // End of namespace gpstk
00520 
00521 #endif   // GPSTK_SOLVERPPPFB_HPP

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