diff --git a/Modbus_communication/Modbus_communication.sln b/Modbus_communication/Modbus_communication.sln index 7584f91..a253d87 100644 --- a/Modbus_communication/Modbus_communication.sln +++ b/Modbus_communication/Modbus_communication.sln @@ -13,6 +13,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RTU_Salve_test", "RTU_Salve EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Master_Salve_DLL", "Master_Salve_DLL\Master_Salve_DLL.vcxproj", "{CB8E0444-CD69-430B-8ACF-8083D140A65F}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UnitTest_DLL", "UnitTest_DLL\UnitTest_DLL.vcxproj", "{83299DA7-142F-4A47-B239-4B5C31E5FD86}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 @@ -39,6 +41,10 @@ Global {CB8E0444-CD69-430B-8ACF-8083D140A65F}.Debug|Win32.Build.0 = Debug|Win32 {CB8E0444-CD69-430B-8ACF-8083D140A65F}.Release|Win32.ActiveCfg = Release|Win32 {CB8E0444-CD69-430B-8ACF-8083D140A65F}.Release|Win32.Build.0 = Release|Win32 + {83299DA7-142F-4A47-B239-4B5C31E5FD86}.Debug|Win32.ActiveCfg = Debug|Win32 + {83299DA7-142F-4A47-B239-4B5C31E5FD86}.Debug|Win32.Build.0 = Debug|Win32 + {83299DA7-142F-4A47-B239-4B5C31E5FD86}.Release|Win32.ActiveCfg = Release|Win32 + {83299DA7-142F-4A47-B239-4B5C31E5FD86}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Modbus_communication/UnitTest_DLL/1.ini b/Modbus_communication/UnitTest_DLL/1.ini new file mode 100644 index 0000000..903d74e --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/1.ini @@ -0,0 +1,140 @@ +[Example] +Number = 19 + +;0x01 +[Example1] +Input1 = 1 +Input2 = 1 +Input3 = 0 +Input4 = "" +Output = "00 00 00 00 00 06 01 01 00 00 00 01" + +[Example2] +Input1 = 1 +Input2 = 155 +Input3 = 1 +Input4 = "" +Output = "00 01 00 00 00 06 01 01 00 01 00 9B" + +[Example3] +Input1 = 1 +Input2 = 1568 +Input3 = 100 +Input4 = "" +Output = "00 02 00 00 00 06 01 01 00 64 06 20" + +[Example4] +Input1 = 1 +Input2 = 2000 +Input3 = 65535 +Input4 = "" +Output = "00 03 00 00 00 06 01 01 FF FF 07 D0" + +[Example5] +Input1 = 1 +Input2 = 65535 +Input3 = 300 +Input4 = "" +Output = "00 04 00 00 00 06 01 01 01 2C FF FF" + +[Example6] +Input1 = 1 +Input2 = 65535 +Input3 = 65535 +Input4 = "" +Output = "00 05 00 00 00 06 01 01 FF FF FF FF" + +;0x03 +[Example7] +Input1 = 3 +Input2 = 1 +Input3 = 0 +Input4 = "" +Output = "00 06 00 00 00 06 01 03 00 00 00 01" + +[Example8] +Input1 = 3 +Input2 = 100 +Input3 = 1 +Input4 = "" +Output = "00 07 00 00 00 06 01 03 00 01 00 64" + +[Example9] +Input1 = 3 +Input2 = 1122 +Input3 = 100 +Input4 = "" +Output = "00 08 00 00 00 06 01 03 00 64 04 62" + +[Example10] +Input1 = 3 +Input2 = 125 +Input3 = 65535 +Input4 = "" +Output = "00 09 00 00 00 06 01 03 FF FF 00 7D" + +[Example11] +Input1 = 3 +Input2 = 65535 +Input3 = 300 +Input4 = "" +Output = "00 0A 00 00 00 06 01 03 01 2C FF FF" + +[Example12] +Input1 = 3 +Input2 = 65535 +Input3 = 65535 +Input4 = "" +Output = "00 0B 00 00 00 06 01 03 FF FF FF FF" + +;0x0F +[Example13] +Input1 = 15 +Input2 = 1 +Input3 = 0 +Input4 = "01" +Output = "00 0C 00 00 00 08 01 0F 00 00 00 01 01 01" + +[Example14] +Input1 = 15 +Input2 = 100 +Input3 = 1 +Input4 = "01 01 01 01 01 01 01 01 01 01 01 01 01" +Output = "00 0D 00 00 00 14 01 0F 00 01 00 64 0D 01 01 01 01 01 01 01 01 01 01 01 01 01" + +[Example15] +Input1 = 15 +Input2 = 1968 +Input3 = 100 +Input4 = "FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 0E 00 00 00 FD 01 0F 00 64 07 B0 F6 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" + +[Example16] +Input1 = 15 +Input2 = 10 +Input3 = 65535 +Input4 = "55 03" +Output = "00 0F 00 00 00 09 01 0F FF FF 00 0A 02 55 03" + +;0x0F +[Example17] +Input1 = 16 +Input2 = 1 +Input3 = 0 +Input4 = "01 01" +Output = "00 10 00 00 00 09 01 10 00 00 00 01 02 01 01" + +[Example18] +Input1 = 16 +Input2 = 4 +Input3 = 1 +Input4 = "01 01 01 01 01 01 01 01" +Output = "00 11 00 00 00 0F 01 10 00 01 00 04 08 01 01 01 01 01 01 01 01" + +[Example19] +Input1 = 16 +Input2 = 123 +Input3 = 65535 +Input4 = "00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 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 12 00 00 00 FD 01 10 FF FF 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" + diff --git a/Modbus_communication/UnitTest_DLL/2.ini b/Modbus_communication/UnitTest_DLL/2.ini new file mode 100644 index 0000000..31aa92a --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/2.ini @@ -0,0 +1,127 @@ +[Example] +Number = 27 + +;0x01正常读取响应解析样例 +[Example1] +Input1 = "00 00 00 00 00 06 01 01 00 00 00 01" +Input2 = "00 00 00 00 00 04 01 01 01 00" + +[Example2] +Input1 = "00 01 00 00 00 06 01 01 00 00 00 64" +Input2 = "00 01 00 00 00 10 01 01 0D 00 00 00 00 00 00 00 00 00 00 00 00 00" + +[Example3] +Input1 = "00 03 00 00 00 06 01 01 00 00 07 D0" +Input2 = "00 03 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 00" + +;0x03正常读取响应解析样例 +[Example4] +Input1 = "00 06 00 00 00 06 01 03 00 00 00 01" +Input2 = "00 06 00 00 00 05 01 03 02 00 00" + +[Example5] +Input1 = "00 00 00 00 00 06 01 03 00 00 00 02" +Input2 = "00 00 00 00 00 07 01 03 04 00 00 00 00" + +[Example6] +Input1 = "00 07 00 00 00 06 01 03 00 0A 00 0A" +Input2 = "00 07 00 00 00 17 01 03 14 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" + +[Example7] +Input1 = "00 08 00 00 00 06 01 03 00 00 00 7D" +Input2 = "00 08 00 00 00 FD 01 03 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" + +;0x0F正常写入响应解析样例 +[Example8] +Input1 = "00 0A 00 00 00 08 01 0F 00 00 00 01 01 01" +Input2 = "00 0A 00 00 00 06 01 0F 00 00 00 01" + +[Example9] +Input1 = "00 0B 00 00 00 14 01 0F 00 00 00 64 0D 00 00 00 00 00 00 00 00 00 00 00 00 00" +Input2 = "00 0B 00 00 00 06 01 0F 00 00 00 64" + +[Example10] +Input1 = "00 0C 00 00 00 FD 01 0F 00 05 07 B0 F6 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +Input2 = "00 0C 00 00 00 06 01 0F 00 05 07 B0" + +;0x10正常写入响应解析样例 +[Example11] +Input1 = "00 0E 00 00 00 09 01 10 00 00 00 01 02 11 11" +Input2 = "00 0E 00 00 00 06 01 10 00 00 00 01" + +[Example12] +Input1 = "00 0F 00 00 00 11 01 10 00 0A 00 05 0A 00 11 22 33 44 55 66 77 88 99" +Input2 = "00 0F 00 00 00 06 01 10 00 0A 00 05" + +[Example13] +Input1 = "00 10 00 00 00 FD 01 10 00 64 00 7B F6 FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00" +Input2 = "00 10 00 00 00 06 01 10 00 64 00 7B" + +;异常响应样例 +[Example14] +Input1 = "00 0E 00 00 00 08 01 0F 00 00 00 01 01 01" +Input2 = "00 0F 00 00 00 06 01 0F 00 00 00 01" + +[Example15] +Input1 = "00 0E 00 00 00 08 01 0F 00 00 00 01 01 01" +Input2 = "00 0E 01 00 00 06 01 0F 00 00 00 01" + +[Example16] +Input1 = "00 0E 00 00 00 08 01 0F 00 00 00 01 01 01" +Input2 = "00 0E 00 1E 00 06 01 0F 00 00 00 01" + +[Example17] +Input1 = "00 0E 00 00 00 08 01 0F 00 00 00 01 01 01" +Input2 = "00 0E 00 00 11 06 01 0F 00 00 00 01" + +[Example18] +Input1 = "00 0E 00 00 00 06 01 01 00 00 00 01" +Input2 = "00 0E 00 00 00 03 01 01 01 00" + +[Example19] +Input1 = "00 0E 00 00 00 06 01 01 00 00 00 01" +Input2 = "00 0E 00 00 00 04 02 01 01 00" + +[Example20] +Input1 = "00 0E 00 00 00 06 01 01 00 00 00 01" +Input2 = "00 0E 00 00 00 04 01 03 01 00" + +[Example21] +Input1 = "00 0E 00 00 00 06 01 10 00 00 00 02 04 11 11 11 11" +Input2 = "00 0E 00 00 00 06 01 10 50 10 00 02" + +[Example22] +Input1 = "00 0E 00 00 00 0B 01 10 00 00 00 02 04 11 11 11 11" +Input2 = "00 0E 00 00 00 06 01 10 00 00 01 02" + +[Example23] +Input1 = "00 0E 00 00 00 06 01 03 00 00 00 02" +Input2 = "00 0E 00 00 00 07 01 03 02 11 11 11 11" + +;异常码响应样例 +[Example24] +Input1 = "00 0E 00 00 00 06 01 03 00 00 00 02" +Input2 = "00 0E 00 00 00 03 01 83 01" + +[Example25] +Input1 = "00 0E 00 00 00 06 01 01 00 00 00 02" +Input2 = "00 0E 00 00 00 03 01 81 02" + +[Example26] +Input1 = "00 0E 00 00 00 08 01 0F 00 00 00 02 01 00" +Input2 = "00 0E 00 00 00 03 01 8F 03" + +[Example27] +Input1 = "00 0E 00 00 00 09 01 10 00 00 00 01 02 00 00" +Input2 = "00 0E 00 00 00 03 01 90 04" + + + + + + + + + + + diff --git a/Modbus_communication/UnitTest_DLL/3.ini b/Modbus_communication/UnitTest_DLL/3.ini new file mode 100644 index 0000000..7edfc20 --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/3.ini @@ -0,0 +1,195 @@ +[Example] +Number = 41 + +;0x01功能码正常读取响应 +[Example1] +Input1 = "09 01 00 00 00 01 FC 82" +Output = "09 01 01 01 92 28" + +[Example2] +Input1 = "09 01 00 00 00 0A BD 45" +Output = "09 01 02 FF 03 59 CC" + +[Example3] +Input1 = "09 01 00 00 00 C8 3C D4" +Output = "09 01 19 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF D6 40" + +[Example4] +Input1 = "09 01 00 00 07 D0 3E EE" +Output = "09 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 8D BF" + +;0x01功能码下03异常码响应 +[Example5] +Input1 = "09 01 00 00 07 D1 FF 2E" +Output = "09 81 03 81 93" + +[Example6] +Input1 = "09 01 00 00 00 00 3D 42" +Output = "09 81 03 81 93" + +[Example7] +Input1 = "09 01 00 00 00 01 00 82 41" +Output = "09 81 03 81 93" + +;0x01功能码下无响应 +[Example8] +Input1 = "09 01 00 00 00 01 11 11" +Output = "" + +[Example9] +Input1 = "08 01 00 00 00 01 FD 53" +Output = "" + +;0x01功能码下02异常码 +[Example10] +Input1 = "09 01 27 06 00 14 D7 F8" +Output = "09 81 02 40 53" + + +;0x03功能码正常读取响应样例 +[Example11] +Input1 = "09 03 00 00 00 01 85 42" +Output = "09 03 02 FF FF 58 35" + +[Example12] +Input1 = "09 03 00 00 00 64 45 69" +Output = "09 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 ED 8C" + +[Example13] +Input1 = "09 03 00 00 00 7B 04 A1" +Output = "09 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 34 54" + +[Example14] +Input1 = "09 03 00 00 00 7D 84 A3" +Output = "09 03 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 70 F8" + +;0x03功能码下03异常码响应 +[Example15] +Input1 = "09 03 00 00 00 00 44 82" +Output = "09 83 03 80 F3" + +[Example16] +Input1 = "09 03 00 00 00 7E C4 A2" +Output = "09 83 03 80 F3" + +[Example17] +Input1 = "09 03 00 00 00 01 00 83 A3" +Output = "09 83 03 80 F3" + +;0x03功能码下无响应 +[Example18] +Input1 = "09 03 00 00 00 01 11 11" +Output = "" + +[Example19] +Input1 = "08 03 00 00 00 01 84 93" +Output = "" + +;0x03功能码下02异常码 +[Example20] +Input1 = "09 03 27 06 00 14 AE 38" +Output = "09 83 02 41 33" + + + + + + +;0x0F正常写入样例 +[Example21] +Input1 = "09 0F 00 00 00 01 01 01 EE F1" +Output = "09 0F 00 00 00 01 95 43" + +[Example22] +Input1 = "09 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 B8 78" +Output = "09 0F 00 00 07 B0 57 07" + +;0x0F下03异常码样例 +[Example23] +Input1 = "09 0F 00 00 00 00 54 83" +Output = "09 8F 03 85 F3" + +[Example24] +Input1 = "09 0F 00 00 00 01 01 01 00 71 4C" +Output = "09 8F 03 85 F3" + +[Example25] +Input1 = "09 0F 00 00 07 B1 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 00 20 DB" +Output = "09 8F 03 85 F3" + +;0x0F下无响应 +[Example26] +Input1 = "09 0F 00 00 00 01 01 01 11 F1" +Output = "" + +[Example27] +Input1 = "08 0F 00 00 00 01 01 01 2F 3D" +Output = "" + +;0x0F下02异常码 +[Example28] +Input1 = "09 0F 27 06 00 14 03 02 FF FF 54 11" +Output = "09 8F 02 44 33" + + + +;0x10下正常写入响应样例 +[Example29] +Input1 = "09 10 00 00 00 01 02 00 00 C1 90" +Output = "09 10 00 00 00 01 00 81" + +[Example30] +Input1 = "09 10 00 00 00 02 04 00 00 00 00 D9 CF" +Output = "09 10 00 00 00 02 40 80" + +[Example31] +Input1 = "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 CE 42" +Output = "09 10 00 00 00 7B 81 62" + +;0x10下03异常码 +[Example32] +Input1 = "09 10 00 00 00 00 C1 41" +Output = "09 90 03 8D C3" + +[Example33] +Input1 = "09 10 00 00 00 01 02 00 00 00 51 90" +Output = "09 90 03 8D C3" + +;0x10下无响应 +[Example34] +Input1 = "09 10 00 00 00 01 02 01 01 11 11" +Output = "" + +[Example35] +Input1 = "08 10 00 00 00 01 02 01 01 0C 50" +Output = "" + +;0x10下02异常码 +[Example36] +Input1 = "09 10 27 0F 00 02 04 00 00 00 00 26 7E" +Output = "09 90 02 4C 03" + +[Example37] +Input1 = "09 10 27 06 00 14 28 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D9 BB" +Output = "09 90 02 4C 03" + +;其他特殊样例 +;设备ID+功能码+CRC +[Example38] +Input1 = "09 01 C6 20" +Output = "" +;只有设备ID+CRC +[Example39] +Input1 = "09 7F 46" +Output = "" +;只有设备ID +[Example40] +Input1 = "09" +Output = "" +;01异常码 +[Example41] +Input1 = "09 02 00 00 00 01 B8 82" +Output = "09 82 01 00 A2" + + + diff --git a/Modbus_communication/UnitTest_DLL/TCP_Test.cpp b/Modbus_communication/UnitTest_DLL/TCP_Test.cpp new file mode 100644 index 0000000..9197dc8 --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/TCP_Test.cpp @@ -0,0 +1,9 @@ +#include "TCP_Test_Code.h" + +int main() +{ + Generate_request_message_test(); + Analysis_response_message_test(); + getchar(); + return 0; +} \ No newline at end of file diff --git a/Modbus_communication/UnitTest_DLL/UnitTest_DLL.vcxproj b/Modbus_communication/UnitTest_DLL/UnitTest_DLL.vcxproj new file mode 100644 index 0000000..96babc8 --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/UnitTest_DLL.vcxproj @@ -0,0 +1,99 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + + {83299DA7-142F-4A47-B239-4B5C31E5FD86} + Win32Proj + UnitTest_DLL + + + + DynamicLibrary + true + v120 + Unicode + false + + + DynamicLibrary + false + v120 + true + Unicode + false + + + + + + + + + + + + + true + + + true + + + + NotUsing + Level3 + Disabled + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;%(PreprocessorDefinitions) + true + + + Windows + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + Level3 + Use + MaxSpeed + true + true + $(VCInstallDir)UnitTest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;%(PreprocessorDefinitions) + true + + + Windows + true + true + true + $(VCInstallDir)UnitTest\lib;%(AdditionalLibraryDirectories) + + + + + + + + + {cb8e0444-cd69-430b-8acf-8083d140a65f} + + + + + + + + + \ No newline at end of file diff --git a/Modbus_communication/UnitTest_DLL/UnitTest_DLL.vcxproj.filters b/Modbus_communication/UnitTest_DLL/UnitTest_DLL.vcxproj.filters new file mode 100644 index 0000000..068aa99 --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/UnitTest_DLL.vcxproj.filters @@ -0,0 +1,30 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + 源文件 + + + + + 头文件 + + + \ No newline at end of file diff --git a/Modbus_communication/UnitTest_DLL/master_salve_test.cpp b/Modbus_communication/UnitTest_DLL/master_salve_test.cpp new file mode 100644 index 0000000..8b95c66 --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/master_salve_test.cpp @@ -0,0 +1,4 @@ +#include "master_salve_test.h" + + + diff --git a/Modbus_communication/UnitTest_DLL/master_salve_test.h b/Modbus_communication/UnitTest_DLL/master_salve_test.h new file mode 100644 index 0000000..f6f54b6 --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/master_salve_test.h @@ -0,0 +1,13 @@ +#ifndef __MASTER_SALVE_TEST_H +#define __MASTER_SALVE_TEST_H + +#include "CppUnitTest.h" +#include "../Master_Salve_DLL/Modbus.h" +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +void Test_Master_Create_Req_Msg(void) +{ + +} + +#endif \ No newline at end of file diff --git a/Modbus_communication/UnitTest_DLL/unittest1.cpp b/Modbus_communication/UnitTest_DLL/unittest1.cpp new file mode 100644 index 0000000..956c276 --- /dev/null +++ b/Modbus_communication/UnitTest_DLL/unittest1.cpp @@ -0,0 +1,17 @@ +#include "CppUnitTest.h" + +using namespace Microsoft::VisualStudio::CppUnitTestFramework; + +namespace UnitTest_DLL +{ + TEST_CLASS(UnitTest1) + { + public: + + TEST_METHOD(TestMethod1) + { + // TODO: ڴԴ + } + + }; +} \ No newline at end of file