📄 csqpskdmd.c
字号:
'DMD_TIMEOUT_MSG_ID' received.
*/
case DMD_CONNECT_REQUEST_MSG_ID:
CSQPSKSetQPSKParameter( bTunerIndex, g_TQPSKChannelCopy[bTunerIndex] );
// no break to continue searching
case DMD_TIMEOUT_MSG_ID:
CSClear(bTunerIndex);
CSQPSKDiSEqCOperation(bTunerIndex);
CSQPSKSetChannelParameter( bTunerIndex, &ChannelParam);
ptrCallBack.dwFrequency = g_TQPSKChannelCopy1[bTunerIndex].dwFreqency;
ptrCallBack.dwSymbolRate = g_TQPSKChannelCopy1[bTunerIndex].dwSymbolRate;
nRet = CSQPSKSearchingSignal( bTunerIndex, &ChannelParam );
CSTRACE(QPSK_DEBUG_LEVEL, "[HDIQPSK]CSQPSKAcquisitionTask nRet = %d\r\n", nRet);
if( nRet == CSQPSK_SUCCESS )
{
g_dwNIMState[bTunerIndex] = CONNECTED;
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_CONNECTED;
CSQPSKCallback( bTunerIndex, &ptrCallBack);
}
else if(nRet == CSQPSK_FAILURE)
{
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_SEARCHING;
CSQPSKCallback(bTunerIndex, &ptrCallBack);
}
break;
case DMD_DROP_REQUEST_MSG_ID:
g_dwNIMState[bTunerIndex] = DROPPED;
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_DROPPED;
CSQPSKCallback( bTunerIndex, &ptrCallBack);
/*
Added by yuxibo 2006.02.07
Reset 'g_TQPSKChannelCopy' and 'g_TQPSKChannelCopy1'
after receiving 'DMD_DROP_REQUEST_MSG_ID' message.
*/
memset( g_TQPSKChannelCopy, -1, sizeof( g_TQPSKChannelCopy));
memset( g_TQPSKChannelCopy1, -1, sizeof( g_TQPSKChannelCopy1));
break;
case DMD_CONNECT_SAME_MSG_ID: //add by sfg for repeat send same channel
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_SEARCHING;
CSQPSKCallback(bTunerIndex, &ptrCallBack);
break;
case DMD_STS_MSG_ID:
/*do search the sky here*/
CSClear(bTunerIndex);
if (STSSearch(bTunerIndex, dwMessage [2]) == CSQPSK_SUCCESS)
{
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_STS_COMPLETE;
}
else
{
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_STS_DROPPED;
}
CSQPSKCallback(bTunerIndex, &ptrCallBack);
g_dwNIMState[bTunerIndex] = DROPPED;
break;
default: /* ignore all other type of messages */
break;
}
break; /* End of Waiting State */
case CONNECTED: /* Start of Connected State */
#ifdef QPSK_DEBUG
//CSTRACE(INFO_LEVEL,"[HDIQPSK]Current NIM Status:CONNECTED.\n");
#endif
switch (dwMessage[0])
{
case DMD_DROP_REQUEST_MSG_ID:
g_dwNIMState[bTunerIndex] = DROPPED;
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_DROPPED;
CSQPSKCallback( bTunerIndex, &ptrCallBack);
/*
Added by yuxibo 2006.02.07
Reset 'g_TQPSKChannelCopy' and 'g_TQPSKChannelCopy1'
after receiving 'DMD_DROP_REQUEST_MSG_ID' message.
*/
memset( g_TQPSKChannelCopy, -1, sizeof( g_TQPSKChannelCopy));
memset( g_TQPSKChannelCopy1, -1, sizeof( g_TQPSKChannelCopy1));
break;
case DMD_CONNECT_REQUEST_MSG_ID:
CSClear(bTunerIndex);
CSQPSKSetQPSKParameter( bTunerIndex, g_TQPSKChannelCopy[bTunerIndex] );
CSQPSKDiSEqCOperation(bTunerIndex);
CSQPSKSetChannelParameter( bTunerIndex, &ChannelParam);
ptrCallBack.dwFrequency = g_TQPSKChannelCopy1[bTunerIndex].dwFreqency;
ptrCallBack.dwSymbolRate = g_TQPSKChannelCopy1[bTunerIndex].dwSymbolRate;
nRet = CSQPSKSearchingSignal( bTunerIndex, &ChannelParam );
CSTRACE(QPSK_DEBUG_LEVEL, "[HDIQPSK]CSQPSKAcquisitionTask nRet = %d\r\n", nRet);
if( nRet == CSQPSK_SUCCESS )
{
g_dwNIMState[bTunerIndex] = CONNECTED;
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_CONNECTED;
CSQPSKCallback( bTunerIndex, &ptrCallBack);
}
else if(nRet == CSQPSK_FAILURE)
{
g_dwNIMState[bTunerIndex] = WAITING;
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_SEARCHING;
CSQPSKCallback(bTunerIndex, &ptrCallBack);
}
break;
case DMD_TIMEOUT_MSG_ID:
if (CSQPSKCheckNIMLost(bTunerIndex)== 0)
{
g_dwNIMState[bTunerIndex] = WAITING;
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_LOST;
CSQPSKCallback(bTunerIndex, &ptrCallBack);
}
break;
case DMD_CONNECT_SAME_MSG_ID:
#ifdef QPSK_DEBUG
//CSTRACE(INFO_LEVEL,"[HDIQPSK]Same Signal No need to Lock.\n");
#endif
g_dwNIMState[bTunerIndex] = CONNECTED;
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_SIGNAL_CONNECTED;
CSQPSKCallback(bTunerIndex, &ptrCallBack);
break;
case DMD_STS_MSG_ID:
/*do search the sky here*/
CSClear(bTunerIndex);
if (STSSearch(bTunerIndex, dwMessage [2]) == CSQPSK_SUCCESS)
{
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_STS_COMPLETE;
}
else
{
ptrCallBack.dwNIMEvent = QPSK_CALLBACK_STS_DROPPED;
}
CSQPSKCallback(bTunerIndex, &ptrCallBack);
g_dwNIMState[bTunerIndex] = DROPPED;
break;
default: /* ignore all other type of messages */
break;
}
break; /* End of Connected State */
default: /* this is just for completeness of switch statement */
break;
} /* end of switch(NIMState) */
} /* end of while(TRUE) loop */
}
#endif
CSQPSK_Error_t CSQPSKSwitch22K ( CSHDITunerIndex bTunerIndex, CSHDISwitch n22KStatus )
{
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if (g_bQPSKHasInitialized[bTunerIndex] != TRUE)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK]CS_QPSK has not been initialized!!!\r\n" );
#endif
return CSQPSK_FAILURE;
}
if( n22KStatus < 0 || n22KStatus > 1)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err n22KStatus = %d incorrect \n", n22KStatus);
CSTRACE( ERROR_LEVEL, " Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
return CS22KSwitch( bTunerIndex, n22KStatus) ;
}
CSQPSK_Error_t CSQPSKConfigPin13_18V ( CSHDITunerIndex bTunerIndex, int nGPIONo )
{
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if ( nGPIONo<0 ||nGPIONo>0xff)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err nGPIONo = %d incorrect \r\n", nGPIONo);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\r\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
return CSConfig13_18VPin ( bTunerIndex, nGPIONo) ;
}
CSQPSK_Error_t CSQPSKConfigPinLNBPower ( CSHDITunerIndex bTunerIndex, int nGPIONo )
{
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if ( nGPIONo<0 ||nGPIONo>0xff)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err nGPIONo = %d incorrect \r\n", nGPIONo);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\r\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
return CSConfigLNBPowerPin ( bTunerIndex, nGPIONo) ;
}
CSQPSK_Error_t CSQPSKConfigPin0_12V ( CSHDITunerIndex bTunerIndex, int nGPIONo )
{
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if ( nGPIONo<0 ||nGPIONo>0xff)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err nGPIONo = %d incorrect \r\n", nGPIONo);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\r\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
return CSConfig0_12VPin ( bTunerIndex, nGPIONo) ;
}
CSQPSK_Error_t CSQPSKSwitch13_18V ( CSHDITunerIndex bTunerIndex, Channel_Polarisation nSwitchStatus )
{
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if (g_bQPSKHasInitialized[bTunerIndex] != TRUE)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK]CS_QPSK has not been initialized!!!\r\n" );
#endif
return CSQPSK_FAILURE;
}
if( nSwitchStatus < POLARISATION_H || nSwitchStatus > POLARISATION_V )
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err nSwitchStatus = %d incorrect \n", nSwitchStatus);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if ( ( g_LNBStatus[bTunerIndex] == LNB_14V) || ( g_LNBStatus[bTunerIndex] == LNB_18V))
{
return CSHDI_SUCCESS;
}
else
{
#ifdef CX2414X_SUPPORT
if(g_bLinkICType[bTunerIndex] == CX2414x)
{
return CX2414x13_18VSwitch(bTunerIndex,nSwitchStatus);
}
else
#endif
#ifdef CX2430x_SUPPORT
if (g_bLinkICType[bTunerIndex] ==CX2430x)
{
return CX2430113_18VSwitch(bTunerIndex,nSwitchStatus);
}
else
#endif
{
return CSSet13_18V ( bTunerIndex, nSwitchStatus) ;
}
}
}
CSQPSK_Error_t CSQPSKSwitchLNBPowerInter ( CSHDITunerIndex bTunerIndex, CSQPSK_LNB_Status nSwitchStatus )
{
#ifdef CX2414X_SUPPORT
if(g_bLinkICType[bTunerIndex] == CX2414x)
{
return (CX2414xSet_LNBPower ( bTunerIndex, (UCHAR) nSwitchStatus ));
}
else
#endif
{
return CSSetLNBPower ( bTunerIndex, nSwitchStatus) ;
}
}
CSQPSK_Error_t CSQPSKSwitchLNBPower ( CSHDITunerIndex bTunerIndex, CSQPSK_LNB_Status nSwitchStatus )
{
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if (g_bQPSKHasInitialized[bTunerIndex] != TRUE)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK]CS_QPSK has not been initialized!!!\r\n" );
#endif
return CSQPSK_FAILURE;
}
if( nSwitchStatus < LNB_OFF || nSwitchStatus > LNB_18V)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err nSwitchStatus = %d incorrect \n", nSwitchStatus);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
g_LNBStatus[bTunerIndex] = nSwitchStatus;
/*
Added by yuxibo 2006.01.08
Change the parameter of [g_TQPSKChannelCopy[bTunerIndex].bLNBPower] so that
this function can be called by app.
*/
//g_TQPSKChannelCopy[bTunerIndex].bLNBPower = nSwitchStatus;
g_TQPSKChannelCopy1[bTunerIndex].bLNBPower = nSwitchStatus;
/* end */
return CSQPSKSwitchLNBPowerInter(bTunerIndex,nSwitchStatus);
}
CSQPSK_Error_t CSQPSKSwitch0_12V ( CSHDITunerIndex bTunerIndex, Switch0_12V nSwitchStatus )
{
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if (g_bQPSKHasInitialized[bTunerIndex] != TRUE)
{
#ifdef Q
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -