LICSDetector2.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: LICSDetector2.hpp 2114 2009-09-02 18:14:57Z architest $"
00002 
00009 #ifndef GPSTK_LICSDETECTOR2_HPP
00010 #define GPSTK_LICSDETECTOR2_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 ). 2008, 2009
00031 //
00032 //============================================================================
00033 
00034 
00035 
00036 #include <deque>
00037 #include "ProcessingClass.hpp"
00038 
00039 
00040 
00041 namespace gpstk
00042 {
00043 
00046 
00047 
00127    class LICSDetector2 : public ProcessingClass
00128    {
00129    public:
00130 
00132       LICSDetector2() : obsType(TypeID::LI), lliType1(TypeID::LLI1),
00133                         lliType2(TypeID::LLI2), resultType1(TypeID::CSL1),
00134                         resultType2(TypeID::CSL2), deltaTMax(61.0),
00135                         satThreshold(0.08), timeConst(60.0), useLLI(true),
00136                         maxBufferSize(12)
00137       { setIndex(); };
00138 
00139 
00148       LICSDetector2( const double& satThr,
00149                      const double& tc,
00150                      const double& dtMax = 61.0,
00151                      const bool& use = true );
00152 
00153 
00161       virtual satTypeValueMap& Process( const DayTime& epoch,
00162                                         satTypeValueMap& gData,
00163                                         const short& epochflag = 0 )
00164          throw(ProcessingException);
00165 
00166 
00167 
00171       virtual double getDeltaTMax() const
00172       { return deltaTMax; };
00173 
00174 
00180       virtual LICSDetector2& setDeltaTMax(const double& maxDelta);
00181 
00182 
00186       virtual double getSatThreshold() const
00187       { return satThreshold; };
00188 
00189 
00198       virtual LICSDetector2& setSatThreshold(const double& satThr);
00199 
00200 
00202       virtual double getTimeConst() const
00203       { return timeConst; };
00204 
00205 
00212       virtual LICSDetector2& setTimeConst(const double& tc);
00213 
00214 
00216       virtual bool getUseLLI() const
00217       { return useLLI; };
00218 
00219 
00225       virtual LICSDetector2& setUseLLI(const bool& use)
00226       { useLLI = use; return (*this); };
00227 
00228 
00231       virtual double getMaxBufferSize() const
00232       { return maxBufferSize; };
00233 
00234 
00242       virtual LICSDetector2& setMaxBufferSize(const int& maxBufSize);
00243 
00244 
00250       virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00251          throw(ProcessingException)
00252       { Process(gData.header.epoch, gData.body); return gData; };
00253 
00254 
00260       virtual gnssRinex& Process(gnssRinex& gData)
00261          throw(ProcessingException);
00262 
00263 
00265       virtual int getIndex(void) const;
00266 
00267 
00269       virtual std::string getClassName(void) const;
00270 
00271 
00273       virtual ~LICSDetector2() {};
00274 
00275 
00276    private:
00277 
00278 
00280       TypeID obsType;
00281 
00282 
00284       TypeID lliType1;
00285 
00286 
00288       TypeID lliType2;
00289 
00290 
00292       TypeID resultType1;
00293 
00294 
00296       TypeID resultType2;
00297 
00298 
00301       double deltaTMax;
00302 
00303 
00305       double satThreshold;
00306 
00307 
00309       double timeConst;
00310 
00311 
00314       bool useLLI;
00315 
00316 
00318       int maxBufferSize;
00319 
00320 
00322       static const int minBufferSize;
00323 
00324 
00326       struct filterData
00327       {
00328             // Default constructor initializing the data in the structure
00329          filterData()
00330          {};
00331 
00332          std::deque<DayTime> LIEpoch;  
00333          std::deque<double> LIBuffer;  
00334       };
00335 
00336 
00338       std::map<SatID, filterData> LIData;
00339 
00340 
00351       virtual double getDetection( const DayTime& epoch,
00352                                    const SatID& sat,
00353                                    typeValueMap& tvMap,
00354                                    const short& epochflag,
00355                                    const double& li,
00356                                    const double& lli1,
00357                                    const double& lli2 );
00358 
00359 
00361       static int classIndex;
00362 
00363 
00365       int index;
00366 
00367 
00369       void setIndex(void)
00370       { index = classIndex++; };
00371 
00372 
00373    }; // End of class 'LICSDetector2'
00374 
00375 
00377 
00378 }  // End of namespace gpstk
00379 
00380 #endif   // GPSTK_LICSDETECTOR2_HPP

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