|
|
@@ -374,3 +374,54 @@ UINT16 CRC_16(UINT8 *Data, unsigned int CRC_Len) |
|
|
|
return Ret_CRC_date; |
|
|
|
} |
|
|
|
|
|
|
|
/********************************************************************************************* |
|
|
|
* 功能 : 日志记录 |
|
|
|
* 描述 : 记录每次通信的请求和响应报文 |
|
|
|
* 输入 : *Message 消息帧存放的数组 flage = 1 请求报文 flage = 其他 响应报文 |
|
|
|
* Message_len 报文数据长度 |
|
|
|
* 输出 : 无 |
|
|
|
*********************************************************************************************/ |
|
|
|
|
|
|
|
void Log_Note(UINT8 *Message, int flage, int Message_len) |
|
|
|
{ |
|
|
|
FILE *fp = NULL; |
|
|
|
time_t timep; |
|
|
|
struct tm *p; |
|
|
|
time(&timep); |
|
|
|
p = gmtime(&timep); |
|
|
|
string Recv_str = to_string(1900 + p->tm_year) + "-" + to_string(1 + p->tm_mon) + "-" + to_string(p->tm_mday) |
|
|
|
+ " " + to_string(8 + p->tm_hour) + ":" + to_string(p->tm_min) + ":" + to_string(p->tm_sec) + " Recv:"; |
|
|
|
string Send_str = to_string(1900 + p->tm_year) + "-" + to_string(1 + p->tm_mon) + "-" + to_string(p->tm_mday) |
|
|
|
+ " " + to_string(8 + p->tm_hour) + ":" + to_string(p->tm_min) + ":" + to_string(p->tm_sec) + " Send:"; |
|
|
|
|
|
|
|
/* 打开文件用于读写 */ |
|
|
|
if ((fp = fopen("Modbus_TCP_log.txt", "a+")) == NULL) |
|
|
|
{ |
|
|
|
printf("打开文件失败"); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (flage == 1) |
|
|
|
{ |
|
|
|
fwrite(Send_str.c_str(), Send_str.length(), 1, fp); |
|
|
|
for (int i = 0; i < Message_len; i++) |
|
|
|
{ |
|
|
|
fprintf(fp, "%02X ", Message[i]); |
|
|
|
} |
|
|
|
fprintf(fp, "\n"); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
fwrite(Recv_str.c_str(), Recv_str.length(), 1, fp); |
|
|
|
for (int i = 0; i < Message_len; i++) |
|
|
|
{ |
|
|
|
fprintf(fp, "%02X ", Message[i]); |
|
|
|
} |
|
|
|
fprintf(fp, "\n"); |
|
|
|
} |
|
|
|
fclose(fp); |
|
|
|
fp = NULL; |
|
|
|
} |
|
|
|
|
|
|
|
|