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.

145 line
7.1 KiB

  1. using JTNE.Protocol.MessageBody;
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using Xunit;
  6. using JTNE.Protocol.Extensions;
  7. namespace JTNE.Protocol.Test.MessageBody
  8. {
  9. public class JTNE_0x03Test
  10. {
  11. [Fact]
  12. public void Test1()
  13. {
  14. JTNE_0x03 jTNE_0X03 = new JTNE_0x03();
  15. JTNE_0x02 jTNE_0X02 = new JTNE_0x02();
  16. jTNE_0X02.Values = new Dictionary<byte, JTNE_0x02_Body>();
  17. JTNE_0x02_0x01 jTNE_0X02_0X01 = new JTNE_0x02_0x01();
  18. jTNE_0X02_0X01.Accelerator = 0x02;
  19. jTNE_0X02_0X01.Brakes = 0x03;
  20. jTNE_0X02_0X01.CarStatus = 0x04;
  21. jTNE_0X02_0X01.ChargeStatus = 0x05;
  22. jTNE_0X02_0X01.DCStatus = 0x06;
  23. jTNE_0X02_0X01.OperationMode = 0x07;
  24. jTNE_0X02_0X01.Resistance = 123;
  25. jTNE_0X02_0X01.SOC = 0x03;
  26. jTNE_0X02_0X01.Speed = 58;
  27. jTNE_0X02_0X01.Stall = 0x02;
  28. jTNE_0X02_0X01.TotalDis = 6666;
  29. jTNE_0X02_0X01.TotalTemp = 99;
  30. jTNE_0X02_0X01.TotalVoltage = 100;
  31. jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x01, jTNE_0X02_0X01);
  32. JTNE_0x02_0x02 jTNE_0X02_0X02 = new JTNE_0x02_0x02();
  33. jTNE_0X02_0X02.Electricals = new List<Metadata.Electrical>();
  34. Metadata.Electrical electrical1 = new Metadata.Electrical();
  35. electrical1.ElControlTemp = 0x01;
  36. electrical1.ElCurrent = 100;
  37. electrical1.ElNo = 0x01;
  38. electrical1.ElSpeed = 65;
  39. electrical1.ElStatus = 0x02;
  40. electrical1.ElTemp = 0x03;
  41. electrical1.ElTorque = 55;
  42. electrical1.ElVoltage = 236;
  43. Metadata.Electrical electrical2 = new Metadata.Electrical();
  44. electrical2.ElControlTemp = 0x02;
  45. electrical2.ElCurrent = 101;
  46. electrical2.ElNo = 0x02;
  47. electrical2.ElSpeed = 66;
  48. electrical2.ElStatus = 0x03;
  49. electrical2.ElTemp = 0x05;
  50. electrical2.ElTorque = 566;
  51. electrical2.ElVoltage = 2136;
  52. jTNE_0X02_0X02.Electricals.Add(electrical1);
  53. jTNE_0X02_0X02.Electricals.Add(electrical2);
  54. jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x02, jTNE_0X02_0X02);
  55. JTNE_0x02_0x03 jTNE_0X02_0X03 = new JTNE_0x02_0x03();
  56. jTNE_0X02_0X03.DCStatus = 0x02;
  57. jTNE_0X02_0X03.FuelBatteryCurrent = 111;
  58. jTNE_0X02_0X03.FuelBatteryVoltage = 2222;
  59. jTNE_0X02_0X03.FuelConsumptionRate = 3222;
  60. jTNE_0X02_0X03.HydrogenSystemMaxConcentrations = 6666;
  61. jTNE_0X02_0X03.HydrogenSystemMaxConcentrationsNo = 0x56;
  62. jTNE_0X02_0X03.HydrogenSystemMaxPressure = 3336;
  63. jTNE_0X02_0X03.HydrogenSystemMaxPressureNo = 0x65;
  64. jTNE_0X02_0X03.HydrogenSystemMaxTemp = 3355;
  65. jTNE_0X02_0X03.HydrogenSystemMaxTempNo = 0x22;
  66. jTNE_0X02_0X03.Temperatures = new byte[]
  67. {
  68. 0x01,0x02,0x03
  69. };
  70. jTNE_0X02.Values.Add(JTNE_0x02_Body.JTNE_0x02_0x03, jTNE_0X02_0X03);
  71. jTNE_0X03.Supplement = jTNE_0X02;
  72. var hex = JTNESerializer.Serialize(jTNE_0X03).ToHexString();
  73. //01 04 05 07 00 3A 00 00 1A 0A 00 64 00 63 03 06 02 00 7B 02 03 -21
  74. //02 02 01 02 01 00 41 00 37 03 00 EC 00 64 02 03 02 00 42 02 36 05 08 58 00 65 -26
  75. //03 08 AE 00 6F 0C 96 00 03 01 02 03 0D 1B 22 1A 0A 56 0D 08 65 02
  76. Assert.Equal("01040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502", hex);
  77. }
  78. [Fact]
  79. public void Test2()
  80. {
  81. var data = "01040507003A00001A0A00640063030602007B02030202010201004100370300EC00640203020042023605085800650308AE006F0C9600030102030D1B221A0A560D086502".ToHexBytes();
  82. JTNE_0x03 jTNE_0X03 = JTNESerializer.Deserialize<JTNE_0x03>(data);
  83. JTNE_0x02 jTNE_0X02 = jTNE_0X03.Supplement;
  84. JTNE_0x02_0x01 jTNE_0X02_0X01 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x01] as JTNE_0x02_0x01;
  85. Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x01, jTNE_0X02_0X01.TypeCode);
  86. Assert.Equal(0x02, jTNE_0X02_0X01.Accelerator);
  87. Assert.Equal(0x03, jTNE_0X02_0X01.Brakes);
  88. Assert.Equal(0x04, jTNE_0X02_0X01.CarStatus);
  89. Assert.Equal(0x05, jTNE_0X02_0X01.ChargeStatus);
  90. Assert.Equal(0x06, jTNE_0X02_0X01.DCStatus);
  91. Assert.Equal(0x07, jTNE_0X02_0X01.OperationMode);
  92. Assert.Equal(123, jTNE_0X02_0X01.Resistance);
  93. Assert.Equal(0x03, jTNE_0X02_0X01.SOC);
  94. Assert.Equal(58, jTNE_0X02_0X01.Speed);
  95. Assert.Equal(0x02, jTNE_0X02_0X01.Stall);
  96. Assert.Equal((uint)6666, jTNE_0X02_0X01.TotalDis);
  97. Assert.Equal(99, jTNE_0X02_0X01.TotalTemp);
  98. Assert.Equal(100, jTNE_0X02_0X01.TotalVoltage);
  99. JTNE_0x02_0x02 jTNE_0X02_0X02 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x02] as JTNE_0x02_0x02;
  100. Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x02, jTNE_0X02_0X02.TypeCode);
  101. Assert.Equal(2, jTNE_0X02_0X02.ElectricalCount);
  102. Metadata.Electrical electrical1 = jTNE_0X02_0X02.Electricals[0];
  103. Assert.Equal(0x01, electrical1.ElControlTemp);
  104. Assert.Equal(100, electrical1.ElCurrent);
  105. Assert.Equal(0x01, electrical1.ElNo);
  106. Assert.Equal(65, electrical1.ElSpeed);
  107. Assert.Equal(0x02, electrical1.ElStatus);
  108. Assert.Equal(0x03, electrical1.ElTemp);
  109. Assert.Equal(55, electrical1.ElTorque);
  110. Assert.Equal(236, electrical1.ElVoltage);
  111. Metadata.Electrical electrical2 = jTNE_0X02_0X02.Electricals[1];
  112. Assert.Equal(0x02, electrical2.ElControlTemp);
  113. Assert.Equal(101, electrical2.ElCurrent);
  114. Assert.Equal(0x02, electrical2.ElNo);
  115. Assert.Equal(66, electrical2.ElSpeed);
  116. Assert.Equal(0x03, electrical2.ElStatus);
  117. Assert.Equal(0x05, electrical2.ElTemp);
  118. Assert.Equal(566, electrical2.ElTorque);
  119. Assert.Equal(2136, electrical2.ElVoltage);
  120. JTNE_0x02_0x03 jTNE_0X02_0X03 = jTNE_0X02.Values[JTNE_0x02_Body.JTNE_0x02_0x03] as JTNE_0x02_0x03;
  121. Assert.Equal(JTNE_0x02_Body.JTNE_0x02_0x03, jTNE_0X02_0X03.TypeCode);
  122. Assert.Equal(0x02, jTNE_0X02_0X03.DCStatus);
  123. Assert.Equal(111, jTNE_0X02_0X03.FuelBatteryCurrent);
  124. Assert.Equal(2222, jTNE_0X02_0X03.FuelBatteryVoltage);
  125. Assert.Equal(3222, jTNE_0X02_0X03.FuelConsumptionRate);
  126. Assert.Equal(6666, jTNE_0X02_0X03.HydrogenSystemMaxConcentrations);
  127. Assert.Equal(0x56, jTNE_0X02_0X03.HydrogenSystemMaxConcentrationsNo);
  128. Assert.Equal(3336, jTNE_0X02_0X03.HydrogenSystemMaxPressure);
  129. Assert.Equal(0x65, jTNE_0X02_0X03.HydrogenSystemMaxPressureNo);
  130. Assert.Equal(3355, jTNE_0X02_0X03.HydrogenSystemMaxTemp);
  131. Assert.Equal(0x22, jTNE_0X02_0X03.HydrogenSystemMaxTempNo);
  132. Assert.Equal(new byte[] { 0x01, 0x02, 0x03 }, jTNE_0X02_0X03.Temperatures);
  133. }
  134. }
  135. }