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

📄 drvuart_scan.c

📁 mstar 776 开发的车载dvd
💻 C
字号:

#include "msAPI_Tuner_A.h"
#include "RF_Tuner_ATSC.h"

#if (CHANNEL_SCAN_AUTO_TEST == 1)
extern ScanAutoTestData g_ScanAutoTestData;
extern U8               g_u8ScanAutoTestCmd;
//U8               g_u8ScanAutoTestKey = 0;
extern ScanAutoTestAU   g_ScanAutoTestAU;
extern U8        u8RFCh, u8MaxRFCh;
// JJ extern U16       u16NumOfSrvAdd;

void MDrv_UART_AutoScanTest_Init(void)
{
    g_ScanAutoTestData.u12ChNum = 0;
}
#endif
void MDrv_UART_I2C_Device(void)
{
    U8 u8addressCount, u8dataCount;
    U8 u8Result, i;

	u8addressCount = (UART_EXT_CMD_MS_DAT1 & 0xF0) >> 4;
	u8dataCount    = (UART_EXT_CMD_MS_DAT1 & 0x0F);
	if( u8addressCount + u8dataCount > 12 ) //UART_EXT_CMD_MS_DAT2...UART_EXT_CMD_MS_DAT13
	 	printf("I2C error!");
	if( UART_EXT_CMD & 0x01 ) // I2C read
	 	u8Result = MDrv_IIC_ReadBytes( UART_EXT_CMD,
	                                u8addressCount,
	                                &UART_EXT_CMD_MS_DAT2,
	                                u8dataCount,
	                                (&UART_EXT_CMD_MS_DAT2)+u8addressCount);
	else                      // I2C write
		u8Result = MDrv_IIC_WriteBytes( UART_EXT_CMD,
	                                u8addressCount,
	                                &UART_EXT_CMD_MS_DAT2,
	                                u8dataCount,
	                                (&UART_EXT_CMD_MS_DAT2)+u8addressCount);

	if( u8Result )
	{
		if( UART_EXT_CMD & 0x01 )  // I2C Read
		{
	    	i = _UART_CMD_INDEX5_+u8addressCount;
	     	while( u8dataCount > 0 )
	     	{
	        	printf("%02bx ", g_UartCommand.Buffer[i]);
	        	--u8dataCount;
	        	++i;
	     	}
	     	printf("\r\n");
	 	}
	 	else                       // I2C Write
	 	{
	    	printf("OK\n");
	 	}
	}
	else
	{
		printf("err\n");
	}

}
void MDrv_UART_Scan_Tuner(void)
{
    MS_TP_SETTING stTpSetting;
    switch(UART_EXT_CMD)
    {
    case UART_SCAN_CMD_SET_TUNE_TO_RFCH:
        stTpSetting.u16Frequency = (*(U32*)&UART_SCAN_DATA1/FREQ_STEP);
        stTpSetting.fModulation = UART_SCAN_DATA5;
        stTpSetting.fSpectrum   = UART_SCAN_DATA6;
        msAPI_Tuner_Tune2RfCh(&stTpSetting);
        printf("OK\n");
        break;
	case UART_SCAN_CMD_RETURN_TYPE:
		printf("%02bx %02bx\n", FRONTEND_DEMOD_TYPE,FRONTEND_TUNER_TYPE|0x80);
		break;

#if (CHANNEL_SCAN_AUTO_TEST == 1)
    case UART_SCAN_CMD_SET_CH_CNT:
        g_ScanAutoTestData.u12ChNum = *(U16*)&UART_SCAN_DATA1;
        printf("SCAN: u12ChNum=%d\n", g_ScanAutoTestData.u12ChNum);
        break;
    case UART_SCAN_CMD_SET_ANT:
        g_ScanAutoTestData.f8Antenna = UART_SCAN_DATA1;
        printf("SCAN: f8Antenna=%x\n", g_ScanAutoTestData.f8Antenna);
        break;
    case UART_SCAN_CMD_SET_CABLE_SYSTEM:
        g_ScanAutoTestData.u2CableSystem = UART_SCAN_DATA1;
        printf("SCAN: u2CableSystem=%x\n", g_ScanAutoTestData.u2CableSystem);
        break;
    case UART_SCAN_CMD_START:
        if(g_ScanAutoTestData.u12ChNum)
        {
            g_u8ScanAutoTestCmd = 0;
            g_ScanAutoTestData.u16SrvFoundNum = 0;
            g_ScanAutoTestData.u12ChFoundNum = 0;
            g_ScanAutoTestData.fCommand = 1;            // start scan
            printf("SCAN: Scan test start (%x, %x, %x)!\r\n",
                   g_ScanAutoTestData.u12ChNum,
                   g_ScanAutoTestData.f8Antenna,
                   g_ScanAutoTestData.u2CableSystem);
        }
        break;
    case UART_SCAN_CMD_END:
        g_ScanAutoTestData.fCommand = 0;                // Stop scan
        printf("SCAN: Stop Scan!\r\n");
        break;
    case UART_SCAN_CMD_POLL:
        printf("SCAN: %bu %02bu\n", u8RFCh, u8MaxRFCh);
        break;
    case UART_SCAN_CMD_READ_FOUND_CH_NUM:
        printf("SCAN: Found channels %d\n", g_ScanAutoTestData.u12ChFoundNum);
        break;
    case UART_SCAN_CMD_READ_SRV_INFO:
        g_u8ScanAutoTestCmd |= SCAN_AUTOTEST_CMD_DUMP_CH_INFO;
        break;
	case UART_SCAN_CMD_READ_ONE_SRV_INFO:
		g_ScanAutoTestData.u12ChNum = *(U16*)&UART_SCAN_DATA1;
		g_u8ScanAutoTestCmd |= SCAN_AUTOTEST_CMD_DUMP_ONE_CH_INFO;
		break;
    case UART_SCAN_CMD_READ_FOUND_SRV_NUM:
        if(g_ScanAutoTestData.u16SrvFoundNum == 0)
        {
            // JJ printf("SCAN: Found service %d\n", u16NumOfSrvAdd);
        }
        else
        {
            printf("SCAN: Found service %d\n", g_ScanAutoTestData.u16SrvFoundNum);
        }
        break;
    case UART_SCAN_CMD_SET_TUNER:
        stTpSetting.u32Frequency = *(U32*)&UART_SCAN_DATA1;
        stTpSetting.fModulation = UART_SCAN_DATA5;
        msAPI_Tuner_SetFreq(stTpSetting.u32Frequency, stTpSetting.fModulation);
        printf("OK\n");
        break;
    case UART_SCAN_CMD_SET_DEMOD:
        stTpSetting.fModulation = UART_SCAN_DATA1;
        msAPI_Tuner_SetModulation(stTpSetting.fModulation);
        printf("OK\n");
        break;
    case UART_SCAN_CMD_SET_SPECTRUM:
        stTpSetting.fSpectrum = UART_SCAN_DATA1;
        msAPI_Tuner_SetSpectrum(stTpSetting.fSpectrum);
        printf("OK\n");
        break;
    case UART_SCAN_CMD_READ_SRV_INFO2:
		g_u16NumToRead = g_ScanAutoTestData.u16SrvFoundNum;
		g_u8ScanAutoTestCmd |= SCAN_AUTOTEST_CMD_DUMP_CH_INFO2; //select main menu info
		printf("SCAN: MainMenu Info\n");
		break;
	case UART_SCAN_CMD_READ_ONE_SRV_INFO2:
		g_u16NumToRead++;
		g_u8ScanAutoTestCmd |= SCAN_AUTOTEST_CMD_DUMP_ONE_CH_INFO2;
		break;
#endif
        }
}

⌨️ 快捷键说明

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