|
|
@@ -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:
|