优化
diff --git a/supwisdom/sp_communicate.c b/supwisdom/sp_communicate.c
index 7b96183..258c90f 100644
--- a/supwisdom/sp_communicate.c
+++ b/supwisdom/sp_communicate.c
@@ -13,7 +13,7 @@
 
 static void sp_usart_send(sp_pos_t* pos, sp_protocol_request_t* req)
 {
-  uint8 buf[264];
+  uint8 buf[sizeof(sp_protocol_request_t)];
   MEMCLEAR(buf, sizeof(buf));
   sp_protocol_crc((uint8*)req +2, req->datalen, (uint8*)req +2 +req->datalen);
   req->datalen += 2;
@@ -90,13 +90,12 @@
 {
   uint8 size;
   uint16 ret;
-  int32 timeout_ms = COMM_WAIT_TIME;
   cw_unpack_context unpack;
   unpack_field_t field;
   sp_protocol_response_t resp;
 
-  disp_hint_info(pos,"ÕýÔÚÉí·ÝÈÏÖ¤ÖÐ",DELAY_TIME2s);
-  ret = sp_usart_recv(pos, &resp, timeout_ms);
+  disp_hint_info(pos,"ÕýÔÚÉí·ÝÈÏÖ¤ÖÐ",0);
+  ret = sp_usart_recv(pos, &resp, COMM_WAIT_TIME);
   if(ret)
   {
     ret = RC_CARD_AUTHENTICATION;
@@ -254,12 +253,11 @@
 {
   uint8 size;
   uint16 ret;
-  int32 timeout_ms = COMM_WAIT_TIME;
   cw_unpack_context unpack;
   unpack_field_t field;
   sp_protocol_response_t resp;
 
-  ret = sp_usart_recv(pos, &resp, timeout_ms);
+  ret = sp_usart_recv(pos, &resp, COMM_WAIT_TIME);
   if(ret)
   {
     ret = RC_QRCODE_FAILURE;
@@ -313,12 +311,11 @@
 {
   uint8 size;
   uint16 ret;
-  int32 timeout_ms = COMM_WAIT_TIME;
   cw_unpack_context unpack;
   unpack_field_t field;
   sp_protocol_response_t resp;
 
-  ret = sp_usart_recv(pos, &resp, timeout_ms);
+  ret = sp_usart_recv(pos, &resp, COMM_WAIT_TIME);
   if(ret)
   {
     ret = RC_QRCODE_QUERY_FAIL;
@@ -453,7 +450,7 @@
   uint8 size;
   uint8 ctime[6];
   uint8 systime[7];
-  uint8 login_flag = 0;
+  uint8 login_flag;
   cw_unpack_context unpack;
   unpack_field_t field;
 
@@ -462,7 +459,7 @@
     return resp->retcode;
   }
   pos->heartbeat.heart_status = HEART_RECV;
-
+  login_flag = 0;
   sp_unpack_init(&unpack,resp->data,resp->datalen);
   size = sp_unpack_map_size(&unpack);
   while(size-- > 0)