📄 keyboard.c
字号:
break;
case KEY_SURE:
open_buzzer();
buzzer_timer = 225;
buzzer_timer_trigger = 1;
break;
case KEY_CANCLE:
open_buzzer();
buzzer_timer = 225;
buzzer_timer_trigger = 1;
break;
case KEY_CENTER:
open_buzzer();
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=SYMBLE_SUBM;
display_buffer[1]=SYMBLE_SUBM;
display_buffer[2]=SYMBLE_SUBM;
display_buffer[3]=SYMBLE_SUBM;
current_state = STATE_CALLINGCENTER;
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = CALLCENTER_BEGIN;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
break;
default:
break;
}
}
//-----------------------------------------
//key procexx whe n current state is funcselect
//--------------------------------------------
void funcselect_state_process(unsigned char key_codeb)
{
if(key_codeb == KEY_CANCLE) {
current_state = STATE_FREE|STATE_FREE_NOCALL;
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=10; //CLEAR SCREEN
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10; }
if(key_codeb == KEY_SET){
current_state = STATE_FUNCSELECT;
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=SYMBLE_F; //功能号加一
display_buffer[2]= SYMBLE_SUBM;
function_index++;
if(function_index > 18)function_index = 1;
display_buffer[1] = function_index;
if(function_index > 9){
display_buffer[1] = function_index/10;
display_buffer[2] = function_index%10;
}
display_buffer[3]=SYMBLE_SUBM; }
if(key_codeb == KEY_SURE){ //按确认键进入某一种功能中
if(function_index == 1){
current_state = STATE_FREE|STATE_FREE_NOCALL;
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=10; //CLEAR SCREEN
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10;
}
if(function_index == 4){
current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_PREIDENTY;
//rs232_initial();rs232_send_byte(current_state);
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=SYMBLE_SUBL; //CLEAR SCREEN
display_buffer[1]=SYMBLE_SUBL;
display_buffer[2]=SYMBLE_SUBL;
display_buffer[3]=SYMBLE_SUBL;
psw_index = 0;
}
if(function_index == 18){
current_state = STATE_EIGHTEENTHFUNC|STATE_EIGHTEENTHFUNC_PREIDENTY;
//rs232_initial();rs232_send_byte(current_state);
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=SYMBLE_SUBL; //CLEAR SCREEN
display_buffer[1]=SYMBLE_SUBL;
display_buffer[2]=SYMBLE_SUBL;
display_buffer[3]=SYMBLE_SUBL;
psw_index = 0;
}
}
return;
}
//--------------------------------------------
//FOURTH FUNCTION STATE KEY PROCESS
//----------------------------------------------
void fourthfunc_process(unsigned char key_codec)
{
if(key_codec == KEY_NULL){return; }
//验证前状态处理
if((current_state&0x07) == STATE_FOURTHFUNC_PREIDENTY){
if((key_codec >= 0x11)&&(key_codec < 0x63)) {
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
psw_buffer[psw_index] = key_codec;
psw_index++;
if(psw_index >= 6)psw_index = 0;
}
if(key_codec == KEY_SURE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
if((psw_buffer[0]==KEY_101)&&(psw_buffer[1]==KEY_101)&&(psw_buffer[2]==KEY_101)&&(psw_buffer[3]==KEY_102)&&(psw_buffer[4]==KEY_102)&&((psw_buffer[5]==KEY_601)||(psw_buffer[5]==KEY_201)) )
{
display_buffer[0]=SYMBLE_SUBM; //
display_buffer[1]=SYMBLE_SUBM;
display_buffer[2]=SYMBLE_SUBM;
display_buffer[3]=SYMBLE_SUBM;
current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_POSIDENTY;
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = FOURTHFUNC_BEGIN;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
}
else {
current_state =STATE_FREE|STATE_FREE_NOCALL;
display_buffer[0]=10; //CLEAR SCREEN
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10;
open_buzzer(); //BEEP
buzzer_timer = 185;
buzzer_timer_trigger = 1;
}
}
return ;
}
//通过验证后状态,处理
if((current_state&0x07) == STATE_FOURTHFUNC_POSIDENTY){
//取消键处理
if(key_codec == KEY_CANCLE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
current_state = STATE_FREE|STATE_FREE_NOCALL;
display_buffer[0]=10; //CLEAR SCREEN
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10;
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = FOURTHFUNC_CANCLE;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
}
//数字键处理
if((key_codec >= 0x11)&&(key_codec <0x63)){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=0; //
display_buffer[1]=key_codec>>4;
display_buffer[2]=0;
display_buffer[3]=key_codec&0x0f;
}
if(key_codec == KEY_SURE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
if(display_buffer[0] != SYMBLE_SUBM){
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = FOURTHFUNC_OLD;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_WAITGUESTREADY; }
}
return ;
}
//等待分机准备好状态处理
if((current_state&0x07) == STATE_FOURTHFUNC_WAITGUESTREADY){
if(key_codec == KEY_CANCLE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=10; //
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10;
current_state = STATE_FREE|STATE_FREE_NOCALL;
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = FOURTHFUNC_CANCLE;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
}
return ;
}
//分机已经准备好状态
if((current_state&0x07) == STATE_FOURTHFUNC_GUESTREADY){
//取消键处理
if(key_codec == KEY_CANCLE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=10; //
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10;
current_state = STATE_FREE|STATE_FREE_NOCALL;
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = FOURTHFUNC_CANCLE;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
}
//数字键处理
if((key_codec >= 0x11)&&(key_codec <0x63)){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=0; //
display_buffer[1]=key_codec>>4;
display_buffer[2]=0;
display_buffer[3]=key_codec&0x0f;
}
//确认的处理
if(key_codec == KEY_SURE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
if(display_buffer[0] != SYMBLE_SUBM){
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = FOURTHFUNC_NEW;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
current_state = STATE_FOURTHFUNC|STATE_FOURTHFUNC_WAITDONE; }
}
return ;
}
//四号功能等待完成态
if((current_state&0x07) == STATE_FOURTHFUNC_WAITDONE){;}
return;
}
//--------------------
//呼叫中心处理程序
//--------------------
void callingcenter_process(unsigned char key_coded)
{
if(key_coded == KEY_CANCLE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=10; //
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10;
current_state = STATE_FREE|STATE_FREE_NOCALL;
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = CALLCENTER_CANCLE;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
}
return ;
}
//--------------------------------------------
//EIGHTEENTH FUNCTION STATE KEY PROCESS
//----------------------------------------------
void eighteenthfunc_process(unsigned char key_codee)
{
if(key_codee == KEY_NULL){return; }
//验证前状态处理
if((current_state&0x07) == STATE_EIGHTEENTHFUNC_PREIDENTY){
if((key_codee >= 0x11)&&(key_codee < 0x63)) {
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
psw_buffer[psw_index] = key_codee;
psw_index++;
if(psw_index >= 6)psw_index = 0;
}
if(key_codee == KEY_SURE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
if((psw_buffer[0]==KEY_101)&&(psw_buffer[1]==KEY_101)&&(psw_buffer[2]==KEY_101)&&(psw_buffer[3]==KEY_102)&&(psw_buffer[4]==KEY_102)&&((psw_buffer[5]==KEY_601)||(psw_buffer[5]==KEY_201)) )
{
display_buffer[0]=SYMBLE_SUBM; //
display_buffer[1]=SYMBLE_SUBM;
display_buffer[2]=SYMBLE_SUBM;
display_buffer[3]=SYMBLE_SUBM;
current_state = STATE_EIGHTEENTHFUNC|STATE_EIGHTEENTHFUNC_POSIDENTY;
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = EIGHTEENTHFUNC_BEGIN;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
}
else {
current_state =STATE_FREE|STATE_FREE_NOCALL;
display_buffer[0]=10; //CLEAR SCREEN
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10;
open_buzzer(); //BEEP
buzzer_timer = 185;
buzzer_timer_trigger = 1;
}
}
return ;
}
//通过验证后状态,处理
if((current_state&0x07) == STATE_EIGHTEENTHFUNC_POSIDENTY){
//取消键处理
if(key_codee == KEY_CANCLE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
current_state = STATE_FREE|STATE_FREE_NOCALL;
display_buffer[0]=10; //CLEAR SCREEN
display_buffer[1]=10;
display_buffer[2]=10;
display_buffer[3]=10;
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = EIGHTEENTHFUNC_CANCLE;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
}
//数字键处理
if((key_codee >= 0x11)&&(key_codee <0x63)){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
display_buffer[0]=0; //
display_buffer[1]=key_codee>>4;
display_buffer[2]=0;
display_buffer[3]=key_codee&0x0f;
}
if(key_codee == KEY_SURE){
open_buzzer(); //BEEP
buzzer_timer = 225;
buzzer_timer_trigger = 1;
if(display_buffer[0] != SYMBLE_SUBM){
send_buffer[0] = COMMAND_HEADER;
send_buffer[1] = EIGHTEENTHFUNC_MASK;
send_buffer[2] = display_buffer[1];
send_buffer[3] = display_buffer[3];
rs232_send_command();
current_state = STATE_EIGHTEENTHFUNC|STATE_EIGHTEENTHFUNC_WAITREADY; }
}
return ;
}
//等待分机准备好状态处理
if((current_state&0x07) == STATE_EIGHTEENTHFUNC_WAITREADY){
// if(key_codee == KEY_CANCLE){
// open_buzzer(); //BEEP
// buzzer_timer = 225;
// buzzer_timer_trigger = 1;
// display_buffer[0]=10; //
// display_buffer[1]=10;
// display_buffer[2]=10;
// display_buffer[3]=10;
// current_state = STATE_FREE|STATE_FREE_NOCALL;
//
// send_buffer[0] = COMMAND_HEADER;
// send_buffer[1] = FOURTHFUNC_CANCLE;
// send_buffer[2] = display_buffer[1];
// send_buffer[3] = display_buffer[3];
// rs232_send_command();
// }
return ;
}
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -