選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。

138 行
8.5 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Xunit;
  5. using JT809.Protocol;
  6. using JT809.Protocol.Extensions;
  7. using JT809.Protocol.MessageBody;
  8. using JT809.Protocol.Exceptions;
  9. using JT809.Protocol.SubMessageBody;
  10. namespace JT809.Protocol.Test.JT809SubMessageBody
  11. {
  12. public class JT809_0x1200_0x1203Test
  13. {
  14. [Fact]
  15. public void Test1()
  16. {
  17. JT809_0x1200_0x1203 jT809_0X1200_0X1203 = new JT809_0x1200_0x1203();
  18. jT809_0X1200_0X1203.GNSS = new List<JT809_0x1200_0x1202>();
  19. JT809_0x1200_0x1202 jT809_0X1200_0X1202_1 = new JT809_0x1200_0x1202();
  20. jT809_0X1200_0X1202_1.VehiclePosition.Day = 19;
  21. jT809_0X1200_0X1202_1.VehiclePosition.Month = 7;
  22. jT809_0X1200_0X1202_1.VehiclePosition.Year = 2012;
  23. jT809_0X1200_0X1202_1.VehiclePosition.Hour = 15;
  24. jT809_0X1200_0X1202_1.VehiclePosition.Minute = 15;
  25. jT809_0X1200_0X1202_1.VehiclePosition.Second = 15;
  26. jT809_0X1200_0X1202_1.VehiclePosition.Lon = 133123456;
  27. jT809_0X1200_0X1202_1.VehiclePosition.Lat = 24123456;
  28. jT809_0X1200_0X1202_1.VehiclePosition.Vec1 = 50;
  29. jT809_0X1200_0X1202_1.VehiclePosition.Vec2 = 51;
  30. jT809_0X1200_0X1202_1.VehiclePosition.Vec3 = 150;
  31. jT809_0X1200_0X1202_1.VehiclePosition.Direction = 45;
  32. jT809_0X1200_0X1202_1.VehiclePosition.Altitude = 45;
  33. jT809_0X1200_0X1202_1.VehiclePosition.State = 3;
  34. jT809_0X1200_0X1202_1.VehiclePosition.Alarm = 257;
  35. JT809_0x1200_0x1202 jT809_0X1200_0X1202_2 = new JT809_0x1200_0x1202();
  36. jT809_0X1200_0X1202_2.VehiclePosition.Day = 19;
  37. jT809_0X1200_0X1202_2.VehiclePosition.Month = 7;
  38. jT809_0X1200_0X1202_2.VehiclePosition.Year = 2012;
  39. jT809_0X1200_0X1202_2.VehiclePosition.Hour = 16;
  40. jT809_0X1200_0X1202_2.VehiclePosition.Minute = 16;
  41. jT809_0X1200_0X1202_2.VehiclePosition.Second = 16;
  42. jT809_0X1200_0X1202_2.VehiclePosition.Lon = 133123456;
  43. jT809_0X1200_0X1202_2.VehiclePosition.Lat = 24123456;
  44. jT809_0X1200_0X1202_2.VehiclePosition.Vec1 = 50;
  45. jT809_0X1200_0X1202_2.VehiclePosition.Vec2 = 51;
  46. jT809_0X1200_0X1202_2.VehiclePosition.Vec3 = 150;
  47. jT809_0X1200_0X1202_2.VehiclePosition.Direction = 45;
  48. jT809_0X1200_0X1202_2.VehiclePosition.Altitude = 45;
  49. jT809_0X1200_0X1202_2.VehiclePosition.State = 3;
  50. jT809_0X1200_0X1202_2.VehiclePosition.Alarm = 257;
  51. JT809_0x1200_0x1202 jT809_0X1200_0X1202_3 = new JT809_0x1200_0x1202();
  52. jT809_0X1200_0X1202_3.VehiclePosition.Day = 19;
  53. jT809_0X1200_0X1202_3.VehiclePosition.Month = 7;
  54. jT809_0X1200_0X1202_3.VehiclePosition.Year = 2012;
  55. jT809_0X1200_0X1202_3.VehiclePosition.Hour = 17;
  56. jT809_0X1200_0X1202_3.VehiclePosition.Minute = 17;
  57. jT809_0X1200_0X1202_3.VehiclePosition.Second = 17;
  58. jT809_0X1200_0X1202_3.VehiclePosition.Lon = 133123456;
  59. jT809_0X1200_0X1202_3.VehiclePosition.Lat = 24123456;
  60. jT809_0X1200_0X1202_3.VehiclePosition.Vec1 = 50;
  61. jT809_0X1200_0X1202_3.VehiclePosition.Vec2 = 51;
  62. jT809_0X1200_0X1202_3.VehiclePosition.Vec3 = 150;
  63. jT809_0X1200_0X1202_3.VehiclePosition.Direction = 45;
  64. jT809_0X1200_0X1202_3.VehiclePosition.Altitude = 45;
  65. jT809_0X1200_0X1202_3.VehiclePosition.State = 3;
  66. jT809_0X1200_0X1202_3.VehiclePosition.Alarm = 257;
  67. jT809_0X1200_0X1203.GNSS.Add(jT809_0X1200_0X1202_1);
  68. jT809_0X1200_0X1203.GNSS.Add(jT809_0X1200_0X1202_2);
  69. jT809_0X1200_0X1203.GNSS.Add(jT809_0X1200_0X1202_3);
  70. var hex = JT809Serializer.Serialize(jT809_0X1200_0X1203).ToHexString();
  71. //"03 00 13 07 07 DC 0F 0F 0F 07 EF 4D 80 01 70 18 40 00 32 00 33 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 01 01 00 13 07 07 DC 10 10 10 07 EF 4D 80 01 70 18 40 00 32 00 33 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 01 01 00 13 07 07 DC 11 11 11 07 EF 4D 80 01 70 18 40 00 32 00 33 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 01 01"
  72. Assert.Equal("0300130707DC0F0F0F07EF4D80017018400032003300000096002D002D000000030000010100130707DC10101007EF4D80017018400032003300000096002D002D000000030000010100130707DC11111107EF4D80017018400032003300000096002D002D0000000300000101", hex);
  73. }
  74. [Fact]
  75. public void Test2()
  76. {
  77. var bytes = "03 00 13 07 07 DC 0F 0F 0F 07 EF 4D 80 01 70 18 40 00 32 00 33 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 01 01 00 13 07 07 DC 10 10 10 07 EF 4D 80 01 70 18 40 00 32 00 33 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 01 01 00 13 07 07 DC 11 11 11 07 EF 4D 80 01 70 18 40 00 32 00 33 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 01 01".ToHexBytes();
  78. JT809_0x1200_0x1203 jT809_0X1200_0X1203 = JT809Serializer.Deserialize<JT809_0x1200_0x1203>(bytes);
  79. Assert.Equal(3, jT809_0X1200_0X1203.GNSSCount);
  80. Assert.Equal(19, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Day);
  81. Assert.Equal(7, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Month);
  82. Assert.Equal(2012, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Year);
  83. Assert.Equal(15, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Hour);
  84. Assert.Equal(15, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Minute);
  85. Assert.Equal(15, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Second);
  86. Assert.Equal((uint)133123456, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Lon);
  87. Assert.Equal((uint)24123456, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Lat);
  88. Assert.Equal(50, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Vec1);
  89. Assert.Equal(51, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Vec2);
  90. Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Direction);
  91. Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Altitude);
  92. Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.State);
  93. Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Alarm);
  94. Assert.Equal(19, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Day);
  95. Assert.Equal(7, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Month);
  96. Assert.Equal(2012, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Year);
  97. Assert.Equal(16, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Hour);
  98. Assert.Equal(16, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Minute);
  99. Assert.Equal(16, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Second);
  100. Assert.Equal((uint)133123456, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Lon);
  101. Assert.Equal((uint)24123456, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Lat);
  102. Assert.Equal(50, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Vec1);
  103. Assert.Equal(51, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Vec2);
  104. Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Direction);
  105. Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Altitude);
  106. Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.State);
  107. Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Alarm);
  108. Assert.Equal(19, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Day);
  109. Assert.Equal(7, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Month);
  110. Assert.Equal(2012, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Year);
  111. Assert.Equal(17, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Hour);
  112. Assert.Equal(17, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Minute);
  113. Assert.Equal(17, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Second);
  114. Assert.Equal((uint)133123456, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Lon);
  115. Assert.Equal((uint)24123456, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Lat);
  116. Assert.Equal(50, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Vec1);
  117. Assert.Equal(51, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Vec2);
  118. Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Direction);
  119. Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Altitude);
  120. Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.State);
  121. Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Alarm);
  122. }
  123. }
  124. }