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.

67 lines
3.8 KiB

  1. using JT809.Protocol;
  2. using JT809.Protocol.Extensions;
  3. using JT809.Protocol.MessageBody;
  4. using JT809.Protocol.SubMessageBody;
  5. using JT809.Protocol.Exceptions;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Text;
  9. using Xunit;
  10. using JT809.Protocol.Enums;
  11. namespace JT809.Protocol.Test.JT809MessageBody
  12. {
  13. public class JT809_0x1200Test
  14. {
  15. private JT809Serializer JT809Serializer = new JT809Serializer();
  16. [Fact]
  17. public void Test1()
  18. {
  19. JT809_0x1200 jT809_0X1200 = new JT809_0x1200();
  20. jT809_0X1200.VehicleNo= "粤A12345";
  21. jT809_0X1200.VehicleColor = JT809VehicleColorType.蓝色;
  22. jT809_0X1200.SubBusinessType = JT809SubBusinessType.上传车辆注册信息.ToUInt16Value();
  23. jT809_0X1200.DataLength = 61;
  24. JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201
  25. {
  26. PlateformId = "1111111111",
  27. ProducerId = "1111111111",
  28. TerminalId = "11111AA",
  29. TerminalModelType = "11111111",
  30. TerminalSimCode = "222222222222"
  31. };
  32. jT809_0X1200.SubBodies = jT809_0X1200_0X1201;
  33. var hex = JT809Serializer.Serialize(jT809_0X1200).ToHexString();
  34. //D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00
  35. //00
  36. //01
  37. //12 01
  38. //00 00 00 3D
  39. //00 00 00 00 00 00 00 42 3A 35 C7
  40. //00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31
  41. //00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32
  42. //D4C1413132333435000000000000000000000000000112010000003D00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232
  43. Assert.Equal("D4C1413132333435000000000000000000000000000112010000003D00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232", hex);
  44. //"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32"
  45. //"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 61 61 32 32 32 32 32 32 32 32 32 32 32 32"
  46. }
  47. [Fact]
  48. public void Test2()
  49. {
  50. var bytes = "D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32".ToHexBytes();
  51. JT809_0x1200 jT809_0X9001 = JT809Serializer.Deserialize<JT809_0x1200>(bytes);
  52. Assert.Equal("粤A12345", jT809_0X9001.VehicleNo);
  53. Assert.Equal(JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor);
  54. Assert.Equal(JT809SubBusinessType.上传车辆注册信息, (JT809SubBusinessType)jT809_0X9001.SubBusinessType);
  55. Assert.Equal((ushort)61, jT809_0X9001.DataLength);
  56. JT809_0x1200_0x1201 jT809_0X1200_0X1201 = jT809_0X9001.SubBodies as JT809_0x1200_0x1201;
  57. Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId);
  58. Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId);
  59. Assert.Equal("11111AA", jT809_0X1200_0X1201.TerminalId);
  60. Assert.Equal("11111111", jT809_0X1200_0X1201.TerminalModelType);
  61. Assert.Equal("222222222222", jT809_0X1200_0X1201.TerminalSimCode);
  62. }
  63. }
  64. }