您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

116 行
5.3 KiB

  1. using Xunit;
  2. using JT808.Protocol.MessageBody;
  3. using JT808.Protocol.Extensions;
  4. using JT808.Protocol.Enums;
  5. namespace JT808.Protocol.Test.MessageBody
  6. {
  7. public class JT808_0x0100Test
  8. {
  9. JT808Serializer JT808Serializer = new JT808Serializer();
  10. [Fact]
  11. public void Test1()
  12. {
  13. JT808Package jT808_0X0100 = new JT808Package
  14. {
  15. Header = new JT808Header
  16. {
  17. MsgId = Enums.JT808MsgId.终端注册.ToUInt16Value(),
  18. ManualMsgNum = 10,
  19. TerminalPhoneNo = "123456789",
  20. },
  21. Bodies = new JT808_0x0100
  22. {
  23. AreaID = 40,
  24. CityOrCountyId = 50,
  25. MakerId = "1234",
  26. PlateColor = 1,
  27. PlateNo = "粤A12345",
  28. TerminalId = "CHI123",
  29. TerminalModel = "smallchi123"
  30. }
  31. };
  32. var hex = JT808Serializer.Serialize(jT808_0X0100).ToHexString();
  33. Assert.Equal("7E0100002D000123456789000A002800323132333430736D616C6C6368693132333030303030303030304348493132333001D4C1413132333435BA7E", hex);
  34. }
  35. [Fact]
  36. public void Test1_1()
  37. {
  38. byte[] bytes = "7E 01 00 00 2D 00 01 23 45 67 89 00 0A 00 28 00 32 31 32 33 34 30 73 6D 61 6C 6C 63 68 69 31 32 33 30 30 30 30 30 30 30 30 30 43 48 49 31 32 33 30 01 D4 C1 41 31 32 33 34 35 BA 7E".ToHexBytes();
  39. JT808Package jT808_0X0100 = JT808Serializer.Deserialize<JT808Package>(bytes);
  40. Assert.Equal(Enums.JT808MsgId.终端注册.ToUInt16Value(), jT808_0X0100.Header.MsgId);
  41. Assert.Equal(10, jT808_0X0100.Header.MsgNum);
  42. Assert.Equal("123456789", jT808_0X0100.Header.TerminalPhoneNo);
  43. JT808_0x0100 JT808Bodies = (JT808_0x0100)jT808_0X0100.Bodies;
  44. Assert.Equal(40, JT808Bodies.AreaID);
  45. Assert.Equal(50, JT808Bodies.CityOrCountyId);
  46. Assert.Equal("12340", JT808Bodies.MakerId);
  47. Assert.Equal(1, JT808Bodies.PlateColor);
  48. Assert.Equal("粤A12345", JT808Bodies.PlateNo);
  49. Assert.Equal("CHI1230", JT808Bodies.TerminalId);
  50. Assert.Equal("smallchi123000000000", JT808Bodies.TerminalModel);
  51. }
  52. [Fact]
  53. public void Test2019_1()
  54. {
  55. JT808Package jT808_0X0100 = new JT808Package
  56. {
  57. Header = new JT808Header
  58. {
  59. MsgId = Enums.JT808MsgId.终端注册.ToUInt16Value(),
  60. ManualMsgNum = 10,
  61. TerminalPhoneNo = "123456789",
  62. ProtocolVersion=1,
  63. },
  64. Bodies = new JT808_0x0100
  65. {
  66. AreaID = 40,
  67. CityOrCountyId = 50,
  68. MakerId = "1234",
  69. PlateColor = 1,
  70. PlateNo = "粤A12345",
  71. TerminalId = "CHI123",
  72. TerminalModel = "smallchi123"
  73. }
  74. };
  75. JT808HeaderMessageBodyProperty jT808HeaderMessageBodyProperty = new JT808HeaderMessageBodyProperty(true);
  76. jT808_0X0100.Header.MessageBodyProperty = jT808HeaderMessageBodyProperty;
  77. var hex = JT808Serializer.Serialize(jT808_0X0100).ToHexString();
  78. Assert.Equal("7E010040540100000000000123456789000A00280032303030303030303132333430303030303030303030303030303030303030736D616C6C63686931323330303030303030303030303030303030303030303030303043484931323301D4C1413132333435B27E", hex);
  79. }
  80. [Fact]
  81. public void Test2019_2()
  82. {
  83. byte[] bytes = "7E010040540100000000000123456789000A00280032303030303030303132333430303030303030303030303030303030303030736D616C6C63686931323330303030303030303030303030303030303030303030303043484931323301D4C1413132333435B27E".ToHexBytes();
  84. JT808Package jT808_0X0100 = JT808Serializer.Deserialize<JT808Package>(bytes);
  85. Assert.Equal(JT808MsgId.终端注册.ToUInt16Value(), jT808_0X0100.Header.MsgId);
  86. Assert.Equal(1, jT808_0X0100.Header.ProtocolVersion);
  87. Assert.Equal(JT808Version.JTT2019, jT808_0X0100.Version);
  88. Assert.True(jT808_0X0100.Header.MessageBodyProperty.VersionFlag);
  89. Assert.Equal(10, jT808_0X0100.Header.MsgNum);
  90. Assert.Equal("123456789", jT808_0X0100.Header.TerminalPhoneNo);
  91. JT808_0x0100 JT808Bodies = (JT808_0x0100)jT808_0X0100.Bodies;
  92. Assert.Equal(40, JT808Bodies.AreaID);
  93. Assert.Equal(50, JT808Bodies.CityOrCountyId);
  94. Assert.Equal("1234".PadLeft(11,'0'), JT808Bodies.MakerId);
  95. Assert.Equal(1, JT808Bodies.PlateColor);
  96. Assert.Equal("粤A12345", JT808Bodies.PlateNo);
  97. Assert.Equal("CHI123".PadLeft(30, '0'), JT808Bodies.TerminalId);
  98. Assert.Equal("smallchi123".PadLeft(30, '0'), JT808Bodies.TerminalModel);
  99. }
  100. [Fact]
  101. public void Test2019_3()
  102. {
  103. byte[] bytes = "7E010040540100000000000123456789000A00280032303030303030303132333430303030303030303030303030303030303030736D616C6C63686931323330303030303030303030303030303030303030303030303043484931323301D4C1413132333435B27E".ToHexBytes();
  104. string json = JT808Serializer.Analyze<JT808Package>(bytes);
  105. }
  106. }
  107. }