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

📄 csqpskdmd.c

📁 QPSK Tuner details, for conexant chipset.
💻 C
📖 第 1 页 / 共 5 页
字号:
							'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 + -