ct221.h
来自「DVB软件,基于CT216软件的开发源程序.」· C头文件 代码 · 共 228 行
H
228 行
#ifndef _CT221_H //-----------------
#define _CT221_H
//#include "nim_config.h"
//#include "ct221_reg.h"
#include "tunerAPI.h"
#define IIC_MEM
#define DevID 0xF0
#define EMPTY_VAL 0xEE
#define FFT_SIZE 8192
#define FREQ_OFFSET_140 140
/*********************************
*Information parameter
*********************************/
typedef enum
{
TYPE_NORMAL = 0,
TYPE_SCAN
} TYPE;
typedef enum
{
BW6M = 0,
BW7M,
BW8M
} BW;
typedef enum
{
QPSK = 0,
QAM_16,
QAM_64
} MOD_TYPE;
typedef enum
{
FFT_2K = 0,
FFT_8K
} FFT;
typedef enum
{
OVER32 = 0, // 1/32
OVER16, // 1/16
OVER8, // 1/8
OVER4 // 1/4
} GI;
typedef enum
{
HPMODE = 0,
LPMODE
} HPLP; // High Priority or Low Priority
typedef enum
{
CR_1over2 = 0, // 1/2
CR_2over3, // 2/3
CR_3over4, // 3/4
CR_5over6, // 5/6
CR_7over8, // 7/8
CR_none // none, NXT doesn't have this one
} CR; // Code Rate
typedef enum
{
HIER_NONE = 0,
HIER_ALPHA_1,
HIER_ALPHA_2,
HIER_ALPHA_4
} TPS_HIER; // TPS Hierarchy and Alpha value
typedef enum _emMAINPLL
{
QPLL_56_25M = 0,
//QPLL_55_50M,
//QPLL_49_95M,
//QPLL_49_50M,
QPLL_49_17M,
} emMAINPLL;
typedef enum
{
FFT_2KMODE = 2048,
FFT_8KMODE = 8192,
} enFFTMODE;
typedef struct
{
unsigned int freq;
MOD_TYPE mod;
FFT fft;
GI gi;
HPLP hplp;
CR hpcr;
CR lpcr;
TPS_HIER TpsHier;
BW bw;
} SYS_INFO, *PSYS_INFO;
typedef struct TPS_tag {
u8 GI[10];
u8 Mode[10];
u8 HP_rate[10];
u8 LP_rate[10];
u8 Constellation[10];
u8 Hierarchy[10];
u8 Select;
} tpsInfo_t;
typedef struct SYS_info_tag {
double totalPower, noisePower, signalPower, snr_ratio;
double preV, postV;
double toffset, foffset;
double ber, period, error;
//long int ;
int errCnt,packErrCnt;
int sd_Pack, sd_Man;
float sd_Exp;
int ce_msel, ce_fsel;
int gpinfo1, gpinfo2, gpinfo3,posjudge; //long int ;
int CCI_loc1, CCI_loc2;
int ICFO_max1, ICFO_max2;
bool8 TPS_Valid;
int cost_value;
int INRC_Cnt_total, INRC_Cnt0, INRC_Cnt1;
float DAGC_gain;
float per;
} SYS_info_t;
typedef enum
{
EN_CT221_STATE_ERROR,
EN_CT221_STATE_RESET,
EN_CT221_STATE_READY
}EN_CT221_STATE;
/* New Functions */
bool8 CT221_SetSDA(void);
bool8 CT221_Lock_Status(void);
bool8 CT221_Read_ICFO(void);
void CT221_GetSysInfo(SYS_INFO *pSys);
u32 CT221_Get_PER(void);
u32 CT221_Get_BER(void);
u32 CT221_Get_SNR(void);
u8 CT221_Get_SignalStrength(void);
u8 CT221_sd_gain_estimator(void);
/* CT221 Init & Reset */
bool8 CT221_soft_reset(void);
bool8 CT221_Initial(void);
/* Demod Read / Write */
void CT221_ProgramBW(u8 bw);
void CT221_SetType(TYPE enType);
void CT221_SetPriority(bool8 b8Init, HPLP enMode);
HPLP CT221_GetPriority(void);
/* Tuner Read / Write */
bool8 CT221_AcquireChannel(u32 dwInputFreqKHz, u8 ucBandWidthMHz);
bool8 CT221_Program_Tuner(u32 RfFreq, u8 ucBandWidthMHz);
/* IIC Read / Write */
bool8 CT221_SetPage(u8 page);
bool8 RegRead(u8 deviceId, u8 address, u8 *buffer, u8 bytenum);
bool8 RegWrite(u8 deviceId, u8 address, u8 *buffer, u8 bytenum);
bool8 CT221_ReadRegValue(u8 address, u8 *buffer);
bool8 CT221_Tunner_Repeater(u8 u8OnOff);
/* Testing & Monitor IIC Read / Write */
void CT221_Monitor_Switch(u8 u8Val);
void CT221_Monitor(void);
void CT221_hotkey_info(void); // ct221
bool8 CT221_dump_allReg(void); // d221
bool8 CT221_ReadReg(u8 address); // r221 0x01
bool8 CT221_WriteReg(u8 address, u8 value); // w221 0x01 0x02
void display_info(void); // i221
//bool8 CT221_soft_reset(void); // s221
//bool8 CT221_Program_Tuner(u32 RfFreq, u8 ucBandWidthMHz); // t221 533000 6
bool8 CT221_INR_Compensation(bool8 reset);
bool8 CT221_SW_INR(void);
void CT221_ADC_Clock_Test(u8 i);
u8 CT221_Get_SD_Event(void);
s32 CT221_Get_FreqOffset(u16 FFT_Mode);
TYPE CT221_GetType(void);
void CT221_AGC_Target(bool8 b8reset);
void CT221_Reset_Tuner(u8 val);
void CT221_display_snr(void);
bool8 CT221_Get_Resync(void);
bool8 CT221_Get_SD_TRK(void);
void CT221_Set_CCI_Value(void);
bool8 CT221_Set_CCI_First(u32 u32OffSetFreq);
bool8 CT221_Set_CCI_Detection(void);
/*--> Add by H100 SFChen */
bool8 CT221_Get_CCI_Detection(void);
bool8 CT221_ResetSDA(void);
bool8 CT221_Get_SD_TRK_Status(void);
bool8 CT221_TPS_Lock_Status(void);
bool8 CT221_Go(void);
EN_CT221_STATE CT221_GetState(void);
/*--> Add by H100 SFChen */
void CT221_SetClock(bool8 inverse);
bool8 CT221_SetMAINQPLL(emMAINPLL emQPLL);
bool8 CT221_SetLOFREQ(void);
bool8 CT221_CheckLOFreq(void);
s16 CT221_LO_Freq_Conv(enFFTMODE enfft_size, u8 u8BandWidth);
u8 CT221_AGCLevel(void);
void CT221_Monitor_CPE(void);
bool8 CT221_SetGI_FFT_Mode(GI emGI, FFT emFFTmode);
bool8 CT221_AdjustFreqOffSet(u32 RfFreq, u32 *u32NewRfFreq, GI *emGI, FFT *emFFTmode);
bool8 CT221_Reset_DAGCtarget(bool8 b8reset);
void CT221_InitValueByTuner(EN_TunerType enTunerType);
void CT221_InitValueByCountry(EN_TUNER_Country enCountry);
void CT221_InitValueByAISL(EN_TUNER_AISL enSetting);
void CT221_SetASpecturmInv(bool8 b8Enable); //set auto specturm inverse enable or disable
#endif //_CT221_H
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?