Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

124 rader
7.6 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.SubMessageBody;
  9. using JT809.Protocol.Enums;
  10. using JT809.Protocol.Configs;
  11. namespace JT809.Protocol.Test.JT809Packages
  12. {
  13. public class JT809_0x9400_0x9401PackageTest
  14. {
  15. private JT809Serializer JT809Serializer = new JT809Serializer();
  16. [Fact]
  17. public void Test1()
  18. {
  19. JT809Package jT809Package = new JT809Package();
  20. jT809Package.Header = new JT809Header
  21. {
  22. MsgSN = 1666,
  23. EncryptKey = 9999,
  24. EncryptFlag= JT809Header_Encrypt.None,
  25. Version = new JT809Header_Version(1, 0, 0),
  26. BusinessType = JT809BusinessType.从链路报警信息交互消息,
  27. MsgGNSSCENTERID = 20180920,
  28. };
  29. JT809_0x9400 bodies = new JT809_0x9400
  30. {
  31. VehicleNo="粤A12345",
  32. VehicleColor= JT809VehicleColorType.黄色,
  33. SubBusinessType= JT809SubBusinessType.报警督办请求,
  34. };
  35. JT809_0x9400_0x9401 jT809_0x9400_0x9401 = new JT809_0x9400_0x9401
  36. {
  37. WarnSrc = JT809WarnSrc.车载终端,
  38. WarnType = JT809WarnType.疲劳驾驶报警,
  39. WarnTime = DateTime.Parse("2018-09-27 10:24:00"),
  40. SupervisionID = "123FFAA1",
  41. SupervisionEndTime = DateTime.Parse("2018-09-27 11:24:00"),
  42. SupervisionLevel = 3,
  43. Supervisor = "smallchi",
  44. SupervisorTel = "12345678901",
  45. SupervisorEmail = "123456@qq.com"
  46. };
  47. bodies.SubBodies = jT809_0x9400_0x9401;
  48. jT809Package.Bodies = bodies;
  49. var hex = JT809Serializer.Serialize(jT809Package).ToHexString();
  50. //"5B 00 00 00 92 00 00 06 82 94 00 01 33 EF B8 01 00 00 00 00 00 27 0F D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 02 94 01 00 00 00 5C 01 00 02 00 00 00 00 5A 01 AC 3F 40 12 3F FA A1 00 00 00 00 5A 01 AC 4D 50 03 73 6D 61 6C 6C 63 68 69 00 00 00 00 00 00 00 00 31 32 33 34 35 36 37 38 39 30 31 00 00 00 00 00 00 00 00 00 31 32 33 34 35 36 40 71 71 2E 63 6F 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BA D8 5D"
  51. //5B000000900000068294000133EFB8010000000000270FD4C1413132333435000000000000000000000000000294010000005C010002000000005A01AC3F40123FFAA1000000005A01AC4D5003736D616C6C636869000000000000000031323334353637383930310000000000000000003132333435364071712E636F6D00000000000000000000000000000000000000C69C5D
  52. //5B000000920000068294000133EFB8010000000000270FD4C1413132333435000000000000000000000000000294010000005C010002000000005A01AC3F40123FFAA1000000005A01AC4D5003736D616C6C636869000000000000000031323334353637383930310000000000000000003132333435364071712E636F6D00000000000000000000000000000000000000BAD85D
  53. Assert.Equal("5B000000920000068294000133EFB8010000000000270FD4C1413132333435000000000000000000000000000294010000005C010002000000005A01AC3F40123FFAA1000000005A01AC4D5003736D616C6C636869000000000000000031323334353637383930310000000000000000003132333435364071712E636F6D00000000000000000000000000000000000000BAD85D", hex);
  54. }
  55. [Fact]
  56. public void Test2()
  57. {
  58. var bytes = "5B 00 00 00 92 00 00 06 82 94 00 01 33 EF B8 01 00 00 00 00 00 27 0F D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 02 94 01 00 00 00 5C 01 00 02 00 00 00 00 5A 01 AC 3F 40 12 3F FA A1 00 00 00 00 5A 01 AC 4D 50 03 73 6D 61 6C 6C 63 68 69 00 00 00 00 00 00 00 00 31 32 33 34 35 36 37 38 39 30 31 00 00 00 00 00 00 00 00 00 31 32 33 34 35 36 40 71 71 2E 63 6F 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BA D8 5D".ToHexBytes();
  59. JT809Package jT809Package = JT809Serializer.Deserialize(bytes);
  60. Assert.Equal((uint)146, jT809Package.Header.MsgLength);
  61. Assert.Equal((uint)1666, jT809Package.Header.MsgSN);
  62. Assert.Equal((uint)9999, jT809Package.Header.EncryptKey);
  63. Assert.Equal(JT809Header_Encrypt.None, jT809Package.Header.EncryptFlag);
  64. Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID);
  65. Assert.Equal(JT809BusinessType.从链路报警信息交互消息, jT809Package.Header.BusinessType);
  66. Assert.Equal(new JT809Header_Version().ToString(), jT809Package.Header.Version.ToString());
  67. JT809_0x9400 jT809_0X400 = (JT809_0x9400)jT809Package.Bodies;
  68. Assert.Equal("粤A12345", jT809_0X400.VehicleNo);
  69. Assert.Equal(JT809VehicleColorType.黄色, jT809_0X400.VehicleColor);
  70. Assert.Equal(JT809SubBusinessType.报警督办请求, jT809_0X400.SubBusinessType);
  71. Assert.Equal((uint)92, jT809_0X400.DataLength);
  72. JT809_0x9400_0x9401 jT809_0x9400_0x9401 = (JT809_0x9400_0x9401)jT809_0X400.SubBodies;
  73. Assert.Equal(JT809WarnSrc.车载终端, jT809_0x9400_0x9401.WarnSrc);
  74. Assert.Equal(JT809WarnType.疲劳驾驶报警, jT809_0x9400_0x9401.WarnType);
  75. Assert.Equal(DateTime.Parse("2018-09-27 10:24:00"), jT809_0x9400_0x9401.WarnTime);
  76. Assert.Equal("123FFAA1", jT809_0x9400_0x9401.SupervisionID);
  77. Assert.Equal(DateTime.Parse("2018-09-27 11:24:00"), jT809_0x9400_0x9401.SupervisionEndTime);
  78. Assert.Equal(3, jT809_0x9400_0x9401.SupervisionLevel);
  79. Assert.Equal("smallchi", jT809_0x9400_0x9401.Supervisor);
  80. Assert.Equal("12345678901", jT809_0x9400_0x9401.SupervisorTel);
  81. Assert.Equal("123456@qq.com", jT809_0x9400_0x9401.SupervisorEmail);
  82. }
  83. [Fact]
  84. public void Test3()
  85. {
  86. JT809Serializer JT809SerializerTest3 = new JT809Serializer();
  87. JT809Package jT809Package = JT809BusinessType.从链路报警信息交互消息.Create(new JT809_0x9400
  88. {
  89. VehicleNo = "粤A12345",
  90. VehicleColor = JT809VehicleColorType.黄色,
  91. SubBusinessType = JT809SubBusinessType.报警督办请求,
  92. SubBodies = new JT809_0x9400_0x9401
  93. {
  94. WarnSrc = JT809WarnSrc.车载终端,
  95. WarnType = JT809WarnType.疲劳驾驶报警,
  96. WarnTime = DateTime.Parse("2018-09-27 10:24:00"),
  97. SupervisionID = "123FFAA1",
  98. SupervisionEndTime = DateTime.Parse("2018-09-27 11:24:00"),
  99. SupervisionLevel = 3,
  100. Supervisor = "smallchi",
  101. SupervisorTel = "12345678901",
  102. SupervisorEmail = "123456@qq.com"
  103. }
  104. });
  105. jT809Package.Header.MsgSN = 1666;
  106. jT809Package.Header.EncryptKey = 9999;
  107. jT809Package.Header.MsgGNSSCENTERID = 20180920;
  108. var hex = JT809SerializerTest3.Serialize(jT809Package).ToHexString();
  109. //"5B000000920000068294000133EFB8010000000000270FD4C1413132333435000000000000000000000000000294010000005C010002000000005A01AC3F40123FFAA1000000005A01AC4D5003736D616C6C636869000000000000000031323334353637383930310000000000000000003132333435364071712E636F6D00000000000000000000000000000000000000BAD85D"
  110. Assert.Equal("5B000000920000068294000133EFB8010000000000270FD4C1413132333435000000000000000000000000000294010000005C010002000000005A01AC3F40123FFAA1000000005A01AC4D5003736D616C6C636869000000000000000031323334353637383930310000000000000000003132333435364071712E636F6D00000000000000000000000000000000000000BAD85D", hex);
  111. }
  112. }
  113. }