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.

73 rivejä
3.2 KiB

  1. using JT808.Protocol.Extensions;
  2. using JT808.Protocol.MessageBody;
  3. using System;
  4. using System.Collections.Generic;
  5. using Xunit;
  6. namespace JT808.Protocol.Test.MessageBody
  7. {
  8. public class JT808_0x0201Test
  9. {
  10. JT808Serializer JT808Serializer = new JT808Serializer();
  11. [Fact]
  12. public void Test1()
  13. {
  14. JT808Package jT808Package = new JT808Package
  15. {
  16. Header = new JT808Header
  17. {
  18. MsgId = Enums.JT808MsgId.位置信息查询应答.ToUInt16Value(),
  19. MsgNum = 8888,
  20. TerminalPhoneNo = "112233445566",
  21. }
  22. };
  23. JT808_0x0201 jT808_0X0201 = new JT808_0x0201
  24. {
  25. ReplyMsgNum = 12345
  26. };
  27. JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200
  28. {
  29. AlarmFlag = 1,
  30. Altitude = 40,
  31. GPSTime = DateTime.Parse("2018-07-15 10:10:10"),
  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(JT808Constants.JT808_0x0200_0x01, new JT808_0x0200_0x01
  40. {
  41. Mileage = 100
  42. });
  43. jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808Constants.JT808_0x0200_0x02, new JT808_0x0200_0x02
  44. {
  45. Oil = 55
  46. });
  47. jT808_0X0201.Position = jT808UploadLocationRequest;
  48. jT808Package.Bodies = jT808_0X0201;
  49. var hex = JT808Serializer.Serialize(jT808Package).ToHexString();
  50. Assert.Equal("7E0201002811223344556622B83039000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037517E".Length, hex.Length);
  51. Assert.Equal("7E0201002811223344556622B83039000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037517E", hex);
  52. }
  53. [Fact]
  54. public void Test2()
  55. {
  56. byte[] bytes = "7E0201002811223344556622B83039000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037517E".ToHexBytes();
  57. JT808Package jT808Package = JT808Serializer.Deserialize(bytes);
  58. JT808_0x0201 jT808_0X0201 = (JT808_0x0201) jT808Package.Bodies;
  59. Assert.Equal(12345, jT808_0X0201.ReplyMsgNum);
  60. Assert.Equal((uint)1, jT808_0X0201.Position.AlarmFlag);
  61. Assert.Equal(DateTime.Parse("2018-07-15 10:10:10"), jT808_0X0201.Position.GPSTime);
  62. Assert.Equal(12222222, jT808_0X0201.Position.Lat);
  63. Assert.Equal(132444444, jT808_0X0201.Position.Lng);
  64. Assert.Equal(60, jT808_0X0201.Position.Speed);
  65. Assert.Equal((uint)2, jT808_0X0201.Position.StatusFlag);
  66. Assert.Equal(100, ((JT808_0x0200_0x01)jT808_0X0201.Position.JT808LocationAttachData[JT808Constants.JT808_0x0200_0x01]).Mileage);
  67. Assert.Equal(55, ((JT808_0x0200_0x02)jT808_0X0201.Position.JT808LocationAttachData[JT808Constants.JT808_0x0200_0x02]).Oil);
  68. }
  69. }
  70. }