待机状态连续按6个0以上进入菜单管理
diff --git a/supwisdom/sp_consume.c b/supwisdom/sp_consume.c
index 737b25a..e1a9c46 100644
--- a/supwisdom/sp_consume.c
+++ b/supwisdom/sp_consume.c
@@ -10,7 +10,8 @@
 #include "sp_consume.h"
 #include "sp_communicate.h"
 
-static int count = 0;
+static uint32 count = 0;
+static uint8 menu_cnt = 0;
 static uint16 sp_calc_payamt_by_flowsensor(sp_pos_t* pos, sp_card_t* card)
 {
   uint32 usedcount = 0;
@@ -570,34 +571,44 @@
 
 void sp_confirm_paymode(sp_pos_t* pos, sp_cardworkstate_t* cardWorkState)
 {
-  uint8 keycode = SP_KEY_NONE;
+  uint8 keycode;
   keycode = sp_get_key();
-  //ÔÚ¿¨Ïû·ÑÔÝÍ£Çé¿öϰ´ÈÎÒâ¼üΪ½áÊøµ±Ç°Ïû·Ñ״̬
-  if(keycode >= SP_KEY_0 && keycode <= SP_KEY_ENTER
-      && pos->cardState.cur_state == STATE_NONE
-      && cardWorkState->current_state == CARDWORKSTATUS_PAUSE && pos->paymode == PAYMODE_CARD)
+  if(keycode != SP_KEY_NONE)
   {
-    cardWorkState->current_state = CARDWORKSTATUS_STOPPING;
-    return;
-  }
-  //Ïû·Ñģʽ³õʼ»¯×´Ì¬Ï°´È·ÈϼüÑ¡Ôñ¶þάÂëÏû·Ñ
-  if((keycode == SP_KEY_ENTER) && (pos->paymode == PAYMODE_INIT))
-  {
-    cardWorkState->current_state = CARDWORKSTATUS_NONE;
-    pos->paymode = PAYMODE_QRCODE;
-    return;
-  }
-  //¶þάÂëģʽϰ´È¡Ïû¼üΪֹͣ¹¤×÷
-  if((pos->paymode == PAYMODE_QRCODE) && (keycode == SP_KEY_CLEAR))
-  {
-    cardWorkState->current_state = CARDWORKSTATUS_STOPPING;
-    return;
-  }
-  //°´0¼ü½øÈëÉ豸²Ù×÷½çÃæ
-  if(keycode == SP_KEY_0 && (pos->paymode == PAYMODE_INIT))
-  {
-    cardWorkState->current_state = CARDWORKSTATUS_SET_DEV;
-    return;
+    //°´0¼ü½øÈëÉ豸²Ù×÷½çÃæ
+    if((keycode == SP_KEY_0) && (pos->paymode == PAYMODE_INIT))
+    {
+      menu_cnt++;
+      if(menu_cnt > 6)
+      {
+        menu_cnt = 0;
+        cardWorkState->current_state = CARDWORKSTATUS_SET_DEV;
+      }
+      return;
+    }
+    menu_cnt = 0;
+
+    //ÔÚ¿¨Ïû·ÑÔÝÍ£Çé¿öϰ´ÈÎÒâ¼üΪ½áÊøµ±Ç°Ïû·Ñ״̬
+    if((pos->cardState.cur_state == STATE_NONE)
+        && (cardWorkState->current_state == CARDWORKSTATUS_PAUSE)
+        && (pos->paymode == PAYMODE_CARD))
+    {
+      cardWorkState->current_state = CARDWORKSTATUS_STOPPING;
+      return;
+    }
+    //Ïû·Ñģʽ³õʼ»¯×´Ì¬Ï°´È·ÈϼüÑ¡Ôñ¶þάÂëÏû·Ñ
+    if((keycode == SP_KEY_ENTER) && (pos->paymode == PAYMODE_INIT))
+    {
+      cardWorkState->current_state = CARDWORKSTATUS_NONE;
+      pos->paymode = PAYMODE_QRCODE;
+      return;
+    }
+    //¶þάÂëģʽϰ´È¡Ïû¼üΪֹͣ¹¤×÷
+    if((keycode == SP_KEY_CLEAR) && (pos->paymode == PAYMODE_QRCODE))
+    {
+      cardWorkState->current_state = CARDWORKSTATUS_STOPPING;
+      return;
+    }
   }
 }