📄 key.c
字号:
{
lcdcb.msg_num--;
if(lcdcb.msg_num%3==2)
lcdcb.event_notice=SCR_EVENT_PRE_PAGE;
else
lcdcb.event_notice=SCR_EVENT_PRE_MSG;
}
}
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_DOWN_ON)
{
keycb.keyon_flag&=~KEY_DOWN_ON;
if(lcdcb.event_notice==SCR_EVENT_DISPLAY_FINISHED)
{
if()
if(lcdcb.msg_num==flashcb.msg_sum-1)
lcdcb.msg_num=0;
else
lcdcb.msg_num++;
if(lcdcb.msg_num%3==0)
lcdcb.event_notice=SCR_EVENT_NEXT_PAGE;
else
lcdcb.event_notice=SCR_EVENT_NEXT_MSG;
}
goto KEYEND;
}
else if(keycb.keyon_flag & KEY_CANCEL_ON)
{
keycb.keyon_flag&=~KEY_CANCEL_ON;
keycb.exit_curr_level=1;
lcdcb.msg_num=0;
lcdcb.event_notice=SCR_EVENT_MAIN_MENU;
goto KEYEND;
}
else if(keycb.keyon_flag & KEY_CONFIRM_ON)
{
keycb.keyon_flag &= ~KEY_CONFIRM_ON;
keycb.enter_next_level=1;
flashcb.event_notice=FLASH_EV_READ_ONE_RECODE;
goto KEYEND;
}
break;
//set ip
case 3:
if(keycb.keyon_flag&KEY_DOWN_ON)
{
keycb.keyon_flag&=~KEY_DOWN_ON;
if(lcdcb.event_notice==SCR_EVENT_DISPLAY_FINISHED)
{
keycb.count++;
if(keycb.count==10)
keycb.count=0;
lcdcb.event_notice=SCR_EVENT_COUNT_DOWN;
}
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_UP_ON)
{
keycb.keyon_flag&=~KEY_UP_ON;
if(lcdcb.event_notice==SCR_EVENT_DISPLAY_FINISHED)
{
if(keycb.count==0)
keycb.count=9;
else
keycb.count--;
lcdcb.event_notice=SCR_EVENT_COUNT_UP;
}
goto KEYEND;
}
else if(keycb.keyon_flag & KEY_CANCEL_ON)
{
keycb.keyon_flag&=~KEY_CANCEL_ON;
if(keycb.input_num>0)
{
keycb.input_num--;
flashcb.datacenter_ip[keycb.input_num]=' ';
lcdcb.event_notice=SCR_EVENT_DISP_IP;
}
else
{
keycb.exit_curr_level=1;
keycb.count=0;
lcdcb.event_notice=SCR_EVENT_MAIN_MENU;
}
goto KEYEND;
}
else if(keycb.keyon_flag & KEY_CONFIRM_ON)
{
keycb.keyon_flag &= ~KEY_CONFIRM_ON;
if(keycb.input_num<DATACENTER_IP_LEN)
{
flashcb.datacenter_ip[keycb.input_num++]=keycb.count+0x30;
lcdcb.event_notice=SCR_EVENT_DISP_IP;
}
else
{
keycb.count=0;
keycb.input_num = 0;
keycb.exit_curr_level=1;
keycb.event_notice = KEY_EVENT_SET_IP;
lcdcb.delay_disp_on=1;
lcdcb.event_notice = SCR_EVENT_SET_OK;
}
goto KEYEND;
}
break;
//set port
case 4:
if(keycb.keyon_flag&KEY_DOWN_ON)
{
keycb.keyon_flag&=~KEY_DOWN_ON;
if(lcdcb.event_notice==SCR_EVENT_DISPLAY_FINISHED)
{
keycb.count++;
if(keycb.count==10)
keycb.count=0;
lcdcb.event_notice=SCR_EVENT_COUNT_DOWN;
}
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_UP_ON)
{
keycb.keyon_flag&=~KEY_UP_ON;
if(lcdcb.event_notice==SCR_EVENT_DISPLAY_FINISHED)
{
if(keycb.count==0)
keycb.count=9;
else
keycb.count--;
lcdcb.event_notice=SCR_EVENT_COUNT_UP;
}
goto KEYEND;
}
else if(keycb.keyon_flag & KEY_CANCEL_ON)
{
keycb.keyon_flag&=~KEY_CANCEL_ON;
if(keycb.input_num>0)
{
keycb.input_num--;
flashcb.datacenter_port[keycb.input_num]=' ';
lcdcb.event_notice=SCR_EVENT_DISP_PORT;
}
else
{
keycb.exit_curr_level=1;
keycb.count=0;
lcdcb.event_notice=SCR_EVENT_MAIN_MENU;
}
goto KEYEND;
}
else if((keycb.keyon_flag & KEY_CONFIRM_ON))
{
keycb.keyon_flag &= ~KEY_CONFIRM_ON;
if(keycb.input_num<DATACENTER_PORT_LEN)
{
flashcb.datacenter_port[keycb.input_num++]=keycb.count+0x30;
lcdcb.event_notice=SCR_EVENT_DISP_PORT;
}
else
{
keycb.count=0;
keycb.input_num = 0;
keycb.exit_curr_level=1;
keycb.event_notice = KEY_EVENT_SET_PORT;
lcdcb.delay_disp_on=1;
lcdcb.event_notice = SCR_EVENT_SET_OK;
}
goto KEYEND;
}
break;
default:
break;
}
break;//case 2
case 3://browse one piece of history message
if(keycb.keyon_flag&KEY_UP_ON)
{
keycb.keyon_flag&=~KEY_UP_ON;
if(lcdcb.rd_loc==0)
goto KEYEND;
lcdcb.rd_loc-=48;
lcdcb.event_notice=SCR_EVENT_HISTORY_MSG;
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_DOWN_ON)
{
keycb.keyon_flag&=~KEY_DOWN_ON;
lcdcb.rd_loc+=48;
m=flashcb.len_rd_msg/48;
if(lcdcb.rd_loc>m*48)
lcdcb.rd_loc=m*48;
lcdcb.event_notice=SCR_EVENT_HISTORY_MSG;
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_CANCEL_ON)
{
keycb.keyon_flag&=~KEY_CANCEL_ON;
keycb.exit_curr_level=1;
lcdcb.rd_loc=0;
lcdcb.event_notice=SCR_EVENT_RESTORE_PAGE;
goto KEYEND;
}
else
keycb.keyon_flag&=~KEY_CONFIRM_ON;
break;//case 3
case 4://runtime message
if(keycb.msg_ack_flag&(DISPATCH_MSG_ON|WATERLEVEL_AJUST_MSG_ON))
{
if(keycb.keyon_flag&KEY_CONFIRM_ON)
{
keycb.keyon_flag&=~KEY_CONFIRM_ON;
keycb.exit_curr_level=1;
keycb.msg_ack_flag&=~DISPATCH_MSG_ON;
keycb.msg_ack_flag&=~WATERLEVEL_AJUST_MSG_ON;
ppcb.msg_ack_flag|=AGREE;
lcdcb.event_notice=SCR_EVENT_INIT_INFO;
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_CANCEL_ON)
{
keycb.keyon_flag&=~KEY_CANCEL_ON;
keycb.exit_curr_level=1;
keycb.msg_ack_flag&=~DISPATCH_MSG_ON;
keycb.msg_ack_flag&=~WATERLEVEL_AJUST_MSG_ON;
ppcb.msg_ack_flag|=DISAGREE;
lcdcb.event_notice=SCR_EVENT_INIT_INFO;
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_UP_ON)
{
keycb.keyon_flag&=~KEY_UP_ON;
if(lcdcb.rd_loc==0)
goto KEYEND;
lcdcb.rd_loc-=48;
lcdcb.event_notice=SCR_EVENT_DISP_RTMSG;
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_DOWN_ON)
{
keycb.keyon_flag&=~KEY_DOWN_ON;
lcdcb.rd_loc+=48;
m=lcdcb.msg_len/48;
if(lcdcb.rd_loc>m*48)
lcdcb.rd_loc=m*48;
lcdcb.event_notice=SCR_EVENT_DISP_RTMSG;
goto KEYEND;
}
}
if(ppcb.msg_ack_flag & BROADCAST_MSG_ON)
{
if(keycb.keyon_flag&(KEY_CONFIRM_ON|KEY_CANCEL_ON))
{
keycb.keyon_flag&=~KEY_CONFIRM_ON;
keycb.keyon_flag&=~KEY_CANCEL_ON;
keycb.exit_curr_level=1;
ppcb.msg_ack_flag&=~BROADCAST_MSG_ON;
lcdcb.event_notice=SCR_EVENT_INIT_INFO;
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_UP_ON)
{
keycb.keyon_flag&=~KEY_UP_ON;
if(lcdcb.rd_loc==0)
goto KEYEND;
lcdcb.rd_loc-=48;
lcdcb.event_notice=SCR_EVENT_DISP_RTMSG;
goto KEYEND;
}
else if(keycb.keyon_flag&KEY_DOWN_ON)
{
keycb.keyon_flag&=~KEY_DOWN_ON;
lcdcb.rd_loc+=48;
m=lcdcb.msg_len/48;
if(lcdcb.rd_loc>m*48)
lcdcb.rd_loc=m*48;
lcdcb.event_notice=SCR_EVENT_DISP_RTMSG;
goto KEYEND;
}
}
break;//case 4
default:
break;
}
KEYEND:
// clear key line
KEYPORTOUT = 0x00;
while(!keyint)
watchdog_reset();
i = 100;
while(i --);
EX1 = 1;
}
void key_poll(void)
{
unsigned char i,j;
watchdog_reset();
switch(keycb.event_notice)
{
case KEY_EVENT_NONE:
break;
case KEY_EVENT_SAILOR_LOGIN:
process_commpack_out(SAILOR_LOGIN_REQUEST);
// lcdcb.event_notice=SCR_EVENT_SAILOR_LOGING;
keycb.event_notice = KEY_EVENT_NONE;
break;
case KEY_EVENT_SAILOR_LOGOUT:
process_commpack_out(SAILOR_LOGOUT_REQUEST);
// lcdcb.event_notice=SCR_EVENT_SAILOR_LOGOUTING;
keycb.event_notice = KEY_EVENT_NONE;
break;
case KEY_EVENT_CALL_OUT:
process_commpack_out(CALL_OUT_REQUEST);
ppcb.msg_ack_flag|= AUDIO_CALL_OUT;
keycb.msg_ack_flag|=AUDIO_CALL_OUT;
keycb.event_notice = KEY_EVENT_NONE;
break;
case KEY_EVENT_SET_IP:
for(i=0,j=0;j<DATACENTER_IP_LEN;i++)
{
flashcb.short_ip[i]=(flashcb.datacenter_ip[j] - 0x30)*100 +
(flashcb.datacenter_ip[j+1] - 0x30)*10 +
(flashcb.datacenter_ip[j+2] - 0x30);
j+=3;
}
process_commpack_out(SET_DATACENTER_IP);
flash_set_syspara();
keycb.event_notice = KEY_EVENT_NONE;
break;
case KEY_EVENT_SET_PORT:
for(i=0,j=0;j<DATACENTER_PORT_LEN;i++)
{
flashcb.short_port[i]=(flashcb.datacenter_port[j]-0x30)*10+
flashcb.datacenter_port[j+1]-0x30;
j+=2;
}
process_commpack_out(SET_DATACENTER_PORT);
flash_set_syspara();
keycb.event_notice = KEY_EVENT_NONE;
break;
default:
break;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -