📄 tmhpidemod_hpi.h
字号:
} 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 + -