待机状态连续按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;
+ }
}
}
diff --git a/supwisdom/sp_menu.c b/supwisdom/sp_menu.c
index 282ff76..284d43d 100644
--- a/supwisdom/sp_menu.c
+++ b/supwisdom/sp_menu.c
@@ -70,7 +70,7 @@
sprintf(syspara[offset++],"Âö³åµ¥Î»¼ÆÊý");
sprintf(syspara[offset++],"%d (´Î/100ml)",
- ((uint32)POS.sysconf.flowsensor_unit)*1);
+ ((uint32)pos->sysconf.flowsensor_unit)*1);
sprintf(syspara[offset++], "Ïû·ÑÀàÐÍ:");
sprintf(syspara[offset++], "¼ÇÕËÏû·Ñ");