📄 setparam.c
字号:
XShowComponent(&gTimeSetWnd->wnd.comp);
MoveTo(41, 32);//yu MoveTo(50, 40);
DrawText((BYTE*)"-", 0, 1);
MoveTo(70, 32);//yu MoveTo(85, 40);
DrawText((BYTE*)"-", 0, 1);
MoveTo(51, 58);//yu MoveTo(60, 72);
DrawText((BYTE*)":", 0, 1);
v_WriteLcdBuff();
while (XGetMessage(&msg) != -1)
XDispatchMessage(&msg);
XDestroyWindow(&gTimeSetWnd->wnd);
if (1 == gTimeSetWnd->res) {
// char timestr[8];
gTimeSetWnd->year = (WORD)XEditBoxGetValue(&gTimeSetWnd->ebox[0]);
gTimeSetWnd->mon = (BYTE)XEditBoxGetValue(&gTimeSetWnd->ebox[1]);
gTimeSetWnd->day = (BYTE)XEditBoxGetValue(&gTimeSetWnd->ebox[2]);
gTimeSetWnd->hour = (BYTE)XEditBoxGetValue(&gTimeSetWnd->ebox[3]);
gTimeSetWnd->min = (BYTE)XEditBoxGetValue(&gTimeSetWnd->ebox[4]);
gTimeSetWnd->sec = 0;
// gTimeSetWnd->sec = (BYTE)XEditBoxGetValue(&gTimeSetWnd->ebox[5]);
SetSysTime(gTimeSetWnd->hour, gTimeSetWnd->min, gTimeSetWnd->sec);
SetSysDate(gTimeSetWnd->year, gTimeSetWnd->mon, gTimeSetWnd->day);
XTipWndShow(TranslateChar("设置成功"),1);
//yu sprintf(timestr, "%02d:%02d", gTimeSetWnd->hour, gTimeSetWnd->min);
//yu showCurrentTime(timestr);
}
free(gTimeSetWnd);
gTimeSetWnd = NULL;
return 0;
}
#endif
#if 1
typedef struct {
window_t wnd;
editbox_t ebox[2];
BYTE hour;
BYTE min;
BYTE sec;
BYTE pos;
int res;
} Alarm_set_t;
static Alarm_set_t *gAlarmSetWnd;
static int AlarmSetProc(XMSG *msg)
{
switch (msg->message) {
case MSG_PAINT:
EraseRect(&msg->comp->rc);
break;
case MSG_KEYDOWN:
switch (msg->param1) {
case KEY_D0:
case KEY_D1:
case KEY_D2:
case KEY_D3:
case KEY_D4:
case KEY_D5:
case KEY_D6:
case KEY_D7:
case KEY_D8:
case KEY_D9:
if (XEditBoxKeyHandle(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos], msg->param1)) {//显示自己处理反白
gAlarmSetWnd->pos++;
gAlarmSetWnd->pos %= 2;
//checkValidDays();//时间有效性判断
XEditBoxSetActive(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos], ACTIVED);//更新显示框
XShowComponent(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos].comp);//显示
v_WriteLcdBuff();//
}
break;
case KEY_MDOWN://yu KEY_UP:
case KEY_MUP://yu KEY_DOWN:
XEditBoxSetActive(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos], INACTIVED);
XShowComponent(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos].comp);
if (gAlarmSetWnd->pos>0)
gAlarmSetWnd->pos = 0;
else
gAlarmSetWnd->pos = 1;
//checkValidDays();
XEditBoxSetActive(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos], ACTIVED);
XShowComponent(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos].comp);
v_WriteLcdBuff();
break;
case KEY_OK:
if(0>XEditBoxSetActive(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos], INACTIVED))//YU ADD
{
XEditBoxSetActive(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos], ACTIVED);
XShowComponent(&gAlarmSetWnd->ebox[gAlarmSetWnd->pos].comp);
v_WriteLcdBuff();
break;
}
gAlarmSetWnd->res = 1;
case KEY_CANCEL:
XPostQuitMessage((window_t*)msg->comp);
break;
default:
break;
}
break;
default:
return XDefaultWindowProc(msg);
}
return 0;
}
#if 1
static DWORD GetAlarmTim(int AlarID)
{
DWORD time;
time = gDevicePara.AlarmClk[AlarID].hour;
time = (time<<8) + gDevicePara.AlarmClk[AlarID].min;
time = (time<<8) + 0;
return time;
}
static void SetAlarmTime(BYTE hour, BYTE min, BYTE sec,int AlarID)
{
gDevicePara.AlarmClk[AlarID].hour = (hour&0x1F);
gDevicePara.AlarmClk[AlarID].min = (min&0x3F);
gDevicePara.AlarmClk[AlarID].enFLAG=1;
Para_Store(&gDevicePara);
}
int CmpAlarmTime(BYTE hour, BYTE min, BYTE sec)
{
if(1==gDevicePara.AlarmClk[0].enFLAG)
{
if((gDevicePara.AlarmClk[0].hour == hour)&&\
(gDevicePara.AlarmClk[0].min == min)&&(0==sec))
return 0;
}
if(1==gDevicePara.AlarmClk[1].enFLAG)
{
if((gDevicePara.AlarmClk[1].hour == hour)&&\
(gDevicePara.AlarmClk[1].min == min)&&(0==sec))
return 1;
}
if(1==gDevicePara.AlarmClk[2].enFLAG)
{
if((gDevicePara.AlarmClk[2].hour == hour)&&\
(gDevicePara.AlarmClk[2].min == min)&&(0==sec))
return 2;
}
return -1;
}
#endif
extern char *cfgName_3[];
static int AlarmClockWindow(int AlarID)
{
rect area;
DWORD val;
//BYTE days;
XMSG msg;
gAlarmSetWnd = (Alarm_set_t*)malloc(sizeof(Alarm_set_t));
if (NULL == gAlarmSetWnd)
return -1;
gAlarmSetWnd->pos = 0;
gAlarmSetWnd->res = -1;
#if 1
val = GetAlarmTim(AlarID);
gAlarmSetWnd->hour = (BYTE)((val>>16)&0xFF);
gAlarmSetWnd->min = (BYTE)((val>>8)&0xFF);
gAlarmSetWnd->sec = (BYTE)(val&0xFF);
#endif
SetRect(&area, 8, 15, LCD_WIDTH-1, 30);//yu SetRect(&area, 10, 22, LCD_WIDTH-1, 38);
SetRect(&area, 0, LCD_ICONEND+1, LCD_WIDTH, LCD_HEIGHT);
XCreateWindow(NULL, &gAlarmSetWnd->wnd, &area, "Alarm", AlarmSetProc, FALSE);
XSetBaseWindow(&gAlarmSetWnd->wnd);
//--------
SetRect(&area, 30, 40, LCD_WIDTH-1, 55);//yu SetRect(&area, 36, 53, LCD_WIDTH-1, 68);
XCreateEditBox(&gAlarmSetWnd->wnd.comp, &gAlarmSetWnd->ebox[0], &area, 2, 0);
XEditBoxSetRange(&gAlarmSetWnd->ebox[0], 0, 23);
XEditBoxSetValue(&gAlarmSetWnd->ebox[0], gAlarmSetWnd->hour);
SetRect(&area, 62, 40, LCD_WIDTH-1, 55);//yu SetRect(&area, 70, 53, LCD_WIDTH-1, 68);
XCreateEditBox(&gAlarmSetWnd->wnd.comp, &gAlarmSetWnd->ebox[1], &area, 2, 0);
XEditBoxSetRange(&gAlarmSetWnd->ebox[1], 0, 59);
XEditBoxSetValue(&gAlarmSetWnd->ebox[1], gAlarmSetWnd->min);
XEditBoxSetActive(&gAlarmSetWnd->ebox[0], ACTIVED);
XShowComponent(&gAlarmSetWnd->wnd.comp);
MoveTo(8, 15+HZ_MAIN);
DrawString((BYTE*)TranslateChar(cfgName_3[AlarID]));
MoveTo(51, 58);//yu MoveTo(60, 72);
DrawText((BYTE*)":", 0, 1);
v_WriteLcdBuff();
while (XGetMessage(&msg) != -1)
XDispatchMessage(&msg);
XDestroyWindow(&gAlarmSetWnd->wnd);
if (1 == gAlarmSetWnd->res) {
// char timestr[8];
gAlarmSetWnd->hour = (BYTE)XEditBoxGetValue(&gAlarmSetWnd->ebox[0]);
gAlarmSetWnd->min = (BYTE)XEditBoxGetValue(&gAlarmSetWnd->ebox[1]);
SetAlarmTime(gAlarmSetWnd->hour, gAlarmSetWnd->min, gAlarmSetWnd->sec,AlarID);
//------------------
show_Icon_AlarmClock(1);
XTipWndShow(TranslateChar("闹钟开启"),1);
}
free(gAlarmSetWnd);
gAlarmSetWnd = NULL;
return 0;
}
#if 1
#define MAX_Dis_En_able 2
const static char *YNcfgName[] = {
"关",
"开",//TRUE
};
int AlarmClockOFF(int AlarID)
{
int selMenu, id = 1;
selMenu = gDevicePara.AlarmClk[AlarID].enFLAG;
while (id) {
id = XSelectWindow((char**)YNcfgName, MAX_Dis_En_able, selMenu);//,TRUE
if (id < 0)
break;
selMenu = id;
if(0==id)
{
gDevicePara.AlarmClk[AlarID].enFLAG=0;
//show_Icon_AlarmClock(0);
show_Icon_AlarmClock(gDevicePara.AlarmClk[0].enFLAG+gDevicePara.AlarmClk[1].enFLAG+gDevicePara.AlarmClk[2].enFLAG);
Para_Store(&gDevicePara);
XTipWndShow(TranslateChar("闹钟关闭"),1);
id = 0;
}
else
id = 0;
}
return 0;
}
#endif
void SetAlarmClock(int AlarID)
{
if(gDevicePara.AlarmClk[AlarID].enFLAG==1)
{ AlarmClockOFF(AlarID);
if(gDevicePara.AlarmClk[AlarID].enFLAG==1)
AlarmClockWindow(AlarID);//修改闹钟时间时间
}
else{
AlarmClockWindow(AlarID);//设置并且开启闹钟
}
}
#endif
#if 1
typedef struct {
window_t wnd;
editbox_t ebox[5];
BYTE sec;
BYTE pos;
int res;
} timeLed_set_t;
static timeLed_set_t *gtimeLedSetWnd;
static int timeLedSetProc(XMSG *msg)
{
switch (msg->message) {
case MSG_PAINT:
EraseRect(&msg->comp->rc);
break;
case MSG_KEYDOWN:
switch (msg->param1) {
case KEY_D0:
case KEY_D1:
case KEY_D2:
case KEY_D3:
case KEY_D4:
case KEY_D5:
case KEY_D6:
case KEY_D7:
case KEY_D8:
case KEY_D9:
if (XEditBoxKeyHandle(>imeLedSetWnd->ebox[gtimeLedSetWnd->pos], msg->param1)) {//显示自己处理反白
gtimeLedSetWnd->pos=0; //gtimeLedSetWnd->pos++;
//gtimeLedSetWnd->pos %= 5;
XEditBoxSetActive(>imeLedSetWnd->ebox[gtimeLedSetWnd->pos], ACTIVED);//更新显示框
XShowComponent(>imeLedSetWnd->ebox[gtimeLedSetWnd->pos].comp);//显示
v_WriteLcdBuff();//
}
break;
case KEY_OK:
if(0>XEditBoxSetActive(>imeLedSetWnd->ebox[gtimeLedSetWnd->pos], INACTIVED))//YU ADD
{
XEditBoxSetActive(>imeLedSetWnd->ebox[gtimeLedSetWnd->pos], ACTIVED);
XShowComponent(>imeLedSetWnd->ebox[gtimeLedSetWnd->pos].comp);
v_WriteLcdBuff();
break;
}
gtimeLedSetWnd->res = 1;
case KEY_CANCEL:
XPostQuitMessage((window_t*)msg->comp);
break;
default:
break;
}
break;
default:
return XDefaultWindowProc(msg);
}
return 0;
}
int u_LEDTIME_set(void)
//int timeLedSetWindow(void)
{
rect area;
//DWORD val;
//BYTE days;
XMSG msg;
gtimeLedSetWnd = (timeLed_set_t*)malloc(sizeof(timeLed_set_t));
if (NULL == gtimeLedSetWnd)
return -1;
gtimeLedSetWnd->pos = 0;
gtimeLedSetWnd->res = -1;
#if 1
gtimeLedSetWnd->sec = gDevicePara.dev.idleTime;
#endif
SetRect(&area, 0, LCD_ICONEND+1, LCD_WIDTH, LCD_HEIGHT);
XCreateWindow(NULL, >imeLedSetWnd->wnd, &area, "timeLed", timeLedSetProc, FALSE);
XSetBaseWindow(>imeLedSetWnd->wnd);
//年
// SetRect(&area, 8, 15, LCD_WIDTH-1, 30);//yu SetRect(&area, 10, 22, LCD_WIDTH-1, 38);
//---------
SetRect(&area, 30, 40, LCD_WIDTH-1, 55);//yu SetRect(&area, 36, 53, LCD_WIDTH-1, 68);
XCreateEditBox(>imeLedSetWnd->wnd.comp, >imeLedSetWnd->ebox[0], &area, 2, 0);
XEditBoxSetRange(>imeLedSetWnd->ebox[0], 0, 99);
XEditBoxSetValue(>imeLedSetWnd->ebox[0], gtimeLedSetWnd->sec);
XEditBoxSetActive(>imeLedSetWnd->ebox[0], ACTIVED);
XShowComponent(>imeLedSetWnd->wnd.comp);
MoveTo(2, 32);//yu MoveTo(50, 40);
DrawString((BYTE*)TranslateChar("背景灯时间"));
MoveTo(51, 58);//yu MoveTo(60, 72);
DrawText((BYTE*)"S", 0, 1);
v_WriteLcdBuff();
while (XGetMessage(&msg) != -1)
XDispatchMessage(&msg);
XDestroyWindow(>imeLedSetWnd->wnd);
if (1 == gtimeLedSetWnd->res) {
// char timeLedstr[8];
gtimeLedSetWnd->sec = (BYTE)XEditBoxGetValue(>imeLedSetWnd->ebox[0]);
//----------
gDevicePara.dev.idleTime = gtimeLedSetWnd->sec;
Para_Store(&gDevicePara);
//----------
XTipWndShow(TranslateChar("设置成功"),1);
//yu sprintf(timeLedstr, "%02d:%02d", gtimeLedSetWnd->hour, gtimeLedSetWnd->min);
//yu showCurrenttimeLed(timeLedstr);
}
free(gtimeLedSetWnd);
gtimeLedSetWnd = NULL;
return 0;
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -