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

📄 tmdlfe.h

📁 卫星接收机器卫星 自动搜索, 包括优化处理
💻 H
📖 第 1 页 / 共 4 页
字号:
   Detection automatic mode of the transmission mode
   To be detailed

   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeTerTransmissionMode_t
   {
      /** DVB 2K mode */
      tmdlFeTerTransmissionMode2K_E,    
      /** DVB 8K mode */
      tmdlFeTerTransmissionMode8K_E,    
      /** DVB automatic choice*/
      tmdlFeTerTransmissionModeAutoDetect_E, 
      /**Max value*/
      tmdlFeTerTransmissionModeMax_E
   }tmdlFeTerTransmissionMode_t;


/**
   \brief Guard interval
   interval used to minimize inter-symbol interference. 
   The more the guard interval is high, the more the reception
   is robust to echoes.
   
   \note   NA
   
   \sa     NA
*/
   typedef enum _tmdlFeTerGuardInterval_t
   {
      /** DVB guard interval 1/32       */
      tmdlFeTerGuardInterval32_E,       
      /** DVB guard interval 1/16       */
      tmdlFeTerGuardInterval16_E,       
      /** DVB guard interval 1/8        */         
      tmdlFeTerGuardInterval8_E,        
      /** DVB guard interval 1/4        */                 
      tmdlFeTerGuardInterval4_E,                
      /** automatic choice              */
      tmdlFeTerGuardIntervalAutoDetect_E, 
      /**Max value*/      
      tmdlFeTerGuardIntervalMax
   }tmdlFeTerGuardInterval_t;
   

/**
   \brief Hierachical factor

   factor between the distance between 2 symbols in the same quadran and 
   the distance between 2 different quadrans.
   1: no difference, the code is uniform
   2: the distance is twice larger
   4: the distance is fouth larger

   \note   NA

   \sa     NA
*/
   typedef enum  _tmdlFeTerHierarchy_t
   {
      /** DVB non hierarchical */
      tmdlFeTerHierarchyNonHierarchy_E,         
      /** DVB alpha = 1             */  
      tmdlFeTerHierarchyAlpha1_E,
      /** DVB alpha = 2             */
      tmdlFeTerHierarchyAlpha2_E,
      /** DVB alpha = 4             */
      tmdlFeTerHierarchyAlpha4_E,
      /** automatic choice          */
      tmdlFeTerHierarchyAutoDetect_E,  
      /**Max value*/
      tmdlFeTerHierarchyMax_E
   }tmdlFeTerHierarchy_t;


/**
   \brief Hierachical priority

   Signal priority:
   HP coded with the 2 most significant bits (also called IQ)
   LP full signal

   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeTerPriority_t
   {
      /** DVB Output high priority stream */
      tmdlFeTerPriorityHigh_E, 
      /** DVB Output low priority stream */             
      tmdlFeTerPriorityLow_E, 
      /**Max value*/            
      tmdlFeTerPriorityMax_E            
   }tmdlFeTerPriority_t;

/**
   \brief Offset of the signal

   to be detailed
   
   \note   NA

   \sa     NA
*/

   typedef enum tmdlFeTerOffset_t 
   {
      tmdlFeTerOffsetAuto = 0,
      tmdlFeTerOffsetNull,
      tmdlFeTerOffsetPlus125,
      tmdlFeTerOffsetMinus125,
      tmdlFeTerOffsetPlus166,
      tmdlFeTerOffsetMinus166,
      tmdlFeTerOffsetPlus333,
      tmdlFeTerOffsetMinus333,
      tmdlFeTerOffsetPlus500,
      tmdlFeTerOffsetMinus500, 
      /**Max value*/
      tmdlFeTerOffsetMax
   } tmdlFeTerOffset_t;

/**
   \brief Stream configuration

   transmision mode of the FFT
   guard interval
   hierachy factor
   hierarchy priority
   Viterbi puncturing rate for the High priority signal
   Viterbi puncturing rate for the low priority signal
   offset
   Cell ID 
   reserved
   \note   NA

   \sa     NA
*/
   typedef struct _tmdlFeTerDvbT_t
   {
      /** transmision mode of the FFT (number of sub carrriers 2k or 8k)*/
      tmdlFeTerTransmissionMode_t       TransmissionMode_E;
      /** guard interval*/
      tmdlFeTerGuardInterval_t  GuardInterval_E;
      /** hierachy factor (between 1, 2 or 4)*/
      tmdlFeTerHierarchy_t              Hierarchy_E;
      /** hierarchy priority (low or high)*/
      tmdlFeTerPriority_t                       Priority_E;
      /** Viterbi puncturing rate for the High priority signal*/
      tmdlFeTerViterbiRate_t            ViterbiRateHP_E;
      /** Viterbi puncturing rate for the low priority signal*/
      tmdlFeTerViterbiRate_t            ViterbiRateLP_E;
      /** offset*/
      tmdlFeTerOffset_t                 Offset;
      /** Cell ID */
      UInt16                                        Cellid;
      /**reserved*/
      Int32                                         Reserved;
   }tmdlFeTerDvbT_t;


/**************************** VSB types ****************************/

/**
   \brief  Viterbi puncturing rate

   Viterbi puncturing rate for VSB signal
   
   \note   NA

   \sa     NA
*/
   typedef struct  _tmdlFeTerVsb_t
   {
      /** Viterbi puncturing rate*/
      tmdlFeTerViterbiRate_t    ViterbiRate_E;
   }tmdlFeTerVsb_t;

/**
   \brief  Signal specification

   Standard of the signal
   configuration in the standard
   
   \note   NA

   \sa     NA
*/
   typedef struct _tmdlFeTerSignalSpecification_t
   {
      /** Terrestrial specific configuration of the signal*/
      tmdlFeTerStandard_t       Standard_S;
      /** Protocol specific part*/
      union
      {
         /** DVB T specific description*/
         tmdlFeTerDvbT_t      DvbT_S;
         /** VSB specific description*/
         tmdlFeTerVsb_t       Vsb_S;
      } uStd;
   }tmdlFeTerSignalSpecification_t;
/**
   \brief Terrestrial specific configuration of signal for tuning
   
   \note   NA

   \sa     NA
*/
   typedef tmdlFeTerSignalSpecification_t       tmdlFeTerTuningConfig_t;
/**
   \brief Terrestrial specific configuration of signal for scanning
   
   \note   NA

   \sa     NA
*/
   typedef tmdlFeTerSignalSpecification_t       tmdlFeTerSearchConfig_t;
/**
   \brief Terrestrial specific configuration of signal to get the status
   of the signal
   
   \note   NA

   \sa     NA
*/
   typedef tmdlFeTerSignalSpecification_t       tmdlFeTerStatus_t;

/**
   \brief Terrestrial specific configuration of signal
   
   dupplicate of tmdlFeTerSignalSpecification_t or tmdlFeTerStandard_t
   
   \note   NA

   \sa     NA
*/
   typedef struct _tmdlFeTerConfig
   {
      /** Terrestrial specific configuration of signal */
      tmdlFeTerStandard_t Standard_S;
   }tmdlFeTerConfig_t;


/**********************************************************************/
/**************************** Common types ****************************/
/**********************************************************************/
/**
   \brief Media type
   
   Media used:
   satellite
   Cable
   Terrestrial
   
   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeType_t
   {
      /** Media is satellite*/
      tmdlFeSatellite_E,
      /** Media is Cable*/
      tmdlFeCable_E,
      /** Media is terrestrial*/
      tmdlFeTerrestrial_E,
      /** Max value*/
      tmdlFeTypeMax_E
   }tmdlFeType_t;

/**
   \brief Instance type

   \note   NA

   \sa     NA
*/
   typedef UInt32 tmdlFeInstance_t;
/**
   \brief Frequency in hertz

   \note   NA

   \sa     NA
*/
   typedef UInt32 tmdlFeFrequency_t;
/**
   \brief symbol rate in symbol per second

   \note   NA

   \sa     NA
*/
   typedef UInt32 tmdlFeSrBw_t;


/**
   \brief Hardware  configuration
  
   Media type
   Demodulator used
   tuner used
   Address IIC of the demodulator
   Address IIC of the demodulator
   IIC unit used on the host IC (Mojo, Yoda) 
   Board type
   Pin of Input/Output used for the interrupt

   \note   NA

   \sa     NA
*/
   typedef struct _tmdlFeHwConfig_t
   {   
      /** Media type*/
      tmdlFeType_t      FeType_E;
      /** Demodulator used*/
      UInt32            DemodName_U;
      /** tuner used*/
      UInt32            TunerName_U;
      /** Address IIC of the demodulator*/
      UInt8             DemodI2CAdd_BY;
      /** Address IIC of the tuner*/
      UInt8             TunerI2CAdd_BY;
      /** IIC unit used on the host IC (Mojo, Yoda)*/
      tmUnitSelect_t    I2CUnit_BY;
      /** Board type*/
      UInt32            BoardType_U;
      /** Pin of Input/Output used for the interrupt*/
      UInt32              PioCtl;
   } tmdlFeHwConfig_t;

/**
   \brief Instance setup
  
   setup of the instance,
   mainly the hardware configuration

   \note   NA

   \sa     NA
*/
   typedef struct _tmdlFeInstanceSetup_t
   {
      /** Hardware configuration*/
      tmdlFeHwConfig_t  HwCfg_S;
   } tmdlFeInstanceSetup_t;

/**
   \brief Spectrum direction
  
   Thge spectrum can be normal or inverted
   An automatic mode also exists

   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeSpectrum_t
   {
      /** automatic detection of the spectum*/
      tmdlSpectrumAuto_E,
      /** Normal spectum*/
      tmdlSpectrumNormal_E,
      /** Inverted spectrum*/
      tmdlSpectrumInverted_E,
      /** Max value*/
      tmdlSpectralInvMax_E
   }tmdlFeSpectrum_t;

/**
   \brief Constellation type
  
   Constellation  used between BPSK (2 states) and 256 QAM (256 states)

   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeConstellation_t
   {
      /** 2 states constellation */
      tmdlFeConstellationBpsk_E,
      /** 4 states constellation */
      tmdlFeConstellationQpsk_E,
      /** 4 states constellation */
      tmdlFeConstellationQam4_E = tmdlFeConstellationQpsk_E,
      /** 8 states constellation */
      tmdlFeConstellation8Psk_E,
      /** 8 states constellation for VSB*/
      tmdlFeConstellation8Vsb_E,
      /** 16 states constellation */
      tmdlFeConstellationQam16_E,
      /** 32 states constellation */
      tmdlFeConstellationQam32_E,
      /** 64 states constellation */
      tmdlFeConstellationQam64_E,
      /** 128 states constellation */
      tmdlFeConstellationQam128_E,
      /** 256 states constellation */
      tmdlFeConstellationQam256_E,
      /** automatic detection constellation */
      tmdlFeConstellationAuto_E,
      /** Max value*/
      tmdlFeConstellationMax_E
   }tmdlFeConstellation_t;

/**
   \brief Level of the signal  

   \note   NA

   \sa     NA
*/
   typedef Int8    tmdlFeLvl_t;
/**
   \brief Agc value
   
   to be precised which AGC????
  
   \note   NA

   \sa     NA
*/
   typedef UInt32   tmdlFeAgc_t;

/**
   \brief Status of the scanning state machine

   \note   NA

   \sa     NA
*/
   typedef UInt8   tmdlFeScanProgress_t;



/**
   \brief Status of the carrier phase lock loop 

   lock indicate a carrier is present in the signal

   \note   NA

   \sa     NA
*/
   typedef enum _tmdlFeCarrierStatus_t
   {
      /** statuc unknown*/
      tmdlFeCarrierUnknow_E = 0,
      /** statuc loop locked*/
      tmdlFeCarrierLock_E,
      /** loop not locked */
      tmdlFeCarrierNoLock_E
   }tmdlFeCarrierStatus_t;
   
/**
   \brief Satellite specific configuration of signal for tuning

   \note   NA

   \sa     NA
*/
   typedef  tmdlFeSatSignalSpecification_t      tmdlFeSatTuningConfig_t;
/**

⌨️ 快捷键说明

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