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

📄 stv0299.h

📁 菲利普pnx1300 dsp 下的stv0299数字卫星高频头的驱动程序。
💻 H
字号:

#ifndef _stv0299_H_
#define _stv0299_H_

#define EINVAL          22
typedef enum fe_caps {
	FE_IS_STUPID			= 0,
	FE_CAN_INVERSION_AUTO	= 0x1,
	FE_CAN_FEC_1_2			= 0x2,
	FE_CAN_FEC_2_3			= 0x4,
	FE_CAN_FEC_3_4			= 0x8,
	FE_CAN_FEC_4_5			= 0x10,
	FE_CAN_FEC_5_6			= 0x20,
	FE_CAN_FEC_6_7			= 0x40,
	FE_CAN_FEC_7_8			= 0x80,
	FE_CAN_FEC_8_9			= 0x100,
	FE_CAN_FEC_AUTO			= 0x200,
	FE_CAN_QPSK		    	= 0x400,
	FE_CAN_QAM_16			= 0x800,
	FE_CAN_QAM_32			= 0x1000,
	FE_CAN_QAM_64			= 0x2000,
	FE_CAN_QAM_128			= 0x4000,
	FE_CAN_QAM_256			= 0x8000,
	FE_CAN_QAM_AUTO			= 0x10000,
	FE_CAN_TRANSMISSION_MODE_AUTO	= 0x20000,
	FE_CAN_BANDWIDTH_AUTO		= 0x40000,
	FE_CAN_GUARD_INTERVAL_AUTO	= 0x80000,
	FE_CAN_HIERARCHY_AUTO		= 0x100000,
	FE_CAN_8VSB		     	= 0x200000,
	FE_CAN_16VSB			= 0x400000,
	FE_NEEDS_BENDING		= 0x20000000, // not supported anymore, don't use (frontend requires frequency bending)
	FE_CAN_RECOVER			= 0x40000000, // frontend can recover from a cable unplug automatically
	FE_CAN_MUTE_TS			= 0x80000000  // frontend can stop spurious TS data output
} fe_caps_t;

typedef enum fe_type {
	FE_QPSK,
	FE_QAM,
	FE_OFDM,
	FE_ATSC
} fe_type_t;

struct dvb_frontend_info {
	char        name[128];
	fe_type_t   type;
	UInt32      frequency_min;
	UInt32      frequency_max;
	UInt32      frequency_stepsize;
	UInt32      frequency_tolerance;
	UInt32      symbol_rate_min;
	UInt32      symbol_rate_max;
	UInt32      symbol_rate_tolerance;	/* ppm */
	UInt32      notifier_delay;		/* DEPRECATED */
	UInt32     caps;
};

typedef enum fe_spectral_inversion {
	INVERSION_OFF,
	INVERSION_ON,
	INVERSION_AUTO
} fe_spectral_inversion_t;

typedef enum fe_code_rate {
	FEC_NONE = 0,
	FEC_1_2,
	FEC_2_3,
	FEC_3_4,
	FEC_4_5,
	FEC_5_6,
	FEC_6_7,
	FEC_7_8,
	FEC_8_9,
	FEC_AUTO
} fe_code_rate_t;

typedef enum fe_sec_mini_cmd {
	SEC_MINI_A,
	SEC_MINI_B
} fe_sec_mini_cmd_t;

/**
 *  Check out the DiSEqC bus spec available on http://www.eutelsat.org/ for
 *  the meaning of this struct...
 */
struct dvb_diseqc_master_cmd {
	UInt8 msg [6];	/*  { framing, address, command, data [3] } */
	UInt8 msg_len;	/*  valid values are 3...6  */
};


struct dvb_diseqc_slave_reply {
	UInt8 msg [4];	/*  { framing, data [3] } */
	UInt8 msg_len;	/*  valid values are 0...4, 0 means no msg  */
	int  timeout;	/*  return from ioctl after timeout ms with */
};			/*  errorcode when no message was received  */


typedef enum fe_sec_voltage {
	SEC_VOLTAGE_13,
	SEC_VOLTAGE_18,
	SEC_VOLTAGE_OFF
} fe_sec_voltage_t;


typedef enum fe_sec_tone_mode {
	SEC_TONE_ON,
	SEC_TONE_OFF
} fe_sec_tone_mode_t;


typedef enum fe_status {
 	FE_HAS_BEGIN    =0X00,
	FE_HAS_SIGNAL	= 0x01,   /*  found something above the noise level */
	FE_HAS_CARRIER	= 0x02,   /*  found a DVB signal  */
	FE_HAS_VITERBI	= 0x04,   /*  FEC is stable  */
	FE_HAS_SYNC	= 0x08,   /*  found sync bytes  */
	FE_HAS_LOCK	= 0x10,   /*  everything's working... */
	FE_TIMEDOUT	= 0x20,   /*  no lock within the last ~2 seconds */
	FE_REINIT	= 0x40    /*  frontend was reinitialized,  */
} fe_status_t;			


struct dvb_qpsk_parameters {
	UInt32		symbol_rate;  /* symbol rate in Symbols per second */
	fe_code_rate_t	fec_inner;    /* forward error correction (see above) */
};



struct dvb_frontend_parameters {
	UInt32 frequency;     /* (absolute) frequency in Hz for QAM/OFDM/ATSC */
			     /* intermediate frequency in kHz for QPSK */
	fe_spectral_inversion_t inversion;
	UInt32		symbol_rate;  /* symbol rate in Symbols per second */
	fe_code_rate_t	fec_inner;    /* forward error correction (see above) */
    fe_sec_voltage_t voltage;
};
struct stv0299_regs_val {
	    UInt8  id;
		UInt8  rcr;
	 	UInt8  mcr;
		UInt8  acr;
		UInt8  f22fr;
        UInt8  crpt;
		UInt8  dacr1;
		UInt8  dacr2;
		UInt8  diseqc;
		UInt8  diseqcfifo;
		UInt8  disceqcstatus;
		UInt8  res1;
        UInt8  iocfg;
		UInt8  agc1c;
        UInt8  rtc;
		UInt8  agc1r;
		UInt8  agc2o;
		UInt8  tlsr;
		UInt8  cfd;
		UInt8  aclc;
		UInt8  bclc;
		UInt8  cldt;
		UInt8  agc1l;
		UInt8  tl1r;
		UInt8  agc2i1;
		UInt8  agc2i2;
		UInt8  rtf;
		UInt8  vstatus;
		UInt8  cldi;
		UInt8  ecnth;
		UInt8  ecntl;
		UInt8  sfrh;
		UInt8 sfrm;
		UInt8  sfrl;
		UInt8  cfrm;
		UInt8  cfrl;
		UInt8  nirh;
		UInt8  nirl;
		UInt8  verror;
		UInt8  res2;
		UInt8  fecm;
		UInt8  vth0;
		UInt8 vth1;
		UInt8  vth2;
		UInt8  vth3;
		UInt8  vth4;
		UInt8  res3;
		UInt8  res4;
		UInt8  res5;
		UInt8  pr;
		UInt8  vsearch;
		UInt8   rs;
		UInt8  errcnt;	
};

struct stv0299_regs_val_a {
//	    UInt8  id;
//		UInt8  rcr;
//	 	UInt8  mcr;
//		UInt8  acr;
//		UInt8  f22fr;
//        UInt8  crpt;
//		UInt8  dacr1;
//		UInt8  dacr2;
//		UInt8  diseqc;
//		UInt8  diseqcfifo;
//		UInt8  disceqcstatus;
//		UInt8  res1;
//        UInt8  iocfg;
//		UInt8  agc1c;
//        UInt8  rtc;
//		UInt8  agc1r;
//		UInt8  agc2o;
//		UInt8  tlsr;
//		UInt8  cfd;
//		UInt8  aclc;
//		UInt8  bclc;
//		UInt8  cldt;
		UInt8  agc1l;
		UInt8  tl1r;
		UInt8  agc2i1;
		UInt8  agc2i2;
		UInt8  rtf;
		UInt8  vstatus;
		UInt8  cldi;
		UInt8  ecnth;
		UInt8  ecntl;
		UInt8  sfrh;
		UInt8  sfrm;
		UInt8  sfrl;
		UInt8  cfrm;
		UInt8  cfrl;
		UInt8  nirh;
		UInt8  nirl;
		UInt8  verror;
//		UInt8  res2;
//		UInt8  fecm;
//		UInt8  vth0;
//		UInt8 vth1;
//		UInt8  vth2;
//		UInt8  vth3;
//		UInt8  vth4;
//		UInt8  res3;
//		UInt8  res4;
//		UInt8  res5;
//		UInt8  pr;
//		UInt8  vsearch;
//		UInt8   rs;
//		UInt8  errcnt;	
};
#endif

⌨️ 快捷键说明

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