Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

92 wiersze
4.3 KiB

  1. using JT808.Protocol.Extensions.JT1078.MessageBody;
  2. using JT808.Protocol.Interfaces;
  3. using JT808.Protocol.MessageBody;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using System;
  6. using System.Collections.Generic;
  7. using System.Reflection;
  8. using Xunit;
  9. namespace JT808.Protocol.Extensions.JT1078.Test
  10. {
  11. public class JT808LocationAttach
  12. {
  13. JT808Serializer JT808Serializer;
  14. public JT808LocationAttach()
  15. {
  16. IServiceCollection serviceDescriptors1 = new ServiceCollection();
  17. serviceDescriptors1.AddJT808Configure(new DefaultGlobalConfig())
  18. .AddJT1078Configure();
  19. var ServiceProvider1 = serviceDescriptors1.BuildServiceProvider();
  20. var defaultConfig = ServiceProvider1.GetRequiredService<DefaultGlobalConfig>();
  21. JT808Serializer = new JT808Serializer(defaultConfig);
  22. }
  23. [Fact]
  24. public void Test1()
  25. {
  26. JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
  27. {
  28. AlarmFlag = 1,
  29. Altitude = 40,
  30. GPSTime = DateTime.Parse("2018-07-15 10:10:10"),
  31. Lat = 12222222,
  32. Lng = 132444444,
  33. Speed = 60,
  34. Direction = 0,
  35. StatusFlag = 2,
  36. JT808LocationAttachData = new Dictionary<byte, JT808_0x0200_BodyBase>()
  37. };
  38. jT808UploadLocationRequest.JT808LocationAttachData.Add(0x14, new JT808_0x0200_0x14
  39. {
  40. VideoRelateAlarm = 100
  41. });
  42. jT808UploadLocationRequest.JT808LocationAttachData.Add(0x15, new JT808_0x0200_0x15
  43. {
  44. VideoSignalLoseAlarmStatus = 100
  45. });
  46. jT808UploadLocationRequest.JT808LocationAttachData.Add(0x16, new JT808_0x0200_0x16
  47. {
  48. VideoSignalOcclusionAlarmStatus = 100
  49. });
  50. jT808UploadLocationRequest.JT808LocationAttachData.Add(0x17, new JT808_0x0200_0x17
  51. {
  52. StorageFaultAlarmStatus = 100
  53. });
  54. jT808UploadLocationRequest.JT808LocationAttachData.Add(0x18, new JT808_0x0200_0x18
  55. {
  56. AbnormalDrivingBehaviorAlarmType = 100,
  57. FatigueLevel = 88
  58. });
  59. var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
  60. Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C0000180715101010140400000064150400000064160400000064170200641803006458", hex);
  61. }
  62. [Fact]
  63. public void Test2()
  64. {
  65. byte[] bodys = "000000010000000200BA7F0E07E4F11C0028003C0000180715101010140400000064150400000064160400000064170200641803006458".ToHexBytes();
  66. JT808_0x0200 jT808UploadLocationRequest = JT808Serializer.Deserialize<JT808_0x0200>(bodys);
  67. Assert.Equal(1u, jT808UploadLocationRequest.AlarmFlag);
  68. Assert.Equal(DateTime.Parse("2018-07-15 10:10:10"), jT808UploadLocationRequest.GPSTime);
  69. Assert.Equal(12222222, jT808UploadLocationRequest.Lat);
  70. Assert.Equal(132444444, jT808UploadLocationRequest.Lng);
  71. Assert.Equal(60, jT808UploadLocationRequest.Speed);
  72. Assert.Equal(2u, jT808UploadLocationRequest.StatusFlag);
  73. Assert.Equal(100u, ((JT808_0x0200_0x14)jT808UploadLocationRequest.JT808LocationAttachData[0x14]).VideoRelateAlarm);
  74. Assert.Equal(100u, ((JT808_0x0200_0x15)jT808UploadLocationRequest.JT808LocationAttachData[0x15]).VideoSignalLoseAlarmStatus);
  75. Assert.Equal(100u, ((JT808_0x0200_0x16)jT808UploadLocationRequest.JT808LocationAttachData[0x16]).VideoSignalOcclusionAlarmStatus);
  76. Assert.Equal(100u, ((JT808_0x0200_0x17)jT808UploadLocationRequest.JT808LocationAttachData[0x17]).StorageFaultAlarmStatus);
  77. Assert.Equal(100u, ((JT808_0x0200_0x18)jT808UploadLocationRequest.JT808LocationAttachData[0x18]).AbnormalDrivingBehaviorAlarmType);
  78. Assert.Equal(88, ((JT808_0x0200_0x18)jT808UploadLocationRequest.JT808LocationAttachData[0x18]).FatigueLevel);
  79. }
  80. [Fact]
  81. public void Test3()
  82. {
  83. byte[] bodys = "000000010000000200BA7F0E07E4F11C0028003C0000180715101010140400000064150400000064160400000064170200641803006458".ToHexBytes();
  84. string json = JT808Serializer.Analyze<JT808_0x0200>(bodys);
  85. }
  86. }
  87. }