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

📄 drv_nim.h

📁 tunner驱动
💻 H
字号:
#ifndef _DRV_NIM_H_
#define _DRV_NIM_H_

/****************************************************************
*
* FILENAME
*	DRV_NIM.h
*
* PURPOSE 
*	EMMA2L Reference Model NIM Driver Header
*
* AUTHOR
*	Kenji.Matsuura
*
* DATE 
*	09/04/2002
*	03/09/2002	: callback stack size change
*
* HISTORY 
*
*
*****************************************************************/

/****************************************************************
*	Define Compile Options
****************************************************************/

#define  DRV_NIM_CHECK_PARAM	(DRV_DEBUG)						/* Control Parameter Check	*/
#define  DRV_NIM_HEAP  			(DRV_HEAP)						/* Heap Memory 				*/

#define  DRV_NIM_MAX_CALLBACKS  			(16)				/* Max Number of Callback Functions 		*/

#define  DRV_NIM_CALLBACK_QUEUE_SIZE  		(32)				/* Callback Function Dispatch Queue Size 	*/
#define  DRV_NIM_LOCKSCAN_QUEUE_SIZE  		(32)				/* LockScan Function Dispatch Queue Size 	*/

#define  DRV_NIM_CALLBACK_TASK_STACK_SIZE  	(4096)				/* Stack Size of Callback Function Dispatch Task */
#define  DRV_NIM_CALLBACK_TASK_PRIORITY  	(200)				/* Priority of Callback Function Dispatch Task */

#define  DRV_NIM_LOCKSCAN_TASK_STACK_SIZE  	(1024)				/* Stack Size of Lock Scan Task */
#define  DRV_NIM_LOCKSCAN_TASK_PRIORITY  	(200)				/* Priority of Lock Scan Task */




/****************************************************************
*	Define Values
****************************************************************/
#define DRV_NIM_NUMBER_OF_DEVICES	1	/* NIM Driver Device Number 		*/
#define DRV_NIM_TUNER_LNB_LOOP_OFF	0	/* TUNER LNB LOOP Release			*/
#define DRV_NIM_TUNER_LNB_LOOP_ON	1	/* TUNER LNB LOOP Setting			*/

#define DRV_NIM_IF_RANGE_LOW		 950000		/*  950MHz */
#define DRV_NIM_IF_RANGE_HIGH		2150000		/* 2150MHz */

/****************************************************************
*	Define Variable Types
****************************************************************/
typedef enum{										/* Result Code */
	DRV_NIM_OK,
	DRV_NIM_ALREADY_INITIALIZED,
	DRV_NIM_NOT_INITIALIZED,
	DRV_NIM_INVALID_PARAMETER,
	DRV_NIM_FAIL,
	DRV_NIM_CALLBACK_TABLE_NOT_ENOUGH
}DRV_NIM_RESULT;


typedef enum{										/* callback type */
	DRV_NIM_CALLBACK_TYPE_INIT,
	DRV_NIM_CHANGE_NIM_STATUS
}DRV_NIM_CALLBACK_TYPE;


typedef enum{										/* NIM qpsk lock type */
	DRV_NIM_UNLOCK=	0,
	DRV_NIM_QPSK_LOCK,
	DRV_NIM_VITERBI_LOCK
}DRV_NIM_QPSK_LOCK_TYPE;


typedef struct{										/* QPSK Status information */
	DRV_NIM_QPSK_LOCK_TYPE	LockStatus;
	I8 						QualityLevel;
	I8 						SignalLevel;
}DRV_NIM_QPSK_STATUS;


typedef enum{										/* viterbi setting rate value */
	DRV_NIM_QPSK_VITERBI_AUTO,
	DRV_NIM_QPSK_VITERBI_1_2,
	DRV_NIM_QPSK_VITERBI_2_3,
	DRV_NIM_QPSK_VITERBI_3_4,
	DRV_NIM_QPSK_VITERBI_5_6,
	DRV_NIM_QPSK_VITERBI_6_7,
	DRV_NIM_QPSK_VITERBI_7_8
}DRV_NIM_QPSK_VITERBI_RATE;



/****************************************************************
*	Global Functions
****************************************************************/
DRV_NIM_RESULT  DRV_NIM_Initialize(void);
DRV_NIM_RESULT  DRV_NIM_Finalize(void);

DRV_NIM_RESULT  DRV_NIM_InstallCallback(
					I32 Device,DRV_NIM_CALLBACK_TYPE CallbackType,void (*Callback)(I32 Device));

DRV_NIM_RESULT  DRV_NIM_UninstallCallback(
					I32 Device,void (*Callback)(I32 Device));

DRV_NIM_RESULT  DRV_NIM_QPSK_SetSymbolRate(
					I32 Device,I32 SymbolRate,DRV_NIM_QPSK_VITERBI_RATE ViterbiRate);

DRV_NIM_RESULT  DRV_NIM_QPSK_GetStatus(I32 Device,DRV_NIM_QPSK_STATUS *QpskStatus);

DRV_NIM_RESULT  DRV_NIM_QPSK_GetSymbolRate(
					I32 Device,I32 *SymbolRate,DRV_NIM_QPSK_VITERBI_RATE *ViterbiRate);

DRV_NIM_RESULT  DRV_NIM_QPSK_GetSpectrum(I32 Device,I8 *Spectrum );

DRV_NIM_RESULT  DRV_NIM_QPSK_GetVBEC(I32 Device,UI32 *ViterbiBitErrCount);

DRV_NIM_RESULT  DRV_NIM_QPSK_GetSNR(I32 Device,I32 *SignalNoiseRatio);

DRV_NIM_RESULT  DRV_NIM_QPSK_GetAGC(I32 Device,I32 *AutomaticGainControl);

DRV_NIM_RESULT  DRV_NIM_QPSK_GetFreqencyDeviation(I32 Device,I32 *FreqencyDeviation);

DRV_NIM_RESULT  DRV_NIM_QPSK_DisableSweepControl(I32 Device);

DRV_NIM_RESULT  DRV_NIM_QPSK_EnableSweepControl(I32 Device);

DRV_NIM_RESULT  DRV_NIM_TUNER_SetIF(I32 Device,I32 IntermediateFrequency);

DRV_NIM_RESULT  DRV_NIM_TUNER_GetIF(I32 Device,I32 *IntermediateFrequency);

DRV_NIM_RESULT  DRV_NIM_TUNER_DisableFrequencyControl(I32 Device);

DRV_NIM_RESULT  DRV_NIM_TUNER_EnableFrequencyControl(I32 Device);


#endif

⌨️ 快捷键说明

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