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

📄 srv_test.c

📁 Sunplus 8202S source code.
💻 C
字号:
/*
*  Terry,2003/9/10 12:18AM
*  Servo QRE using
*/
#ifdef TEST_SERVO
void srv_mode_test_polling(void)
{
    if (iTestServoMode==3) {
        if (system_state==SYSTEM_BROWSE) {
            UINT32 iTime=get_rtc_val();

            if (iTime>=180000) { //30*60*100
            //if (iTime>=12000) { //30*60*100
                psprintf(RegionValStr[REGION2], "MTBF:%010d", iTestServoCount);
                PrintOsdMsg(STR_OS_SPACE, REGION2, 0, 1);
                call_ir_func(IRC_EJECT);
                //ircmd_eject_toggle();
                polling();
                ShowTitle();
                delay_srv_10ms(600);
                polling();
                return;
            }
        }
    }
}

void srv_test_mode1_open(void)
{
    if (iTestServoMode==1) 
    {
        if (system_state==SYSTEM_NODISC) {
            //open/close servo testing mode
            call_ir_func(IRC_EJECT);
            delay_srv_10ms(200);//1s
            iTestServoCount++;
            psprintf(RegionValStr[REGION2], "DO OPEN/CLOSE TESTING:%05d", iTestServoCount);
            PrintOsdMsg(STR_OS_SPACE, REGION2, 0, 1);
        }
    }
}

void srv_test_mode_play(void)
{
    if (iTestServoMode==1) {
        //open/close servo testing mode
        call_ir_func(IRC_EJECT);
        delay_srv_10ms(600);
        iTestServoCount++;
        psprintf(RegionValStr[REGION2], "DO OPEN/CLOSE TESTING:%05d", iTestServoCount);
        PrintOsdMsg(STR_OS_SPACE, REGION2, 0, 1);
    } else if (iTestServoMode==3) {
        extern UINT32 dwDiscLBA;
        extern UINT32 dwLayerLBA;
        
        UINT32  i, iTestLBA;
        //do 10 times full stroke
        for (i=0; i<=20; i++) {
            iTestLBA = get_stc_val_32();
            iTestLBA %= dwDiscLBA;
            //ran_read(pwb, l2msf(iTestLBA), 2048);
            
            if(i%2 == 0)
                 ran_read(pwb, l2msf(0), 2048);
            else
            {
                 if(cd_type_loaded==CDDVD)
                 ran_read(pwb, l2msf(dwLayerLBA), 2048);
                 else
                 ran_read(pwb, gettrkmsf_leadout(), 2048);
                    
            }
            
            psprintf(RegionValStr[REGION2], "MTBF:%010d LBA:0X%08x", iTestServoCount, iTestLBA);
            PrintOsdMsg(STR_OS_SPACE, REGION2, 0, 1);
            polling_osd(1);
        }
        iTestServoCount++;
        psprintf(RegionValStr[REGION2], "MTBF:%010d", iTestServoCount, iTestLBA);
        PrintOsdMsg(STR_OS_SPACE, REGION2, 0, 1);
        polling_osd(1);
        //ircmd_shuffle();
        call_ir_func(IRC_RANDOM);
        browser();
     }
}

void srv_test_mode1_no_disc(void)
{
  if (iTestServoMode==1) 
  {
    //open/close servo testing mode
    call_ir_func(IRC_EJECT);
    delay_srv_10ms(600);//1s
    iTestServoCount++;
    psprintf(RegionValStr[REGION2], "DO OPEN/CLOSE TESTING:%05d", iTestServoCount);
    PrintOsdMsg(STR_OS_SPACE, REGION2, 0, 1);
  }
}
void init_srv_test_mode(void)
{
    iTestServoMode  = 0;
    iTestServoCount = 0;
}
void test_mode_chk_close_tray(void)
{        
        if (iTestServoMode==1) {
            if (CDOpened()) {
                //close tray
                call_ir_func(IRC_EJECT);
                system_state=SYSTEM_OPEN;
                no_disk_cnt=DETECT_TIMES;
            }

            if (iTestServoCount>=20000) {
                iTestServoMode  = 0;
                iTestServoCount = 0;
            }
        } else if (iTestServoMode==3) {
            if (CDOpened()) {
                //close tray
                call_ir_func(IRC_EJECT);
                delay_srv_10ms(600);
                system_state=SYSTEM_OPEN;
                no_disk_cnt=DETECT_TIMES;
            }
        }
}
#else
#define test_mode_chk_close_tray();
#define init_srv_test_mode();
#define srv_test_mode1_no_disc();
#define srv_test_mode_play();
#define srv_test_mode1_open();
#endif //#ifdef TEST_SERVO


⌨️ 快捷键说明

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