fieldtest.c
来自「是一个手机功能的模拟程序」· C语言 代码 · 共 2,278 行 · 第 1/5 页
C
2,278 行
$Returns:
$Arguments:
*******************************************************************************/
static void LayeroneParaTwo_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 WDTcounter,SWRcounter,HWRcounter;
int redLED,greenLED,backlightLED,LCD,vibrator,MIC,Speaker;
U16 voltage;
TRACE_FUNCTION("LayeroneParaTwo_DialogCB()");
switch( e )
{ //when window first created
case LAYERONEPARATWO_INIT:
{
dspl_ClearAll();
//redLED=Red_Status();
greenLED=Green_Status();
backlightLED=Backlight_Status();
//LCD=LCD_Status();
//vibrator=Vibrator_Status();
#ifdef _M188_
voltage=GetBatteryVoltageBySpi();
#else
voltage=1;
#endif
/* 2004/03/02 sunsj modify for display area */
//sprintf(data->buffer,"redLED:%d",redLED);
//dspl_TextOut(0, 0, 0, (char*)data->buffer);
sprintf(data->buffer,"greenLED:%d",greenLED);
dspl_TextOut(0, 13, 0, (char*)data->buffer);
sprintf(data->buffer,"backlightLED:%d",backlightLED);
dspl_TextOut(0, 26, 0, (char*)data->buffer);
//sprintf(data->buffer,"LCD:%d",LCD);
//dspl_TextOut(0, 39, 0, (char*)data->buffer);
//sprintf(data->buffer,"vibrator:%d",vibrator);
//dspl_TextOut(0, 52, 0, (char*)data->buffer);
//sprintf(data->buffer,"voltage:%d",voltage);
//dspl_TextOut(0, 65, 0, (char*)data->buffer);
sprintf(data->buffer,"voltage:%d",voltage);
dspl_TextOut(0, 39, 0, (char*)data->buffer);
}
break;
default:
{
TRACE_EVENT("LayeroneParaTwo_DialogCB(): Unknown Event");
}
break;
}
}
static void LayeroneParaTwoCB (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("ShowVerionCB()");
LayeroneParaTwo_destroy(data->win); //ganchh modified
}
/*******************************************************************************
$Function: LayeroneParaTwo_destroy
$Description: Destroys the dialog
$Returns:
$Arguments:
*******************************************************************************/
void LayeroneParaTwo_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 ("LayeroneParaTwo_destroy()");
win_delete (data->win);
// Free Memory
FREE_MEMORY ((void *)data, sizeof (tSpecialMode));
}
else
{
TRACE_EVENT ("LayeroneParaTwo_destroy() called twice");
}
}
int LayeroneParaThreeStart(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND parent_window = mfwParent( mfw_header() );
T_MFW_HND win = LayeroneParaThree_create(parent_window);
TRACE_FUNCTION("LayeroneParaThreeStart()");
//#ifdef _DAIENABLE_
// DAIsignalEnable(); //enable the DAI
//#endif
if( win NEQ NULL )
{
SEND_EVENT (win, LAYERONEPARATHREE_INIT, 0, 0);
}
return 0;
}
static T_MFW_HND LayeroneParaThree_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)LayeroneParaThree_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)LayeroneParaThreeCB);
return data->win;
}
/*******************************************************************************
$Function: LayeroneParaTwo_DialogCB
$Description: CallBack Function
$Returns:
$Arguments:
*******************************************************************************/
static void LayeroneParaThree_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 WDTcounter,SWRcounter,HWRcounter;
char reason[20];
TRACE_FUNCTION("LayeroneParaThree_DialogCB()");
switch( e )
{ //when window first created
case LAYERONEPARATWO_INIT:
{
dspl_ClearAll();
//dspl_Clear(0, 0, 120, 160);
WDTcounter=FFS_FieldTest.WDTCounter;
SWRcounter=FFS_FieldTest.SoftWareResetCounter;
HWRcounter=FFS_FieldTest.HardWareResetCounter;
strcpy(reason,FFS_FieldTest.ResetReason);
/*
sprintf(data->buffer,"sleep-mode:\n%d\n",a/2);
dspl_TextOut(0, 0, 0, (char*)data->buffer);
sprintf(data->buffer,"batt-abc:%d\n",b);
dspl_TextOut(0, 16, 0, (char*)data->buffer);
*/
/* 2004/03/02 sunsj modify for display area */
sprintf(data->buffer,"WDT counter:%d\n",WDTcounter);
dspl_TextOut(0, 13, 0, (char*)data->buffer);
sprintf(data->buffer,"SWR counter:%d\n",SWRcounter); //SWR softeare reset
dspl_TextOut(0, 26, 0, (char*)data->buffer);
sprintf(data->buffer,"HWR counter:%d",HWRcounter);
dspl_TextOut(0, 39, 0, (char*)data->buffer);
sprintf(data->buffer,"reason:%s",reason);
dspl_TextOut(0, 52, 0, (char*)data->buffer);
}
break;
default:
{
TRACE_EVENT("LayeroneParaThree_DialogCB(): Unknown Event");
}
break;
}
}
static void LayeroneParaThreeCB (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("LayeroneParaThreeCB()");
LayeroneParaThree_destroy(data->win); //ganchh modified
}
/*******************************************************************************
$Function: LayeroneParaThree_destroy
$Description: Destroys the dialog
$Returns:
$Arguments:
*******************************************************************************/
void LayeroneParaThree_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 ("LayeroneParaThree_destroy()");
win_delete (data->win);
// Free Memory
FREE_MEMORY ((void *)data, sizeof (tSpecialMode));
}
else
{
TRACE_EVENT ("LayeroneParaThree_destroy() called twice");
}
}
void FieldTestInit()
{
TRACE_EVENT("FieldTestInit");
memset(&ResetRelatedPara,0,sizeof(ModeCheck_Parameter)); //ganchh, reset all the value
//begin xzy add for WDTCounter 0123;
flash_FTread();
RAMValue=(USHORT *)RAMDeafultAdress;
//*RAMValue=RAMDeafultValue1;
//memset((void *)0x7FFFD,RAMDeafultValue1,1);
#if 0
sprintf(temp,"xzy,WDTValue:%d\n",FFS_FieldTest.WDTValue);
MmiTrace(temp);
sprintf(temp,"xzy,WDTCounter:%d\n",FFS_FieldTest.WDTCounter);
MmiTrace(temp);
sprintf(temp,"xzy,SoftWareResetCounter:%d\n",FFS_FieldTest.SoftWareResetCounter);
MmiTrace(temp);
sprintf(temp,"xzy,HardWareResetCounter:%d\n",FFS_FieldTest.HardWareResetCounter);
MmiTrace(temp);
sprintf(temp,"xzy,RAMValue:%d\n",(*RAMValue));
MmiTrace(temp);
#endif
if( FFS_FieldTest.WDTValue!=WDTDeafultValue2 )
{
FFS_FieldTest.WDTCounter++;
if( (*RAMValue)==RAMDeafultValue1 )
{
ResetRelatedPara.PhoneIsResetedFlag=1;
FFS_FieldTest.SoftWareResetCounter++;
strcpy(FFS_FieldTest.ResetReason,"SoftWare Reset");
}
else
{
FFS_FieldTest.HardWareResetCounter++;
strcpy(FFS_FieldTest.ResetReason,"LostPower Reset");
}
}
else
{
if( FFS_FieldTest.LowVoltageValue==LowVoltageDeafultValue2 )
{
strcpy(FFS_FieldTest.ResetReason,"Low Voltage shutdown");
}
else
{
strcpy(FFS_FieldTest.ResetReason,"Normal shutdown");
}
}
FFS_FieldTest.WDTValue=WDTDeafultValue1;
flash_FTwrite();
//TRACE_EVENT("SetRamValue");
//*((USHORT *)RAMDeafultAdress)=(USHORT)RAMDeafultValue1; //ganchunhui move to after begin to login the network
#if 0
MmiTrace("read value");
sprintf(temp,"xzy,RAMValue:%d\n",(*RAMValue));
MmiTrace(temp);
sprintf(temp,"xzy,WDTCounter:%d\n",FFS_FieldTest.WDTCounter);
MmiTrace(temp);
#endif
}
void FieldTestExit()
{
//begin xzy add for WDTCounter 0123;
FFS_FieldTest.WDTValue=WDTDeafultValue2;
//memset((void *)0x7FFFD,RAMDeafultValue1,1);
//*RAMValue=RAMDeafultValue2;
#if 0
sprintf(temp,"xzy,WDTValue%d\n",FFS_FieldTest.WDTValue);
MmiTrace(temp);
sprintf(temp,"xzy,RAMValue%d\n",(*RAMValue));
MmiTrace(temp);
#endif
flash_FTwrite();
//end xzy add for WDTCounter 0123;
}
void FieldTestLowPowerExit()
{
TRACE_EVENT("LowPowerExit");
//begin xzy add for WDTCounter 0123;
FFS_FieldTest.WDTValue=WDTDeafultValue2;
FFS_FieldTest.LowVoltageValue=LowVoltageDeafultValue2;
//memset((void *)0x7FFFD,RAMDeafultValue1,1);
//*RAMValue=RAMDeafultValue2;
#if 0
sprintf(temp,"xzy,WDTValue%d\n",FFS_FieldTest.WDTValue);
MmiTrace(temp);
sprintf(temp,"xzy,RAMValue%d\n",(*RAMValue));
MmiTrace(temp);
#endif
flash_FTwrite();
//end xzy add for WDTCounter 0123;
}
#if 0
void SetRamValue()
{
TRACE_EVENT("SetRamValue");
*((USHORT *)RAMDeafultAdress)=RAMDeafultValue1;
sprintf(temp,"xzy,RAMValue:%d\n",(*((USHORT *)RAMDeafultAdress)));
MmiTrace(temp);
}
USHORT ReadRamValue()
{
return(*RAMValue);
}
#endif
//begin xzy added 0126 for test command
int TestCommand(MfwMnu* m, MfwMnuItem* i)
{
T_MFW_HND parent_window = mfwParent( mfw_header() );
T_MFW_HND win = TestCommand_create(parent_window);
TRACE_FUNCTION("TestCommand()");
if( win NEQ NULL )
{
SEND_EVENT (win, TESTCOMMAND_INIT, 0, 0);
}
return 0;
}
static T_MFW_HND TestCommand_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)TestCommand_DialogCB;
data->mmi_control.data = data;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?