You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

218 lines
6.6 KiB

  1. #include "master_salve_test.h"
  2. void Test_Master_Create_Request_Msg(void)
  3. {
  4. char buf[LEN];
  5. char buf1[LEN];
  6. CString name = "Example";
  7. char s[10] = "";
  8. int Output, Input1, Input2, Input3, Input4;
  9. bool test_Value = true;
  10. int number = GetPrivateProfileInt(name, "Number", 0, TESTPATH1);
  11. for (int i = 1; i < number + 1; i++)
  12. {
  13. memset(buf, 0, sizeof(buf));
  14. memset(buf1, 0, sizeof(buf1));
  15. memset(s, 0, sizeof(s));
  16. _itoa_s(i, s, 10);
  17. CString name1 = name + s;
  18. Input1 = GetPrivateProfileInt(name1, "Input1", 0, TESTPATH1);
  19. Input2 = GetPrivateProfileInt(name1, "Input2", 0, TESTPATH1);
  20. Input3 = GetPrivateProfileInt(name1, "Input3", 0, TESTPATH1);
  21. Input4 = GetPrivateProfileString(name1, "Input4", "", buf, LEN, TESTPATH1);
  22. Output = GetPrivateProfileString(name1, "Output", "", buf1, LEN, TESTPATH1);
  23. UINT8 test_Message[300];
  24. UINT8 Output_Message[300];
  25. string Write_date = buf;
  26. string Act_Message = buf1;
  27. const char *b = Act_Message.c_str();
  28. unsigned int Act_len = 0;
  29. int temp = 0x00;
  30. for (unsigned int i = 0; i + 3 < Act_Message.length(); i = i + 3)
  31. {
  32. sscanf_s(b + i, "%02X", &temp);
  33. Output_Message[Act_len] = (UINT8)temp;
  34. Act_len++;
  35. }
  36. sscanf_s(b + Act_Message.length() - 2, "%02X",&temp);
  37. Output_Message[Act_len] = (UINT8)temp;
  38. //int Create_TCP_Message(UINT8 *Message, int function_code, unsigned int operations_Number, unsigned int starting_address, string write_date);
  39. int len = Create_TCP_Message(test_Message, Input1, Input2, Input3, Write_date);
  40. for (int j = 0; j < len; j++)
  41. {
  42. if (test_Message[j] != Output_Message[j])
  43. {
  44. test_Value = false;
  45. break;
  46. }
  47. }
  48. Assert::AreEqual(test_Value,true);
  49. }
  50. }
  51. void Test_Master_Analysis_Response_Msg(void)
  52. {
  53. char buf[LEN];
  54. char buf1[LEN];
  55. CString name = "Example";
  56. char s[10] = "";
  57. int Input1, Input2, Output;
  58. int number = GetPrivateProfileInt(name, "Number", 0, TESTPATH2);
  59. for (int i = 1; i < number + 1; i++)
  60. {
  61. memset(buf, 0, sizeof(buf));
  62. memset(buf1, 0, sizeof(buf1));
  63. memset(s, 0, sizeof(s));
  64. _itoa_s(i, s, 10);
  65. CString name1 = name + s;
  66. Input1 = GetPrivateProfileString(name1, "Input1", "", buf, LEN, TESTPATH2);
  67. Input2 = GetPrivateProfileString(name1, "Input2", "", buf1, LEN, TESTPATH2);
  68. Output = GetPrivateProfileInt(name1, "Output", 0, TESTPATH2);
  69. //buf ÇëÇó buf1 ÏìÓ¦
  70. UINT8 Request_Message[300];
  71. string Act_Message = buf;
  72. const char *a = Act_Message.c_str();
  73. unsigned int Act_len = 0;
  74. for (unsigned int i = 0; i + 3 < Act_Message.length(); i = i + 3)
  75. {
  76. sscanf_s(a + i, "%02X", (int *)(Request_Message + Act_len));
  77. Act_len++;
  78. }
  79. sscanf_s(a + Act_Message.length() - 2, "%02X", (int *)(Request_Message + Act_len));
  80. UINT8 Response_Message[300];
  81. string Act_Message1 = buf1;
  82. const char *b = Act_Message1.c_str();
  83. unsigned int Act_len1 = 0;
  84. for (unsigned int i = 0; i + 3 < Act_Message1.length(); i = i + 3)
  85. {
  86. sscanf_s(b + i, "%02X", (int *)(Response_Message + Act_len1));
  87. Act_len1++;
  88. }
  89. sscanf_s(b + Act_Message1.length() - 2, "%02X", (int *)(Response_Message + Act_len1));
  90. int test_Value = Analysis_Response_Message(Response_Message, Request_Message, Act_len1 + 1);
  91. Assert::AreEqual(test_Value,Output);
  92. }
  93. }
  94. void Test_Salve_Analysis_Request_Msg(void)
  95. {
  96. char buf[LEN];
  97. char buf1[LEN];
  98. CString name = "Example";
  99. char s[10] = "";
  100. int Input1, Output1, Output2;
  101. int number = GetPrivateProfileInt(name, "Number", 0, TESTPATH3);
  102. for (int i = 1; i < number + 1; i++)
  103. {
  104. memset(buf, 0, sizeof(buf));
  105. memset(buf1, 0, sizeof(buf1));
  106. memset(s, 0, sizeof(s));
  107. _itoa_s(i, s, 10);
  108. CString name1 = name + s;
  109. Input1 = GetPrivateProfileString(name1, "Input1", "", buf, LEN, TESTPATH3);
  110. Output1 = GetPrivateProfileString(name1, "Output1", "", buf1, LEN, TESTPATH3);
  111. Output2 = GetPrivateProfileInt(name1, "Output2", 0, TESTPATH3);
  112. //buf ÇëÇó buf1 ÏìÓ¦
  113. UINT8 Request_Message[300];
  114. string Act_Message = buf;
  115. const char *a = Act_Message.c_str();
  116. unsigned int Act_len = 0;
  117. for (unsigned int i = 0; i + 3 < Act_Message.length(); i = i + 3)
  118. {
  119. sscanf_s(a + i, "%02X", (int *)(Request_Message + Act_len));
  120. Act_len++;
  121. }
  122. sscanf_s(a + Act_Message.length() - 2, "%02X", (int *)(Request_Message + Act_len));
  123. UINT8 Response_Message[300];
  124. string Act_Message1 = buf1;
  125. const char *b = Act_Message1.c_str();
  126. unsigned int Act_len1 = 0;
  127. for (unsigned int i = 0; i + 3 < Act_Message1.length(); i = i + 3)
  128. {
  129. sscanf_s(b + i, "%02X", (int *)(Response_Message + Act_len1));
  130. Act_len1++;
  131. }
  132. sscanf_s(b + Act_Message1.length() - 2, "%02X", (int *)(Response_Message + Act_len1));
  133. int test_Value = Analysis_Response_Msg(Request_Message, Response_Message, Act_len + 1);
  134. Assert::AreEqual(test_Value, Output2);
  135. }
  136. }
  137. void Test_Salve_Create_Response_Msg(void)
  138. {
  139. char buf[LEN];
  140. char buf1[LEN];
  141. CString name = "Example";
  142. char s[10] = "";
  143. int Input1, Output1, Output2;
  144. bool test_Value = true;
  145. int number = GetPrivateProfileInt(name, "Number", 0, TESTPATH3);
  146. Init_Coil_Register();
  147. for (int i = 1; i < number + 1; i++)
  148. {
  149. memset(buf, 0, sizeof(buf));
  150. memset(buf1, 0, sizeof(buf1));
  151. memset(s, 0, sizeof(s));
  152. _itoa_s(i, s, 10);
  153. CString name1 = name + s;
  154. Input1 = GetPrivateProfileString(name1, "Input1", "", buf, LEN, TESTPATH3);
  155. Output1 = GetPrivateProfileString(name1, "Output1", "", buf1, LEN, TESTPATH3);
  156. Output2 = GetPrivateProfileInt(name1, "Output2", 0, TESTPATH3);
  157. //buf ÇëÇó buf1 ÏìÓ¦
  158. UINT8 Request_Message[600];
  159. memset(Request_Message,0,600);
  160. string Act_Message = buf;
  161. const char *a = Act_Message.c_str();
  162. unsigned int Act_len = 0;
  163. int temp = 0;
  164. for (unsigned int i = 0; i + 3 < Act_Message.length(); i = i + 3)
  165. {
  166. sscanf_s(a + i, "%02X", &temp);
  167. Request_Message[Act_len] = temp;
  168. Act_len++;
  169. }
  170. sscanf_s(a + Act_Message.length() - 2, "%02X", &temp);
  171. Request_Message[Act_len] = temp;
  172. UINT8 Response_Message[600];
  173. memset(Response_Message, 0, 600);
  174. string Act_Message1 = buf1;
  175. const char *b = Act_Message1.c_str();
  176. unsigned int Act_len1 = 0;
  177. int temp1 = 0;
  178. for (unsigned int i = 0; i + 3 < Act_Message1.length(); i = i + 3)
  179. {
  180. sscanf_s(b + i, "%02X", &temp1);
  181. Response_Message[Act_len1] = temp1;
  182. Act_len1++;
  183. }
  184. sscanf_s(b + Act_Message1.length() - 2, "%02X", &temp1);
  185. Response_Message[Act_len1] = temp1;
  186. UINT8 Response_Message1[600];
  187. memset(Response_Message1,0,600);
  188. int flage = Analysis_Response_Msg(Request_Message, Response_Message1, Act_len + 1);
  189. Create_Response_Message(Request_Message, Response_Message1, flage);
  190. for (unsigned int j = 0; j < Act_len1+1; j++)
  191. {
  192. if (Response_Message[j] != Response_Message1[j])
  193. {
  194. test_Value = false;
  195. break;
  196. }
  197. }
  198. Assert::AreEqual(test_Value, true);
  199. }
  200. }