📄 key.c
字号:
flag_key_active=0;
break;
}
if(key!=0xff)
{
reader_1.dat=(reader_1.dat<<4)|(key&0x0000000f);
i++;
}
if(i==6)
{
if(flag_code_active==c_status_code_card)
status_reader=r_status_card_code;
else
status_reader=r_status_code;
//flag_code_active=c_status_code_ing;
break;
}
}
status_machine=m_status_normal;
}
}
}
else
{
key=key_scan();
if(key==0xff)
{return;}
else if(key==10)
{
flag_key_active=0;
return;
}
else if(key==11)
{
if( (tick_count-tick_count_temp)>=100 )
{
led_driver_mode();
return;
}
}
else if(status_machine==m_status_mode)
{
PIN_BUZZER=0;
delay_ms(30);
PIN_BUZZER=1;
flag_key_buzzer= 1;
code_buffer[i++]=key;
while(flag_key_active)
{
key=key_scan();
if(i==6)
{
flag_code_active=c_status_code_sys;
return;
}
if(key==10)
{
flag_key_active=0;
return;
}
if(key!=0xff)
{
code_buffer[i++]=key;
}
}
}
else if(status_machine==m_status_moded)
{
led_driver_config();
while(flag_key_active)
{
switch(key)
{
case 0://card+code
while(flag_key_active)
{
if(status_reader==r_status_wg_26)
{
code_buffer[i++]=reader_1.buffer[1];
code_buffer[i++]=reader_1.buffer[2];
code_buffer[i++]=reader_1.buffer[3];
PIN_LED_PWR= 0;
PIN_LED_MODE=0;
PIN_LED_OPEN=1;
count_key_timeout=0;
break;
}
}
if(status_reader==r_status_wg_26)
{
status_reader=r_status_null;
while(flag_key_active)
{
key=key_scan();
if(key==10)
{
flag_key_active=0;
break;
}
if(key!=0xff)
{
if((j+2)%2)
{
code_buffer[i] |= key;
i++;
}
else
code_buffer[i] = (key<<4);
j++;
}
if(j==6)
{
status_reader=r_status_add_card_code;
flag_key_active=0;
break;
}
}
}
break;
case 1://modify system code
while(flag_key_active)
{
key=key_scan();
if(key!=0xff)
{
code_sys[i++]=key;
}
if(i==6)
{
Write_Byte_AT24LC(0x55,code_point_type);
delay_ms(10);
Write_Buffer_AT24LC(code_sys,6,code_point_addr);
led_driver_success();
delay_ms(1);
break;
}
}
break;
case 2://card or code
while(flag_key_active)
{
key=key_scan();
if(key==10)
{
flag_key_active=0;
break;
}
if(i==6)
{
status_reader=r_status_add_code;
flag_key_active=0;
break;
}
if(status_reader==r_status_wg_26 )
{
status_reader=r_status_add_card;
break;
}
if(key!=0xff)
{
reader_1.dat=(reader_1.dat<<4) | (key&0x0000000f);
i++;
}
}
break;
case 3://delete simple user
while(flag_key_active)
{
if(status_reader==r_status_wg_26)
{
status_reader=r_status_del_card;
break;
}
}
break;
case 4://delete all user
while(flag_key_active)
{
key=key_scan();
if(key!=0xff)
{
if(key==0x04)
{
status_reader=r_status_del_all;
}
else
{
led_driver_error();
}
break;
}
}
break;
case 5://modify time to delay of door
while(flag_key_active)
{
key=key_scan();
if(key==10)
{
flag_key_active=0;
break;
}
if(key!=0xff)
{
temp_door_delay[i++]=key ;
}
if(i==3)
{
count_door_delay=(temp_door_delay[0]*1000)+(temp_door_delay[1]*100)+(temp_door_delay[2]*10);
Write_Buffer_AT24LC(temp_door_delay,3,count_dor_delay_addr);
led_driver_success();
break;
}
}
break;
case 6://modify user code
i=0;j=0;flags=0;
while(flag_key_active)
{
key=key_scan();
if((status_reader==r_status_wg_26)&(flags==0))
{
count_key_timeout=0;
if(right_judge_card(reader_1.buffer+1)>right_point_byte_start)
{
led_driver_sucess();
flags=1;
}
else
{
led_driver_error();
break;
}
}
if(key==10)
{
status_reader=r_status_null;
flag_key_active=0;
}
if(key!=0xff)
{
if((j+2)%2)
{
code_buffer[i] |= key;
i++;
}
else
code_buffer[i] = (key<<4);
j++;
}
if(j==6)
{
count_key_timeout=0;
if(flags==1)
{
status_reader=r_status_code_update;
flag_key_active=0;
break;
}
temp_addr = right_judge_code(code_buffer);
if(temp_addr>=right_point_byte_start)
{
i=0;j=0;flags=1;
code_buffer[4]=(temp_addr>>8)&0xff;
code_buffer[5]=temp_addr&0xff;
PIN_LED_PWR= 0;
PIN_LED_MODE=0;
PIN_LED_OPEN=1;
status_machine=m_status_null;
}
else
{
led_driver_error();
flag_key_active=0;
break;
}
}
}
break;
case 10://exit configure mode
led_driver_success();
flag_key_active=0;
break;
default:
break;
}
key=key_scan();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -