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.

94 line
4.8 KiB

  1. using JT809.Protocol.Extensions.JT1078.Enums;
  2. using JT809.Protocol.Extensions.JT1078.MessageBody;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using System;
  5. using System.Linq;
  6. using System.Collections.Generic;
  7. using Xunit;
  8. namespace JT809.Protocol.Extensions.JT1078.Test
  9. {
  10. public class JT809_JT1078_0x9800Test
  11. {
  12. JT809Serializer JT809Serializer;
  13. public JT809_JT1078_0x9800Test()
  14. {
  15. IServiceCollection serviceDescriptors1 = new ServiceCollection();
  16. serviceDescriptors1
  17. .AddJT809Configure()
  18. .AddJT1078Configure();
  19. var ServiceProvider1 = serviceDescriptors1.BuildServiceProvider();
  20. var defaultConfig = ServiceProvider1.GetRequiredService<IJT809Config>();
  21. JT809Serializer = defaultConfig.GetSerializer();
  22. }
  23. [Fact]
  24. public void Test1()
  25. {
  26. var GnssDatas = Enumerable.Range(0, 36).Select(m => (byte)m).ToArray();
  27. var AuthorizeCodes = Enumerable.Range(0, 64).Select(m => (byte)m).ToArray();
  28. JT809_JT1078_0x9800 jT809_JT1078_0x9800 = new JT809_JT1078_0x9800()
  29. {
  30. VehicleNo="粤B12345",
  31. VehicleColor= Protocol.Enums.JT809VehicleColorType.黄色,
  32. SubBusinessType= (ushort)JT809_JT1078_SubBusinessType.实时音视频请求消息,
  33. SubBodies= new JT809_JT1078_0x9800_0x9801() {
  34. AVitemType=1,
  35. ChannelId=2,
  36. GnssData= GnssDatas,
  37. AuthorizeCode= AuthorizeCodes
  38. }
  39. };
  40. var hex = JT809Serializer.Serialize(jT809_JT1078_0x9800).ToHexString();
  41. Assert.Equal("D4C142313233343500000000000000000000000000029801000000660201000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223", hex);
  42. }
  43. [Fact]
  44. public void Test2()
  45. {
  46. var GnssDatas = Enumerable.Range(0, 36).Select(m => (byte)m).ToArray();
  47. var AuthorizeCodes = Enumerable.Range(0, 64).Select(m => (byte)m).ToArray();
  48. var jT809_JT1078_0x1900 = JT809Serializer.Deserialize<JT809_JT1078_0x1900>("D4C142313233343500000000000000000000000000029801000000660201000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F20212223".ToHexBytes());
  49. Assert.Equal("粤B12345", jT809_JT1078_0x1900.VehicleNo);
  50. Assert.Equal(Protocol.Enums.JT809VehicleColorType.黄色, jT809_JT1078_0x1900.VehicleColor);
  51. Assert.Equal((ushort)JT809_JT1078_SubBusinessType.实时音视频请求消息, jT809_JT1078_0x1900.SubBusinessType);
  52. var jT809_JT1078_0x9800_0x9801 = jT809_JT1078_0x1900.SubBodies as JT809_JT1078_0x9800_0x9801;
  53. Assert.Equal(1, jT809_JT1078_0x9800_0x9801.AVitemType);
  54. Assert.Equal(2, jT809_JT1078_0x9800_0x9801.ChannelId);
  55. Assert.Equal(GnssDatas, jT809_JT1078_0x9800_0x9801.GnssData);
  56. Assert.Equal(AuthorizeCodes, jT809_JT1078_0x9800_0x9801.AuthorizeCode);
  57. }
  58. [Fact]
  59. public void Test3()
  60. {
  61. JT809_JT1078_0x9800 jT809_JT1078_0x9800 = new JT809_JT1078_0x9800()
  62. {
  63. VehicleNo = "粤B12345",
  64. VehicleColor = Protocol.Enums.JT809VehicleColorType.黄色,
  65. SubBusinessType = (ushort)JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输消息,
  66. SubBodies = new JT809_JT1078_0x9800_0x9802() {
  67. ChannelId=1,
  68. AVitemType=2
  69. }
  70. };
  71. var hex = JT809Serializer.Serialize(jT809_JT1078_0x9800).ToHexString();
  72. Assert.Equal("D4C142313233343500000000000000000000000000029802000000020102", hex);
  73. }
  74. [Fact]
  75. public void Test4()
  76. {
  77. var jT809_JT1078_0x9800 = JT809Serializer.Deserialize<JT809_JT1078_0x9800>("D4C142313233343500000000000000000000000000029802000000020102".ToHexBytes());
  78. Assert.Equal("粤B12345", jT809_JT1078_0x9800.VehicleNo);
  79. Assert.Equal(Protocol.Enums.JT809VehicleColorType.黄色, jT809_JT1078_0x9800.VehicleColor);
  80. Assert.Equal((ushort)JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输消息, jT809_JT1078_0x9800.SubBusinessType);
  81. var jT809_JT1078_0x9800_0x9802 = jT809_JT1078_0x9800.SubBodies as JT809_JT1078_0x9800_0x9802;
  82. Assert.Equal(1, jT809_JT1078_0x9800_0x9802.ChannelId);
  83. Assert.Equal(2, jT809_JT1078_0x9800_0x9802.AVitemType);
  84. }
  85. }
  86. }