/** FrontEndTest.c ÀÌ ¸ðµâÀº DHL_FE_init ¿Í DHL_FE_Start, DHL_FE_GetSignalStatus ¿¡ ´ëÇÑ Å×½ºÆ® ·çƾÀÌ´Ù. */ #include "DHL_FE.h" #include "DHL_OSAL.h" #if COMMENT ____Test_1____(){} #endif /* In-band ä³Î Tune µ¿ÀÛ Å×½ºÆ®. TuneTest ÇÔ¼ö¸¦ ¼öÇàÇϱâ Àü¿¡ ¸ÕÀú Çϱâ¿Í °°Àº ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÔ!!! 1. I2C ÃʱâÈ­ 2. FE ä³Î ¼ö Á¤ÀÇ : DHL_config.h ¿¡ Á¤ÀÇ µÇ¾î ÀÖÀ½.. ä³Î(Á֯ļö) ¹× modulation type À» ÁöÁ¤ÇÏ¿© In-band Tune µ¿ÀÛ ¼öÇà.. 8VSB, 64QAM, 256QAM ¸¸ Áö¿øµÊ !! In-band Tune À̹ǷΠDHL_FE_Start() ÀÇ Settings °ªÀº NULL ó¸® ÇÑ´Ù. Input ÀÎÀÚ id : »ç¿ëÇÒ FE ÀÇ Ã¤³Î No. chno : Tune ÇÒ ¹æ¼Û ä³Î No. demod_id : 0 (VSB), 1 (64QAM), 2 (256QAM) */ void FrontEnd_TuneTest(unsigned char id, unsigned char chno, unsigned char demod_id) { DHL_RESULT dhr = DHL_OK; tDHL_Demod demod; tDHL_FreqStd freq_table; unsigned long freq_KHz; switch(demod_id) { case 0 : // VSB demod = eDHL_DEMOD_8VSB; freq_table = eDHL_FREQ_AIR; break; case 1 : // 64QAM demod = eDHL_DEMOD_64QAM; freq_table = eDHL_FREQ_STD; break; case 2 : // 256QAM demod = eDHL_DEMOD_256QAM; freq_table = eDHL_FREQ_STD; break; default : return; } freq_KHz = DHL_FE_ChannelToFrequency(chno, freq_table); dhr = DHL_FE_Init(); if(dhr != DHL_OK) { // ÇÊ¿ä½Ã ¿¡·¯ üũ.. } dhr = DHL_FE_Start(id, freq_KHz, demod, NULL); if(dhr != DHL_OK) { // ÇÊ¿ä½Ã ¿¡·¯ üũ.. } } #if COMMENT ____Test_2____(){} #endif /* Signal Status üũ µ¿ÀÛ Å×½ºÆ®. Lock üũ, SNR üũ, SER üũ µ¿ÀÛ ¼öÇà.. ¹Ýµå½Ã FE init ¹× Tune µ¿ÀÛÀÌ ÁøÇàµÈ ÈÄ¿¡ ¼öÇà µÇ¾î¾ß ÇÔ!! Inout ÀÎÀÚ id : »ç¿ëÇÒ FE ÀÇ Ã¤³Î No. stat_id : 0 (Lock üũ), 1 ( SNR üũ), 2 (SER üũ) Output ÀÎÀÚ *stat_value : »óŰª ¹Ýȯ */ void FrontEnd_StatusTest(unsigned char id, unsigned char stat_id, unsigned long *stat_value) { DHL_RESULT dhr = DHL_OK; tDHL_SignalStatus status; switch(stat_id) { case 0 : // Lock üũ status = eDHL_SIGNAL_LOCK; break; case 1 : // SNR(1000) üũ status = eDHL_SIGNAL_SNR; break; case 2 : // SER üũ status = eDHL_SIGNAL_SER; break; default : return; } dhr = DHL_FE_GetSignalStatus(id, status, stat_value); if(dhr != DHL_OK) { // ÇÊ¿ä½Ã ¿¡·¯ üũ.. } } #if COMMENT ____ShellTest____(){} #endif /* Debug Shell ÀÌ ±¸ÇöµÇ¾î ÀÖ´Â °æ¿ì ´ÙÀ½°ú °°ÀÌ Å×½ºÆ®¸¦ ÁøÇàÇϵµ·Ï ÇÑ´Ù. 1. ½Ã½ºÅÛ ÃʱâÈ­ °úÁ¤ Áß¿¡ DHL_FE_Init()°¡ »ç¿ëµÇÁö ¾ÊÀº °æ¿ì¶ó¸é ¸ÕÀú DHL_FE_Init À» ½ÇÇàÇØ ÁØ´Ù. Shell> DHL_FE_Init 2. Á֯ļö Á¤º¸¸¦ ¾Ë°í ÀÖ´Â Àιêµå Æ©´×À̶ó¸é Á÷Á¢ ½©¿¡¼­ ¼öÇà °¡´ÉÇÏ´Ù. Shell> DHL_FE_Start 0 57000 1 VSB=1, QAM64=2, QAM256=3 ä³Î Á¤º¸¸¸ ¾Ë°í ÀÖ´Â °æ¿ì.. Air RF 2¹ø, VSB Shell> FeTest_Tune 0 0 2 1 // Air, RF 2, VSB Shell> FeTest_Tune 0 0 14 1 // Air, RF 14, VSB Shell> FeTest_Tune 0 1 79 3 // Cable, RF 79, QAM256 3. °¢Á¾ »óÅ Á¶È¸ Å×½ºÆ®.. Shell> FeTest_Status 0 0 // lock üũ Shell> FeTest_Status 0 2 // strength üũ Shell> FeTest_Status 0 3 // SNR1000 Shell> FeTest_Status 0 4 // SER */ DHL_RESULT FeTest_Tune(tDHL_TunerID id, int isCable, int rf, int demod) { DHL_RESULT dhr; tDHL_FreqStd std = isCable ? eDHL_FREQ_STD : eDHL_FREQ_AIR; UINT32 freqKHz = DHL_FE_ChannelToFrequency(rf, std); if (freqKHz == 0) { DHL_OS_Printf("!! change freq err\n"); return DHL_FAIL; } dhr = DHL_FE_Start(id, freqKHz, (tDHL_Demod)demod, NULL); return dhr; } UINT32 FeTest_Status(tDHL_TunerID id, tDHL_SignalStatus selector) { UINT32 value; DHL_RESULT dhr; dhr = DHL_FE_GetSignalStatus(id, selector, &value); if (dhr) { DHL_OS_Printf("!! GetSignalStatus(id %d, type %d '%s') err %d\n", id, selector, FE_SIGNAL_STATUS_STR(selector), dhr); } else { DHL_OS_Printf("GetSignalStatus(id %d, type %d '%s') ==> %u, 0x%x\n", id, selector, FE_SIGNAL_STATUS_STR(selector), value, value); } return value; }