do_pwd.c
上传用户:shyuanyi
上传日期:2008-05-24
资源大小:69k
文件大小:2k
源码类别:

RFID编程

开发平台:

C/C++

  1. #include  "My_head.h"
  2. #include  "key.h"
  3. /*************************************************/
  4. void  Clear_PassWord(void)
  5. {
  6.   memset(thekey.key_buf,0,KEY_SIZE);
  7.   thekey.key_count=0;
  8. }
  9. void  Dis_PassWord(void)
  10. {
  11.    BYTE  buf[8],flash,i;
  12.    buf[0]=~D_DISPLAY[24];
  13.    buf[1]=~D_DISPLAY[25];
  14.    flash = 0xFC;
  15.    for(i=0;(i<thekey.key_count)&&(i<6);i++)
  16.    {
  17.      buf[i+2]=~D_DISPLAY[16];
  18.  flash <<= 1;
  19.    }
  20.    for(;(i<6);i++)
  21.    {
  22.      buf[i+2]=~D_DISPLAY[27];
  23.    }
  24.    Display_str(buf);
  25.    Do_DisLed_Flash(flash,0x00,25);
  26. }
  27. BYTE  Pwd_Into_Consume(void)
  28. {
  29.   if( (thekey.key_count  != 6)
  30.     ||(thekey.key_buf[0] != (mycard.password[0]>>4))
  31.     ||(thekey.key_buf[1] != (mycard.password[0]&0x0f))
  32.     ||(thekey.key_buf[2] != (mycard.password[1]>>4))
  33.     ||(thekey.key_buf[3] != (mycard.password[1]&0x0f))
  34.     ||(thekey.key_buf[4] != (mycard.password[2]>>4))
  35.     ||(thekey.key_buf[5] != (mycard.password[2]&0x0f))
  36. )return(PWDPOWER_ERR_CODE); //操作人员密码错误;
  37.   KeyVal_Tobuf();//must!!
  38.   //Dis_KeyBuf();
  39.   PostMessage(CARD_CONSUME_EVENT,0);
  40.   return(SUCCESS);
  41. }
  42. BYTE  Do_PassWordKey_Even_13(BYTE Key)
  43. {
  44.   BYTE   i;
  45.   if(Key > KEY_MAX-1)return(Key);
  46.   Stop_Timer(WAIT_PRESSKEY_Tevent);
  47.   Set_TimerEvent(WAIT_PRESSKEY_Tevent,WAIT_PRESSKEY_TIME);
  48.   switch(Key)
  49.     {
  50.  case KEY_0 : Key = 0; break;
  51.  case KEY_1 : Key = 1; break;
  52.  case KEY_2 : Key = 2; break;
  53.  case KEY_3 : Key = 3; break;
  54.  case KEY_4 : Key = 4; break;
  55.  case KEY_5 : Key = 5; break;
  56.  case KEY_6 : Key = 6; break;
  57.  case KEY_7 : Key = 7; break;
  58.  case KEY_8 : Key = 8; break;
  59.  case KEY_9 : Key = 9; break;
  60.  //case KEY_FUN:Key =19;break;
  61.      case KEY_ENTER1:
  62.  case KEY_ENTER2:if((i=Pwd_Into_Consume())!=SUCCESS)
  63.                    {
  64.  do_buzzer(BUZZER_ERROR);
  65.      Dis_Err(i);
  66.    Stop_Timer(DISPLAY_DELAYEVENT_Tevent);//msut!!
  67.      Set_TimerEvent(DISPLAY_DELAYEVENT_Tevent,DISPLAY_DELAYEVENT_TIME);
  68.      Set_TimerEvent(WAIT_CARD_Tevent,WAIT_CARDCONSUME_TIME);//(1)
  69.  SetCurState(IDEL_STATUS);
  70.  return(FAILURE);
  71.    }
  72.  return(0);
  73.  case KEY_CANCEL:Renew_To_AllInit();
  74.  return(0);
  75.  case KEY_BACK:  if(!My_Back_Key())
  76.                    {
  77. do_buzzer(BUZZER_ALARM);
  78.     return(0);
  79.    }
  80.                  Dis_PassWord();
  81.      return(0);
  82.      default:return(Key);
  83. }
  84.    if((thekey.key_count>6)||!My_Save_Key(Key))do_buzzer(BUZZER_ALARM);
  85.    else  Dis_PassWord();
  86.    return(SUCCESS);
  87. }