ulburst.h
上传用户:hzie11
上传日期:2013-10-07
资源大小:1487k
文件大小:3k
源码类别:

网络

开发平台:

C/C++

  1. /* This software was developed at the National Institute of Standards and
  2.  * Technology by employees of the Federal Government in the course of
  3.  * their official duties. Pursuant to title 17 Section 105 of the United
  4.  * States Code this software is not subject to copyright protection and
  5.  * is in the public domain.
  6.  * NIST assumes no responsibility whatsoever for its use by other parties,
  7.  * and makes no guarantees, expressed or implied, about its quality,
  8.  * reliability, or any other characteristic.
  9.  * <BR>
  10.  * We would appreciate acknowledgement if the software is used.
  11.  * <BR>
  12.  * NIST ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" CONDITION AND
  13.  * DISCLAIM ANY LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING
  14.  * FROM THE USE OF THIS SOFTWARE.
  15.  * </PRE></P>
  16.  * @author  rouil
  17.  */
  18. #ifndef ULBURST_H
  19. #define ULBURST_H
  20. #include "burst.h"
  21. /* Defines the OFDM UIUC values */
  22. enum uiuc_t {
  23.   //0 is reserved
  24.   UIUC_INITIAL_RANGING=1,
  25.   UIUC_REQ_REGION_FULL,
  26.   UIUC_REQ_REGION_FOCUSED,
  27.   UIUC_FOCUSED_CONTENTION_IE,
  28.   //5-12 reserved for burst profiles
  29.   UIUC_PROFILE_1,
  30.   UIUC_PROFILE_2,
  31.   UIUC_PROFILE_3,
  32.   UIUC_PROFILE_4,
  33.   UIUC_PROFILE_5,
  34.   UIUC_PROFILE_6,
  35.   UIUC_PROFILE_7,
  36.   UIUC_PROFILE_8,
  37.   UIUC_SUBCH_NET_ENTRY=13,
  38.   UIUC_END_OF_MAP,
  39.   UIUC_EXT_UIUC
  40. };
  41. /* Defines Midamble repetition interval */
  42. enum midamble_t {
  43.   PREAMBLE_ONLY,
  44.   MIDAMBLE_8_SYMBOLS,  //every 8 data symbols
  45.   MIDAMBLE_16_SYMBOLS, //every 16 data symbols
  46.   MIDAMBLE_32_SYMBOLS  //every 32 data symbols
  47. };
  48. /* List of Extended UIUC */
  49. enum extuiuc_t {
  50.   UIUC_FAST_POWER_CTRL=0,
  51.   UIUC_PHY_MODIFIER,
  52.   UIUC_AAS,
  53.   UIUC_FAST_RANGING,
  54.   UIUC_FAST_TRACKING
  55. };
  56. /**
  57.  * Uplink Burst description
  58.  */
  59. class UlBurst : public Burst
  60. {
  61. public:
  62.   /**
  63.    * Default contructor
  64.    * @param phypdu The PhyPdu where it is located
  65.    */
  66.   UlBurst (PhyPdu *phypdu);
  67.   /**
  68.    * Return the midamble used in the burst
  69.    */
  70.   inline int getMidamble( ) { return midamble_; }
  71.   /**
  72.    * Set the midamble used in the burst
  73.    */
  74.   inline void setMidamble( int midamble ) { midamble_ = midamble; }
  75.   
  76.   /**
  77.    * Return extended uiuc
  78.    */
  79.   inline int getExtendedUIUC () { return extuiuc_; }
  80.   /**
  81.    * Set the burst to Fast Ranging
  82.    * @param macAddr address of MN
  83.    * @param uiuc Encoding to use
  84.    */
  85.   void setFastRangingParam (int macAddr, int uiuc);
  86.   
  87.   /**
  88.    * Return the mac address for fast ranging
  89.    * @return The mac address for fast ranging
  90.    */
  91.   int getFastRangingMacAddr ();
  92.   /**
  93.    * Return the UIUC encoding to use
  94.    * @return The UIUC encoding to use
  95.    */
  96.   int getFastRangingUIUC ();
  97.  private:
  98.   /**
  99.    * The type of midamble included in the burst
  100.    */
  101.   int midamble_;
  102.   /**
  103.    * The extended UIUC
  104.    */
  105.   int extuiuc_;
  106.   /**
  107.    * For Fast Ranging
  108.    */
  109.   int uiuc2_;
  110.   int macAddr_; 
  111. };
  112. #endif