📄 mmiectimedate.c
字号:
display_info.TextId2 =TxtFailed;
display_info.Time = FOREVER;
display_info.iconindex = REMIND_FAILURE;
display_info.Callback = (T_VOID_FUNC)NULL;//auto_dialog_cb;
/* Call Info Screen */
info_dialog (edt_data->parent_win, &display_info);
}
}
else if( edt_data->state EQ DATE_SHOW_EC )
{
date_time_edt_destroy(edt_data->tida_edt_win);
SEND_EVENT(tida_data->tida_win,DATE_ENTRY_EC,0,tida_data);
} /* start date entering */
else if( edt_data->state EQ TIME_SHOW_EC )
{
date_time_edt_destroy(edt_data->tida_edt_win);
SEND_EVENT(tida_data->tida_win,TIME_ENTRY_EC,0,tida_data); /* start time entering */
}
break;
case KCD_HUP:
case KCD_RIGHT: /* back to previous menu */
//FFS_flashData.weeklyAlarm_switch=0;//gdy add
date_time_edt_destroy(edt_data->tida_edt_win);
SEND_EVENT(tida_data->tida_win,TIDA_ABORT_EC,0,tida_data);
break;
case KCD_MNURIGHT: /* cursor to right */
if( (edt_data->state EQ DATE_ENTRY_EC) || (edt_data->state EQ TIME_ENTRY_EC) ) /* cursor to rigt */
{
if( !edt_data->position ) //光标不在设AM/PM处
{
/* 2003.10.15 wyj 修改 检查参数*/
if( edt_data->state EQ TIME_ENTRY_EC )
checkAlarmRightInput(edt_data);
if( ((edt_data->state EQ DATE_ENTRY_EC) && (edt_data->index EQ 10)) )
{
edt_data->index = 0;
//edtChar(edt_data->editor_handle,ecTop);
}
if( ((edt_data->state EQ DATE_ENTRY_EC) && ((edt_data->index EQ 2)||(edt_data->index EQ 5))) )
{
edt_data->index++;
//edtChar(edt_data->editor_handle,ecRight);
}
}
else
{
edt_data->AMANDPM =! edt_data->AMANDPM;
}
}
winShow(win);
break;
case KCD_MNULEFT: /* cursor to left */
if( (!(edt_data->state EQ DATE_SHOW_EC)) && (!(edt_data->state EQ TIME_SHOW_EC)) )
{
if( edt_data->state EQ DATE_ENTRY_EC )
{
if( edt_data->index EQ 0 )
{
edt_data->index = 9;
// edtChar(edt_data->editor_handle,ecLeft);
// edtChar(edt_data->editor_handle,ecLeft);
return MFW_EVENT_CONSUMED;
}
else
edt_data->index--;
if( (edt_data->index EQ 2)||(edt_data->index EQ 5) )
{
if( edt_data->index EQ 0 )
;
else
edt_data->index--;
//edtChar(edt_data->editor_handle,ecLeft);
//edtChar(edt_data->editor_handle,ecLeft);
}
}
if( edt_data->state EQ TIME_ENTRY_EC )
{
if( !edt_data->position )
/* 2003.10.15 wyj 修改 检查参数*/
checkAlarmLeftInput(edt_data);
else
edt_data->AMANDPM=!edt_data->AMANDPM;
}
}
winShow(win);
break;
case KCD_MNUDOWN:
case KCD_MNUUP:
if( FFS_flashData.time_format==TWELVE_HOUR )
{
edt_data->position=!edt_data->position;
edt_data->index=0;
winShow(win);
}
break;
default:
return MFW_EVENT_CONSUMED;
}
return MFW_EVENT_CONSUMED;
}
/*******************************************************************************
$Function: check_date
$Description: check date after date entering
$Returns: none.
$Arguments:
*******************************************************************************/
static int check_date(T_MFW_HND win, tidaData* edt_data)
{
U8 i;
//T_tida_edt * edt_data = (T_tida_edt *)edt_dat;
//T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
//T_tida * tida_data = (T_tida *)win_data->user;
Date tempdate;
char internday[3];
char internmonth[3];
char internyear[5];
int value;
char debug[20];
TRACE_FUNCTION ("MmiTimeDate:check_date");
TRACE_EVENT(edt_data->date_string);
TRACE_EVENT("edt_data->date_string");
memset(internday, '\0', sizeof(internday));/* initial string */
memset(internmonth, '\0', sizeof(internmonth));
memset(internyear, '\0', sizeof(internyear));
internday[0] = edt_data->date_string[8];
internday[1] = edt_data->date_string[9];
internmonth[0] = edt_data->date_string[5];
internmonth[1] = edt_data->date_string[6];
for( i = 0;i<4;i++ )
{
internyear[i] = edt_data->date_string[i];
}
tempdate.month = atoi(internmonth);
TRACE_EVENT("month:");
TraceInt(tempdate.month);
if( (tempdate.month > 12) || (tempdate.month < 1) )
return FALSE;
tempdate.day = atoi(internday);
TRACE_EVENT("day:");
TraceInt(tempdate.day);
if( (tempdate.day > 30) || (tempdate.day < 1) )
{
if( tempdate.day EQ 31 )
{
switch( tempdate.month )
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
break;
default:
return FALSE;
}
}
else
return FALSE;
}
tempdate.year = atoi(internyear);
TRACE_EVENT("year:");
TraceInt(tempdate.year);
if( (tempdate.year) < 2000 || (tempdate.year > 2099) ) //zgz,2002.8.16 revise it
return FALSE;
if( (tempdate.month EQ 2) && (tempdate.day EQ 29) )
{
if( !(tempdate.year%4)&&(tempdate.year%100)||!(tempdate.year%400) ) // zgz,if the year is runnian.
{
if( DateTimeEntryMode == DAILY_ALARM )
{
FFS_flashData.alarm_day = tempdate.day;
FFS_flashData.alarm_month = tempdate.month;
FFS_flashData.alarm_year = tempdate.year;
if( flash_write() ) // zgz, 2002.8.15 just only write alarm setting to flash
return FALSE;
}
else
{
FFS_flashData.current_day = tempdate.day;
FFS_flashData.current_month = tempdate.month;
FFS_flashData.current_year = tempdate.year;
currdate.day = tempdate.day;
currdate.month = tempdate.month;
currdate.year = tempdate.year;
}
//flash_write();
value=updateRtcDate(tempdate);
TraceInt(value);
if( value<0 )
return -1;
set_latest_alarm();
return TRUE;
}
else
return FALSE;
}
else if( !((tempdate.month EQ 2) && (tempdate.day EQ 30)) )
{
if( DateTimeEntryMode == DAILY_ALARM )
{
FFS_flashData.alarm_day = tempdate.day;
FFS_flashData.alarm_month = tempdate.month;
FFS_flashData.alarm_year = tempdate.year;
if( flash_write() ) // zgz, 2002.8.15 just only write alarm setting to flash
return FALSE;
}
else
{
FFS_flashData.current_day = tempdate.day;
FFS_flashData.current_month = tempdate.month;
FFS_flashData.current_year = tempdate.year;
currdate.day = tempdate.day;
currdate.month = tempdate.month;
currdate.year = tempdate.year;
}
//flash_write();
value=updateRtcDate(tempdate);
TraceInt(value);
if( value<0 )
return -1;
set_latest_alarm();
return TRUE;
}
else
{
return FALSE;
}
}
/*******************************************************************************
$Function: check_time
$Description: check time after time entering
$Returns: none.
$Arguments:
*******************************************************************************/
/* 2003.10.28 wyj 修正AM/PM错误 */
static int check_time (T_MFW_HND win, tidaData* edt_data)
{
//T_tida_edt * edt_data = (T_tida_edt *)edt_dat;
//T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
//T_tida * tida_data = (T_tida *)win_data->user;
CLOCK tempclock;
char debug[50];
char internmin[3];
char internhour[3];
char internsec[3];
memset(internmin, '\0', sizeof(internmin));/* initial string */
memset(internhour, '\0', sizeof(internhour));
internhour[0] = edt_data->time_string[0];
internhour[1] = edt_data->time_string[1];
internmin[0] = edt_data->time_string[3];
internmin[1] = edt_data->time_string[4];
internsec[0] = edt_data->time_string[6];
internsec[1] = edt_data->time_string[7];
tempclock.hour = atoi(internhour);
if( tempclock.hour > 23 )
return FALSE;
tempclock.min = atoi(internmin);
if( tempclock.min >59 )
return FALSE;
tempclock.sec = atoi(internsec);
if( tempclock.sec >59 )
return FALSE;
/* if (DateTimeEntryMode == DAILY_ALARM)
{
FFS_flashData.dailyAlarm_hour = tempclock.hour;
FFS_flashData.dailyAlarm_min = tempclock.min;
FFS_flashData.dailyAlarm_switch = 1;
flash_write();
iconsSetState(iconIdAlarm);
set_latest_alarm();
}*/
//else if(DateTimeEntryMode == SETTING)
//{
if( edt_data->tmode_flag == 1 )
{
FFS_flashData.time_format = TWELVE_HOUR;
}
else
{
FFS_flashData.time_format = TWENTYFOUR_HOUR;
}
flash_write();
/* 2003.10.28 wyj 修正AM/PM错误 */
if( FFS_flashData.time_format == TWELVE_HOUR )
{
if( edt_data->AMPM_index ) //PM
{
if( tempclock.hour<12 && tempclock.hour>0 )
tempclock.hour += 12;
}
}
FFS_flashData.current_hour = tempclock.hour;
FFS_flashData.current_minute = tempclock.min;
currclock.hour = tempclock.hour;
currclock.min = tempclock.min;
currclock.sec = tempclock.sec;
//zgz,2002.8.15 ClockSet(&currclock);
if( updateRtcClock(tempclock)<0 )
return -1;
/*}
//else if(DateTimeEntryMode == WEEKLY_ALARM)
{
FFS_flashData.weeklyAlarm_hour= tempclock.hour;
FFS_flashData.weeklyAlarm_min= tempclock.min;
flash_write();
iconsSetState(iconIdAlarm);
}*/
set_latest_alarm();
return TRUE;
}
static int check_time1(T_MFW_HND win, void * edt_dat)
{
T_tida_edt * edt_data = (T_tida_edt *)edt_dat;
T_MFW_WIN * win_data = ((T_MFW_HDR *)win)->data;
T_tida * tida_data = (T_tida *)win_data->user;
CLOCK tempclock;
char debug[50];
char internmin[3];
char internhour[3];
memset(internmin, '\0', sizeof(internmin));/* initial string */
memset(internhour, '\0', sizeof(internhour));
internhour[0] = edt_data->edtbuf1[0];
internhour[1] = edt_data->edtbuf1[1];
internmin[0] = edt_data->edtbuf1[3];
internmin[1] = edt_data->edtbuf1[4];
tempclock.hour = atoi(internhour);
if( tempclock.hour > 23 )
return FALSE;
tempclock.min = atoi(internmin);
if( tempclock.min >59 )
return FALSE;
if( DateTimeEntryMode == DAILY_ALARM )
{
FFS_flashData.dailyAlarm_hour = tempclock.hour;
FFS_flashData.dailyAlarm_min = tempclock.min;
FFS_flashData.dailyAlarm_switch = 1;
flash_write();
iconsSetState(iconIdAlarm);
//set_latest_alarm();
}
else if( DateTimeEntryMode == SETTING )
{
FFS_flashData.current_hour = tempclock.hour;
FFS_flashData.current_minute = tempclock.min;
currclock.hour = tempclock.hour;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -