BasicModel.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: BasicModel.hpp 2121 2009-09-03 11:32:31Z architest $"
00002 
00010 #ifndef GPSTK_BASICMODEL_HPP
00011 #define GPSTK_BASICMODEL_HPP
00012 
00013 //============================================================================
00014 //
00015 //  This file is part of GPSTk, the GPS Toolkit.
00016 //
00017 //  The GPSTk is free software; you can redistribute it and/or modify
00018 //  it under the terms of the GNU Lesser General Public License as published
00019 //  by the Free Software Foundation; either version 2.1 of the License, or
00020 //  any later version.
00021 //
00022 //  The GPSTk is distributed in the hope that it will be useful,
00023 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00024 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00025 //  GNU Lesser General Public License for more details.
00026 //
00027 //  You should have received a copy of the GNU Lesser General Public
00028 //  License along with GPSTk; if not, write to the Free Software Foundation,
00029 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00030 //
00031 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007, 2008, 2009
00032 //
00033 //============================================================================
00034 
00035 
00036 
00037 #include "ProcessingClass.hpp"
00038 #include "EphemerisRange.hpp"
00039 #include "EngEphemeris.hpp"
00040 #include "XvtStore.hpp"
00041 #include "GPSEphemerisStore.hpp"
00042 
00043 
00044 namespace gpstk
00045 {
00048 
00101    class BasicModel : public ProcessingClass
00102    {
00103    public:
00104 
00108       BasicModel()
00109          : minElev(10.0), pDefaultEphemeris(NULL),
00110            defaultObservable(TypeID::C1), useTGD(false)
00111       { setInitialRxPosition(); setIndex(); };
00112 
00113 
00131       BasicModel( const double& aRx,
00132                   const double& bRx,
00133                   const double& cRx,
00134                   Position::CoordinateSystem s = Position::Cartesian,
00135                   GeoidModel *geoid = NULL );
00136 
00137 
00140       BasicModel(const Position& RxCoordinates);
00141 
00142 
00154       BasicModel( const Position& RxCoordinates,
00155                   XvtStore<SatID>& dEphemeris,
00156                   const TypeID& dObservable = TypeID::C1,
00157                   const bool& applyTGD = false );
00158 
00159 
00166       virtual satTypeValueMap& Process( const DayTime& time,
00167                                         satTypeValueMap& gData )
00168          throw(ProcessingException);
00169 
00170 
00176       virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00177          throw(ProcessingException)
00178       { Process(gData.header.epoch, gData.body); return gData; };
00179 
00180 
00186       virtual gnssRinex& Process(gnssRinex& gData)
00187          throw(ProcessingException)
00188       { Process(gData.header.epoch, gData.body); return gData; };
00189 
00190 
00193       virtual double getMinElev() const
00194       { return minElev; };
00195 
00196 
00199       virtual BasicModel& setMinElev(double newElevation)
00200       { minElev = newElevation; return (*this); };
00201 
00202 
00204       virtual TypeID getDefaultObservable() const
00205       { return defaultObservable; };
00206 
00207 
00212       virtual BasicModel& setDefaultObservable(const TypeID& type)
00213       { defaultObservable = type; return (*this); };
00214 
00215 
00218       virtual XvtStore<SatID>* getDefaultEphemeris() const
00219       { return pDefaultEphemeris; };
00220 
00221 
00227       virtual BasicModel& setDefaultEphemeris(XvtStore<SatID>& ephem)
00228       { pDefaultEphemeris = &ephem; return (*this); };
00229 
00230 
00232       Position rxPos;
00233 
00234 
00236       virtual int getIndex(void) const;
00237 
00238 
00240       virtual std::string getClassName(void) const;
00241 
00242 
00244       virtual ~BasicModel() {};
00245 
00246 
00247    protected:
00248 
00249 
00252       double minElev;
00253 
00254 
00257       XvtStore<SatID>* pDefaultEphemeris;
00258 
00259 
00261       TypeID defaultObservable;
00262 
00263 
00265       bool useTGD;
00266 
00267 
00273       virtual int setInitialRxPosition( const double& aRx,
00274                                         const double& bRx,
00275                                         const double& cRx,
00276                            Position::CoordinateSystem s = Position::Cartesian,
00277                                         GeoidModel *geoid = NULL );
00278 
00279 
00281       virtual int setInitialRxPosition(const Position& RxCoordinates);
00282 
00283 
00285       virtual int setInitialRxPosition();
00286 
00287 
00289       virtual double getTGDCorrections( DayTime Tr,
00290                                         const XvtStore<SatID>& Eph,
00291                                         SatID sat )
00292          throw();
00293 
00294 
00295    private:
00296 
00297 
00299       static int classIndex;
00300 
00301 
00303       int index;
00304 
00305 
00307       void setIndex(void)
00308       { index = classIndex++; };
00309 
00310 
00311    }; // End of class 'BasicModel'
00312 
00313 
00315 
00316 }  // End of namespace gpstk
00317 
00318 #endif   // GPSTK_BASICMODEL_HPP

Generated on Wed Feb 8 03:30:57 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1