联机请求显示后台错误
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;