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

📄 tmhpidemod_hpi.h

📁 卫星接收机器卫星 自动搜索, 包括优化处理
💻 H
📖 第 1 页 / 共 2 页
字号:
} HPIv2_tDemodTerDriverConfig;


typedef struct _HPIv2_tDemodTerCapability
{
    HPIv2_eDemodTerStandard			    Standard;
    HPIv2_eDemodTerHierarchy			Hierarchy [HPIv2_eDemodTerHierarchyMax];
    HPIv2_eDemodTerViterbiRate			ViterbiRate [HPIv2_eDemodTerRateMax];
    HPIv2_eDemodTerGuardInterval		GuardInterval [HPIv2_eDemodTerGuardIntervalMax];
    HPIv2_eDemodTerTransmissionMode  	TransmissionMode [HPIv2_eDemodTerTransmissionModeMax];
    HPIv2_eDemodTerPriority			    Priority [HPIv2_eDemodTerPriorityMax];
} HPIv2_tDemodTerCapability;


typedef enum _HPIv2_eDemodTerConfigType
{
    HPIv2_eDemodTerCfgHardware,
    HPIv2_eDemodTerCfgMax
} HPIv2_eDemodTerConfigType;


/*************************************************************************/
/****************************** Cable types ******************************/
/*************************************************************************/

typedef enum _HPIv2_eDemodCblConfigType
{
    HPIv2_eDemodCblCfgHardware,
    HPIv2_eDemodCblCfgMax
} HPIv2_eDemodCblConfigType;



/**********************************************************************/
/**************************** Common types ****************************/
/**********************************************************************/

typedef enum _HPIv2_eDemodType
{
    HPIv2_eDemodSatellite,
    HPIv2_eDemodCable,
    HPIv2_eDemodTerrestrial
} HPIv2_eDemodType;


typedef HPIv2_INT32 HPIv2_uiDemodInstance;
typedef HPIv2_UINT32 HPIv2_uiDemodFrequency;
typedef HPIv2_INT32 HPIv2_uiDemodSrBw;


typedef enum _HPIv2_eDemodSpectrum
{
    HPIv2_eDemodSpectrumAuto,
    HPIv2_eDemodSpectrumNormal,
    HPIv2_eDemodSpectrumInverted,
    HPIv2_eDemodSpectralInvMax
} HPIv2_eDemodSpectrum;


typedef enum _HPIv2_eDemodConstellation
{
    HPIv2_eDemodConstellationBpsk,
    HPIv2_eDemodConstellationQpsk,
    HPIv2_eDemodConstellationQam4 = HPIv2_eDemodConstellationQpsk,
    HPIv2_eDemodConstellation8Psk,
    HPIv2_eDemodConstellation8Vsb,
    HPIv2_eDemodConstellationQam16,
    HPIv2_eDemodConstellationQam32,
    HPIv2_eDemodConstellationQam64,
    HPIv2_eDemodConstellationQam128,
    HPIv2_eDemodConstellationQam256,
    HPIv2_eDemodConstellationAuto,
    HPIv2_eDemodConstellationMax
} HPIv2_eDemodConstellation;


typedef struct _HPIv2_tDemodHwConfig
{
    HPIv2_eDemodType	DemodType;
    HPIv2_INT32 		DemodName;
    HPIv2_INT32 		TunerName;
    HPIv2_UCHAR 		DemodI2CAdd;
    HPIv2_UCHAR 		TunerI2CAdd;
    HPIv2_UCHAR 		I2CUnit;
    HPIv2_INT32 		PioCtl;
    HPIv2_INT32 		BoardType;
} HPIv2_tDemodHwConfig;


typedef union _HPIv2_tDemodSpecificTuningConfig
{
    HPIv2_tDemodTerTuningConfig 		Ter;
    HPIv2_tDemodSatTuningConfig 		Sat;
    HPIv2_tDemodCblTuningConfig 		Cbl;
} HPIv2_tDemodSpecificTuningConfig;


typedef union _HPIv2_tDemodSpecificSearchConfig
{
    HPIv2_tDemodSatSearchConfig 		Sat;
    HPIv2_tDemodCblSearchConfig 		Cbl;
    HPIv2_tDemodTerSearchConfig 		Ter;
} HPIv2_tDemodSpecificSearchConfig;


typedef union _HPIv2_tDemodSpecificStatus
{
    HPIv2_tDemodSatStatus		Sat;
    HPIv2_tDemodCblStatus 		Cbl;
    HPIv2_tDemodTerStatus 		Ter;
} HPIv2_tDemodSpecificStatus;


typedef struct _HPIv2_tDemodSpecificDriverConfig
{
    union
    {
        HPIv2_eDemodSatConfigType	Sat;
        HPIv2_eDemodCblConfigType 	Cbl;
        HPIv2_eDemodTerConfigType 	Ter;
	}  uCfgType;    
    
    HPIv2_tDemodHwConfig	HwConfig;
    
    union
    {
        HPIv2_tDemodSatDriverConfig 	Sat;
        HPIv2_tDemodCblDriverConfig 	Cbl;
        HPIv2_tDemodTerDriverConfig 	Ter;
	}  uDrvCfg;
} HPIv2_tDemodSpecificDriverConfig;


typedef union _HPIv2_tDemodSpecificCapability
{
  HPIv2_tDemodSatCapability 		Sat;
  HPIv2_tDemodCblCapability		    Cbl;
  HPIv2_tDemodTerCapability 		Ter;
} HPIv2_tDemodSpecificCapability;


typedef struct _HPIv2_tDemodTuningConfig
{
    HPIv2_uiDemodFrequency		        Frequency;
    HPIv2_uiDemodSrBw			        Fsymb_BW;
    HPIv2_eDemodSpectrum	            SpecInv;
    HPIv2_eDemodConstellation		    Const;
    HPIv2_tDemodSpecificTuningConfig 	Specific;
} HPIv2_tDemodTuningConfig;


typedef struct _HPIv2_tDemodCapability
{
    HPIv2_eDemodType			    DemodType;
    HPIv2_uiDemodFrequency		    TunerMinFrequency;
    HPIv2_uiDemodFrequency		    TunerMaxFrequency;
    HPIv2_uiDemodSrBw			    MinFSymb_BW;
    HPIv2_uiDemodSrBw			    MaxFSymb_BW;
    HPIv2_UCHAR					    NbOfConst;
    HPIv2_eDemodConstellation		Const[HPIv2_eDemodConstellationMax];
    HPIv2_tDemodSpecificCapability 	Specific;
} HPIv2_tDemodCapability;


typedef enum _HPIv2_eDemodCarrierStatus
{
    HPIv2_eDemodCarrierUnknown_E =  0,
    HPIv2_eDemodCarrierLock,
    HPIv2_eDemodCarrierNoLock
} HPIv2_eDemodCarrierStatus;


typedef signed char   HPIv2_byDemodLvl;
typedef HPIv2_UINT32   HPIv2_byDemodAgc;


typedef HPIv2_UCHAR   HPIv2_byDemodScanProgress;


typedef struct _HPIv2_tDemodStatus
{
    HPIv2_uiDemodFrequency	        Frequency;
    HPIv2_uiDemodSrBw		        Fsymb_BW;
    HPIv2_eDemodConstellation	    Const;
    HPIv2_eDemodSpectrum		    SpecInv;
    HPIv2_eDemodCarrierStatus	    CarrierStatus;
    HPIv2_CHAR      		        LvlValue;
    HPIv2_byDemodAgc                AgcValue;	// cable: (AgcValue | 0xFF = AGCIF=f(IFMAX,IFMIN) ) (AgcValue | 0xFF00 = AGCTUN=f(TUNMAX,TUNMIN) )
    HPIv2_INT32			            VBerValue;        // Not Applicable in cable
    HPIv2_INT32				        CBerValue;
    HPIv2_INT32				        UbkValue;
    HPIv2_byDemodScanProgress	    ScanProgress;
    HPIv2_CHAR                      SnrValue;
    HPIv2_INT32                     AfcValue;
    HPIv2_INT32                     AccValue;     
    HPIv2_tDemodSpecificStatus	    Specific;
    HPIv2_UINT32                    NotUsed1;
    HPIv2_UINT32                    NotUsed2;
    HPIv2_UINT32                    NotUsed3;
} HPIv2_tDemodStatus;


typedef HPIv2_INT32  HPIv2_uiDemodStatusMask;


#define DEMOD_STATUS_FREQ		    (0x01<<0)   	/*  Bit 0: Frequency			    */
#define DEMOD_FSYMB_BW			    (0x01<<1)  	    /*  Bit 1: FSymb_BW			        */
#define DEMOD_CONST			        (0x01<<2)   	/*  Bit 2: Constellation		    */
#define DEMOD_STATUS_CARRIER_STS	(0x01<<3)   	/*  Bit 3: CarrierStatus		    */
#define DEMOD_STATUS_LVL            (0x01<<4)   	/*  Bit 4: Level in dBm                 */
#define DEMOD_STATUS_VBER           (0x01<<5)   	/*  Bit 5: VBer Value (TER, SAT)        */
#define DEMOD_STATUS_SCANPROG	    (0x01<<6)   	/*  Bit 6: ScanProgress			    */
#define DEMOD_STATUS_SPECIFIC		(0x01<<7)   	/*  Bit 7: Specific Status		    */
#define DEMOD_STATUS_SI			    (0x01<<8)   	/*  Bit 8: spectral inversion	    */ 
#define DEMOD_STANDARD			    (0x01<<9)   	/*  Bit 9: DVB-T            	    */ 
#define DEMOD_STATUS_UBK		    (0x01<<10)   	/*  Bit 10: uncor Value	     	    */
#define DEMOD_STATUS_CBER           (0x01<<11)   	/*  Bit 11: CBer Value (TER, SAT, CAB)  */
#define DEMOD_STATUS_AGC		    (0x01<<12)   	/*  Bit 12: AGC Value               */
#define DEMOD_STATUS_SNR		    (0x01<<13)   	/*  Bit 13: SNR              	        */
#define DEMOD_STATUS_AFC		    (0x01<<14)   	/*  Bit 14: AFC             	        */
#define DEMOD_STATUS_ACC		    (0x01<<15)   	/*  Bit 15: ACC             	        */

typedef struct _HPIv2_tDemodDriverConfig
{
    HPIv2_UCHAR				            NbSrBw;
    HPIv2_uiDemodSrBw*		            SrBw;
    HPIv2_tDemodSpecificDriverConfig 	Specific;
} HPIv2_tDemodDriverConfig;


typedef struct _HPIv2_tDemodSearchConfig
{
    HPIv2_uiDemodFrequency		        StartFrequency;
    HPIv2_uiDemodFrequency  		    StopFrequency;
    HPIv2_uiDemodSrBw			        Fsymb_BW;		/* fixed or automatic	*/
    HPIv2_eDemodSpectrum	            SpecInv;
    HPIv2_eDemodConstellation		    Const;			/* fixed or automatic	*/
    HPIv2_tDemodSpecificSearchConfig 	Specific;
} HPIv2_tDemodSearchConfig;


typedef HPIv2_UCHAR   HPIv2_byDemodEventType;


#define  DEMOD_EVENT_COMMON_BASE		0x00
#define  DEMOD_EVENT_SATELLITE_BASE		0x10
#define  DEMOD_EVENT_CABLE_BASE		    0x20
#define  DEMOD_EVENT_TERRESTRIAL_BASE	0x30

#define  DEMOD_CARRIER_TUNED	        DEMOD_EVENT_COMMON_BASE
#define  DEMOD_CARRIER_FOUND	        DEMOD_EVENT_COMMON_BASE + 1
#define  DEMOD_CARRIER_LOST		        DEMOD_EVENT_COMMON_BASE + 2
#define  DEMOD_END_OF_SEARCH	        DEMOD_EVENT_COMMON_BASE + 3
#define  DEMOD_CARRIER_NONE	            DEMOD_EVENT_COMMON_BASE + 4
#define  DEMOD_TUNE_FAILED	            DEMOD_EVENT_COMMON_BASE + 5

#define	 HPIv2_FE_NO_PIO_CTL			0xFF


typedef struct _HPIv2_tDemodEvent
{
    HPIv2_INT32 			Handle;
    HPIv2_byDemodEventType 	EventType;
    HPIv2_tDemodStatus 		Status;
} HPIv2_tDemodEvent;

// Event callback functions
typedef void (*HPIv2_DemodCarrierEventNotifyFn)(HPIv2_tDemodEvent* dout);
typedef void (*HPIv2_DemodChangeEventNotifyFn) (HPIv2_tDemodEvent* dout);


typedef enum _HPIv2_tDEMOD_REPORT
{
	HPIv2_eDEMOD_OK,
	HPIv2_eDEMOD_NOT_INITIALIZED,
	HPIv2_eDEMOD_COMMAND_FAILED,
	HPIv2_eDEMOD_BAD_PARAMETER,
	HPIv2_eDEMOD_RESOURCE_LIMITATION,
        HPIv2_eDEMOD_SYSTEM_ERROR,
        HPIv2_eDEMOD_OUT_OF_MEMORY,
        HPIv2_eDEMOD_NOT_IMPLEMENTED
} HPIv2_tDEMOD_REPORT;


typedef enum _HPIv2_eDemodVideoMode_t{
        /**
     * PAL I mode                  - UK and Ireland
     */
    HPIv2_eDemodVideoModePalI        = 0x01,

    /**
     * PAL B, G, and H modes       - Europe, Asia
     */
    HPIv2_eDemodVideoModePalBgh      = 0x02,

    /**
     * PAL D mode                  - China
     */
    HPIv2_eDemodVideoModePalD        = 0x04,

    /**
     * PAL N mode                  - Paraguay, Argentina
     */
    HPIv2_eDemodVideoModePalN        = 0x08,

    /**
     * PAL M mode                  - Brazil
     */
    HPIv2_eDemodVideoModePalM        = 0x10,

    /**
     * NTSC M mode                 - North America, Taiwan, Japan, Mexico,
     *                               Canada, Korea, Philippines
     */
    HPIv2_eDemodVideoModeNtscN       = 0x20,

    /**
     * SECAM B, G and H mode       - Middle East, N. Africa
     */
    HPIv2_eDemodVideoModeSecamBgh    = 0x40,

    /**
     * SECAM D, K, K1 and L mode   - East Europe, Russia
     */
    HPIv2_eDemodVideoModeSecamDkk1l  = 0x80
    
}HPIv2_eDemodVideoMode_t, *pHPIv2_eDemodVideoMode_t;

/**************************************************************************/
/**************************** Public Functions ****************************/
/**************************************************************************/


/*********** open/close functions ***********/
HPIv2_tDEMOD_REPORT HPIv2_DemodOpen(	
                                            HPIv2_eDemodType			        DemodType_E,
                                            HPIv2_uiDemodInstance*		        pDemodInstance_U,
                                            HPIv2_DemodCarrierEventNotifyFn 	pCarrierFn,
                                            HPIv2_DemodChangeEventNotifyFn 	    pChangeFn
                                      );


HPIv2_tDEMOD_REPORT HPIv2_DemodClose(
                                            HPIv2_uiDemodInstance	DemodInstance_U
                                       );


HPIv2_tDEMOD_REPORT HPIv2_DemodGetCapability(
                                                    HPIv2_uiDemodInstance	DemodInstance_U,
                                                    HPIv2_tDemodCapability* pDemodCapability_U
                                               );


HPIv2_tDEMOD_REPORT HPIv2_DemodGetStatus(
                                                HPIv2_uiDemodInstance	    DemodInstance_U,
                                                HPIv2_uiDemodStatusMask 	StatusMask,
                                                HPIv2_tDemodStatus*		    pDemodStatus
                                           );


HPIv2_tDEMOD_REPORT HPIv2_DemodSetLowPowerMode(
                                                     HPIv2_uiDemodInstance	DemodInstance_U,
                                                     HPIv2_BOOL	  		    PowerMode
                                                 );
						 
HPIv2_tDEMOD_REPORT HPIv2_DemodSetModulatorParam(
                                                     HPIv2_uiDemodInstance   DemodInstance_U,
                                                     HPIv2_UINT32            frequency,
						     HPIv2_eDemodVideoMode_t mode
                                                 );
						 
HPIv2_tDEMOD_REPORT HPIv2_DemodSetModulator(
                                                     HPIv2_uiDemodInstance	DemodInstance_U,
                                                     HPIv2_UINT32           Channel
                                                 );


HPIv2_tDEMOD_REPORT HPIv2_DemodSetDriverConfig(
                                                    HPIv2_uiDemodInstance	    DemodInstance_U,
                                                    HPIv2_tDemodDriverConfig* 	pDriverCfg_S 
                                                 );


HPIv2_tDEMOD_REPORT HPIv2_DemodGetDriverConfig(
                                                    HPIv2_uiDemodInstance	    DemodInstance_U,
                                                    HPIv2_tDemodDriverConfig* 	pDriverCfg_S 
                                                 );

/*********** tuning function ***********/
HPIv2_tDEMOD_REPORT HPIv2_DemodTune(
                                        HPIv2_uiDemodInstance	    DemodInstance_U,
                                        HPIv2_tDemodTuningConfig*	TunCfg_S
                                      );


/*********** scanning functions ***********/
HPIv2_tDEMOD_REPORT HPIv2_DemodScan(
                                         HPIv2_uiDemodInstance	    DemodInstance_U,
                                         HPIv2_tDemodSearchConfig*	din
                                      );


HPIv2_tDEMOD_REPORT HPIv2_DemodAutoScan(
                                         HPIv2_uiDemodInstance	    DemodInstance_U,
                                         HPIv2_tDemodSearchConfig*	din
                                      );

HPIv2_tDEMOD_REPORT HPIv2_DemodScanContinue( 
                                                HPIv2_uiDemodInstance     DemodInstance_U
                                              );


HPIv2_tDEMOD_REPORT HPIv2_DemodStop(
                                           HPIv2_uiDemodInstance	DemodInstance_U
                                      );
HPIv2_tDEMOD_REPORT HPIv2_DemodReadFEReg(
    					   HPIv2_uiDemodInstance	DemodInstance_U,
    					   Bool				DemodOrTuner
					);
#ifdef __cplusplus
}
#endif

#endif // TMHPIDEMOD_HPI_H //---------------

⌨️ 快捷键说明

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