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

115 行
5.2 KiB

  1. using JT808.Protocol.Extensions.JT1078.MessageBody;
  2. using JT808.Protocol.Extensions.JT1078.Enums;
  3. using JT808.Protocol.MessageBody;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Text;
  8. using Xunit;
  9. namespace JT808.Protocol.Extensions.JT1078.Test
  10. {
  11. public class JT808_0x0200Test
  12. {
  13. JT808Serializer JT808Serializer;
  14. public JT808_0x0200Test()
  15. {
  16. IServiceCollection serviceDescriptors1 = new ServiceCollection();
  17. serviceDescriptors1
  18. .AddJT808Configure()
  19. .AddJT1078Configure();
  20. var ServiceProvider1 = serviceDescriptors1.BuildServiceProvider();
  21. var defaultConfig = ServiceProvider1.GetRequiredService<IJT808Config>();
  22. JT808Serializer = defaultConfig.GetSerializer();
  23. }
  24. [Fact]
  25. public void Test_0x14_1()
  26. {
  27. JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
  28. {
  29. AlarmFlag = 1,
  30. Altitude = 40,
  31. GPSTime = DateTime.Parse("2020-01-31 20:20:20"),
  32. Lat = 12222222,
  33. Lng = 132444444,
  34. Speed = 60,
  35. Direction = 0,
  36. StatusFlag = 2,
  37. JT808LocationAttachData = new Dictionary<byte, JT808_0x0200_BodyBase>()
  38. };
  39. jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_JT1078_Constants.JT808_0X0200_0x14, new JT808_0x0200_0x14
  40. {
  41. VideoRelateAlarm = (uint)(VideoRelateAlarmType.视频信号遮挡报警 | VideoRelateAlarmType.其他视频设备故障报警)
  42. });
  43. var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
  44. Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C000020013120202014040000000A", hex);
  45. }
  46. [Fact]
  47. public void Test_0x14_2()
  48. {
  49. byte[] bodys = "000000010000000200BA7F0E07E4F11C0028003C000020013120202014040000000A".ToHexBytes();
  50. JT808_0x0200 jT808UploadLocationRequest = JT808Serializer.Deserialize<JT808_0x0200>(bodys);
  51. Assert.Equal((uint)1, jT808UploadLocationRequest.AlarmFlag);
  52. Assert.Equal(DateTime.Parse("2020-01-31 20:20:20"), jT808UploadLocationRequest.GPSTime);
  53. Assert.Equal(12222222, jT808UploadLocationRequest.Lat);
  54. Assert.Equal(132444444, jT808UploadLocationRequest.Lng);
  55. Assert.Equal(60, jT808UploadLocationRequest.Speed);
  56. Assert.Equal((uint)2, jT808UploadLocationRequest.StatusFlag);
  57. Assert.Equal((uint)(VideoRelateAlarmType.视频信号遮挡报警 | VideoRelateAlarmType.其他视频设备故障报警), ((JT808_0x0200_0x14)jT808UploadLocationRequest.JT808LocationAttachData[JT808_JT1078_Constants.JT808_0X0200_0x14]).VideoRelateAlarm);
  58. }
  59. [Fact]
  60. public void Test_0x14_3()
  61. {
  62. byte[] bodys = "000000010000000200BA7F0E07E4F11C0028003C000020013120202014040000000A".ToHexBytes();
  63. string json = JT808Serializer.Analyze<JT808_0x0200>(bodys);
  64. }
  65. [Fact]
  66. public void Test_0x15_1()
  67. {
  68. JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
  69. {
  70. AlarmFlag = 1,
  71. Altitude = 40,
  72. GPSTime = DateTime.Parse("2020-01-31 20:20:20"),
  73. Lat = 12222222,
  74. Lng = 132444444,
  75. Speed = 60,
  76. Direction = 0,
  77. StatusFlag = 2,
  78. JT808LocationAttachData = new Dictionary<byte, JT808_0x0200_BodyBase>()
  79. };
  80. jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_JT1078_Constants.JT808_0X0200_0x15, new JT808_0x0200_0x15
  81. {
  82. VideoSignalLoseAlarmStatus=3
  83. });
  84. var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
  85. Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C0000200131202020150400000003", hex);
  86. }
  87. [Fact]
  88. public void Test_0x15_2()
  89. {
  90. byte[] bodys = "000000010000000200BA7F0E07E4F11C0028003C0000200131202020150400000003".ToHexBytes();
  91. JT808_0x0200 jT808UploadLocationRequest = JT808Serializer.Deserialize<JT808_0x0200>(bodys);
  92. Assert.Equal((uint)1, jT808UploadLocationRequest.AlarmFlag);
  93. Assert.Equal(DateTime.Parse("2020-01-31 20:20:20"), jT808UploadLocationRequest.GPSTime);
  94. Assert.Equal(12222222, jT808UploadLocationRequest.Lat);
  95. Assert.Equal(132444444, jT808UploadLocationRequest.Lng);
  96. Assert.Equal(60, jT808UploadLocationRequest.Speed);
  97. Assert.Equal((uint)2, jT808UploadLocationRequest.StatusFlag);
  98. Assert.Equal(3u, ((JT808_0x0200_0x15)jT808UploadLocationRequest.JT808LocationAttachData[JT808_JT1078_Constants.JT808_0X0200_0x15]).VideoSignalLoseAlarmStatus);
  99. }
  100. [Fact]
  101. public void Test_0x15_3()
  102. {
  103. byte[] bodys = "000000010000000200BA7F0E07E4F11C0028003C0000200131202020150400000003".ToHexBytes();
  104. string json = JT808Serializer.Analyze<JT808_0x0200>(bodys);
  105. }
  106. }
  107. }