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

📄 fieldtest.c

📁 是一个手机功能的模拟程序
💻 C
📖 第 1 页 / 共 5 页
字号:
    win                      = ((T_MFW_HDR *)data->win)->data;
    win->user                = (void *)data;
    data->parent_win         = parent_window;
    //data->kbd=kbdCreate(data->win,KEY_ALL,(MfwCb)TestCommandCB);
    //if(!show_timer)
    //	show_timer=timCreate(data->win,2000,(MfwCb)showRssi_timercb);
    //timStart(show_timer);
    return data->win;
}

static void TestCommand_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;
    T_EDITOR_DATA       editor_data;


    TRACE_FUNCTION("TestCommand_DialogCB()");

    switch( e )
    {  //when window first created
    case TESTCOMMAND_INIT:
        {   

            TestCommandSetEditor(win);//set editor with default attribute values
            //data->editor_data.Callback     		= (T_EDIT_CB)TestCommandCB;
            data->editor_handle=editor_start(win, &(data->editor_data));  /* start the editor */ 

            //data->kbd=kbd_create(data->win,KEY_ALL,(T_MFW_CB)TestCommand_kbd_cb);


            winShow(data->win);

        }
        break;

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

    }

}

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

 $Function:    	TestCommandSetEditor

 $Description:	Set the editor up
        
 $Returns:		

 $Arguments:	
                
*******************************************************************************/
void TestCommandSetEditor(T_MFW_HND win)
{
    T_MFW_WIN           *win_data   = ( (T_MFW_HDR *) win )->data;
    tSpecialMode* data = (tSpecialMode*) win_data->user;

    editor_attr_init_fullscr(&data->editor_data.editor_attr,1,TxtTestCommand,NULL,PHB_name_len+3,edtCurBar1);  
    data->editor_data.hide            = FALSE;
    data->editor_data.min_enter       = 0;
    data->editor_data.Identifier        = 0xFFFF;
    data->editor_data.timeout         = FOREVER;
    data->editor_data.destroyEditor     = FALSE;//TRUE
    data->editor_data.editor_attr.text   = (char *)data->buffer;
    data->editor_data.TextId          = TxtTestCommand;
    data->editor_data.LeftSoftKey      = TxtSoftOK;
    data->editor_data.RightSoftKey     = TxtDelete;
    data->editor_data.mode           = 15;              //PHONENUMONLY_MODE
    data->editor_data.Callback        = (T_EDIT_CB)TestCommandCB;                       
}


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

 $Function:    	TestCommandCB

 $Description:	Callback
        
 $Returns:		

 $Arguments:	
                
*******************************************************************************/
static void TestCommandCB( T_MFW_HND win, USHORT Identifier,UBYTE reason)
{
    T_MFW_WIN       *win_data   = ( (T_MFW_HDR *) win )->data;
    tSpecialMode*data       = (tSpecialMode*) win_data->user;   
    int flashupdata=0;

    TRACE_FUNCTION("TestCommandCB()");

    switch( reason )
    {
    case INFO_KCD_LEFT:
        {
            if( !strcmp(((char *)data->buffer),"100000") )
            {
                FFS_FieldTest.WDTCounter=0;
                FFS_FieldTest.SoftWareResetCounter=0;
                FFS_FieldTest.HardWareResetCounter=0;
                flashupdata=1;
            }

            if( !strcmp(((char *)data->buffer),"100101") )
            {
				/* 2004/03/15 sunsj remove */
                //Red_On();
            }
            if( !strcmp(((char *)data->buffer),"100100") )
            {
				/* 2004/03/15 sunsj remove */
                //Red_Off();
            }
            if( !strcmp(((char *)data->buffer),"100201") )
            {
                Green_On();
            }
            if( !strcmp(((char *)data->buffer),"100200") )
            {
                Green_Off();
            }

            if( !strcmp(((char *)data->buffer),"100301") )
            {
                Backlight_ON();
            }

            if( !strcmp(((char *)data->buffer),"100300") )
            {
                Backlight_OFF();
            }

            if( !strcmp(((char *)data->buffer),"100401") )
            {
                LCD_ON();
            }

            if( !strcmp(((char *)data->buffer),"100400") )
            {
                LCD_OFF();
            }
            if( !strcmp(((char *)data->buffer),"100501") )
            {
                Vibrator_on();
            }

            if( !strcmp(((char *)data->buffer),"100500") )
            {
                Vibrator_off();
            }

            if( !strcmp(((char *)data->buffer),"100601") )
            {
                Mic_on();
            }

            if( !strcmp(((char *)data->buffer),"100600") )
            {
                Mic_off();
            }

            if( !strcmp(((char *)data->buffer),"100701") )
            {
                Spk_on();
            }

            if( !strcmp(((char *)data->buffer),"100700") )
            {
                Spk_off();
            }

            if( !strcmp(((char *)data->buffer),"200001") )
            {
                ffs_Check();                    // change to pctm check flash error
            }

            if( !strcmp(((char *)data->buffer),"200000") )
            {
                ffs_Check_stop();                   // change to pctm check flash error
            }

            if( !strcmp(((char *)data->buffer),"900000") )
            {
                while( 1 )
                {
                }
            }
            memset(data->buffer,0,100);             //clear buffer added by yq
            edtChar((MfwHnd)getactiveEditor(),(int)ecBottom);
            displaySoftKeys(TxtSoftConfirm, TxtSoftBack);

            if( flashupdata==1 )
                flash_FTwrite();
        }
        break;
    case INFO_KCD_HUP:
    case INFO_KCD_RIGHT:
        //case INFO_KCD_CALL:  //xsf add 12.13
        /* 2003/12/04 sunsj modify for new editor mode */
        if( data->editor_data.mode == TEXTINPUT_MODE )
        {
            text_input_destroy(data->editor_handle);
        }
        else
        {
            editor_destroy(data->editor_handle);           //destory editor
        }         TestCommand_destroy(data->win); //ganchh modified
        break;
    default:
        break;
    }
}
/*
static int TestCommand_kbd_cb(T_MFW_EVENT event, T_MFW_KBD *keyboard)
{
    T_MFW_HND       win  = mfw_parent (mfw_header());
    T_MFW_WIN       	*win_data   = ( (T_MFW_HDR *) win )->data;
    tSpecialMode* data = (tSpecialMode*) win_data->user;
    int flashupdata=0;
    char temp[100];

    //sprintf(temp,"1000");
    //MmiTrace(temp);
      switch(keyboard->code)
      {
        case KCD_LEFT:

        case KCD_RIGHT:
        case KCD_HUP:
            TestCommand_destroy(win);
            break;
        }
      
      return MFW_EVENT_CONSUMED;
}

*/
void TestCommand_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 ("TestCommand_destroy()");

        win_delete (data->win);
        // Free Memory
        FREE_MEMORY ((void *)data, sizeof (tSpecialMode));
    }
    else
    {
        TRACE_EVENT ("TestCommand_destroy() called twice");
    }
}


//begin xzy added 0126 for test command

//begin xzy added 0217 for spk and mic status
int SpkMicStart(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND     parent_window   = mfwParent( mfw_header() );
    T_MFW_HND           win           = SpkMic_create(parent_window);
    TRACE_FUNCTION("SpkMicStart()");
    //#ifdef _DAIENABLE_
    //  DAIsignalEnable();  //enable the DAI
    //#endif
    if( win NEQ NULL )
    {
        SEND_EVENT (win, SPKMIC_INIT, 0, 0);
    }

    return 0;
}



static T_MFW_HND SpkMic_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, 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)SpkMic_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)SpkMicCB);
    return data->win;
}


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

 $Function:    	SpkMic_DialogCB

 $Description:	CallBack Function
        
 $Returns:		

 $Arguments:	
                
*******************************************************************************/
static void SpkMic_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;
    int MIC,Speaker,VBCR,VBCR2,VBUR,VBDR;
    char reason[20];
    UINT8 ctrl_reg,stat_reg;

    TRACE_FUNCTION("SpkMic_DialogCB()");

    switch( e )
    {  //when window first created
    case SPKMIC_INIT:
        {   
            dspl_ClearAll();
            MIC=Mic_status();
            Speaker=speaker_status();
            VBCR=VBCR_status();
            VBCR2=VBCR2_status();
            VBUR=VBUR_status();
            VBDR=VBDR_status();

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

            sprintf(data->buffer,"Speaker:%d\n",Speaker);
            dspl_TextOut(0, 13, 0, (char*)data->buffer);

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

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

            sprintf(data->buffer,"VBUR:0x%x",VBUR);
            dspl_TextOut(0, 52, 0, (char*)data->buffer);

            sprintf(data->buffer,"VBDR:0x%x",VBDR);
            dspl_TextOut(0, 65, 0, (char*)data->buffer);
        }
        break;

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

static void SpkMicCB (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("SpkMicCB()");
    SpkMic_destroy(data->win); //ganchh modified
}

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

 $Function:    	SpkMic_destroy

 $Description:	Destroys the dialog
        
 $Returns:		

 $Arguments:	
                
*******************************************************************************/
void SpkMic_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 ("SpkMic_destroy()");

        win_delete (data->win);
        // Free Memory
        FREE_MEMORY ((void *)data, sizeof (tSpecialMode));
    }
    else
    {
        TRACE_EVENT ("SpkMic_destroy() called twice");
    }
}


//end xzy added 0217 for spk and mic status

//begin xzy added 0219 for spk and rtc mem flash status
int MemFlashRtcStart(MfwMnu* m, MfwMnuItem* i)
{
    T_MFW_HND     parent_window   = mfwParent( mfw_header() );
    T_MFW_HND           win           = MemFlashRtc_create(parent_window);
    TRACE_FUNCTION("MemFlashRtcStart()");
    //#ifdef _DAIENABLE_
    //  DAIsignalEnable();  //enable the DAI
    //#endif
    if( win NEQ NULL )
    {
        SEND_EVENT (win, MEMFLASHRTC_INIT, 0, 0);
    }

    return 0;
}



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

⌨️ 快捷键说明

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