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

📄 fieldtest.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    if( data EQ NULL )
    {
        return NULL;
    }

    // Create window handler
    data->win = win_create (parent_window, 0, E_WIN_VISIBLE, NULL);
    if( data->win EQ NULL )
    {
        FREE_MEMORY( (void *) data, sizeof( tSpecialMode ) );
        return NULL;
    }
    // connect the dialog data to the MFW-window
    data->mmi_control.dialog = (T_DIALOG_FUNC)MemFlashRtc_DialogCB;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent_win         = parent_window;
    data->kbd=kbdCreate(data->win,KEY_ALL,(MfwCb)MemFlashRtcCB);
    return data->win;
}


/*******************************************************************************

 $Function:    	MemFlashRtc_DialogCB

 $Description:	CallBack Function
        
 $Returns:		

 $Arguments:	
                
*******************************************************************************/
static void MemFlashRtc_DialogCB(T_MFW_HND win, USHORT e,  SHORT identifier,
                                 void *parameter)
{   
    T_MFW_WIN           *win_data   = ( (T_MFW_HDR *) win )->data;
    tSpecialMode* data = (tSpecialMode*) win_data->user;
    UINT8 ctrl_reg,stat_reg;
    UINT32 FFS_free,FFS_used,FFS_lost;
    UINT16 memoryleft;

    TRACE_FUNCTION("MemFlashRtc_DialogCB()");

    switch( e )
    {  //when window first created
    case MEMFLASHRTC_INIT:
        {   
            dspl_ClearAll();

            //sprintf(memoryleft,"memory left: %d\n",mfwCheckMemoryLeft());
            //strcat(data->buffer,memoryleft);

            memoryleft=mfwCheckMemoryLeft();

            FFS_free = FFS_Get_Free_Bytes();
            FFS_lost = FFS_Get_Lost_Bytes();
            FFS_used = FFS_Get_Used_Bytes();

            ctrl_reg  = Rtc_getctrreg();        //added by xzy for rtc reg status 0218
            stat_reg  = Rtc_getstatusreg();

            /* 2004/03/02 sunsj modify for display area */
            sprintf(data->buffer,"mem left:%d",memoryleft);
            dspl_TextOut(0, 0, 0, (char*)data->buffer);

            sprintf(data->buffer,"FFS_free:%d",(FFS_free-FFS_lost));
            dspl_TextOut(0, 13, 0, (char*)data->buffer);

            sprintf(data->buffer,"FFS_lost:%d",FFS_lost);
            dspl_TextOut(0, 26, 0, (char*)data->buffer);

            sprintf(data->buffer,"FFS_used:%d",FFS_used);
            dspl_TextOut(0, 39, 0, (char*)data->buffer);

            sprintf(data->buffer,"rtc_ctrl:%d",ctrl_reg);
            dspl_TextOut(0, 52, 0, (char*)data->buffer);

            sprintf(data->buffer,"rtc_status:%d",stat_reg);
            dspl_TextOut(0, 65, 0, (char*)data->buffer);
        }
        break;

    default:
        {
            TRACE_EVENT("MemFlashRtc_DialogCB(): Unknown Event");
        }
        break;

    }

}

static void MemFlashRtcCB (MfwEvt e, MfwKbd *k)
{
    T_MFW_HND       win  = mfw_parent (mfw_header());
    T_MFW_WIN       *win_data   = ( (T_MFW_HDR *) win )->data;
    tSpecialMode*data       = (tSpecialMode*) win_data->user;   


    TRACE_FUNCTION("MemFlashRtcCB()");


    SpkMic_destroy(data->win); //ganchh modified

}

/*******************************************************************************

 $Function:    	SpkMic_destroy

 $Description:	Destroys the dialog
        
 $Returns:		

 $Arguments:	
                
*******************************************************************************/
void MemFlashRtc_destroy(MfwHnd own_window)
{
    T_MFW_WIN * win_data;

    tSpecialMode* data = NULL;

    if( own_window )



        win_data = ((T_MFW_HDR *)own_window)->data;
    if( win_data != NULL )
        data = (tSpecialMode*)win_data->user;

    if( data )
    {
        TRACE_EVENT ("MemFlashRtc_destroy()");

        win_delete (data->win);
        // Free Memory
        FREE_MEMORY ((void *)data, sizeof (tSpecialMode));

    }
    else
    {
        TRACE_EVENT ("MemFlashRtc_destroy() called twice");
    }
}
//end xzy added 0219 for spk and rtc mem flash status
void LCDDisplayTestStart(MfwMnu* m, MfwMnuItem* i)
{     
    T_MFW_HND       window      = mfwParent( mfw_header() );
    T_MFW_WIN       *win_data   = ((T_MFW_HDR *)window)->data;
    tBookStandard   *data       = (tBookStandard *) win_data->user;
    //char * dspltext;

    //sprintf(dspltext,"MIC:");

    LCD_OFF();

    //rvf_delay(200);
    //LedLightnessAdjust(10);  // 3 level backlight, 
    //LCD_ON();

    //rvf_delay(200);
    //LedLightnessAdjust(255); // 3 level backlight, 
    //LCD_ON();
    //rvf_delay(200);

#ifndef _INNOVATION_EMULATOR_
#if R2D_COMPARE_REFRESH	/* Robert.Chen add, 2003-12-13 */
    memset(OriginLCDData, '\0',sizeof(OriginLCDData));
#endif
#endif

	/* 2004/04/10 sunsj modify */
	dspl_ClearAll();
	dspl_Enable(1);
	rvf_delay(300);
	
	/* 2004/05/21 sunsj modify */
	LedLightnessAdjust(255);
	/* 2004/06 sunsj modify for icon manage */
	//dspl_BitBlt(0, 0, 102, 65, 0, (void *)iconMainIdle12, 0);
	dspl_TextOut_Blk(2, 14, SCREEN_SIZE_X, DSPL_TXTATTR_TRANSPARENT, "\x80\x00\x4c\x00\x43\x00\x44\x6d\x4b\x8b\xd5\x00\x00");
	displaySoftKeys( TxtNull, TxtSoftBack);
	dspl_Enable(1);
	rvf_delay(300);
#if 0
    WriteLcdColor(1);       //全白
    rvf_delay(300);

    WriteLcdColor(2);       //全黑
    rvf_delay(300);

    WriteLcdColor(3);       //黑白方格
    rvf_delay(300);
    //Force_refresh();
    //dspl_ClearAll();
    controlBrowseNew();
    //rvf_delay(300);
    winShow( window );
    //uShow(data->menu );
    //rvf_delay(400);
	displaySoftKeys( TxtSoftSelect, TxtSoftBack);
#endif
}

void LEDBacklightTestStart(MfwMnu* m, MfwMnuItem* i)
{
    dspl_ClearAll();
	displaySoftKeys( TxtNull, TxtSoftBack);
    dspl_TextOut_Blk(2, 14, SCREEN_SIZE_X, DSPL_TXTATTR_TRANSPARENT, "\x80\x80\xcc\x51\x49\x6d\x4b\x8b\xd5\x00\x00");
    LedLightnessAdjust(0);
    rvf_delay(300);
    LedLightnessAdjust(255);
    rvf_delay(100);

    dspl_ClearAll();
    dspl_TextOut_Blk(2, 14, SCREEN_SIZE_X, DSPL_TXTATTR_TRANSPARENT, "\x80\x95\x2e\x76\xd8\x70\x6f\x6d\x4b\x8b\xd5\x00\x00");
	Backlight_ON();
    rvf_delay(300);
	Backlight_OFF();

    dspl_ClearAll();
    dspl_TextOut_Blk(2, 14, SCREEN_SIZE_X, DSPL_TXTATTR_TRANSPARENT, "\x80\x00\x4c\x00\x45\x00\x44\x6d\x4b\x8b\xd5\x00\x00");
    Green_On();
    rvf_delay(300);
}

void MelodyandVibratorTestStart(MfwMnu* m, MfwMnuItem* i)
{
    SetMVol_DownLinkPGA(6); 
	//StartMelody(0);
	dspl_ClearAll();
	displaySoftKeys( TxtNull, TxtSoftBack);
	dspl_TextOut_Blk(2, 14, SCREEN_SIZE_X, DSPL_TXTATTR_TRANSPARENT, "\x80\x94\xc3\x58\xf0\x6d\x4b\x8b\xd5\x00\x00");
	
	StartPlayingMelody2(5, 0); //glowing,2003-12-23, use the yamaha api
    rvf_delay(600);
    //StopMelody();
   	StopPlayingMelody2(); //glowing,2003-12-23, use the yamaha api

	dspl_ClearAll();
	dspl_TextOut_Blk(2, 14, SCREEN_SIZE_X, DSPL_TXTATTR_TRANSPARENT, "\x80\x97\x07\x52\xa8\x6d\x4b\x8b\xd5\x00\x00");

    StartVibrator();
    rvf_delay(400);
    StopVibrator();
}

//added for xzy by ljq 2003/3/20
void WriteLcdColor(unsigned short color)
{
#ifdef _M188_
    UINT16 loopp;
    WriteIR(0x21);
    WriteRam(0x0000);   //set address COM=14,SEG=00
    WriteIR(0x22);      //Begain write ram
    switch( color )
    {
    case 1:
        //white
        for( loopp=0;loopp<102*80;loopp++ )  //write 20*120 pixel blue+gree
        {
            WriteRam(0xffff);
        }
        break;
    case 2:
        //black
        for( loopp=0;loopp<102*80;loopp++ )  //write 20*120 pixel blue+gree
        {
            WriteRam(0x0000);
        }
        break;
    case 3:
        //black and white
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0xffff);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0xffff);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0xffff);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0xffff);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0xffff);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0xffff);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0xffff);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*80;loopp++ )
        {
            WriteRam(0xffff);
        }
        break;
    case 4:
        //black and white
        for( loopp=0;loopp<10*120;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*120;loopp++ )
        {
            WriteRam(0xffff);
        }
        for( loopp=0;loopp<10*120;loopp++ )
        {
            WriteRam(0x0000);
        }
        for( loopp=0;loopp<10*120;loopp++ )
        {
            WriteRam(0xffff);
        }

    default:
        break;
    }
#endif	
}


int KeyPressTest(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND     parent_window = mfwParent( mfw_header() );
    T_MFW_HND     win           = KeyPressTest_create(parent_window);
    TRACE_FUNCTION("KeyPressTest()");
    //#ifdef _DAIENABLE_
    //  DAIsignalEnable();  //enable the DAI
    //#endif
    if( win NEQ NULL )
    {
        SEND_EVENT (win, KEYPRESSTEST_INIT, 0, 0);
    }

    return 0;
}

static T_MFW_HND KeyPressTest_create(MfwHnd parent_window)
{
    tSpecialMode* data = (tSpecialMode*)ALLOC_MEMORY (sizeof (tSpecialMode));
    T_MFW_WIN  * win;

    if( data EQ NULL )
    {
        return NULL;
    }

    // Create window handler
    data->win = win_create (parent_window, 0, E_WIN_VISIBLE, (T_MFW_CB)KeyPressTest_WinCB);

    if( data->win EQ NULL )
    {
        FREE_MEMORY( (void *) data, sizeof( tSpecialMode ) );

        return NULL;
    }
    // connect the dialog data to the MFW-window
    data->mmi_control.dialog = (T_DIALOG_FUNC)KeyPressTest_DialogCB;
    data->mmi_control.data   = data;
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent_win         = parent_window;
    data->kbd=kbd_create(data->win,KEY_ALL,(T_MFW_CB)KeyPressTest_kbd_cb);
	keyPressNumber           = 0;	/* 2004/04/01 sunsj add */
	
    return data->win;
}



static int  KeyPressTest_WinCB (T_MFW_EVENT event, T_MFW_WIN * win)
{
    tSpecialMode* data = (tSpecialMode *)win->user;    
    //const unsigned char str[];
    int row,line,counter=0;
    char keypresstxt[5];

    TRACE_EVENT ("KeyPressTest_WinCB");

    //sprintf(keypresstxt, "#*");

    if( data EQ 0 )
        return 1;

    switch( event )
    {
    case E_WIN_VISIBLE:
        if( win->flags & E_WIN_VISIBLE )
        {
            dspl_ClearAll();

            for( row=0;row<6;row++ )
            {
                for( line=0;line<4;line++ )
                {
                    switch( counter )
                    {
                    case 0:
                        sprintf(keypresstxt, " ");
                        break;
                    case 1:
                        sprintf(keypresstxt, "b");
                        break;
                    case 2:
                        sprintf(keypresstxt, "c");
                        break;
                    case 3:
  

⌨️ 快捷键说明

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