⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x1sequence.hpp

📁 一个gps小工具包
💻 HPP
字号:
#pragma ident "$Id: X1Sequence.hpp 70 2006-08-01 18:36:21Z ehagen $"// X1Sequence.cpp - GPS X1 Seqeuncer#ifndef X1SEQUENCE_HPP#define X1SEQUENCE_HPP//============================================================================////  This file is part of GPSTk, the GPS Toolkit.////  The GPSTk is free software; you can redistribute it and/or modify//  it under the terms of the GNU Lesser General Public License as published//  by the Free Software Foundation; either version 2.1 of the License, or//  any later version.////  The GPSTk is distributed in the hope that it will be useful,//  but WITHOUT ANY WARRANTY; without even the implied warranty of//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the//  GNU Lesser General Public License for more details.////  You should have received a copy of the GNU Lesser General Public//  License along with GPSTk; if not, write to the Free Software Foundation,//  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA//  //  Copyright 2004, The University of Texas at Austin////============================================================================//============================================================================////This software developed by Applied Research Laboratories at the University of//Texas at Austin, under contract to an agency or agencies within the U.S. //Department of Defense. The U.S. Government retains all rights to use,//duplicate, distribute, disclose, or release this software. ////Pursuant to DoD Directive 523024 //// DISTRIBUTION STATEMENT A: This software has been approved for public //                           release, distribution is unlimited.////=============================================================================   // Project headers#include "PCodeConst.hpp"namespace gpstk{/** @addtogroup code   *///@{      /**        *     GPS X1 Sequencer.        *     Applied Research Laboratories, The University of Texas at Austin        *     August 2003        *        *  X1Sequence is contains        *  a six-second (four Z-count) sequence of the combined X1A/X1B data        *  for the GPS constellation.  The X1 sequence repeats every 1.5s         *  (each X1 epoch) and is identical for all SVs and all 1.5s epochs.        *  In this case, 6 seconds of bitstream is generated and stored        *  because this set of code "thinks" in term of 32-bit words and        *  a 1.5s epoch doesn't contain an integer number of 32-bit words        *  of packed bits) - there's a .25 word (8 bit) remainder.          *  Therefore, a six second seqeunce DOES include an even mulitple        *  of 32 bits, which greatly simplifies handling of the data.        *        *  Six seconds of X1 bits is a significant amount of data:        *    X1 Epoch = 4092 X1A bits * 3750 X1A cycles = 15,345,000 bits        *    6 s = 4 X1 Epoch = 4 * bits = 4 * 15,345,000 = 61,380,000 bits.                      *    The number of 32 bit words required equals        *    61,380,000 bits / 32 bits/word = 1,918,125 words        */   class X1Sequence   {      public:            /**             *  Initialize the member variables associated with this object.              *  In the case of this class, this is a significant amount of              *  work. The X1A/X1B process described in ICD-GPS-200B is followed             *  in order to fill the X1Bits array.             */         X1Sequence();         ~X1Sequence( ) {};            /**  The X1 sequence requires a 6-second buffer of 10MBit/sec              *   samples.  This comes to approximately 2 million four-byte             *   unsigned integers.  These data are the same for all PRN codes             *   To minimize the memory footprint, these data are stored             *   in a dynamically-allocated static array.  It is              *     - - - - NECESSARY - - - -             *   that the calling method call X1Sequence::allocateMemory()             *   PRIOR to instantiating the first X1Sequence object.              *   X1Sequence::allocateMemory() should only be called once.             *   Violation of either condition will result in a              *   gpstk::Exception thrown from either X1Sequence::X1Sequence()             *   or X1Sequence::allocateMemory().             *             *   The X1Sequence::deAllocateMemory() method may be called to             *   release the memory (if desired) but it should only be called             *   after all X1Sequence objects have been "destroyed".             */         static void allocateMemory( );         static void deAllocateMemory( );                  unsigned long & operator[]( int i );            /**             *  Given a word number from 0 to NUM_6SEC_WORDS, return the              *  requested word.             */         const unsigned long & operator[] ( int i ) const;           private:         static unsigned long* X1Bits;         static bool isInit;    };   inline unsigned long & X1Sequence::operator[] ( int i )   {      return(X1Bits[i]);    }   inline const unsigned long & X1Sequence::operator[] ( int i ) const   {      return(X1Bits[i]);   }}  // end of namespace#endif // X1SEQUENCE_HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -