📄 csqpskdmd.c
字号:
CSTRACE( ERROR_LEVEL, "[HDIQPSK]CS_QPSK has not been initialized!!!\r\n" );
#endif
return CSQPSK_FAILURE;
}
if( signalPtr == NULL)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err signalPtr = NULL incorrect \r\n");
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\r\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
if( (signalPtr->m_dwstandard<DVBS_STANDARD) ||(signalPtr->m_dwstandard > DVBS2_STANDARD) )
{
return CSQPSK_INVALID_PARAM;
}
if( (signalPtr->m_dwModulation < CS_QPSK) ||(signalPtr->m_dwModulation > CS_8PSK) )
{
return CSQPSK_INVALID_PARAM;
}
if( (signalPtr->bFECRates < FEC_AUTO) || (signalPtr->bFECRates > FEC9_10) )
{
return CSQPSK_INVALID_PARAM;
}
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "\r\n[HDIQPSK][CSQPSKConnectSignalS2]: dwFreqency=%ld, dwLNBHighFreq=%ld, dwLNBLowFreq=%ld, dwLNBMidFreq=%ld, nFreqencyOffset=%ld\r\n", signalPtr->dwFreqency, signalPtr->dwLNBHighFreq, signalPtr->dwLNBLowFreq, signalPtr->dwLNBMidFreq, signalPtr->nFreqencyOffset);
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignalS2]:bLNBPower=%d dwSymbolRate=%ld bPolar=0x%.2x, b22K=0x%.2x, bIQ=0x%.2x, bFec=0x%x\r\n", signalPtr->bLNBPower,signalPtr->dwSymbolRate, signalPtr->bPolar, signalPtr->b22K ,signalPtr->bIQ,signalPtr->bFECRates);
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignalS2]:bDiSEqC10=0x%.2x, bDiSEqC11=0x%.2x, bDiSEqCRepeat=0x%.2x\r\n", signalPtr->bDiSEqC10, signalPtr->bDiSEqC11, signalPtr->bDiSEqCRepeat);
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignalS2]:bLNBPower=0x%.2x, bLNBType=0x%.2x, bSwitch0_12V=0x%.2x, bToneBurst=0x%.2x\r\n", signalPtr->bLNBPower, signalPtr->bLNBType, signalPtr->bSwitch0_12V, signalPtr->bToneBurst);
#endif
while(CSReceiveMsg( g_hCSQPSKQueueID[bTunerIndex], (PVOID)dwMessage, 16, CSHDI_TIMEOUT_IMMEDIATE) == CS_OSP_SUCCESS)
{
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignalS2]Message can't send to task!@@@@@@@@@@@@@@@\r\n");
#endif
/*
Modify by yuxibo 2006.02.07
No need to reset 'g_TQPSKChannelCopy'.
*/
/*
if ( dwMessage[0] == DMD_CONNECT_REQUEST_MSG_ID )
{
memset( &g_TQPSKChannelCopy[bTunerIndex], -1, sizeof(CSQPSKSignalParameter) );
}
*/
}
signalPtr->ucSatCRNo= 0xff;
signalPtr->ucSatCRLNBNo= 0xff;
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignaS2l]ucSatCRNo=%d,signalPtr->ucSatCRLNBNo=%d\r\n",signalPtr->ucSatCRNo,signalPtr->ucSatCRLNBNo);
#endif
nCmpReturn = CSQPSKSignalCompareCheck( bTunerIndex, signalPtr );
if ( ( nCmpReturn == CMP_NO_CHANGE ) && ( g_dwNIMState[bTunerIndex] != DROPPED ) )
{
dwMessage[0] = DMD_CONNECT_SAME_MSG_ID;
dwMessage[1] = nCmpReturn;
dwMessage[2] = CS_LOCK_METHOD_NORMAL;
dwMessage[3] = NULL;
}
else
{
CSQPSKStopLock( bTunerIndex );
/*
Deleted by yuxibo 2006.02.07
It is no need to modify the status of 'g_dwState'.
*/
/* g_dwNIMState[bTunerIndex] = DROPPED; */
dwMessage[0] = DMD_CONNECT_REQUEST_MSG_ID;
dwMessage[1] = nCmpReturn;
dwMessage[2] = CS_LOCK_METHOD_NORMAL;
dwMessage[3] = NULL;
}
/* 'CSQPSKSetChannel' should be called everytime */
CSQPSKSetChannel( bTunerIndex, signalPtr );
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "dwMessage[0] = %d,dwMessage[1] = %d\r\n", dwMessage[0], dwMessage[1]);
#endif
ret = CSSendMsg( g_hCSQPSKQueueID[bTunerIndex], (const PVOID)dwMessage, 16, CSHDI_TIMEOUT_INFINITY);
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "\n\r=====> CSQPSKConnectSignalS2 CSSendMsg result = %d\r\n", ret );
#endif
if ( ret != CS_OSP_SUCCESS )
{
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK] Err CSSendMsg failed\r\n");
CSTRACE( QPSK_DEBUG_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_SYSTEM_ERROR;
}
return CSQPSK_SUCCESS;
}
CSQPSK_Error_t CSQPSKSaTCRConnectSignal( CSHDITunerIndex bTunerIndex, CSQPSKSaTCRSignalParameter *signalPtr)
{
DWORD dwMessage[4];
int nCmpReturn;
int ret ;
CSQPSKSignalParameterS2 stSaTCRSignalParam;
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \r\n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\r\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!!!\n" );
#endif
return CSQPSK_FAILURE;
}
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]: dwFreqency=%ld, dwLNBHighFreq=%ld, dwLNBLowFreq=%ld, dwLNBMidFreq=%ld, nFreqencyOffset=%ld\n", signalPtr->dwFreqency, signalPtr->dwLNBHighFreq, signalPtr->dwLNBLowFreq, signalPtr->dwLNBMidFreq, signalPtr->nFreqencyOffset);
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]:dwSymbolRate=%ld bPolar=0x%.2x, b22K=0x%.2x, bIQ=0x%.2x, bFec=0x%x\n", signalPtr->dwSymbolRate, signalPtr->bPolar, signalPtr->b22K ,signalPtr->bIQ,signalPtr->bFECRates);
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]:bDiSEqC10=0x%.2x, bDiSEqC11=0x%.2x, bDiSEqCRepeat=0x%.2x \n", signalPtr->bDiSEqC10, signalPtr->bDiSEqC11, signalPtr->bDiSEqCRepeat);
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]:bLNBPower=0x%.2x, bLNBType=0x%.2x, bSwitch0_12V=0x%.2x, bToneBurst=0x%.2x\n", signalPtr->bLNBPower, signalPtr->bLNBType, signalPtr->bSwitch0_12V, signalPtr->bToneBurst);
#endif
while(CSReceiveMsg( g_hCSQPSKQueueID[bTunerIndex], (PVOID)dwMessage, 16, CSHDI_TIMEOUT_IMMEDIATE) == CS_OSP_SUCCESS)
{
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]Message can't send to task!@@@@@@@@@@@@@@@\n");
#endif
/*
Modify by yuxibo 2006.02.07
No need to reset 'g_TQPSKChannelCopy'.
*/
/*
if ( dwMessage[0] == DMD_CONNECT_REQUEST_MSG_ID )
{
memset( &g_TQPSKChannelCopy[bTunerIndex], -1, sizeof(CSQPSKSignalParameter) );
}
*/
}
stSaTCRSignalParam.bSwitch0_12V = signalPtr->bSwitch0_12V;
stSaTCRSignalParam.bPolar = signalPtr->bPolar;
stSaTCRSignalParam.b22K = signalPtr->b22K;
stSaTCRSignalParam.bLNBPower = signalPtr->bLNBPower;
stSaTCRSignalParam.bLNBType = signalPtr->bLNBType;
stSaTCRSignalParam.dwLNBLowFreq = signalPtr->dwLNBLowFreq;
stSaTCRSignalParam.dwLNBMidFreq = signalPtr->dwLNBMidFreq;
stSaTCRSignalParam.dwLNBHighFreq = signalPtr->dwLNBHighFreq;
stSaTCRSignalParam.bDiSEqC10 = signalPtr->bDiSEqC10;
stSaTCRSignalParam.bDiSEqC11 = signalPtr->bDiSEqC11;
stSaTCRSignalParam.bToneBurst = signalPtr->bToneBurst;
stSaTCRSignalParam.bDiSEqCRepeat = signalPtr->bDiSEqCRepeat;
stSaTCRSignalParam.dwFreqency = signalPtr->dwFreqency;
stSaTCRSignalParam.nFreqencyOffset = signalPtr->nFreqencyOffset;
stSaTCRSignalParam.dwSymbolRate = signalPtr->dwSymbolRate;
stSaTCRSignalParam.bIQ = signalPtr->bIQ;
stSaTCRSignalParam.bFECRates=signalPtr->bFECRates;
stSaTCRSignalParam.ucPilot=0;
stSaTCRSignalParam.ucSatCRNo= signalPtr->ucSaTCRNum;
stSaTCRSignalParam.ucSatCRLNBNo= signalPtr->ucLNBNum;
stSaTCRSignalParam.m_dwModulation=CS_QPSK;
stSaTCRSignalParam.m_dwOption=OPTION_NONE;
stSaTCRSignalParam.m_dwstandard=DVBS_STANDARD;
if ((stSaTCRSignalParam.ucSatCRLNBNo == 0xff) || (stSaTCRSignalParam.ucSatCRNo == 0xff))
{
stSaTCRSignalParam.ucSatCRLNBNo = 0xff;
stSaTCRSignalParam.ucSatCRNo = 0xff;
}
else
{
stSaTCRSignalParam.bLNBPower = LNB_AUTO;
}
nCmpReturn = CSQPSKSignalCompareCheck( bTunerIndex, &stSaTCRSignalParam);
if ( ( nCmpReturn == CMP_NO_CHANGE ) && ( g_dwNIMState[bTunerIndex] != DROPPED ) )
{
dwMessage[0] = DMD_CONNECT_SAME_MSG_ID;
dwMessage[1] = nCmpReturn;
dwMessage[2] = CS_LOCK_METHOD_NORMAL;
dwMessage[3] = NULL;
}
else
{
CSQPSKStopLock( bTunerIndex );
/*
Deleted by yuxibo 2006.02.07
It is no need to modify the status of 'g_dwState'.
*/
/* g_dwNIMState[bTunerIndex] = DROPPED; */
dwMessage[0] = DMD_CONNECT_REQUEST_MSG_ID;
dwMessage[1] = nCmpReturn;
dwMessage[2] = CS_LOCK_METHOD_NORMAL;
dwMessage[3] = NULL;
}
/* 'CSQPSKSetChannel' should be called everytime */
CSQPSKSetChannel( bTunerIndex, &stSaTCRSignalParam);
ret = CSSendMsg( g_hCSQPSKQueueID[bTunerIndex], (const PVOID)dwMessage, 16, CSHDI_TIMEOUT_INFINITY);
if ( ret != CS_OSP_SUCCESS )
{
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK] Err CSSendMsg failed\n");
CSTRACE( QPSK_DEBUG_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_SYSTEM_ERROR;
}
return CSQPSK_SUCCESS;
}
CSQPSK_Error_t CSQPSKConnectSignal( CSHDITunerIndex bTunerIndex, CSQPSKSignalParameter *signalPtr )
{
DWORD dwMessage[4];
int nCmpReturn;
int ret ;
CSQPSKSignalParameterS2 stSaTCRSignalParam;
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \r\n", bTunerIndex);
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\r\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 0
CSTRACE( ERROR_LEVEL, "\r\n[HDIQPSK][CSQPSKConnectSignal]: dwFreqency=%ld, dwLNBHighFreq=%ld, dwLNBLowFreq=%ld, dwLNBMidFreq=%ld, nFreqencyOffset=%ld\r\n", signalPtr->dwFreqency, signalPtr->dwLNBHighFreq, signalPtr->dwLNBLowFreq, signalPtr->dwLNBMidFreq, signalPtr->nFreqencyOffset);
CSTRACE( ERROR_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]:dwSymbolRate=%ld bPolar=0x%.2x, b22K=0x%.2x, bIQ=0x%.2x, bFec=0x%x\r\n", signalPtr->dwSymbolRate, signalPtr->bPolar, signalPtr->b22K ,signalPtr->bIQ,signalPtr->bFECRates);
CSTRACE( ERROR_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]:bDiSEqC10=0x%.2x, bDiSEqC11=0x%.2x, bDiSEqCRepeat=0x%.2x \r\n", signalPtr->bDiSEqC10, signalPtr->bDiSEqC11, signalPtr->bDiSEqCRepeat);
CSTRACE( ERROR_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]:bLNBPower=0x%.2x, bLNBType=0x%.2x, bSwitch0_12V=0x%.2x, bToneBurst=0x%.2x\r\n", signalPtr->bLNBPower, signalPtr->bLNBType, signalPtr->bSwitch0_12V, signalPtr->bToneBurst);
#endif
if( signalPtr == NULL)
{
#ifdef QPSK_DEBUG
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err signalPtr = NULL incorrect \r\n");
CSTRACE( ERROR_LEVEL, "Position:file = %s,line = %d\r\n", __FILE__, __LINE__);
#endif
return CSQPSK_INVALID_PARAM;
}
while(CSReceiveMsg( g_hCSQPSKQueueID[bTunerIndex], (PVOID)dwMessage, 16, CSHDI_TIMEOUT_IMMEDIATE) == CS_OSP_SUCCESS)
{
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK][CSQPSKConnectSignal]Message can't send to task!@@@@@@@@@@@@@@@\r\n");
#endif
/*
Modify by yuxibo 2006.02.07
No need to reset 'g_TQPSKChannelCopy'.
*/
/*
if ( dwMessage[0] == DMD_CONNECT_REQUEST_MSG_ID )
{
memset( &g_TQPSKChannelCopy[bTunerIndex], -1, sizeof(CSQPSKSignalParameter) );
}
*/
}
stSaTCRSignalParam.bSwitch0_12V = signalPtr->bSwitch0_12V;
stSaTCRSignalParam.bPolar = signalPtr->bPolar;
stSaTCRSignalParam.b22K = signalPtr->b22K;
stSaTCRSignalParam.bLNBPower = signalPtr->bLNBPower;
stSaTCRSignalParam.bLNBType = signalPtr->bLNBType;
stSaTCRSignalParam.dwLNBLowFreq = signalPtr->dwLNBLowFreq;
stSaTCRSignalParam.dwLNBMidFreq = signalPtr->dwLNBMidFreq;
stSaTCRSignalParam.dwLNBHighFreq = signalPtr->dwLNBHighFreq;
stSaTCRSignalParam.bDiSEqC10 = signalPtr->bDiSEqC10;
stSaTCRSignalParam.bDiSEqC11 = signalPtr->bDiSEqC11;
stSaTCRSignalParam.bToneBurst = signalPtr->bToneBurst;
stSaTCRSignalParam.bDiSEqCRepeat = 0;//;signalPtr->bDiSEqCRepeat;
stSaTCRSignalParam.dwFreqency = signalPtr->dwFreqency;
stSaTCRSignalParam.nFreqencyOffset = signalPtr->nFreqencyOffset;
stSaTCRSignalParam.dwSymbolRate = signalPtr->dwSymbolRate;
stSaTCRSignalParam.bIQ = signalPtr->bIQ;
stSaTCRSignalParam.bFECRates=signalPtr->bFECRates;
stSaTCRSignalParam.ucPilot=0;
stSaTCRSignalParam.ucSatCRNo= 0xff;
stSaTCRSignalParam.ucSatCRLNBNo= 0xff;
stSaTCRSignalParam.m_dwModulation=CS_QPSK;
stSaTCRSignalParam.m_dwOption=OPTION_NONE;
stSaTCRSignalParam.m_dwstandard=DVBS_STANDARD;
nCmpReturn = CSQPSKSignalCompareCheck( bTunerIndex, &stSaTCRSignalParam );
if ( ( nCmpReturn == CMP_NO_CHANGE ) && ( g_dwNIMState[bTunerIndex] != DROPPED ) )
{
dwMessage[0] = DMD_CONNECT_SAME_MSG_ID;
dwMessage[1] = nCmpReturn;
dwMessage[2] = CS_LOCK_METHOD_NORMAL;
dwMessage[3] = NULL;
}
else
{
CSQPSKStopLock( bTunerIndex );
/*
Deleted by yuxibo 2006.02.07
It is no need to modify the status of 'g_dwState'.
*/
/* g_dwNIMState[bTunerIndex] = DROPPED; */
dwMessage[0] = DMD_CONNECT_REQUEST_MSG_ID;
dwMessage[1] = nCmpReturn;
dwMessage[2] = CS_LOCK_METHOD_NORMAL;
dwMessage[3] = NULL;
}
/* 'CSQPSKSetChannel' should be called everytime */
CSQPSKSetChannel( bTunerIndex, &stSaTCRSignalParam );
ret = CSSendMsg( g_hCSQPSKQueueID[bTunerIndex], (const PVOID)dwMessage, 16, CSHDI_TIMEOUT_INFINITY);
if ( ret != CS_OSP_SUCCESS )
{
#ifdef QPSK_DEBUG
CSTRACE( QPSK_DEBUG_LEVEL, "[HDIQPSK] Err CSSendMsg failed\n");
CSTRACE( QPSK_DEBUG_LEVEL, "Position:file = %s,line = %d\n", __FILE__, __LINE__);
#endif
return CSQPSK_SYSTEM_ERROR;
}
return CSQPSK_SUCCESS;
}
CSQPSK_Error_t CSQPSKSTS(CSHDITunerIndex bTunerIndex, T_QPSKSateInfo stSateInfo)
{
DWORD dwMessage[4];
int nCmpReturn;
int ret ;
if (g_bQPSKHasInitialized[bTunerIndex] != TRUE)
{
CSTRACE( ERROR_LEVEL, "[HDIQPSK]CS_QPSK has not been initialized!!!\n" );
return CSQPSK_FAILURE;
}
CSTRACE(ERROR_LEVEL, "[HDIQPSK]CSQPSKSTS\r\n");
if( bTunerIndex < 0 || bTunerIndex >= MAX_I2C_NUM)
{
CSTRACE( ERROR_LEVEL, "[HDIQPSK] Err bTunerIndex = %d incorrect \n", bTunerIndex);
CSTRACE( ERROR_LEVEL, " Position:file = %s,line = %d\n", __FILE__, __LINE__);
return CSQPSK_FAILURE;
}
CSASSERT( g_bQPSKHasInitialized[bTunerIndex] == TRUE);
while(CSReceiveMsg( g_hCSQPSKQueueID[bTunerIndex], (PVOID)dwMessage, 16, CSHDI_TIMEOUT_IMMEDIATE) == CS_OSP_SUCCESS)
{
}
CSQPSKStopLock( bTunerIndex );
/*
Deleted by yuxibo 2006.02.07
It is no need to modify the status of 'g_dwState'.
*/
/* g_dwNIMState[bTunerIndex] = DROPPED; */
dwMessage[0] = DMD_STS_MSG_ID;
dwMessage[1] = NULL;
dwMessage[2] = CS_LOCK_METHOD_NORMAL;
dwMessage[3] = NULL;
/* 'CSQPSKSetChannel' should be called everytime */
g_astSateInfoCopy[bTunerIndex] = stSateInfo;
//memset(&g_astSateInfoCopy[bTunerIndex], &stSateInfo, sizeof(stSateInfo));
ret = CSSendMsg( g_hCSQPSKQueueID[bTunerIndex], (const PVOID)dwMessage, 16, CSHDI_TIMEOUT_INFINITY);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -