Autors | SHA1 | Ziņojums | Datums |
---|---|---|---|
|
2da3a69058 | 测试修改 | pirms 4 gadiem |
|
068b721f38 | 修改部分测试样例 | pirms 4 gadiem |
|
67471c2c96 | 修改TCP清理缓存区方式 | pirms 4 gadiem |
|
20a2438741 |
修改TCP解析响应报文模块
添加异常连接断开重连 添加用户选择退出功能 |
pirms 4 gadiem |
|
535f7755c3 | 注释掉显示打印数据 | pirms 4 gadiem |
|
30bb1d6531 | 修改异常释放bug,修改传输标识符判定 | pirms 4 gadiem |
|
3b6f2c260e | no message | pirms 4 gadiem |
|
f18fa12953 | 修改读取线圈功能bug,数据位移多了一次 | pirms 4 gadiem |
@@ -274,3 +274,135 @@ | |||||
2020-9-7 13:7:4 Send:09 8F 04 C4 31 | 2020-9-7 13:7:4 Send:09 8F 04 C4 31 | ||||
2020-9-7 13:7:4 Recv:09 0F 00 00 00 01 01 01 00 71 4C | 2020-9-7 13:7:4 Recv:09 0F 00 00 00 01 01 01 00 71 4C | ||||
2020-9-7 13:7:4 Send:09 8F 04 C4 31 | 2020-9-7 13:7:4 Send:09 8F 04 C4 31 | ||||
2020-9-10 13:54:16 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:54:16 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:54:17 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:54:17 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:54:19 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:54:19 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:54:19 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:54:19 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:54:19 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:54:19 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:14 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:14 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:14 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:14 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:14 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:14 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:15 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:15 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:15 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:15 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:15 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:15 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:15 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:15 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:16 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:16 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:16 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:16 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:16 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:16 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:16 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:16 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:16 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:16 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:17 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:17 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:17 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:17 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:17 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:17 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:17 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:17 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:17 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:17 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:17 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:17 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:18 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:18 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:18 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:18 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:18 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:18 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:18 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:18 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:18 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:18 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:19 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:19 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:19 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:19 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:19 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:19 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 13:59:19 Recv:09 01 00 00 00 12 BD 4F | |||||
2020-9-10 13:59:19 Send:09 01 03 FF FF 03 0C C7 | |||||
2020-9-10 15:31:57 Recv:09 01 00 00 00 01 FC 82 | |||||
2020-9-10 15:31:57 Send:09 01 01 01 92 28 | |||||
2020-9-10 15:32:37 Recv:09 01 00 00 00 01 FC 82 | |||||
2020-9-10 15:32:37 Send:09 01 01 01 92 28 | |||||
2020-9-10 15:32:38 Recv:09 01 00 00 00 01 FC 82 | |||||
2020-9-10 15:32:38 Send:09 01 01 01 92 28 | |||||
2020-9-10 15:32:38 Recv:09 01 00 00 00 01 FC 82 | |||||
2020-9-10 15:32:38 Send:09 01 01 01 92 28 | |||||
2020-9-10 15:32:39 Recv:09 01 00 00 00 01 FC 82 | |||||
2020-9-10 15:32:39 Send:09 01 01 01 92 28 | |||||
2020-9-10 15:34:37 Recv:09 01 27 0F 00 02 86 34 | |||||
2020-9-10 15:34:37 Send:09 81 02 40 53 | |||||
2020-9-10 15:35:9 Recv:09 01 00 00 07 D1 FF 2E | |||||
2020-9-10 15:35:9 Send:09 81 03 81 93 | |||||
2020-9-10 15:35:26 Recv:09 01 00 00 00 00 3D 42 | |||||
2020-9-10 15:35:26 Send:09 81 03 81 93 | |||||
2020-9-10 15:38:28 Recv:09 01 00 00 00 F9 FD | |||||
2020-9-10 15:38:28 Send:09 81 03 81 93 | |||||
2020-9-10 15:39:3 Recv:09 03 00 00 00 01 85 42 | |||||
2020-9-10 15:39:3 Send:09 03 02 FF FF 58 35 | |||||
2020-9-10 15:40:3 Recv:01 03 00 00 00 01 84 0A | |||||
2020-9-10 15:40:3 Send:01 03 02 FF FF B9 F4 | |||||
2020-9-10 15:40:19 Recv:01 03 00 00 00 64 44 21 | |||||
2020-9-10 15:40:19 Send:01 03 C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 9C B8 | |||||
2020-9-10 15:40:30 Recv:01 03 00 00 00 7B 05 E9 | |||||
2020-9-10 15:40:30 Send:01 03 F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F8 1E | |||||
2020-9-10 15:40:38 Recv:01 03 00 00 00 00 45 CA | |||||
2020-9-10 15:40:38 Send:01 83 03 01 31 | |||||
2020-9-10 15:40:42 Recv:01 03 00 00 00 7C 44 2B | |||||
2020-9-10 15:40:42 Send:01 03 F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF DB 05 | |||||
2020-9-10 15:40:48 Recv:01 03 00 00 00 7C 44 2B | |||||
2020-9-10 15:40:48 Send:01 03 F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF DB 05 | |||||
2020-9-10 15:41:16 Recv:01 03 27 0F 00 02 FE BC | |||||
2020-9-10 15:41:16 Send:01 83 02 C0 F1 | |||||
2020-9-10 15:41:21 Recv:01 03 27 10 00 01 8F 7B | |||||
2020-9-10 15:41:21 Send:01 83 02 C0 F1 | |||||
2020-9-10 15:41:48 Recv:01 03 00 00 00 8C 44 6F | |||||
2020-9-10 15:41:48 Send:01 83 03 01 31 | |||||
2020-9-10 15:41:54 Recv:01 0F 00 00 00 01 01 01 EF 57 | |||||
2020-9-10 15:41:54 Send:01 0F 00 00 00 01 94 0B | |||||
2020-9-10 15:42:4 Recv:01 0F 00 00 00 0A 02 FF FF E4 88 | |||||
2020-9-10 15:42:4 Send:01 0F 00 00 00 0A D5 CC | |||||
2020-9-10 15:42:10 Recv:01 0F 00 00 07 B0 F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF E8 75 | |||||
2020-9-10 15:42:10 Send:01 0F 00 00 07 B0 56 4F | |||||
2020-9-10 15:44:2 Recv:01 0F 00 10 00 0A 02 05 05 24 FB | |||||
2020-9-10 15:44:2 Send:01 0F 00 10 00 0A D4 09 | |||||
2020-9-10 15:44:56 Recv:01 01 00 0F 00 0A 8C 0E | |||||
2020-9-10 15:44:56 Send:01 01 02 0B 02 3F 0D | |||||
2020-9-10 15:49:20 Recv:01 01 00 10 00 0A BD C8 | |||||
2020-9-10 15:49:20 Send:01 01 02 05 01 7B 6C | |||||
2020-9-10 15:52:44 Recv:01 01 00 10 00 01 FC 0F | |||||
2020-9-10 15:52:44 Send:01 01 01 01 90 48 | |||||
2020-9-10 15:52:46 Recv:01 01 00 12 00 01 5D CF | |||||
2020-9-10 15:52:46 Send:01 01 01 01 90 48 | |||||
2020-9-10 15:52:51 Recv:01 01 00 10 00 01 FC 0F | |||||
2020-9-10 15:52:51 Send:01 01 01 01 90 48 | |||||
2020-9-10 15:52:53 Recv:01 01 00 12 00 01 5D CF | |||||
2020-9-10 15:52:53 Send:01 01 01 01 90 48 | |||||
2020-9-10 15:52:55 Recv:01 01 00 14 00 01 BD CE | |||||
2020-9-10 15:52:55 Send:01 01 01 00 51 88 | |||||
2020-9-10 15:52:58 Recv:01 01 00 16 00 01 1C 0E | |||||
2020-9-10 15:52:58 Send:01 01 01 00 51 88 | |||||
2020-9-10 15:53:0 Recv:01 01 00 18 00 01 7D CD | |||||
2020-9-10 15:53:0 Send:01 01 01 01 90 48 | |||||
2020-9-10 15:53:22 Recv:01 05 00 11 FF 00 DC 3F | |||||
2020-9-10 15:53:22 Send:01 85 01 83 50 | |||||
2020-9-10 15:53:24 Recv:01 01 00 11 00 01 AD CF | |||||
2020-9-10 15:53:24 Send:01 01 01 00 51 88 |
@@ -33,10 +33,11 @@ UINT8 Bitset_to_Uint8(unsigned int Bitset_Address, unsigned int Read_Number) | |||||
if (Read_Number >= 8) | if (Read_Number >= 8) | ||||
{ | { | ||||
unsigned int len = Bitset_Address + 8; | |||||
unsigned int len = Bitset_Address + 7; | |||||
for (unsigned int i = 0; i < 8; i++) | for (unsigned int i = 0; i < 8; i++) | ||||
{ | { | ||||
Date = Date << 1 | (int)Coil_date[len--]; | |||||
Date = Date << 1; | |||||
Date = Date | (int)Coil_date[len--]; | |||||
} | } | ||||
} | } | ||||
else | else | ||||
@@ -44,7 +45,8 @@ UINT8 Bitset_to_Uint8(unsigned int Bitset_Address, unsigned int Read_Number) | |||||
unsigned int len = Bitset_Address + Read_Number-1; | unsigned int len = Bitset_Address + Read_Number-1; | ||||
for (unsigned int i = 0; i < Read_Number; i++) | for (unsigned int i = 0; i < Read_Number; i++) | ||||
{ | { | ||||
Date = Date << 1 | (int)Coil_date[len--]; | |||||
Date = Date << 1; | |||||
Date = Date | (int)Coil_date[len--]; | |||||
} | } | ||||
} | } | ||||
return Date; | return Date; | ||||
@@ -269,8 +271,8 @@ bool Check_Requst_Message_Len(UINT8 *Requst_Message, DWORD Read_len) | |||||
if (Requst_Message[1] == 0x0F || Requst_Message[1] == 0x10) | if (Requst_Message[1] == 0x0F || Requst_Message[1] == 0x10) | ||||
{ | { | ||||
unsigned int Number = Requst_Message[4] << 8 | Requst_Message[5]; | unsigned int Number = Requst_Message[4] << 8 | Requst_Message[5]; | ||||
unsigned int Count_len = Count_Read_date_number(Requst_Message[1], Number) + 9; | |||||
if (Read_len != Count_len) | |||||
unsigned int Count_len = Count_Read_date_number(Requst_Message[1], Number); | |||||
if (Requst_Message[6] != Count_len || Read_len != Count_len + 9) | |||||
return false; | return false; | ||||
} | } | ||||
return true; | return true; | ||||
@@ -319,6 +321,8 @@ bool Create_Response_Message(UINT8 *Requst_Message, UINT8 *Response_Message, DWO | |||||
{ | { | ||||
if (Requst_Message[0] != Device_ID) //检查设备ID一致 | if (Requst_Message[0] != Device_ID) //检查设备ID一致 | ||||
return false; | return false; | ||||
if (Read_len < 8 || Read_len > 256) | |||||
return false; | |||||
if (!Check_Requst_Message_CRC(Requst_Message, Read_len))//CRC校验报文是否正确 | if (!Check_Requst_Message_CRC(Requst_Message, Read_len))//CRC校验报文是否正确 | ||||
return false; | return false; | ||||
if (RTU_Enable == 0) | if (RTU_Enable == 0) | ||||
@@ -343,46 +347,97 @@ bool Create_Response_Message(UINT8 *Requst_Message, UINT8 *Response_Message, DWO | |||||
} | } | ||||
HANDLE Input_Parameter() | |||||
{ | |||||
HANDLE Handle_Com; | |||||
while (true) | |||||
{ | |||||
GetComm_Name(); | |||||
string COMM = Input_COMM(); | |||||
unsigned int Baud_Rate = Input_Baud_Rate(); | |||||
BYTE Date_Bits = Input_Date_Bits(); | |||||
BYTE Stop_Bits = Input_Stop_Bits(Date_Bits); | |||||
BYTE Parity = Input_Parity(); | |||||
Handle_Com = Init_COM((LPCTSTR)COMM.c_str(), Baud_Rate, Date_Bits, Stop_Bits, Parity); | |||||
if (Handle_Com == INVALID_HANDLE_VALUE) | |||||
{ | |||||
cout << "初始化串口失败,请重新输入设备信息\n" << endl; | |||||
} | |||||
else | |||||
{ | |||||
printf("初始化串口成功\n"); | |||||
break; | |||||
} | |||||
} | |||||
return Handle_Com; | |||||
} | |||||
int Modbus_RTU_Salve(void) | int Modbus_RTU_Salve(void) | ||||
{ | { | ||||
string COMM = Input_COMM(); | |||||
unsigned int Baud_Rate = Input_Baud_Rate(); | |||||
BYTE Date_Bits = Input_Date_Bits(); | |||||
BYTE Stop_Bits = Input_Stop_Bits(Date_Bits); | |||||
BYTE Parity = Input_Parity(); | |||||
RTU_Enable = Input_RTU_Enable(); | |||||
UINT8 Requst_Message[MAX_NUMBER]; | UINT8 Requst_Message[MAX_NUMBER]; | ||||
UINT8 Response_Message[MAX_NUMBER]; | UINT8 Response_Message[MAX_NUMBER]; | ||||
HANDLE Handle_Com = Init_COM((LPCTSTR)COMM.c_str(), Baud_Rate, Date_Bits, Stop_Bits, Parity); | |||||
if (Handle_Com == INVALID_HANDLE_VALUE) | |||||
{ | |||||
cout << "初始化串口失败" << endl; | |||||
getchar(); | |||||
return 0; | |||||
} | |||||
else | |||||
printf("初始化串口成功"); | |||||
HANDLE Handle_Com = Input_Parameter(); | |||||
Init_Coil_Register(); | Init_Coil_Register(); | ||||
DWORD Read_len; | DWORD Read_len; | ||||
int Count = 0; | |||||
while (true) | while (true) | ||||
{ | { | ||||
PurgeComm(Handle_Com, PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT);//清除缓存 | PurgeComm(Handle_Com, PURGE_RXABORT | PURGE_TXCLEAR | PURGE_RXCLEAR | PURGE_TXABORT);//清除缓存 | ||||
BOOL Read_flage = ReadFile(Handle_Com, Requst_Message, 256, &Read_len, NULL); //阻塞等待接收请求报文 | |||||
BOOL Read_flage = ReadFile(Handle_Com, Requst_Message, 300, &Read_len, NULL); //阻塞等待接收请求报文 | |||||
if (Read_flage && (Read_len > 0)) | if (Read_flage && (Read_len > 0)) | ||||
{ | { | ||||
if (Create_Response_Message(Requst_Message, Response_Message, Read_len)) | if (Create_Response_Message(Requst_Message, Response_Message, Read_len)) | ||||
{ | { | ||||
while (!SendData(Handle_Com, (char*)Response_Message, Response_Message_Len)) | while (!SendData(Handle_Com, (char*)Response_Message, Response_Message_Len)) | ||||
{ | { | ||||
printf("发送失败,重新发送"); | |||||
Count++; | |||||
printf("发送失败,重新发送第%d次\n",Count); | |||||
if (Count > 4) | |||||
{ | |||||
break; | |||||
} | |||||
} | |||||
printf("主站请求 :"); | |||||
for (unsigned int i = 0; i < Read_len; i++) | |||||
{ | |||||
printf("%02x ", Requst_Message[i]); | |||||
} | |||||
printf("\n"); | |||||
printf("从站响应 :"); | |||||
for (unsigned int i = 0; i < Response_Message_Len; i++) | |||||
{ | |||||
printf("%02x ", Response_Message[i]); | |||||
} | } | ||||
Log_Note(Requst_Message, 0, Read_len); | |||||
Log_Note(Response_Message, 1, Response_Message_Len); | |||||
printf("\n\n"); | |||||
//Log_Note(Requst_Message, 0, Read_len); | |||||
//Log_Note(Response_Message, 1, Response_Message_Len); | |||||
} | } | ||||
else | else | ||||
continue; | continue; | ||||
} | } | ||||
else | |||||
{ | |||||
printf("设备端口异常,请检查设备连接状态\n"); | |||||
printf("**************************** Press Enter To Contioun ****************************\n"); | |||||
getchar(); | |||||
system("cls"); | |||||
printf("是否重新连接端口: 1 重新连接 0 关闭本软件\n"); | |||||
int a = 0 ; | |||||
do | |||||
{ | |||||
cin >> a; | |||||
cin.clear(); | |||||
cin.sync(); | |||||
} while (!(a == 0 || a == 1)); | |||||
if (a == 1) | |||||
{ | |||||
CloseHandle(Handle_Com); | |||||
} | |||||
else | |||||
break; | |||||
Handle_Com = Input_Parameter(); | |||||
} | |||||
} | } | ||||
CloseHandle(Handle_Com); | CloseHandle(Handle_Com); | ||||
getchar(); | getchar(); | ||||
@@ -4,7 +4,7 @@ | |||||
#include "common.h" | #include "common.h" | ||||
#define Device_ID 0x09 | #define Device_ID 0x09 | ||||
#define MAX_Address 9999 | #define MAX_Address 9999 | ||||
#define MAX_NUMBER 256 | |||||
#define MAX_NUMBER 300 | |||||
int Modbus_RTU_Salve(void); | int Modbus_RTU_Salve(void); | ||||
bool Create_Response_Message(UINT8 *Requst_Message, UINT8 *Response_Message, DWORD Read_len); | bool Create_Response_Message(UINT8 *Requst_Message, UINT8 *Response_Message, DWORD Read_len); | ||||
@@ -451,3 +451,60 @@ void Log_Note(UINT8 *Message, int flage, int Message_len) | |||||
} | } | ||||
bool cmp(string s1, string s2) | |||||
{ | |||||
if (atoi(s1.substr(3).c_str()) < atoi(s2.substr(3).c_str()))//升序 | |||||
return true; | |||||
else | |||||
return false; | |||||
} | |||||
//获取串口号 | |||||
void GetComList_Reg(std::vector<string>& comList) | |||||
{ | |||||
HKEY hkey; | |||||
int result; | |||||
int i = 0; | |||||
result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, | |||||
_T("Hardware\\DeviceMap\\SerialComm"), | |||||
NULL, | |||||
KEY_READ, | |||||
&hkey); | |||||
if (ERROR_SUCCESS == result) // 打开串口注册表 | |||||
{ | |||||
TCHAR portName[0x100], commName[0x100]; | |||||
DWORD dwLong, dwSize; | |||||
do | |||||
{ | |||||
dwSize = sizeof(portName) / sizeof(TCHAR); | |||||
dwLong = dwSize; | |||||
result = RegEnumValue(hkey, i, portName, &dwLong, NULL, NULL, (LPBYTE)commName, &dwSize); | |||||
if (ERROR_NO_MORE_ITEMS == result) | |||||
{ | |||||
// 枚举串口 | |||||
break; // commName就是串口名字"COM4" | |||||
} | |||||
comList.push_back(commName); | |||||
i++; | |||||
} while (1); | |||||
RegCloseKey(hkey); | |||||
} | |||||
} | |||||
void GetComm_Name(void) | |||||
{ | |||||
vector<string> comList; | |||||
GetComList_Reg(comList); | |||||
sort(comList.begin(), comList.end(), cmp); | |||||
printf("当前可用端口:"); | |||||
for (int i = 0; i < comList.size(); i++) | |||||
{ | |||||
cout << comList[i] << " "; | |||||
} | |||||
printf("\n"); | |||||
} | |||||
@@ -5,6 +5,11 @@ | |||||
#include <string> | #include <string> | ||||
#include <iostream> | #include <iostream> | ||||
#include <time.h> | #include <time.h> | ||||
#include <stdio.h> | |||||
#include <string> | |||||
#include <vector> | |||||
#include <algorithm> | |||||
#include <tchar.h> | |||||
using namespace std; | using namespace std; | ||||
unsigned int Count_Read_date_number(int Function_code, unsigned int Operations_Number); | unsigned int Count_Read_date_number(int Function_code, unsigned int Operations_Number); | ||||
@@ -18,5 +23,6 @@ BYTE Input_Parity(void); | |||||
unsigned int Input_RTU_Enable(void); | unsigned int Input_RTU_Enable(void); | ||||
UINT16 CRC_16(UINT8 *Data, unsigned int CRC_Len); | UINT16 CRC_16(UINT8 *Data, unsigned int CRC_Len); | ||||
void Log_Note(UINT8 *Message, int flage, int Message_len); | void Log_Note(UINT8 *Message, int flage, int Message_len); | ||||
void GetComm_Name(void); | |||||
#endif | #endif |
@@ -37,3 +37,515 @@ | |||||
2020-9-9 17:20:26 Recv:00 00 00 00 00 06 01 10 00 C7 00 01 | 2020-9-9 17:20:26 Recv:00 00 00 00 00 06 01 10 00 C7 00 01 | ||||
2020-9-9 17:21:5 Send:00 00 00 00 00 0A 01 10 00 C7 00 02 04 FF FF FF FF | 2020-9-9 17:21:5 Send:00 00 00 00 00 0A 01 10 00 C7 00 02 04 FF FF FF FF | ||||
2020-9-9 17:21:5 Recv:00 00 00 00 00 03 01 90 02 | 2020-9-9 17:21:5 Recv:00 00 00 00 00 03 01 90 02 | ||||
2020-9-10 16:39:42 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 16:40:32 Send:00 00 00 00 00 06 01 01 00 00 00 05 | |||||
2020-9-10 16:41:1 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 16:42:9 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 16:42:30 Recv:00 00 00 00 00 04 01 01 01 00 | |||||
2020-9-10 16:42:45 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 16:43:7 Recv:00 00 00 00 00 04 01 01 01 00 | |||||
2020-9-10 16:43:45 Send:00 00 00 00 00 06 01 01 00 00 00 08 | |||||
2020-9-10 18:52:48 Send:00 00 00 00 00 06 01 01 00 00 07 D0 | |||||
2020-9-10 18:52:49 Recv:00 00 00 00 00 FD 01 01 FA FF 05 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 50 FF CC CC CC CC | |||||
2020-9-10 18:53:13 Send:00 00 00 00 00 06 01 03 00 00 00 7D | |||||
2020-9-10 18:53:13 Recv:00 00 00 00 00 FD 01 03 FA FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE CC CC CC CC | |||||
2020-9-10 18:54:17 Send:00 00 00 00 00 08 01 0F 00 02 00 09 02 05 51 | |||||
2020-9-10 18:54:17 Recv:00 00 00 00 00 06 01 0F 00 02 00 09 | |||||
2020-9-10 18:54:32 Send:00 00 00 00 00 06 01 01 00 02 00 09 | |||||
2020-9-10 18:54:32 Recv:00 00 00 00 00 05 01 01 02 05 01 | |||||
2020-9-10 18:55:17 Send:00 00 00 00 00 0A 01 10 27 0E 00 02 04 05 05 05 05 | |||||
2020-9-10 18:55:17 Recv:00 00 00 00 00 06 01 10 27 0E 00 02 | |||||
2020-9-10 18:55:28 Send:00 00 00 00 00 06 01 03 27 0E 00 02 | |||||
2020-9-10 18:55:28 Recv:00 00 00 00 00 07 01 03 04 05 05 05 05 | |||||
2020-9-10 18:56:51 Send:00 00 00 00 00 06 01 01 00 00 07 D0 | |||||
2020-9-10 18:56:51 Recv:00 00 00 00 00 FD 01 01 FA 17 04 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 50 FF CC CC CC CC | |||||
2020-9-10 18:57:34 Send:00 00 00 00 00 06 01 01 00 00 00 09 | |||||
2020-9-10 18:57:35 Recv:00 00 00 00 00 05 01 01 02 17 00 | |||||
2020-9-10 18:58:15 Send:00 00 00 00 00 06 01 03 00 05 00 7D | |||||
2020-9-10 18:58:16 Recv:00 00 00 00 00 FD 01 03 FA FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE CC CC CC CC CC CC CC CC CC CC CC CC CC CC | |||||
2020-9-10 18:59:16 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:10:12 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:17:13 Send:00 00 00 00 00 1A 01 10 00 0A 00 0A 14 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |||||
2020-9-10 19:17:14 Recv:00 00 00 00 00 06 01 10 00 0A 00 0A | |||||
2020-9-10 19:17:33 Send:00 00 00 00 00 06 01 03 00 01 00 0A | |||||
2020-9-10 19:17:33 Recv:00 00 00 00 00 17 01 03 14 FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE FE 11 12 | |||||
2020-9-10 19:17:45 Send:00 00 00 00 00 06 01 03 00 0F 00 0A | |||||
2020-9-10 19:17:45 Recv:00 00 00 00 00 17 01 03 14 21 22 23 24 25 26 27 28 29 30 FE FE FE FE FE FE FE FE FE FE | |||||
2020-9-10 19:19:9 Send:00 00 00 00 00 0A 01 10 27 0F 00 02 04 11 12 13 14 | |||||
2020-9-10 19:19:10 Recv:00 00 00 00 00 03 01 90 02 | |||||
2020-9-10 19:19:40 Send:00 00 00 00 00 06 01 03 27 0F 00 02 | |||||
2020-9-10 19:19:40 Recv:00 00 00 00 00 03 01 83 02 | |||||
2020-9-10 19:20:14 Send:00 00 00 00 00 08 01 0F 00 0A 00 0A 02 55 55 | |||||
2020-9-10 19:20:14 Recv:00 00 00 00 00 06 01 0F 00 0A 00 0A | |||||
2020-9-10 19:20:26 Send:00 00 00 00 00 06 01 01 00 0F 00 0A | |||||
2020-9-10 19:20:26 Recv:00 00 00 00 00 05 01 01 02 EA 03 | |||||
2020-9-10 19:21:5 Send:00 00 00 00 00 06 01 01 00 0E 00 0A | |||||
2020-9-10 19:21:5 Recv:00 00 00 00 00 05 01 01 02 D5 03 | |||||
2020-9-10 19:22:15 Send:00 00 00 00 00 0D 01 0F 00 00 00 32 07 00 00 00 00 00 00 00 | |||||
2020-9-10 19:22:16 Recv:00 00 00 00 00 06 01 0F 00 00 00 32 | |||||
2020-9-10 19:22:35 Send:00 00 00 00 00 08 01 0F 00 0A 00 0A 02 12 34 | |||||
2020-9-10 19:22:35 Recv:00 00 00 00 00 06 01 0F 00 0A 00 0A | |||||
2020-9-10 19:22:55 Send:00 00 00 00 00 06 01 01 00 0E 00 0A | |||||
2020-9-10 19:22:55 Recv:00 00 00 00 00 05 01 01 02 01 00 | |||||
2020-9-10 19:24:56 Send:00 00 00 00 00 07 01 0F 27 0F 00 02 01 55 | |||||
2020-9-10 19:24:57 Recv:00 00 00 00 00 03 01 8F 02 | |||||
2020-9-10 19:25:11 Send:00 00 00 00 00 07 01 0F 27 0F 00 01 01 55 | |||||
2020-9-10 19:25:11 Recv:00 00 00 00 00 06 01 0F 27 0F 00 01 | |||||
2020-9-10 19:25:20 Send:00 00 00 00 00 06 01 01 27 0F 00 01 | |||||
2020-9-10 19:25:20 Recv:00 00 00 00 00 04 01 01 01 01 | |||||
2020-9-10 19:25:29 Send:00 00 00 00 00 06 01 01 27 0F 00 02 | |||||
2020-9-10 19:25:30 Recv:00 00 00 00 00 03 01 81 02 | |||||
2020-9-10 19:27:28 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:29:50 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:31:50 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:37:24 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:38:41 Recv:31 00 00 00 00 04 01 01 01 00 | |||||
2020-9-10 19:38:59 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:40:13 Recv:00 00 00 00 00 04 02 01 01 00 | |||||
2020-9-10 19:40:35 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:41:44 Recv:00 00 00 00 00 04 01 01 01 00 | |||||
2020-9-10 19:43:18 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 19:43:18 Recv:00 00 00 00 00 04 01 02 01 00 | |||||
2020-9-10 19:52:36 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-10 20:34:25 Send:00 00 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-10 20:35:9 Send:00 00 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-10 20:35:12 Recv:00 00 00 00 00 03 01 83 04 | |||||
2020-9-10 20:35:38 Send:00 00 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-10 20:35:40 Recv:00 00 00 00 00 03 01 83 04 | |||||
2020-9-10 20:36:11 Send:00 00 00 00 00 06 09 01 00 00 00 0A | |||||
2020-9-10 20:36:13 Recv:00 00 00 00 00 05 09 01 02 00 00 | |||||
2020-9-10 20:37:32 Send:00 00 00 00 00 07 09 0F 00 00 00 01 01 01 | |||||
2020-9-10 20:37:34 Recv:00 00 00 00 00 03 09 83 04 | |||||
2020-9-11 9:41:11 Send:00 00 00 00 00 06 09 01 00 00 07 D0 | |||||
2020-9-11 9:41:12 Recv:00 00 00 00 00 FD 09 01 FA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
2020-9-11 9:41:40 Send:00 00 00 00 00 08 09 0F 00 00 00 0A 02 55 03 | |||||
2020-9-11 9:41:40 Recv:00 00 00 00 00 05 09 0F 02 00 00 | |||||
2020-9-11 9:41:52 Send:00 00 00 00 00 06 09 01 00 00 00 0A | |||||
2020-9-11 9:41:52 Recv:00 00 00 00 00 05 09 01 02 00 00 | |||||
2020-9-11 9:43:32 Send:00 00 00 00 00 06 09 01 00 00 00 0A | |||||
2020-9-11 9:43:32 Recv:00 00 00 00 00 05 09 01 02 00 00 | |||||
2020-9-11 9:43:49 Send:00 00 00 00 00 08 09 0F 00 00 00 0A 02 FF FF | |||||
2020-9-11 9:43:49 Recv:00 00 00 00 00 05 09 0F 02 00 00 | |||||
2020-9-11 9:43:54 Send:00 00 00 00 00 06 09 01 00 00 00 0A | |||||
2020-9-11 9:43:54 Recv:00 00 00 00 00 05 09 01 02 00 00 | |||||
2020-9-11 9:45:19 Send:00 00 00 00 00 06 09 01 00 00 00 01 | |||||
2020-9-11 10:43:2 Send:00 00 00 00 00 06 09 01 00 00 07 D0 | |||||
2020-9-11 10:43:37 Send:00 00 00 00 00 06 01 01 00 00 07 D0 | |||||
2020-9-11 10:43:37 Recv:00 00 00 00 00 FD 01 01 FA 80 01 CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC CC | |||||
2020-9-11 10:44:9 Send:00 00 00 00 00 07 01 0F 00 00 00 02 01 01 | |||||
2020-9-11 10:44:9 Recv:00 00 00 00 00 06 01 0F 00 00 00 02 | |||||
2020-9-11 10:44:18 Send:00 00 00 00 00 06 01 03 00 00 00 02 | |||||
2020-9-11 10:44:18 Recv:00 00 00 00 00 07 01 03 04 CC CC 00 06 | |||||
2020-9-11 10:44:51 Send:00 00 00 00 00 06 01 01 00 00 00 03 | |||||
2020-9-11 10:44:59 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-11 10:45:18 Send:00 00 00 00 00 06 01 01 00 00 07 D0 | |||||
2020-9-11 10:45:39 Send:00 00 00 00 00 06 01 01 00 00 07 D0 | |||||
2020-9-11 10:49:56 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 10:49:57 Recv:00 00 00 00 00 04 01 01 01 01 | |||||
2020-9-11 10:50:46 Send:00 00 00 00 00 06 01 01 00 00 07 D0 | |||||
2020-9-11 10:50:47 Recv:00 00 00 00 00 FD 01 01 FA FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF | |||||
2020-9-11 10:51:19 Send:00 00 00 00 00 06 01 01 0F 9F 00 01 | |||||
2020-9-11 10:51:19 Recv:00 00 00 00 00 04 01 01 01 01 | |||||
2020-9-11 10:51:31 Send:00 00 00 00 00 06 01 01 0F 9F 00 02 | |||||
2020-9-11 10:51:31 Recv:00 00 00 00 00 04 01 01 01 03 | |||||
2020-9-11 14:30:53 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 14:31:47 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 15:3:3 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 15:3:12 Send:00 00 00 00 00 06 01 03 00 00 00 0A | |||||
2020-9-11 15:3:28 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 15:3:28 Recv:00 00 00 00 00 06 09 01 00 00 00 0A 00 00 00 00 00 06 09 01 00 00 00 0A 00 00 00 00 00 06 09 01 00 00 00 0A 00 00 00 00 00 06 09 01 00 00 00 0A 00 00 00 00 00 06 09 01 00 00 00 0A 00 00 00 00 00 06 09 01 00 00 00 0A 00 00 00 00 00 06 09 01 00 00 00 0A 00 00 00 00 00 06 09 01 00 00 00 0A | |||||
2020-9-11 15:4:6 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 15:4:57 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 15:40:39 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 15:40:39 Recv:00 00 00 00 00 03 01 81 01 | |||||
2020-9-11 15:40:49 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-11 15:40:49 Recv:00 00 00 00 00 05 01 03 02 00 00 | |||||
2020-9-11 15:41:1 Send:00 00 00 00 00 08 01 10 00 00 00 01 02 FF FF | |||||
2020-9-11 15:41:1 Recv:00 00 00 00 00 06 01 10 00 00 00 01 | |||||
2020-9-11 15:41:7 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-11 15:42:7 Send:00 00 00 00 00 08 01 10 00 00 00 01 02 FF FF | |||||
2020-9-11 15:42:7 Recv:00 00 00 00 00 06 01 10 00 00 00 01 | |||||
2020-9-11 15:42:20 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-11 15:43:6 Send:00 00 00 00 00 08 01 10 00 00 00 01 02 FF FF | |||||
2020-9-11 15:43:6 Recv:00 00 00 00 00 06 01 10 00 00 00 01 | |||||
2020-9-11 15:43:15 Send:00 00 00 00 00 0A 01 10 00 00 00 02 04 FF FF FF FF | |||||
2020-9-11 16:3:43 Send:00 00 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-11 16:4:35 Send:00 00 00 00 00 14 01 0F 00 00 00 64 0D FF FF FF FF FF FF FF FF FF FF FF FF FF | |||||
2020-9-11 16:27:48 Send:00 00 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-11 16:27:48 Recv:00 00 00 00 00 03 01 8F 01 | |||||
2020-9-11 16:28:6 Send:00 00 00 00 00 09 01 10 00 00 00 01 02 11 11 | |||||
2020-9-11 16:28:6 Recv:00 00 00 00 00 06 01 10 00 00 00 01 | |||||
2020-9-11 16:28:28 Send:00 00 00 00 00 09 01 10 00 01 00 01 02 11 11 | |||||
2020-9-11 16:28:28 Recv:00 00 00 00 00 06 01 10 00 01 00 01 | |||||
2020-9-11 16:30:43 Send:00 00 00 00 00 11 01 10 00 06 00 05 0A 11 11 11 11 11 11 11 11 11 11 | |||||
2020-9-11 16:49:47 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 16:49:47 Recv:00 00 00 00 00 03 01 81 01 | |||||
2020-9-11 16:49:52 Send:00 01 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-11 16:49:52 Recv:00 01 00 00 00 03 01 81 01 | |||||
2020-9-11 17:17:10 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 17:19:2 Send:00 00 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-11 17:19:2 Recv:00 00 00 00 00 03 01 81 01 | |||||
2020-9-11 17:19:7 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-11 17:19:7 Recv:00 01 00 00 00 03 01 81 01 | |||||
2020-9-11 17:19:13 Send:00 02 00 00 00 06 01 01 00 01 00 01 | |||||
2020-9-11 17:19:13 Recv:00 02 00 00 00 03 01 81 01 | |||||
2020-9-11 17:19:30 Send:00 03 00 00 00 09 01 10 00 00 00 01 02 FF FF | |||||
2020-9-11 17:19:30 Recv:00 03 00 00 00 06 01 10 00 00 00 01 | |||||
2020-9-11 17:19:38 Send:00 04 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-11 17:19:38 Recv:00 04 00 00 00 05 01 03 02 FF FF | |||||
2020-9-12 11:22:50 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 11:22:50 Recv:00 00 00 00 00 04 01 01 01 00 | |||||
2020-9-12 14:55:43 Send:00 00 00 00 00 06 01 01 00 00 00 00 | |||||
2020-9-12 14:55:48 Send:00 01 00 00 00 06 01 03 00 01 00 01 | |||||
2020-9-12 14:55:55 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 14:56:27 Send:00 03 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 14:56:35 Send:00 04 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 15:3:58 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 15:10:7 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 15:13:40 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 15:14:31 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 15:14:39 Recv:00 04 00 00 00 06 01 10 00 00 00 01 00 04 00 00 00 06 01 10 00 00 00 01 00 04 00 00 00 06 01 10 00 00 00 01 | |||||
2020-9-12 15:19:21 Send:00 01 00 00 00 06 01 01 00 00 00 00 | |||||
2020-9-12 18:10:10 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:11:7 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:12:12 Recv:00 01 00 00 00 04 01 01 01 01 | |||||
2020-9-12 18:24:0 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:24:47 Recv:00 00 00 00 00 04 01 01 01 01 | |||||
2020-9-12 18:25:58 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:26:13 Recv:00 00 00 00 00 04 01 01 01 01 01 | |||||
2020-9-12 18:26:54 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:27:24 Recv:00 02 00 00 00 05 01 01 01 01 01 | |||||
2020-9-12 18:34:7 Send:00 03 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:34:53 Recv:00 03 00 00 00 04 03 01 01 | |||||
2020-9-12 18:36:23 Send:00 04 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:36:39 Recv:00 03 00 00 00 04 81 01 | |||||
2020-9-12 18:36:48 Send:00 05 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:36:56 Recv:00 05 00 00 00 04 81 01 | |||||
2020-9-12 18:38:30 Send:00 06 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:38:37 Recv:00 05 00 00 00 02 81 01 | |||||
2020-9-12 18:38:51 Send:00 07 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:39:0 Recv:00 07 00 00 00 02 81 01 | |||||
2020-9-12 18:41:51 Send:00 08 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-12 18:42:10 Recv:00 07 00 00 00 03 01 81 01 | |||||
2020-9-12 18:42:17 Send:00 09 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:42:33 Recv:00 09 00 00 00 03 01 81 01 | |||||
2020-9-12 18:45:20 Send:00 0A 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:45:43 Recv:00 0A 00 00 00 03 01 81 02 | |||||
2020-9-12 18:45:56 Send:00 0B 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:46:13 Recv:00 0B 00 00 00 03 01 81 03 | |||||
2020-9-12 18:46:29 Send:00 0C 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:46:48 Recv:00 0C 00 00 00 03 01 81 04 | |||||
2020-9-12 18:48:47 Send:00 0D 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:50:8 Recv:00 0D 03 00 00 04 01 01 01 01 | |||||
2020-9-12 18:55:44 Send:00 0E 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:57:11 Recv:00 0E 00 00 01 06 01 01 01 01 | |||||
2020-9-12 18:58:19 Send:00 0F 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 18:59:33 Recv:00 0F 00 00 00 04 01 81 02 11 | |||||
2020-9-12 19:3:50 Send:00 00 00 00 00 06 01 01 00 00 00 00 | |||||
2020-9-12 19:38:43 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 19:39:23 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 19:39:36 Recv:00 0F 00 00 00 04 01 81 02 11 | |||||
2020-9-12 19:40:10 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 19:40:22 Recv:00 02 00 00 00 04 01 81 02 11 | |||||
2020-9-12 19:43:41 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-12 19:43:56 Recv:00 00 00 00 00 04 01 81 02 11 | |||||
2020-9-14 12:39:35 Send:00 00 00 00 00 06 01 01 00 00 00 00 | |||||
2020-9-14 12:40:39 Recv:00 00 00 00 00 03 01 81 03 | |||||
2020-9-14 12:41:9 Send:00 01 00 00 00 06 01 01 00 00 00 00 | |||||
2020-9-14 12:41:31 Recv:00 00 00 00 00 03 01 01 00 | |||||
2020-9-14 12:41:41 Send:00 02 00 00 00 06 01 01 00 00 00 00 | |||||
2020-9-14 12:41:52 Recv:00 02 00 00 00 03 01 01 00 | |||||
2020-9-14 12:45:51 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 12:46:47 Recv:00 00 00 00 00 04 01 01 01 00 | |||||
2020-9-14 12:47:11 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 12:47:16 Recv:00 02 00 00 00 03 01 01 01 | |||||
2020-9-14 12:48:42 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 12:49:1 Recv:00 02 00 00 00 01 01 | |||||
2020-9-14 13:26:14 Send:00 03 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:32:31 Send:00 04 00 00 00 06 01 01 00 00 07 D0 | |||||
2020-9-14 13:35:41 Recv:00 04 00 00 00 FD 01 01 FA 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF | |||||
2020-9-14 13:37:59 Send:00 05 00 00 00 06 01 01 00 00 00 0B | |||||
2020-9-14 13:38:8 Send:00 06 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:39:20 Recv:00 06 00 00 00 03 01 81 01 | |||||
2020-9-14 13:40:44 Send:00 07 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:40:50 Recv:00 07 00 00 00 03 01 81 02 | |||||
2020-9-14 13:41:25 Send:00 08 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:41:32 Recv:00 08 00 00 00 03 01 81 03 | |||||
2020-9-14 13:41:48 Send:00 09 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:42:4 Recv:00 09 00 00 00 03 01 81 04 | |||||
2020-9-14 13:42:20 Send:00 0A 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:42:33 Recv:00 0A 00 00 00 03 01 81 05 | |||||
2020-9-14 13:48:26 Send:00 0B 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:49:41 Recv:00 0C 00 00 00 04 01 01 01 00 | |||||
2020-9-14 13:49:58 Send:00 0C 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:50:19 Recv:00 0C 01 00 00 04 01 01 01 00 | |||||
2020-9-14 13:51:55 Send:00 0D 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:52:21 Recv:00 0D 00 00 01 04 01 01 01 00 | |||||
2020-9-14 13:52:50 Send:00 0E 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:53:13 Recv:00 0E 00 00 00 04 02 01 01 00 | |||||
2020-9-14 13:56:48 Send:00 0F 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:57:13 Send:00 10 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-14 13:58:4 Recv:00 10 00 00 00 02 01 01 02 00 00 | |||||
2020-9-14 13:58:35 Send:00 11 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 13:58:45 Send:00 12 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-14 13:59:8 Recv:00 12 00 00 00 05 01 01 01 00 00 | |||||
2020-9-14 14:0:10 Send:00 13 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-14 14:0:31 Recv:00 13 00 00 00 04 01 01 01 00 | |||||
2020-9-14 14:0:58 Send:00 14 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 14:1:21 Recv:00 13 00 00 00 02 01 01 | |||||
2020-9-14 14:1:35 Send:00 15 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 14:1:46 Recv:00 15 00 00 00 02 01 01 | |||||
2020-9-14 14:3:13 Send:00 16 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 14:3:36 Recv:00 16 00 00 00 03 01 83 01 | |||||
2020-9-14 14:6:49 Send:00 17 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:7:22 Recv:00 17 00 00 00 05 01 03 02 11 11 | |||||
2020-9-14 14:7:57 Send:00 18 00 00 00 06 01 03 00 00 00 7D | |||||
2020-9-14 14:8:51 Recv:00 18 00 00 00 FD 01 03 FA 00 FF 00 FF 00 FF 00 00 00 FF 00 00 00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
2020-9-14 14:12:57 Send:00 19 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:13:23 Recv:00 19 00 00 00 03 01 83 01 | |||||
2020-9-14 14:14:8 Send:00 1A 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:14:13 Recv:00 20 00 00 00 03 01 83 02 | |||||
2020-9-14 14:14:26 Send:00 1B 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:14:36 Recv:00 1B 00 00 00 03 01 83 02 | |||||
2020-9-14 14:14:56 Send:00 1C 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:15:7 Recv:00 1C 00 00 00 03 01 83 03 | |||||
2020-9-14 14:15:32 Send:00 1D 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:15:44 Recv:00 1D 00 00 00 03 01 83 04 | |||||
2020-9-14 14:18:28 Send:00 1E 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:18:41 Recv:00 1E 00 00 00 03 01 8F 04 | |||||
2020-9-14 14:19:34 Send:00 1F 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:20:1 Recv:00 1C 00 00 00 03 01 02 00 00 | |||||
2020-9-14 14:20:12 Send:00 20 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:20:40 Recv:00 1C 00 00 00 05 01 03 02 00 00 | |||||
2020-9-14 14:21:6 Send:00 21 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:21:28 Recv:00 21 00 20 00 05 01 03 02 00 00 | |||||
2020-9-14 14:21:56 Send:00 22 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:22:12 Recv:00 22 00 00 10 05 01 03 02 00 00 | |||||
2020-9-14 14:25:56 Send:00 23 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:26:15 Recv:00 23 00 00 00 05 02 03 02 00 00 | |||||
2020-9-14 14:26:35 Send:00 24 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:26:58 Recv:00 24 00 00 00 02 01 03 02 00 00 | |||||
2020-9-14 14:28:18 Send:00 25 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:28:26 Send:00 26 00 00 00 06 01 03 00 00 00 02 | |||||
2020-9-14 14:28:50 Recv:00 26 00 00 00 07 01 03 03 00 00 00 00 | |||||
2020-9-14 14:29:17 Send:00 27 00 00 00 06 01 03 00 00 00 02 | |||||
2020-9-14 14:29:53 Recv:00 27 00 00 00 09 01 03 06 00 00 00 00 00 00 | |||||
2020-9-14 14:30:21 Send:00 28 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-14 14:30:54 Recv:00 28 00 00 00 02 01 03 | |||||
2020-9-14 14:34:36 Send:00 29 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-14 14:35:14 Recv:00 29 00 00 00 06 01 0F 00 00 00 01 | |||||
2020-9-14 14:36:32 Send:00 2A 00 00 00 FD 01 0F 00 00 07 B0 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
2020-9-14 14:37:13 Recv:00 2A 00 00 00 FD 01 0F 00 00 07 B0 | |||||
2020-9-14 14:43:19 Send:00 2B 00 00 00 FD 01 0F 00 00 07 B0 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
2020-9-14 14:43:56 Recv:00 2B 00 00 00 FD 01 0F 00 00 07 B0 | |||||
2020-9-14 14:45:18 Send:00 2C 00 00 00 FD 01 0F 00 00 07 B0 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
2020-9-14 14:45:29 Recv:00 2B 00 00 00 06 01 0F 00 00 07 B0 | |||||
2020-9-14 14:45:44 Send:00 2D 00 00 00 FD 01 0F 00 00 07 B0 F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
2020-9-14 14:45:53 Recv:00 2D 00 00 00 06 01 0F 00 00 07 B0 | |||||
2020-9-14 14:47:32 Send:00 2E 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-14 14:50:1 Recv:00 2E 00 00 00 03 01 8F 01 | |||||
2020-9-14 14:50:27 Send:00 2F 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 14:50:52 Recv:00 2F 00 00 00 03 01 8F 02 | |||||
2020-9-14 14:51:17 Send:00 30 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 14:51:31 Recv:00 30 00 00 00 03 01 8F 03 | |||||
2020-9-14 14:51:56 Send:00 31 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-14 14:52:5 Recv:00 31 00 00 00 03 01 8F 04 | |||||
2020-9-14 14:53:13 Send:00 32 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 14:53:29 Recv:00 32 00 00 00 03 01 90 04 | |||||
2020-9-14 14:54:59 Send:00 33 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 14:55:35 Recv:00 00 00 00 00 06 01 0F 00 00 00 01 | |||||
2020-9-14 14:56:2 Send:00 34 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 14:56:38 Recv:00 34 0F 00 00 06 01 0F 00 00 00 01 | |||||
2020-9-14 14:57:14 Send:00 35 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 14:57:36 Recv:00 35 00 00 F0 06 01 0F 00 00 00 01 | |||||
2020-9-14 14:58:29 Send:00 36 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 14:58:54 Recv:00 36 00 00 00 06 02 0F 00 00 00 01 | |||||
2020-9-14 14:59:19 Send:00 37 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 14:59:35 Send:00 38 00 00 00 09 01 0F 00 00 00 0A 02 01 01 | |||||
2020-9-14 14:59:59 Recv:00 38 00 00 00 05 01 0F 00 00 00 0A | |||||
2020-9-14 15:1:22 Send:00 39 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-14 15:1:46 Recv:00 39 00 00 00 04 01 0F 00 01 | |||||
2020-9-14 15:2:15 Send:00 3A 00 00 00 08 01 0F 00 00 00 01 01 00 | |||||
2020-9-14 15:2:56 Recv:00 3A 00 00 00 02 01 0F | |||||
2020-9-14 15:6:31 Send:00 3B 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:6:48 Recv:00 3B 00 00 00 07 01 10 00 00 00 01 | |||||
2020-9-14 15:7:3 Send:00 3C 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:7:17 Recv:00 3C 00 00 00 06 01 10 00 00 00 01 | |||||
2020-9-14 15:7:49 Send:00 3D 00 00 00 FD 01 10 00 00 00 7B F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 | |||||
2020-9-14 15:8:14 Recv:00 3D 00 00 00 06 01 10 00 00 00 7B | |||||
2020-9-14 15:8:45 Send:00 3E 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:10:45 Recv:00 3E 00 00 00 04 01 80 01 | |||||
2020-9-14 15:11:2 Send:00 3F 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:11:13 Recv:00 3F 00 00 00 03 01 80 02 | |||||
2020-9-14 15:11:31 Send:00 40 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:11:43 Recv:00 40 00 00 00 03 01 90 03 | |||||
2020-9-14 15:11:51 Send:00 41 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:12:2 Recv:00 41 00 00 00 03 01 90 04 | |||||
2020-9-14 15:13:47 Send:00 42 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:14:2 Recv:00 42 00 00 00 03 01 81 04 | |||||
2020-9-14 15:15:20 Send:00 43 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:15:53 Recv:00 42 00 00 00 06 01 10 00 00 00 01 | |||||
2020-9-14 15:16:14 Send:00 44 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:16:34 Recv:00 44 55 00 00 06 01 10 00 00 00 01 | |||||
2020-9-14 15:18:51 Send:00 45 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:19:11 Recv:00 45 00 00 50 06 01 10 00 00 00 01 | |||||
2020-9-14 15:19:31 Send:00 46 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:19:51 Recv:00 46 00 00 00 06 02 10 00 00 00 01 | |||||
2020-9-14 15:20:26 Send:00 47 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-14 15:20:40 Send:00 48 00 00 00 0B 01 10 00 00 00 02 04 00 00 00 05 | |||||
2020-9-14 15:21:5 Recv:00 48 00 00 00 0B 01 10 00 00 00 02 | |||||
2020-9-14 15:21:39 Send:00 49 00 00 00 0B 01 10 00 00 00 02 04 00 00 00 00 | |||||
2020-9-14 15:22:6 Recv:00 49 00 00 00 05 01 10 00 00 00 | |||||
2020-9-14 15:22:28 Send:00 4A 00 00 00 09 01 10 00 00 00 01 02 00 55 | |||||
2020-9-14 15:23:3 Recv:00 4A 00 00 00 01 01 | |||||
2020-9-14 15:56:23 Send:00 4B 00 00 00 06 01 01 00 01 00 01 | |||||
2020-9-14 20:51:26 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 20:51:26 Recv:00 4A 00 00 00 01 01 00 4A 00 00 00 01 01 | |||||
2020-9-14 20:58:36 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 20:58:41 Recv:00 4A 00 00 00 01 01 | |||||
2020-9-14 20:58:58 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 20:59:7 Recv:11 | |||||
2020-9-14 20:59:17 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 20:59:53 Send:00 03 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 21:1:44 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-14 21:1:49 Recv:01 11 11 01 01 11 01 01 01 01 | |||||
2020-9-14 21:15:54 Send:00 00 00 00 00 06 01 01 00 00 00 0A | |||||
2020-9-14 21:16:17 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 9:28:0 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 9:29:12 Send:00 01 00 00 00 06 01 01 00 00 00 09 | |||||
2020-9-15 9:29:32 Recv:00 01 00 00 00 05 01 01 02 00 00 | |||||
2020-9-15 9:29:41 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 9:30:1 Recv:00 02 00 00 00 04 01 01 01 00 | |||||
2020-9-15 9:30:43 Send:00 03 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 9:31:3 Recv:00 03 00 00 00 04 01 01 01 00 | |||||
2020-9-15 9:33:28 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 9:35:49 Send:00 00 00 00 00 06 01 01 00 00 00 0B | |||||
2020-9-15 9:36:25 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 9:36:49 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 9:36:54 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:19:14 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:20:32 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:20:35 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:20:47 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:20:52 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:21:49 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:21:51 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:21:55 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:21:57 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:22:5 Send:00 02 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-15 10:22:7 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:22:37 Send:00 03 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:22:39 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:22:49 Send:00 04 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-15 10:22:51 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:23:40 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:23:44 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:23:50 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:23:54 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:23:58 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:24:5 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 10:24:11 Send:00 03 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 10:24:14 Recv:68 74 74 70 3A 2F 2F 77 77 77 2E 63 6D 73 6F 66 74 2E 63 6E | |||||
2020-9-15 12:15:51 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 12:15:51 Recv:00 00 00 00 00 03 01 81 02 | |||||
2020-9-15 12:16:36 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 12:17:5 Send:00 02 00 00 00 06 01 01 00 01 00 0A | |||||
2020-9-15 12:17:5 Recv:00 02 00 00 00 05 01 01 02 00 00 | |||||
2020-9-15 12:17:26 Send:00 03 00 00 00 06 01 03 00 05 00 06 | |||||
2020-9-15 12:17:26 Recv:00 03 00 00 00 0F 01 03 0C CC CC CC CC CC CC CC CC CC CC CC CC | |||||
2020-9-15 12:17:49 Send:00 04 00 00 00 09 01 0F 00 01 00 09 02 55 01 | |||||
2020-9-15 12:17:49 Recv:00 04 00 00 00 06 01 0F 00 01 00 09 | |||||
2020-9-15 12:18:14 Send:00 05 00 00 00 0B 01 10 00 05 00 02 04 55 55 55 55 | |||||
2020-9-15 12:18:14 Recv:00 05 00 00 00 06 01 10 00 05 00 02 | |||||
2020-9-15 12:18:42 Send:00 06 00 00 00 06 01 01 00 00 00 05 | |||||
2020-9-15 12:18:50 Recv:01 06 00 00 00 04 01 01 01 0A | |||||
2020-9-15 12:19:4 Send:00 07 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-15 12:19:10 Recv:00 07 01 00 00 05 01 03 02 CC CC | |||||
2020-9-15 12:19:23 Send:00 08 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 12:19:24 Recv:00 08 00 00 00 06 01 0F 00 00 00 01 | |||||
2020-9-15 12:19:40 Send:00 09 00 00 00 09 01 10 00 00 00 01 02 22 22 | |||||
2020-9-15 12:19:52 Recv:00 09 00 00 04 06 01 10 00 00 00 01 | |||||
2020-9-15 12:21:17 Send:00 0A 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 12:21:25 Recv:00 0A 00 00 00 09 01 01 01 01 | |||||
2020-9-15 12:23:9 Send:00 0B 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 12:23:15 Recv:00 0B 00 00 00 03 01 01 01 01 | |||||
2020-9-15 12:23:43 Send:00 0C 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 12:23:48 Recv:00 0C 00 00 00 04 02 01 01 01 | |||||
2020-9-15 12:24:7 Send:00 0D 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-15 12:24:15 Recv:00 0D 00 00 00 05 01 83 02 22 22 | |||||
2020-9-15 12:24:41 Send:00 0E 00 00 00 06 01 03 00 00 00 02 | |||||
2020-9-15 12:24:49 Recv:00 0E 00 00 00 07 01 01 04 22 22 00 00 | |||||
2020-9-15 12:53:6 Send:00 00 00 00 00 06 01 03 00 00 00 02 | |||||
2020-9-15 12:53:19 Recv:00 00 00 00 00 07 01 01 04 22 22 00 00 | |||||
2020-9-15 12:53:28 Send:00 01 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-15 12:53:31 Recv:00 00 00 00 00 07 01 01 04 22 22 00 00 | |||||
2020-9-15 12:53:44 Send:00 02 00 00 00 08 01 0F 00 05 00 01 01 03 | |||||
2020-9-15 12:54:5 Recv:00 02 00 00 00 08 01 0F 00 06 00 01 | |||||
2020-9-15 12:54:14 Send:00 03 00 00 00 08 01 0F 00 06 00 01 01 01 | |||||
2020-9-15 12:54:28 Recv:00 03 00 00 00 08 01 0F 00 06 00 02 | |||||
2020-9-15 15:48:0 Send:00 00 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:48:7 Recv:00 05 00 00 00 04 01 03 00 01 | |||||
2020-9-15 15:48:26 Send:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:49:9 Recv:00 01 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:49:16 Send:00 02 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:49:36 Recv:00 02 00 01 00 04 01 01 01 | |||||
2020-9-15 15:49:53 Send:00 03 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:50:5 Recv:00 02 00 01 00 04 01 01 01 | |||||
2020-9-15 15:50:10 Send:00 04 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:50:41 Recv:00 04 00 00 00 03 01 01 01 | |||||
2020-9-15 15:51:19 Send:00 05 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:51:33 Recv:00 05 00 00 00 04 01 01 01 01 | |||||
2020-9-15 15:51:43 Send:00 06 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:51:45 Recv:00 05 00 01 00 04 01 01 01 01 | |||||
2020-9-15 15:52:0 Send:00 07 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:52:2 Recv:00 07 00 01 00 04 01 01 01 01 | |||||
2020-9-15 15:52:14 Send:00 08 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:52:17 Recv:00 07 01 00 00 04 01 01 01 01 | |||||
2020-9-15 15:52:23 Send:00 09 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:52:56 Recv:00 07 01 00 00 05 01 01 01 01 01 | |||||
2020-9-15 15:53:10 Send:00 0A 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:53:17 Recv:00 0A 00 01 00 05 01 01 01 01 01 | |||||
2020-9-15 15:53:29 Send:00 0B 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:53:33 Recv:00 0B 00 00 00 05 01 01 01 01 01 | |||||
2020-9-15 15:53:46 Send:00 0C 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:53:55 Recv:00 0C 00 00 00 04 01 01 01 01 00 | |||||
2020-9-15 15:54:9 Send:00 0D 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 15:54:42 Recv:00 0D 00 00 00 04 01 01 01 FF | |||||
2020-9-15 15:57:47 Send:00 0E 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:0:43 Send:00 0F 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 16:1:9 Recv:00 0F 00 00 00 06 01 01 00 00 00 01 | |||||
2020-9-15 16:1:16 Send:00 10 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:3:37 Send:00 11 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:4:18 Recv:00 11 00 00 00 04 01 0F 00 01 00 01 | |||||
2020-9-15 16:5:56 Send:00 12 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:5:58 Recv:00 12 00 00 00 04 01 0F 01 00 00 01 | |||||
2020-9-15 16:6:11 Send:00 13 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:6:13 Recv:00 12 00 00 00 04 01 0F 00 00 00 01 | |||||
2020-9-15 16:6:25 Send:00 14 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:6:27 Recv:00 14 00 00 00 04 01 0F 00 00 00 01 | |||||
2020-9-15 16:6:43 Send:00 15 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:6:44 Recv:00 15 00 00 00 05 01 0F 00 00 00 01 | |||||
2020-9-15 16:6:56 Send:00 16 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:6:59 Recv:00 16 00 00 00 06 01 0F 00 00 00 01 | |||||
2020-9-15 16:7:34 Send:00 17 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:7:40 Recv:00 17 00 00 00 06 01 0F 00 00 00 01 | |||||
2020-9-15 16:7:59 Send:00 18 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:8:12 Recv:00 18 00 00 00 07 01 0F 00 00 00 01 00 | |||||
2020-9-15 16:8:27 Send:00 19 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 16:17:27 Send:00 1A 00 00 00 09 01 10 00 00 00 01 02 00 00 | |||||
2020-9-15 16:18:6 Recv:00 1A 00 00 00 07 01 0F 00 00 00 01 00 | |||||
2020-9-15 16:18:21 Send:00 1B 00 00 00 09 01 10 00 00 00 01 02 55 55 | |||||
2020-9-15 16:20:10 Send:00 00 00 00 00 09 01 10 00 00 00 01 02 FF 10 | |||||
2020-9-15 16:20:11 Recv:00 00 00 00 00 03 01 90 01 | |||||
2020-9-15 16:20:32 Send:00 01 00 00 00 09 01 0F 27 06 00 0A 02 55 55 | |||||
2020-9-15 16:20:32 Recv:00 01 00 00 00 06 01 0F 27 06 00 0A | |||||
2020-9-15 16:20:49 Send:00 02 00 00 00 09 01 0F 27 06 00 0A 02 00 00 | |||||
2020-9-15 16:20:49 Recv:00 02 00 00 00 06 01 0F 27 06 00 0A | |||||
2020-9-15 16:21:19 Send:00 03 00 00 00 0B 01 0F 26 F2 00 1E 04 00 00 00 00 | |||||
2020-9-15 16:21:19 Recv:00 03 00 00 00 06 01 0F 26 F2 00 1E | |||||
2020-9-15 18:1:59 Send:00 00 00 00 00 06 01 03 00 00 00 01 | |||||
2020-9-15 18:2:8 Recv:00 00 00 00 00 05 01 01 02 CC CC | |||||
2020-9-15 18:2:37 Send:00 01 00 00 00 08 01 0F 00 00 00 01 01 01 | |||||
2020-9-15 18:2:46 Recv:00 01 00 00 00 06 01 0F 08 00 00 01 | |||||
2020-9-15 18:3:6 Send:00 02 00 00 00 09 01 10 00 00 00 01 02 00 55 | |||||
2020-9-15 18:3:15 Recv:00 02 00 00 00 06 01 10 00 00 00 02 |
@@ -2,11 +2,11 @@ | |||||
/********************************************************************************************* | /********************************************************************************************* | ||||
* 功能 : 检测socket版本 | |||||
* 描述 : 检测socket版本是否一致 | |||||
* 功能 : socket版本 | |||||
* 描述 : 启动socket服务 | |||||
* 输入 : 无 | * 输入 : 无 | ||||
* 输出 : true socket版本一致 | |||||
* false socket版本不一致 | |||||
* 输出 : true 启动成功 | |||||
* false 启动失败 | |||||
*********************************************************************************************/ | *********************************************************************************************/ | ||||
bool InitSocket_Version(void) | bool InitSocket_Version(void) | ||||
{ | { | ||||
@@ -87,8 +87,11 @@ void Input_IP(string& IP, unsigned int *Port_number) | |||||
* Port_number 端口号(1-65535) | * Port_number 端口号(1-65535) | ||||
* 输出 : ClientSocket 连接成功的套接字 | * 输出 : ClientSocket 连接成功的套接字 | ||||
*********************************************************************************************/ | *********************************************************************************************/ | ||||
SOCKET Init_client(string IP, unsigned int Port_number) | |||||
SOCKET Init_client() | |||||
{ | { | ||||
string IP; | |||||
unsigned int Port_number; | |||||
Input_IP(IP, &Port_number); | |||||
if (InitSocket_Version() == 0) | if (InitSocket_Version() == 0) | ||||
return INVALID_SOCKET; | return INVALID_SOCKET; | ||||
SOCKET ClientSocket = socket(AF_INET, SOCK_STREAM, 0); | SOCKET ClientSocket = socket(AF_INET, SOCK_STREAM, 0); | ||||
@@ -96,48 +99,19 @@ SOCKET Init_client(string IP, unsigned int Port_number) | |||||
Serversock_in.sin_addr.S_un.S_addr = inet_addr(IP.c_str()); | Serversock_in.sin_addr.S_un.S_addr = inet_addr(IP.c_str()); | ||||
Serversock_in.sin_family = AF_INET; | Serversock_in.sin_family = AF_INET; | ||||
Serversock_in.sin_port = htons(Port_number); | Serversock_in.sin_port = htons(Port_number); | ||||
while (SOCKET_ERROR == connect(ClientSocket, (SOCKADDR*)&Serversock_in, sizeof(SOCKADDR))) | |||||
if(SOCKET_ERROR == connect(ClientSocket, (SOCKADDR*)&Serversock_in, sizeof(SOCKADDR))) | |||||
{ | { | ||||
cout << "尝试连接TCP从站失败" << endl; | cout << "尝试连接TCP从站失败" << endl; | ||||
return INVALID_SOCKET; | |||||
} | } | ||||
cout << "连接TCP从站成功" << endl; | cout << "连接TCP从站成功" << endl; | ||||
TIMEVAL timeout; | TIMEVAL timeout; | ||||
timeout.tv_sec = 200; //ms | |||||
timeout.tv_sec = 60000; //ms | |||||
timeout.tv_usec = 0; //us | timeout.tv_usec = 0; //us | ||||
setsockopt(ClientSocket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval));//设置接收超时时间 | setsockopt(ClientSocket, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(struct timeval));//设置接收超时时间 | ||||
return ClientSocket; | return ClientSocket; | ||||
} | } | ||||
/********************************************************************************************* | |||||
* 功能 : 清除接收缓冲区中的数据和异常连接状态检测 | |||||
* 描述 : 每一次发送请求前清空缓存区数据,检测当前套接字连接状态 | |||||
* 输入 : ClientSocket 客户端套接字 | |||||
* 输出 : true 连接正常 false 连接异常 | |||||
*********************************************************************************************/ | |||||
bool Clear_recv_buf(SOCKET clientSocket) | |||||
{ | |||||
TIMEVAL timeout; | |||||
timeout.tv_sec = 0; | |||||
timeout.tv_usec = 0; | |||||
fd_set reads; | |||||
char tmp[100]; | |||||
memset(tmp, 0, sizeof(tmp)); | |||||
while (1) | |||||
{ | |||||
FD_ZERO(&reads); | |||||
FD_SET(clientSocket, &reads); | |||||
int len = recv(clientSocket, tmp, 50, 0); | |||||
int a = select(0, &reads, 0, 0, &timeout); | |||||
if ( a == 1 && len == 0) | |||||
return false; | |||||
if ( a == 1&& len == (-1)) | |||||
return false; | |||||
if ( a == 0 && len == (-1)) | |||||
return true; | |||||
} | |||||
} | |||||
/********************************************************************************************* | /********************************************************************************************* | ||||
* 功能 : 打印读取从站的线圈状态 | * 功能 : 打印读取从站的线圈状态 | ||||
* 描述 : 对响应报文中的数据进行解析和显示 | * 描述 : 对响应报文中的数据进行解析和显示 | ||||
@@ -170,12 +144,12 @@ void Printf_Coil_date(UINT8 *Response_Message, UINT8 *Request_Message) | |||||
void Printf_Register_date(UINT8 *Response_Message, UINT8 *Request_Message) | void Printf_Register_date(UINT8 *Response_Message, UINT8 *Request_Message) | ||||
{ | { | ||||
printf("从站设备ID %02X 功能码为 %02X\n", Response_Message[6], Response_Message[7]); | printf("从站设备ID %02X 功能码为 %02X\n", Response_Message[6], Response_Message[7]); | ||||
unsigned int temp1 = ((Request_Message[8] << 8) | Request_Message[9]) + 1; | |||||
unsigned int temp1 = ((Request_Message[8] << 8) | Request_Message[9]); | |||||
unsigned int Number = ((Request_Message[10] << 8) | Request_Message[11]); | unsigned int Number = ((Request_Message[10] << 8) | Request_Message[11]); | ||||
printf("寄存器起始地址为%d \n", temp1); | printf("寄存器起始地址为%d \n", temp1); | ||||
for (int i = 0; i < Response_Message[8]; i = i + 2) | for (int i = 0; i < Response_Message[8]; i = i + 2) | ||||
{ | { | ||||
printf("寄存器第%d的值为:%02X %02X \n", temp1++, Response_Message[9 + i], Response_Message[10+i]); | |||||
printf("寄存器%d的值为:%02X %02X \n", temp1++, Response_Message[9 + i], Response_Message[10+i]); | |||||
} | } | ||||
} | } | ||||
@@ -199,6 +173,32 @@ void Printf_Anomaly_date(UINT8 *Response_Message) | |||||
} | } | ||||
} | } | ||||
/********************************************************************************************* | |||||
* 功能 : 检测响应报文长度 | |||||
* 描述 : 对响应报文中存放长度字节进行判断和请求报文对比 | |||||
* 输入 : Response_Message 响应报文 Request_Message 请求报文 Response_Message_len 接收到的数据长度 | |||||
* 输出 : true 长度正常 false 长度异常 | |||||
*********************************************************************************************/ | |||||
bool Check_Response_Message_len(UINT8 *Response_Message, UINT8 *Request_Message, int Response_Message_len) | |||||
{ | |||||
if ((Response_Message_len - 6) != Response_Message[5]) | |||||
return false; | |||||
unsigned int Operations_Number = Request_Message[10] << 8 | Request_Message[11]; | |||||
unsigned int Respone_Len = Count_Respone_Len(Request_Message[7], Operations_Number); | |||||
if (Request_Message[7] == 0x0F || Request_Message[7] == 0x10) | |||||
if (Response_Message_len != 12) | |||||
return false; | |||||
if (Request_Message[7] == 0x01 || Request_Message[7] == 0x03) | |||||
{ | |||||
if (Respone_Len + 9 != Response_Message_len) | |||||
return false; | |||||
if (Respone_Len != Response_Message[8]) | |||||
return false; | |||||
} | |||||
return true; | |||||
} | |||||
/********************************************************************************************* | /********************************************************************************************* | ||||
* 功能 : 判断响应报文是否可以正常解析 | * 功能 : 判断响应报文是否可以正常解析 | ||||
* 描述 : 通过长度和异常码等判定该响应报文是否可以解析 | * 描述 : 通过长度和异常码等判定该响应报文是否可以解析 | ||||
@@ -207,51 +207,103 @@ void Printf_Anomaly_date(UINT8 *Response_Message) | |||||
*********************************************************************************************/ | *********************************************************************************************/ | ||||
bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, int Response_Message_len) | bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, int Response_Message_len) | ||||
{ | { | ||||
if (Response_Message[7] == Request_Message[7] + 0x80 && Response_Message_len == 9)//先处理异常响应 | |||||
if (Response_Message_len < 9) | |||||
return false; | |||||
for (int i = 0; i < 7; i++) | |||||
{ | { | ||||
Printf_Anomaly_date(Response_Message); | |||||
return true; | |||||
if (i == 4 || i == 5) //后续字节长度 | |||||
continue; | |||||
if (Response_Message[i] != Request_Message[i]) //0 1 传输标识,2 3 协议标识,6设备ID | |||||
return false; //一旦不一致,判定为异常报文数据 | |||||
} | } | ||||
else if (Response_Message[6] == Request_Message[6]) //判断是否是正常响应帧 | |||||
if (Response_Message[4] != 0x00) //4 固定0x00 | |||||
return false; | |||||
if (Response_Message[7] == Request_Message[7] + 0x80)//先处理异常响应 | |||||
{ | |||||
if (Response_Message_len == 9) | |||||
{ | |||||
Printf_Anomaly_date(Response_Message); | |||||
return true; | |||||
} | |||||
else | |||||
return false; | |||||
} | |||||
if (Response_Message[7] != Request_Message[7]) //功能码判断 | |||||
return false; | |||||
if (Request_Message[7] == 0x0F || Request_Message[7] == 0x10) //0F 10 地址和操作数量判定 | |||||
{ | { | ||||
if (Response_Message[7] == 0x01 && Response_Message_len - 6 == Response_Message[5]) | |||||
Printf_Coil_date(Response_Message, Request_Message); | |||||
if (Response_Message[7] == 0x03 && Response_Message_len - 6 == Response_Message[5]) | |||||
Printf_Register_date(Response_Message, Request_Message); | |||||
if (Response_Message[7] == 0x0F) | |||||
printf("成功写入从站线圈%d个\n", ((Request_Message[10] << 8) | Request_Message[11])); | |||||
if (Response_Message[7] == 0x10) | |||||
printf("成功写入从站寄存器%d个\n" ,((Request_Message[10] << 8) | Request_Message[11])); | |||||
return true; | |||||
for (int j = 8; j < 12; j++) | |||||
{ | |||||
if (Request_Message[j] != Response_Message[j]) | |||||
return false; | |||||
} | |||||
} | } | ||||
return false; | |||||
if (!Check_Response_Message_len(Response_Message, Request_Message, Response_Message_len)) | |||||
return false; | |||||
if (Response_Message[7] == 0x01) | |||||
Printf_Coil_date(Response_Message, Request_Message); | |||||
else if (Response_Message[7] == 0x03) | |||||
Printf_Register_date(Response_Message, Request_Message); | |||||
else if (Response_Message[7] == 0x0F) | |||||
printf("成功写入从站线圈%d个\n", ((Request_Message[10] << 8) | Request_Message[11])); | |||||
else if (Response_Message[7] == 0x10) | |||||
printf("成功写入从站寄存器%d个\n", ((Request_Message[10] << 8) | Request_Message[11])); | |||||
else | |||||
return false; | |||||
return true; | |||||
} | |||||
void Clear_buf(SOCKET ClientSocket) | |||||
{ | |||||
unsigned long bytesToRecv; | |||||
char temp[500]; | |||||
do | |||||
{ | |||||
ioctlsocket(ClientSocket, FIONREAD, &bytesToRecv); | |||||
if (bytesToRecv != 0)//不等于0时进行清理操作 | |||||
{ | |||||
if (bytesToRecv > 500) | |||||
{ | |||||
recv(ClientSocket, temp, 500, 0); | |||||
} | |||||
else | |||||
recv(ClientSocket, temp, bytesToRecv, 0); | |||||
} | |||||
} while (bytesToRecv != 0); | |||||
} | } | ||||
/********************************************************************************************* | /********************************************************************************************* | ||||
* 功能 : 运行客户端 | * 功能 : 运行客户端 | ||||
* 描述 : 根据终端输入从站IP地址和端口号连接对应的服务器并且生成发送请求等待响应 | * 描述 : 根据终端输入从站IP地址和端口号连接对应的服务器并且生成发送请求等待响应 | ||||
* 输入 : IP 地址 (IPV4) | |||||
* Port_number 端口号(1-65535) | |||||
* 输出 : false 执行出错 true 执行成功 | |||||
* 输入 : 无 | |||||
* 输出 : 无 | |||||
*********************************************************************************************/ | *********************************************************************************************/ | ||||
bool Tcp_client(string IP, unsigned int Port_number) | |||||
int Tcp_client() | |||||
{ | { | ||||
SOCKET ClientSocket = Init_client(IP, Port_number); | |||||
if (INVALID_SOCKET == ClientSocket) | |||||
SOCKET ClientSocket; | |||||
do | |||||
{ | { | ||||
cout << "初始化主站失败" << endl; | |||||
return false; | |||||
} | |||||
UINT8 Request_Message[300]; | |||||
UINT8 Response_Message[300]; | |||||
ClientSocket = Init_client(); | |||||
} while (INVALID_SOCKET == ClientSocket); | |||||
UINT8 Request_Message[600]; | |||||
UINT8 Response_Message[600]; | |||||
TIMEVAL timeout; | |||||
timeout.tv_sec = 0; | |||||
timeout.tv_usec = 0; | |||||
fd_set reads; | |||||
UINT16 Transmission_Indicator = 0x00; | |||||
while (true) | while (true) | ||||
{ | { | ||||
int Function_code = Input_Function_code(); | int Function_code = Input_Function_code(); | ||||
unsigned int Operations_Number = Input_Operations_Number(Function_code); | unsigned int Operations_Number = Input_Operations_Number(Function_code); | ||||
unsigned int Starting_address = Input_Starting_address(); | unsigned int Starting_address = Input_Starting_address(); | ||||
string Write_date = Input_Write_date(Function_code, Operations_Number); | string Write_date = Input_Write_date(Function_code, Operations_Number); | ||||
int Request_Message_len = Crate_TCP_Message(Request_Message, Function_code, Operations_Number, Starting_address, Write_date); | int Request_Message_len = Crate_TCP_Message(Request_Message, Function_code, Operations_Number, Starting_address, Write_date); | ||||
Request_Message[0] = Transmission_Indicator >> 8; | |||||
Request_Message[1] = (UINT8)Transmission_Indicator; | |||||
printf("主站请求 :"); | printf("主站请求 :"); | ||||
for (int i = 0; i < Request_Message_len; i++) | for (int i = 0; i < Request_Message_len; i++) | ||||
{ | { | ||||
@@ -259,24 +311,43 @@ bool Tcp_client(string IP, unsigned int Port_number) | |||||
} | } | ||||
printf("\n"); | printf("\n"); | ||||
Log_Note(Request_Message, 1, Request_Message_len); | Log_Note(Request_Message, 1, Request_Message_len); | ||||
if (Clear_recv_buf(ClientSocket) == false) | |||||
Clear_buf(ClientSocket); //清理缓冲区 | |||||
int test = send(ClientSocket, (char*)Request_Message, Request_Message_len, 0); | |||||
if (Transmission_Indicator == 0xffff) | |||||
{ | { | ||||
printf("连接异常,请检查连接状态。\n"); | |||||
printf("**************************** Press Enter To Close ****************************\n"); | |||||
getchar(); | |||||
break; | |||||
Transmission_Indicator = 0x00; | |||||
} | } | ||||
int test = send(ClientSocket, (char*)Request_Message, Request_Message_len, 0); | |||||
Transmission_Indicator++; | |||||
if (test == (-1)) | if (test == (-1)) | ||||
{ | { | ||||
printf("连接异常,请检查连接状态。\n"); | printf("连接异常,请检查连接状态。\n"); | ||||
printf("**************************** Press Enter To Close ****************************\n"); | |||||
printf("**************************** Press Enter To Contioun ****************************\n"); | |||||
getchar(); | getchar(); | ||||
break; | |||||
system("cls"); | |||||
closesocket(ClientSocket); | |||||
WSACleanup(); | |||||
printf("是否重新连接服务器: 1 重新连接 0 关闭本软件"); | |||||
int a = 0; | |||||
do | |||||
{ | |||||
cin >> a; | |||||
cin.clear(); | |||||
cin.sync(); | |||||
} while (!(a == 0 || a == 1)); | |||||
if (a == 0) | |||||
break; | |||||
system("cls"); | |||||
do | |||||
{ | |||||
ClientSocket = Init_client(); | |||||
} while (INVALID_SOCKET == ClientSocket); | |||||
system("cls"); | |||||
continue; | |||||
} | } | ||||
memset(Response_Message, 0, 300); | |||||
int Response_Message_len = recv(ClientSocket, (char*)Response_Message, 260, 0); | |||||
memset(Response_Message, 0, 600); | |||||
FD_ZERO(&reads); | |||||
FD_SET(ClientSocket, &reads); | |||||
int Response_Message_len = recv(ClientSocket, (char*)Response_Message, 600, 0); | |||||
if (Response_Message_len > 0) | if (Response_Message_len > 0) | ||||
{ | { | ||||
Log_Note(Response_Message, 0, Response_Message_len); | Log_Note(Response_Message, 0, Response_Message_len); | ||||
@@ -289,6 +360,32 @@ bool Tcp_client(string IP, unsigned int Port_number) | |||||
if (!Analysis_Response_Message(Response_Message, Request_Message, Response_Message_len)) | if (!Analysis_Response_Message(Response_Message, Request_Message, Response_Message_len)) | ||||
printf("响应报文异常\n\n"); | printf("响应报文异常\n\n"); | ||||
} | } | ||||
else if (select(0, &reads, 0, 0, &timeout)) | |||||
{ | |||||
printf("连接异常,请检查连接状态。\n"); | |||||
printf("**************************** Press Enter To Contioun ****************************\n"); | |||||
getchar(); | |||||
system("cls"); | |||||
closesocket(ClientSocket); | |||||
WSACleanup(); | |||||
printf("是否重新连接服务器: 1 重新连接 0 关闭本软件\n"); | |||||
int a = 0; | |||||
do | |||||
{ | |||||
cin >> a; | |||||
cin.clear(); | |||||
cin.sync(); | |||||
} while (!(a == 0 || a == 1)); | |||||
if (a == 0) | |||||
break; | |||||
system("cls"); | |||||
do | |||||
{ | |||||
ClientSocket = Init_client(); | |||||
} while (INVALID_SOCKET == ClientSocket); | |||||
system("cls"); | |||||
continue; | |||||
} | |||||
else | else | ||||
cout << "响应超时" << endl; | cout << "响应超时" << endl; | ||||
printf("**************************** Press Enter To Contioun ****************************\n"); | printf("**************************** Press Enter To Contioun ****************************\n"); | ||||
@@ -299,5 +396,5 @@ bool Tcp_client(string IP, unsigned int Port_number) | |||||
closesocket(ClientSocket); | closesocket(ClientSocket); | ||||
//关闭服务 | //关闭服务 | ||||
WSACleanup(); | WSACleanup(); | ||||
return true; | |||||
return 0; | |||||
} | } |
@@ -8,7 +8,7 @@ | |||||
bool InitSocket_Version(void); | bool InitSocket_Version(void); | ||||
bool Check_IP(char* IP); | bool Check_IP(char* IP); | ||||
void Input_IP(string& IP, unsigned int *Port_number); | void Input_IP(string& IP, unsigned int *Port_number); | ||||
bool Tcp_client(string IP, unsigned int Port_number); | |||||
int Tcp_client(); | |||||
bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, int Response_Message_len); | bool Analysis_Response_Message(UINT8 *Response_Message, UINT8 *Request_Message, int Response_Message_len); | ||||
@@ -83,13 +83,13 @@ unsigned int Input_Operations_Number(int Function_code) | |||||
cin >> Operations_Number; | cin >> Operations_Number; | ||||
cin.clear(); | cin.clear(); | ||||
cin.sync(); | cin.sync(); | ||||
if (Function_code == 0x01 && Operations_Number >= 1 && Operations_Number <= 2000) | |||||
if (Function_code == 0x01 && Operations_Number >= 1 && Operations_Number <= 65535) | |||||
flage = false; | flage = false; | ||||
if (Function_code == 0x03 && Operations_Number >= 1 && Operations_Number <= 125) | |||||
if (Function_code == 0x03 && Operations_Number >= 1 && Operations_Number <= 65535) | |||||
flage = false; | flage = false; | ||||
if (Function_code == 0x0F && Operations_Number >= 1 && Operations_Number <= 1968) | |||||
if (Function_code == 0x0F && Operations_Number >= 1 && Operations_Number <= 65535) | |||||
flage = false; | flage = false; | ||||
if (Function_code == 0x10 && Operations_Number >= 1 && Operations_Number <= 123) | |||||
if (Function_code == 0x10 && Operations_Number >= 1 && Operations_Number <= 65535) | |||||
flage = false; | flage = false; | ||||
} while (flage); | } while (flage); | ||||
return Operations_Number; | return Operations_Number; | ||||
@@ -159,6 +159,28 @@ unsigned int Count_Write_date_number(int Function_code, unsigned int Operations_ | |||||
return Write_date_number; | return Write_date_number; | ||||
} | } | ||||
/********************************************************************************************* | |||||
* 功能 : 计算请求报文计算预期响应报文字节数 | |||||
* 描述 : 通过对应的功能码和操作数量计算对应的数据字节数 | |||||
* 输入 : Function_code 选择的功能码类型 Operations_Number对应功能码类型的操作数量 | |||||
* 输出 : Respone_len 预期响应的数据字节数 | |||||
*********************************************************************************************/ | |||||
unsigned int Count_Respone_Len(int Function_code, unsigned int Operations_Number) | |||||
{ | |||||
unsigned int Respone_len = 0; | |||||
if (Function_code == 0x0F|| Function_code == 0x10) | |||||
return Respone_len; | |||||
if (Function_code == 0x01) //读线圈 | |||||
{ | |||||
Respone_len = Operations_Number / 8; | |||||
if (Operations_Number % 8) | |||||
Respone_len++; | |||||
} | |||||
if (Function_code == 0x03) | |||||
Respone_len = Operations_Number * 2; | |||||
return Respone_len; | |||||
} | |||||
/********************************************************************************************* | /********************************************************************************************* | ||||
* 功能 : 输入写入数据 | * 功能 : 输入写入数据 | ||||
* 描述 : 根据写入数量和功能码类型输入相应的数据 | * 描述 : 根据写入数量和功能码类型输入相应的数据 | ||||
@@ -215,6 +237,10 @@ void Crate_MBAP(UINT8 *Message, int Function_code, unsigned int Operations_Numbe | |||||
Message[3] = 0x00; | Message[3] = 0x00; | ||||
Message[4] = 0x00; | Message[4] = 0x00; | ||||
Message[5] = Count_Write_date_number(Function_code, Operations_Number) + 0x06; | Message[5] = Count_Write_date_number(Function_code, Operations_Number) + 0x06; | ||||
if (Function_code == 0x0F || Function_code == 0x10) | |||||
{ | |||||
Message[5] = Message[5] + 1; | |||||
} | |||||
Message[6] = DEVICE_ID; | Message[6] = DEVICE_ID; | ||||
} | } | ||||
@@ -288,7 +314,6 @@ void Log_Note(UINT8 *Message, int flage, int Message_len) | |||||
printf("打开文件失败"); | printf("打开文件失败"); | ||||
return ; | return ; | ||||
} | } | ||||
if (flage == 1) | if (flage == 1) | ||||
{ | { | ||||
@@ -25,6 +25,7 @@ void Crate_MBAP(UINT8 *Message, int Function_code, unsigned int Operations_Numbe | |||||
int HexStringtoByte(UINT8 *Message, string Write_date, int Message_len, int Function_code, unsigned int Operations_Number); | int HexStringtoByte(UINT8 *Message, string Write_date, int Message_len, int Function_code, unsigned int Operations_Number); | ||||
int Crate_TCP_Message(UINT8 *Message, int Function_code, unsigned int Operations_Number, unsigned int Starting_address, string Write_date); | int Crate_TCP_Message(UINT8 *Message, int Function_code, unsigned int Operations_Number, unsigned int Starting_address, string Write_date); | ||||
void Log_Note(UINT8 *Message, int flage, int Message_len); | void Log_Note(UINT8 *Message, int flage, int Message_len); | ||||
unsigned int Count_Respone_Len(int Function_code, unsigned int Operations_Number); | |||||
#endif | #endif |
@@ -2,10 +2,7 @@ | |||||
int main() | int main() | ||||
{ | { | ||||
string IP; | |||||
unsigned int Port; | |||||
Input_IP(IP,&Port); | |||||
Tcp_client(IP,Port); | |||||
Tcp_client(); | |||||
getchar(); | getchar(); | ||||
return 0; | return 0; | ||||
} | } |
@@ -41,13 +41,13 @@ Output = "00 00 00 00 00 06 09 03 00 00 00 7D" | |||||
Input1 = 15 | Input1 = 15 | ||||
Input2 = 1 | Input2 = 1 | ||||
Input3 = "01" | Input3 = "01" | ||||
Output = "00 00 00 00 00 08 09 03 00 00 00 01 01 01" | |||||
Output = "00 00 00 00 00 08 09 0F 00 00 00 01 01 01" | |||||
[Example8] | [Example8] | ||||
Input1 = 15 | Input1 = 15 | ||||
Input2 = 10 | Input2 = 10 | ||||
Input3 = "FF 03" | Input3 = "FF 03" | ||||
Output = "00 00 00 00 00 09 09 03 00 00 00 0A 02 FF 03" | |||||
Output = "00 00 00 00 00 09 09 0F 00 00 00 0A 02 FF 03" | |||||
[Example9] | [Example9] | ||||
Input1 = 15 | Input1 = 15 | ||||
@@ -70,6 +70,6 @@ Output = "00 00 00 00 00 11 09 10 00 00 00 05 0A FF FF FF FF FF FF FF FF FF FF" | |||||
[Example12] | [Example12] | ||||
Input1 = 16 | Input1 = 16 | ||||
Input2 = 123 | Input2 = 123 | ||||
Input3 = "F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" | |||||
Input3 = "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" | |||||
Output = "00 00 00 00 00 FD 09 10 00 00 00 7B F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" | Output = "00 00 00 00 00 FD 09 10 00 00 00 7B F6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" | ||||
@@ -1,5 +1,5 @@ | |||||
[Example] | [Example] | ||||
Number = 28 | |||||
Number = 27 | |||||
[Example1] | [Example1] | ||||
Input1 = "00 00 00 00 00 04 09 01 01 01" | Input1 = "00 00 00 00 00 04 09 01 01 01" | ||||
@@ -115,6 +115,7 @@ Input2 = "00 00 00 00 00 09 09 01 00 00 00 01" | |||||
Input1 = "00 00 00 00 00 03 09 83 01" | Input1 = "00 00 00 00 00 03 09 83 01" | ||||
Input2 = "00 00 00 00 00 09 09 03 00 00 00 01" | Input2 = "00 00 00 00 00 09 09 03 00 00 00 01" | ||||
[Example26] | [Example26] | ||||
Input1 = "00 00 00 00 00 03 09 83 02" | Input1 = "00 00 00 00 00 03 09 83 02" | ||||
Input2 = "00 00 00 00 00 09 09 03 00 00 00 01" | Input2 = "00 00 00 00 00 09 09 03 00 00 00 01" | ||||