MWCSDetector.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: MWCSDetector.hpp 2115 2009-09-02 18:21:09Z architest $"
00002 
00009 #ifndef GPSTK_MWCSDETECTOR_HPP
00010 #define GPSTK_MWCSDETECTOR_HPP
00011 
00012 //============================================================================
00013 //
00014 //  This file is part of GPSTk, the GPS Toolkit.
00015 //
00016 //  The GPSTk is free software; you can redistribute it and/or modify
00017 //  it under the terms of the GNU Lesser General Public License as published
00018 //  by the Free Software Foundation; either version 2.1 of the License, or
00019 //  any later version.
00020 //
00021 //  The GPSTk is distributed in the hope that it will be useful,
00022 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00023 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00024 //  GNU Lesser General Public License for more details.
00025 //
00026 //  You should have received a copy of the GNU Lesser General Public
00027 //  License along with GPSTk; if not, write to the Free Software Foundation,
00028 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00029 //
00030 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007, 2008, 2009
00031 //
00032 //============================================================================
00033 
00034 
00035 
00036 #include "ProcessingClass.hpp"
00037 #include <list>
00038 
00039 
00040 namespace gpstk
00041 {
00042 
00045 
00046 
00124    class MWCSDetector : public ProcessingClass
00125    {
00126    public:
00127 
00129       MWCSDetector() : obsType(TypeID::MWubbena), lliType1(TypeID::LLI1),
00130                        lliType2(TypeID::LLI2), resultType1(TypeID::CSL1),
00131                        resultType2(TypeID::CSL2), deltaTMax(61.0),
00132                        maxNumLambdas(10.0), useLLI(true)
00133       { setIndex(); };
00134 
00135 
00144       MWCSDetector( const double& mLambdas,
00145                     const double& dtMax = 61.0,
00146                     const bool& use = true );
00147 
00148 
00156       virtual satTypeValueMap& Process( const DayTime& epoch,
00157                                         satTypeValueMap& gData,
00158                                         const short& epochflag = 0 )
00159          throw(ProcessingException);
00160 
00161 
00167       virtual MWCSDetector& setDeltaTMax(const double& maxDelta);
00168 
00169 
00173       virtual double getDeltaTMax() const
00174       { return deltaTMax; };
00175 
00176 
00184       virtual MWCSDetector& setMaxNumLambdas(const double& mLambdas);
00185 
00186 
00190       virtual double getMaxNumLambdas() const
00191       { return maxNumLambdas; };
00192 
00193 
00199       virtual MWCSDetector& setUseLLI(const bool& use)
00200       { useLLI = use; return (*this); };
00201 
00202 
00204       virtual bool getUseLLI() const
00205       { return useLLI; };
00206 
00207 
00213       virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00214          throw(ProcessingException)
00215       { (*this).Process(gData.header.epoch, gData.body); return gData; };
00216 
00217 
00223       virtual gnssRinex& Process(gnssRinex& gData)
00224          throw(ProcessingException);
00225 
00226 
00228       virtual int getIndex(void) const;
00229 
00230 
00232       virtual std::string getClassName(void) const;
00233 
00234 
00236       virtual ~MWCSDetector() {};
00237 
00238 
00239    private:
00240 
00241 
00243       TypeID obsType;
00244 
00245 
00247       TypeID lliType1;
00248 
00249 
00251       TypeID lliType2;
00252 
00253 
00255       TypeID resultType1;
00256 
00257 
00259       TypeID resultType2;
00260 
00261 
00265       double deltaTMax;
00266 
00267 
00271       double maxNumLambdas;
00272 
00273 
00275       bool useLLI;
00276 
00277 
00279       struct filterData
00280       {
00281             // Default constructor initializing the data in the structure
00282          filterData() : formerEpoch(DayTime::BEGINNING_OF_TIME),
00283                         windowSize(0), meanMW(0.0) {};
00284 
00285          DayTime formerEpoch;    
00286          int windowSize;         
00287          double meanMW;          
00288       };
00289 
00290 
00292       std::map<SatID, filterData> MWData;
00293 
00294 
00306       virtual double getDetection( const DayTime& epoch,
00307                                    const SatID& sat,
00308                                    typeValueMap& tvMap,
00309                                    const short& epochflag,
00310                                    const double& mw,
00311                                    const double& lli1,
00312                                    const double& lli2 );
00313 
00314 
00316       static int classIndex;
00317 
00318 
00320       int index;
00321 
00322 
00324       void setIndex(void)
00325       { (*this).index = classIndex++; };
00326 
00327 
00328    }; // End of class 'MWCSDetector'
00329 
00330 
00332 
00333 }  // End of namespace gpstk
00334 
00335 #endif   // GPSTK_MWCSDETECTOR_HPP

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