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.

91 lines
3.6 KiB

  1. using JT808.Protocol.Enums;
  2. using JT808.Protocol.Extensions;
  3. using JT808.Protocol.MessageBody;
  4. using System;
  5. using System.Collections.Generic;
  6. using Xunit;
  7. using JT808.Protocol.Metadata;
  8. namespace JT808.Protocol.Test.MessageBody
  9. {
  10. public class JT808_0x8602Test
  11. {
  12. JT808Serializer JT808Serializer = new JT808Serializer();
  13. [Fact]
  14. public void Test1()
  15. {
  16. JT808_0x8602 jT808_0X8602 = new JT808_0x8602
  17. {
  18. SettingAreaProperty = JT808SettingProperty.追加区域.ToByteValue(),
  19. AreaItems = new List<JT808RectangleAreaProperty>()
  20. };
  21. jT808_0X8602.AreaItems.Add(new JT808RectangleAreaProperty
  22. {
  23. AreaId = 1522,
  24. AreaProperty = 222,
  25. LowRightPointLat= 123456789,
  26. LowRightPointLng= 123456788,
  27. UpLeftPointLat= 123456787,
  28. UpLeftPointLng= 123456786,
  29. StartTime = DateTime.Parse("2018-11-20 00:00:12"),
  30. EndTime = DateTime.Parse("2018-11-21 00:00:12"),
  31. HighestSpeed = 60,
  32. OverspeedDuration = 200
  33. });
  34. jT808_0X8602.AreaItems.Add(new JT808RectangleAreaProperty
  35. {
  36. AreaId = 1523,
  37. AreaProperty = 10,
  38. LowRightPointLat = 123456700,
  39. LowRightPointLng = 123456701,
  40. UpLeftPointLat = 123456702,
  41. UpLeftPointLng = 123456703,
  42. StartTime = DateTime.Parse("2018-11-20 12:12:12"),
  43. EndTime = DateTime.Parse("2018-11-21 11:11:11"),
  44. HighestSpeed = 60,
  45. OverspeedDuration = 200
  46. });
  47. var hex = JT808Serializer.Serialize(jT808_0X8602).ToHexString();
  48. Assert.Equal("0102000005F200DE075BCD13075BCD12075BCD15075BCD14003CC8000005F3000A075BCCBE075BCCBF075BCCBC075BCCBD003CC8", hex);
  49. }
  50. [Fact]
  51. public void Test2()
  52. {
  53. byte[] bytes = "0102000005F200DE075BCD13075BCD12075BCD15075BCD14003CC8000005F3000A075BCCBE075BCCBF075BCCBC075BCCBD003CC8".ToHexBytes();
  54. JT808_0x8602 jT808_0X8602 = JT808Serializer.Deserialize<JT808_0x8602>(bytes);
  55. Assert.Equal(JT808SettingProperty.追加区域.ToByteValue(), jT808_0X8602.SettingAreaProperty);
  56. Assert.Equal(2, jT808_0X8602.AreaCount);
  57. var item0 = jT808_0X8602.AreaItems[0];
  58. Assert.Equal((uint)1522, item0.AreaId);
  59. Assert.Equal((ushort)222, item0.AreaProperty);
  60. Assert.Equal((uint)123456789, item0.LowRightPointLat);
  61. Assert.Equal((uint)123456788, item0.LowRightPointLng);
  62. Assert.Equal((uint)123456787, item0.UpLeftPointLat);
  63. Assert.Equal((uint)123456786, item0.UpLeftPointLng);
  64. Assert.Null(item0.StartTime);
  65. Assert.Null(item0.EndTime);
  66. Assert.Equal((ushort)60, item0.HighestSpeed);
  67. Assert.Equal((byte)200, item0.OverspeedDuration);
  68. var item1 = jT808_0X8602.AreaItems[1];
  69. Assert.Equal((uint)1523, item1.AreaId);
  70. Assert.Equal(10, item1.AreaProperty);
  71. Assert.Equal((uint)123456700, item1.LowRightPointLat);
  72. Assert.Equal((uint)123456701, item1.LowRightPointLng);
  73. Assert.Equal((uint)123456702, item1.UpLeftPointLat);
  74. Assert.Equal((uint)123456703, item1.UpLeftPointLng);
  75. Assert.Null(item1.StartTime);
  76. Assert.Null(item1.EndTime);
  77. Assert.Equal((ushort)60, item1.HighestSpeed);
  78. Assert.Equal((byte)200, item1.OverspeedDuration);
  79. }
  80. }
  81. }