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.

150 lines
7.7 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. using JT809.Protocol.Internal;
  11. using JT809.Protocol.Enums;
  12. namespace JT809.Protocol.Test.JT809SubMessageBody
  13. {
  14. public class JT809_0x1200_0x1201Test
  15. {
  16. private JT809Serializer JT809Serializer = new JT809Serializer();
  17. private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version= JT809Version.JTT2019});
  18. [Fact]
  19. public void Test1()
  20. {
  21. JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201
  22. {
  23. PlateformId= "1111111111",
  24. ProducerId= "1111111111",
  25. TerminalId= "11111AA",
  26. TerminalModelType= "11111111",
  27. TerminalSimCode= "222222222222"
  28. };
  29. var hex = JT809Serializer.Serialize(jT809_0X1200_0X1201).ToHexString();
  30. //"00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32"
  31. Assert.Equal("31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232", hex);
  32. }
  33. [Fact]
  34. public void Test2()
  35. {
  36. var bytes = "31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232".ToHexBytes();
  37. JT809_0x1200_0x1201 jT809_0X1200_0X1201 = JT809Serializer.Deserialize<JT809_0x1200_0x1201>(bytes);
  38. Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId);
  39. Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId);
  40. Assert.Equal("11111AA", jT809_0X1200_0X1201.TerminalId);
  41. Assert.Equal("11111111", jT809_0X1200_0X1201.TerminalModelType);
  42. Assert.Equal("222222222222", jT809_0X1200_0X1201.TerminalSimCode);
  43. }
  44. [Fact]
  45. public void Test3()
  46. {
  47. var data = "5b00000067000000611200000003f30100000000036871bea948454e333137000000000000000000000000000412010000003100000000000000313031310000000000003730313131000000000000000000000000000000313230323939353533353735327d5d".ToHexBytes();
  48. var json = JT809Serializer.Analyze(data);
  49. }
  50. [Fact]
  51. public void Test4()
  52. {
  53. var data = "31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232".ToHexBytes();
  54. var json = JT809Serializer.Analyze<JT809_0x1200_0x1201>(data);
  55. }
  56. [Fact]
  57. public void Test_2019_1()
  58. {
  59. JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201
  60. {
  61. PlateformId = "1111111111",
  62. ProducerId = "1111111111",
  63. TerminalId = "11111AA",
  64. TerminalModelType = "11111111",
  65. TerminalSimCode = "222222222222",
  66. IMIEId="123456789"
  67. };
  68. var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1201).ToHexString();
  69. Assert.Equal("3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200", hex);
  70. }
  71. [Fact]
  72. public void Test_2019_2()
  73. {
  74. var bytes = "3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200".ToHexBytes();
  75. JT809_0x1200_0x1201 jT809_0X1200_0X1201 = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x1201>(bytes);
  76. Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId);
  77. Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId);
  78. Assert.Equal("11111AA", jT809_0X1200_0X1201.TerminalId);
  79. Assert.Equal("11111111", jT809_0X1200_0X1201.TerminalModelType);
  80. Assert.Equal("222222222222", jT809_0X1200_0X1201.TerminalSimCode);
  81. Assert.Equal("123456789", jT809_0X1200_0X1201.IMIEId);
  82. }
  83. [Fact]
  84. public void Test_2019_3()
  85. {
  86. JT809Package jT809Package = new JT809Package();
  87. jT809Package.Header = new JT809Header
  88. {
  89. MsgSN = 1666,
  90. EncryptKey = 9999,
  91. EncryptFlag = JT809Header_Encrypt.None,
  92. Version = new JT809Header_Version(1, 0, 0),
  93. BusinessType = JT809BusinessType.主链路车辆动态信息交换业务.ToUInt16Value(),
  94. MsgGNSSCENTERID = 20190708,
  95. Time = DateTime.Parse("2020-04-26 12:02:00")
  96. };
  97. JT809_0x1200 jT809_0X1200 = new JT809_0x1200();
  98. jT809_0X1200.VehicleNo = "粤A12345";
  99. jT809_0X1200.VehicleColor = JT809VehicleColorType.蓝色;
  100. jT809_0X1200.SubBusinessType = JT809SubBusinessType.上传车辆注册信息.ToUInt16Value();
  101. jT809_0X1200.DataLength = 110;
  102. JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201
  103. {
  104. PlateformId = "1111111111",
  105. ProducerId = "1111111111",
  106. TerminalId = "11111AA",
  107. TerminalModelType = "11111111",
  108. TerminalSimCode = "222222222222",
  109. IMIEId = "123456789"
  110. };
  111. jT809_0X1200.SubBodies = jT809_0X1200_0X1201;
  112. jT809Package.Bodies = jT809_0X1200;
  113. var hex = JT809_2019_Serializer.Serialize(jT809Package).ToHexString();
  114. Assert.Equal("5B000000AC000006821200013415F4010000000000270F000000005E02A507B8D4C1413132333435000000000000000000000000000112010000006E31313131313131313131003131313131313131313100313131313131313100000000000000000000000000000000000000000000313233343536373839000000000000313131313141410000000000000000000000000000000000000000000000323232323232323232323232006D7A5D", hex);
  115. }
  116. [Fact]
  117. public void Test_2019_4()
  118. {
  119. var bytes = "5B000000AC000006821200013415F4010000000000270F000000005E02A507B8D4C1413132333435000000000000000000000000000112010000006E31313131313131313131003131313131313131313100313131313131313100000000000000000000000000000000000000000000313233343536373839000000000000313131313141410000000000000000000000000000000000000000000000323232323232323232323232006D7A5D".ToHexBytes();
  120. var package = JT809_2019_Serializer.Deserialize<JT809Package>(bytes);
  121. JT809_0x1200 jT809_0X9001 = package.Bodies as JT809_0x1200;
  122. Assert.Equal("粤A12345", jT809_0X9001.VehicleNo);
  123. Assert.Equal(JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor);
  124. Assert.Equal(JT809SubBusinessType.上传车辆注册信息, (JT809SubBusinessType)jT809_0X9001.SubBusinessType);
  125. Assert.Equal(110u, jT809_0X9001.DataLength);
  126. JT809_0x1200_0x1201 jT809_0X1200_0X1201 = jT809_0X9001.SubBodies as JT809_0x1200_0x1201;
  127. Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId);
  128. Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId);
  129. Assert.Equal("11111AA", jT809_0X1200_0X1201.TerminalId);
  130. Assert.Equal("11111111", jT809_0X1200_0X1201.TerminalModelType);
  131. Assert.Equal("222222222222", jT809_0X1200_0X1201.TerminalSimCode);
  132. Assert.Equal("123456789", jT809_0X1200_0X1201.IMIEId);
  133. }
  134. }
  135. }