联机请求显示后台错误
diff --git a/supwisdom/sp_communicate.c b/supwisdom/sp_communicate.c
index 79b5601..fab5b44 100644
--- a/supwisdom/sp_communicate.c
+++ b/supwisdom/sp_communicate.c
@@ -36,6 +36,8 @@
uint8 temp[sizeof(sp_protocol_response_t)];
tick = sp_get_ticker();
MEMCLEAR(temp,sizeof temp);
+ memset(pos->errmsg,0,32);
+ pos->errmsglen = 0;
while(1)
{
@@ -57,6 +59,11 @@
if(MEMCMP((uint8*)resp +datalen,crc,2) == 0)
{
MEMCLEAR(&(pos->last_comm_status), sizeof(sp_comm_status_t));
+ if(resp->retcode)
+ {
+ MEMCPY(pos->errmsg,resp->data,32);
+ pos->errmsglen = resp->datalen;
+ }
return resp->retcode;
}
}
diff --git a/supwisdom/sp_config.h b/supwisdom/sp_config.h
index 3daed08..1119d28 100644
--- a/supwisdom/sp_config.h
+++ b/supwisdom/sp_config.h
@@ -204,6 +204,8 @@
uint8 deviceno;
uint8 local_deviceno;
uint8 devphyid[4];
+ uint8 errmsg[32]; //Áª»úºǫ́·µ»Ø´íÎóÐÅÏ¢
+ uint16 errmsglen;
sp_cardstate_t cardState;
sp_sysconf_t sysconf;
diff --git a/supwisdom/sp_consume.c b/supwisdom/sp_consume.c
index 7545390..90c5295 100644
--- a/supwisdom/sp_consume.c
+++ b/supwisdom/sp_consume.c
@@ -659,7 +659,7 @@
ret = sp_prepare_behalf_transdtl(pos, &CARD);
if(ret)
{
- cardWorkState->errcode = RC_QRCODE_TIMEOUT;
+ cardWorkState->errcode = ret;
cardWorkState->current_state = CARDWORKSTATUS_ERROR;
break;
}
diff --git a/supwisdom/sp_display.c b/supwisdom/sp_display.c
index 76ab136..a12d11e 100644
--- a/supwisdom/sp_display.c
+++ b/supwisdom/sp_display.c
@@ -262,14 +262,14 @@
sprintf(msg, "%s", "»úºÅ¹ý´ó");
break;
case RC_QRCODE_FAILURE:
- sprintf(msg, "%s", "¶þάÂë»ñȡʧ°Ü");
- break;
+ disp_server_errmsg(pos,"»ñȡʧ°Ü",pos->errmsg,pos->errmsglen);
+ return;
case RC_QRCODE_TIMEOUT:
sprintf(msg, "%s", "¶þάÂ볬ʱ");
break;
case RC_QRCODE_QUERY_FAIL:
- sprintf(msg, "%s", "¶þάÂëÈÏ֤ʧ°Ü");
- break;
+ disp_server_errmsg(pos,"ÈÏ֤ʧ°Ü",pos->errmsg,pos->errmsglen);
+ return;
case RC_DEV_NOT_LOGIN:
sprintf(msg, "%s", "É豸δǩµ½");
break;
@@ -280,8 +280,8 @@
sprintf(msg, "%s", "Á÷Á¿¼ÆË㵥λδÉèÖÃ");
break;
case RC_CARD_AUTHENTICATION:
- sprintf(msg, "%s", "Éí·ÝÈÏÖ¤³¬Ê±");
- break;
+ disp_server_errmsg(pos,"ÈÏ֤ʧ°Ü",pos->errmsg,pos->errmsglen);
+ return;
case RC_LIMIT_CONSUMPTION:
sprintf(msg, "%s", "¸ÃÓû§±»ÏÞÖÆÏû·Ñ");
break;