No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

70 líneas
3.3 KiB

  1. using JT808.Protocol.Extensions.YueBiao.MessageBody;
  2. using JT808.Protocol.Extensions.YueBiao.Metadata;
  3. using JT808.Protocol.MessageBody;
  4. using Microsoft.Extensions.DependencyInjection;
  5. using System;
  6. using System.Collections.Generic;
  7. using Xunit;
  8. namespace JT808.Protocol.Extensions.YueBiao.Test
  9. {
  10. public class JT808_0x8103_0xF366_Test
  11. {
  12. JT808Serializer JT808Serializer;
  13. public JT808_0x8103_0xF366_Test()
  14. {
  15. ServiceCollection serviceDescriptors = new ServiceCollection();
  16. serviceDescriptors.AddJT808Configure()
  17. .AddYueBiaoConfigure();
  18. IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService<IJT808Config>();
  19. JT808Serializer = new JT808Serializer(jT808Config);
  20. }
  21. [Fact]
  22. public void Serializer()
  23. {
  24. JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103
  25. {
  26. ParamList = new List<JT808_0x8103_BodyBase> {
  27. new JT808_0x8103_0xF366{
  28. HighTemperatureThreshold=1,
  29. HighVoltageThreshold=2,
  30. LowVoltageThreshold=3,
  31. NormalFetalPressure=4,
  32. Retain=new byte[]{1,2,3,4,5,6 },
  33. SlowLeakageThreshold=5,
  34. ThresholdUnbalancedTirePressure=6,
  35. TimedReportingInterval=7,
  36. TyrePressureUnit=8,
  37. TyreSpecificationType="999999999999",
  38. VoltageThreshold=10
  39. }
  40. }
  41. };
  42. var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString();
  43. Assert.Equal("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506", hex);
  44. }
  45. [Fact]
  46. public void Deserialize()
  47. {
  48. var jT808UploadLocationRequest = JT808Serializer.Deserialize<JT808_0x8103>("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506".ToHexBytes());
  49. JT808_0x8103_0xF366 jT808_0x8103_0xF366 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF366;
  50. Assert.Equal(1, jT808_0x8103_0xF366.HighTemperatureThreshold);
  51. Assert.Equal(2, jT808_0x8103_0xF366.HighVoltageThreshold);
  52. Assert.Equal(3, jT808_0x8103_0xF366.LowVoltageThreshold);
  53. Assert.Equal(4, jT808_0x8103_0xF366.NormalFetalPressure);
  54. Assert.Equal(new byte[] { 1, 2, 3, 4, 5, 6 }.ToHexString(), jT808_0x8103_0xF366.Retain.ToHexString());
  55. Assert.Equal(5, jT808_0x8103_0xF366.SlowLeakageThreshold);
  56. Assert.Equal(6, jT808_0x8103_0xF366.ThresholdUnbalancedTirePressure);
  57. Assert.Equal(7, jT808_0x8103_0xF366.TimedReportingInterval);
  58. Assert.Equal(8, jT808_0x8103_0xF366.TyrePressureUnit);
  59. Assert.Equal("999999999999", jT808_0x8103_0xF366.TyreSpecificationType);
  60. Assert.Equal(10, jT808_0x8103_0xF366.VoltageThreshold);
  61. }
  62. [Fact]
  63. public void Json()
  64. {
  65. var json = JT808Serializer.Analyze<JT808_0x8103>("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506".ToHexBytes());
  66. }
  67. }
  68. }