📄 fieldtest.c
字号:
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 + -