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