Bladeren bron

优化修改日志打印

niujiuru 1 dag geleden
bovenliggende
commit
ed30473239
2 gewijzigde bestanden met toevoegingen van 15 en 13 verwijderingen
  1. 13 11
      ymodem/ymodem.c
  2. 2 2
      ymodem/ymodem_test.c

+ 13 - 11
ymodem/ymodem.c

@@ -121,10 +121,10 @@ static int comio_data_recv_proc(unsigned long wParam/*传递打开的串口句
 {
   SYmodemUart *pComIO = &s_myUart; void *pSerial = pComIO->h;
   const unsigned char *pRecvBuf = serial_get_recv_buffer(pSerial); int nRecvBytes = serial_get_recv_buffer_bytes(pSerial);
-  const char *log_prefix = serial_get_log_prefix(pSerial); RingBufElement val = pRecvBuf[nRecvBytes - 1]; // 取出1字节数据
+  const char *send_log_prefix = serial_get_log_prefix(pSerial); RingBufElement val = pRecvBuf[nRecvBytes - 1]; // 取出1字节数据
   if(!RingBuf_put(&pComIO->rx_buf, val)) {
     uart_putchar(CAN); uart_putchar(CAN);
-    sw_log_error("%s: sorry,ring buffer full, failed to put!!", log_prefix);
+    sw_log_error("%s: sorry,ring buffer full, failed to put!!", send_log_prefix);
     return -1;
   }
   serial_clear_recv_buffer(pSerial);
@@ -174,7 +174,7 @@ int ymodem_recv_files(const char *dir)
 
               uart_putchar(ACK); uart_putchar(CRC);
 
-              sw_log_debug("[%s] <文件: %s, 大小: %u> 开始接收...", UART_MODULE_NAME, file_name, file_size_val);
+              sw_log_debug("[%s] <文件: %s, 大小: %u字节> 开始接收...", UART_MODULE_NAME, file_name, file_size_val);
               snprintf(path, sizeof(path), "%s/%s", dir, file_name);
               if(sw_file_exists(path)) sw_file_delete(path);
             }
@@ -187,7 +187,7 @@ int ymodem_recv_files(const char *dir)
           {
             for(i = 0; i < packet_length; i++) { block[i] = packet_data[PACKET_HEADER+i]; }
             uart_putchar(ACK);
-            sw_log_debug("[%s] <文件: %s, 大小: %u> 收到第%u包数据, 数据包大小: %u字节", \
+            sw_log_debug("[%s] <文件: %s, 大小: %u字节> 收到第%u包数据, 数据包大小: %u字节", \
               UART_MODULE_NAME, file_name, file_size_val, packets_received, packet_length);
 
             if(!sw_dir_exists(dir)) sw_dir_create(dir);
@@ -202,7 +202,7 @@ int ymodem_recv_files(const char *dir)
         uart_putchar(CRC);
       }
 
-      if(file_done)  { if(!session_done) sw_log_debug("[%s] 文件: %s 接收完成, 实际大小: %u字节", UART_MODULE_NAME, file_name, sw_file_getSize(path)); break; } // 文件接收完成
+      if(file_done)  { if(!session_done) sw_log_debug("[%s] 文件: %s 接收完成, 实际接收文件大小: %u字节", UART_MODULE_NAME, file_name, sw_file_getSize(path)); break; } // 文件接收完成
     }
 
     if(session_done) { ret = files_num; break; } // 传输会话结束
@@ -231,10 +231,11 @@ static void send_packet(unsigned char *data, int block_no)
 }
 
 /* Send block 0 (the filename block). filename might be truncated to fit. */
+static char send_log_prefix[MAX_LINE_CHARS];
 static void send_packet0(char *filename, unsigned long size)
 {
   unsigned long count = 0; unsigned char block[PACKET_SIZE];
-  const char *num;
+  const char *num; const char *str = (filename ? filename : "null");
 
   if(filename) {
     while(*filename && (count < PACKET_SIZE-FILE_SIZE_LENGTH-2)) block[count++] = *filename++;
@@ -247,7 +248,8 @@ static void send_packet0(char *filename, unsigned long size)
   while(count < PACKET_SIZE) block[count++] = 0;
 
   send_packet(block, 0);
-  sw_log_debug("[%s] 发送第0包数据, 文件名: %s, 大小: %u字节", filename, size);
+  snprintf(send_log_prefix, sizeof(send_log_prefix), "<文件: %s, 大小: %lu字节>", str, size);
+  sw_log_debug("[%s] %s 开始发送...", UART_MODULE_NAME, send_log_prefix);
 }
 
 static long send_data_packets(unsigned char *data, unsigned long size)
@@ -261,7 +263,7 @@ static long send_data_packets(unsigned char *data, unsigned long size)
     else send_size = size;
 
     send_packet(data, blockno);
-    sw_log_debug("[%s] 发送第%u包数据, 数据包大小: %u字节", UART_MODULE_NAME, blockno, send_size);
+    sw_log_debug("[%s] %s 已发送第%u包数据, 数据包大小: %lu字节", UART_MODULE_NAME, send_log_prefix, blockno, send_size);
     ch = uart_getchar(PACKET_TIMEOUT);
     if(ch == ACK)
     {
@@ -285,7 +287,7 @@ static long send_data_packets(unsigned char *data, unsigned long size)
 
   retry = 0; do {
     uart_putchar(EOT);
-    sw_log_debug("[%s] 发送结束标志包, 已发送字节数: %u字节", UART_MODULE_NAME, total_sent);
+    sw_log_debug("[%s] %s 文件发送已完成, 实际发送字节数: %lu字节", UART_MODULE_NAME, send_log_prefix, total_sent);
     ch = uart_getchar(PACKET_TIMEOUT);
   } while((ch != ACK) && (ch != -1) && (++retry < MAX_ERRORS));
 
@@ -297,7 +299,7 @@ static long send_data_packets(unsigned char *data, unsigned long size)
   {
     retry = 0; do {
     send_packet0(0, 0);
-    sw_log_debug("[%s] 发送空包文件, 结束传输会话", UART_MODULE_NAME);
+    sw_log_debug("[%s] %s 已发送空包文件, 等待传输会话结束", UART_MODULE_NAME, send_log_prefix);
     ch = uart_getchar(PACKET_TIMEOUT);
     } while((ch != ACK) && (ch != -1) && (++retry < MAX_ERRORS));
 
@@ -340,7 +342,7 @@ int ymodem_send_file(const char *path)
       if(ch == CRC) { ret = send_data_packets((unsigned char *)file_buf, file_size); if(ret < 0) { ret += -7; } break; }
     }
     else if((ch == CRC) && (crc_nak)) { crc_nak = 0; continue; } // 接收到CRC, 重发一次0包
-    else if((ch != NAK) || (crc_nak)) { break; } // 接收到NAK, 需要重发一次0包
+    else if((ch != NAK) || (crc_nak)) { sw_log_error("[%s] %s 接收到错误应答: 0x%02X", UART_MODULE_NAME, send_log_prefix, ch); break; } // 接收到NAK, 需要重发一次0包
   } while(++retry < MAX_ERRORS && serial_recvThrd_isAlive(s_myUart.h));
 
 ret_p:

+ 2 - 2
ymodem/ymodem_test.c

@@ -9,11 +9,11 @@ int main(int argc,char *argv[])
   int send_file_size = sw_file_getSize(send_file_name);
   if(send_file_size <= 0) return -1;
   ret = ymodem_send_file(send_file_name);
-  sw_log_info("[%s] 发送测试完成 -> File: %s, Size: %d, Sent bytes: %d", UART_MODULE_NAME, send_file_name, send_file_size, ret);
+  sw_log_info("[%s] 发送测试完成 -> File: %s, Size: %d字节, Sent: %d字节", UART_MODULE_NAME, send_file_name, send_file_size, ret);
 
   // 接收测试
   ret = ymodem_recv_files("./received");
-  sw_log_info("[%s] 接收测试完成 <- Received files: %d", UART_MODULE_NAME, ret);
+  sw_log_info("[%s] 接收测试完成 <- Received files: %d", UART_MODULE_NAME, ret);
 
   return 0;
 }