LICSDetector.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: LICSDetector.hpp 1308 2008-07-22 20:01:04Z architest $"
00002 
00008 #ifndef LICSDETECTOR_HPP
00009 #define LICSDETECTOR_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 ). 2007, 2008
00030 //
00031 //============================================================================
00032 
00033 
00034 
00035 #include "ProcessingClass.hpp"
00036 
00037 
00038 
00039 namespace gpstk
00040 {
00041 
00044 
00045 
00103    class LICSDetector : public ProcessingClass
00104    {
00105    public:
00106 
00108       LICSDetector() : obsType(TypeID::LI), lliType1(TypeID::LLI1),
00109                        lliType2(TypeID::LLI2), resultType1(TypeID::CSL1),
00110                        resultType2(TypeID::CSL2), deltaTMax(61.0),
00111                        minThreshold(0.04), LIDrift(0.002), useLLI(true)
00112       { setIndex(); };
00113 
00114 
00122       LICSDetector( const double& mThr,
00123                     const double& drift,
00124                     const double& dtMax = 61.0,
00125                     const bool& use = true);
00126 
00127 
00135       virtual satTypeValueMap& Process( const DayTime& epoch,
00136                                         satTypeValueMap& gData,
00137                                         const short& epochflag = 0 )
00138          throw(ProcessingException);
00139 
00140 
00141 
00145       virtual double getDeltaTMax() const
00146       { return deltaTMax; };
00147 
00148 
00154       virtual LICSDetector& setDeltaTMax(const double& maxDelta);
00155 
00156 
00160       virtual double getMinThreshold() const
00161       { return minThreshold; };
00162 
00163 
00170       virtual LICSDetector& setMinThreshold(const double& mThr);
00171 
00172 
00174       virtual double getLIDrift() const
00175       { return LIDrift; };
00176 
00177 
00182       virtual LICSDetector& setLIDrift(const double& drift);
00183 
00184 
00186       virtual bool getUseLLI() const
00187       { return useLLI; };
00188 
00189 
00195       virtual LICSDetector& setUseLLI(const bool& use)
00196       { useLLI = use; return (*this); };
00197 
00198 
00204       virtual gnssSatTypeValue& Process(gnssSatTypeValue& gData)
00205          throw(ProcessingException)
00206       { Process(gData.header.epoch, gData.body); return gData; };
00207 
00208 
00214       virtual gnssRinex& Process(gnssRinex& gData)
00215          throw(ProcessingException);
00216 
00217 
00219       virtual int getIndex(void) const;
00220 
00221 
00223       virtual std::string getClassName(void) const;
00224 
00225 
00227       virtual ~LICSDetector() {};
00228 
00229 
00230    private:
00231 
00232 
00234       TypeID obsType;
00235 
00236 
00238       TypeID lliType1;
00239 
00240 
00242       TypeID lliType2;
00243 
00244 
00246       TypeID resultType1;
00247 
00248 
00250       TypeID resultType2;
00251 
00252 
00255       double deltaTMax;
00256 
00257 
00259       double minThreshold;
00260 
00261 
00263       double LIDrift;
00264 
00265 
00268       bool useLLI;
00269 
00270 
00272       struct filterData
00273       {
00274             // Default constructor initializing the data in the structure
00275          filterData() : formerEpoch(DayTime::BEGINNING_OF_TIME),
00276                         windowSize(0), formerLI(0.0), formerBias(0.0),
00277                         formerDeltaT(1.0)
00278          {};
00279 
00280          DayTime formerEpoch;    
00281          int windowSize;         
00282          double formerLI;        
00283          double formerBias;      
00284          double formerDeltaT;    
00285       };
00286 
00287 
00289       std::map<SatID, filterData> LIData;
00290 
00291 
00302       virtual double getDetection( const DayTime& epoch,
00303                                    const SatID& sat,
00304                                    typeValueMap& tvMap,
00305                                    const short& epochflag,
00306                                    const double& li,
00307                                    const double& lli1,
00308                                    const double& lli2 );
00309 
00310 
00312       static int classIndex;
00313 
00314 
00316       int index;
00317 
00318 
00320       void setIndex(void)
00321       { index = classIndex++; };
00322 
00323 
00324    }; // End of class 'LICSDetector'
00325 
00327 
00328 }
00329 #endif   // LICSDETECTOR_HPP

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