📄 drv_nim.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 + -