Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

58 rader
2.0 KiB

  1. using JT808.Protocol.Extensions;
  2. using JT808.Protocol.MessageBody;
  3. using Xunit;
  4. namespace JT808.Protocol.Test.MessageBody
  5. {
  6. public class JT808_0x8001Test
  7. {
  8. JT808Serializer JT808Serializer = new JT808Serializer();
  9. [Fact]
  10. public void Test1()
  11. {
  12. JT808Package jT808Package = new JT808Package
  13. {
  14. Header = new JT808Header
  15. {
  16. MsgId = Enums.JT808MsgId.平台通用应答.ToUInt16Value(),
  17. MsgNum = 10,
  18. TerminalPhoneNo = "12345678900",
  19. },
  20. Bodies = new JT808_0x8001
  21. {
  22. MsgId = Enums.JT808MsgId.位置信息汇报.ToUInt16Value(),
  23. JT808PlatformResult = Enums.JT808PlatformResult.成功,
  24. MsgNum = 100
  25. }
  26. };
  27. //"7E
  28. //80 01
  29. //00 05
  30. //01 23 45 67 89 00
  31. //00 0A
  32. //00 64
  33. //02 00
  34. //00
  35. //61
  36. //7E"
  37. var hex = JT808Serializer.Serialize(jT808Package).ToHexString();
  38. Assert.Equal("7E80010005012345678900000A0064020000617E", hex);
  39. }
  40. [Fact]
  41. public void Test2()
  42. {
  43. var bytes = "7E 80 01 00 05 01 23 45 67 89 00 00 0A 00 64 02 00 00 61 7E".ToHexBytes();
  44. JT808Package jT808Package = JT808Serializer.Deserialize<JT808Package>(bytes);
  45. Assert.Equal(Enums.JT808MsgId.平台通用应答.ToUInt16Value(), jT808Package.Header.MsgId);
  46. Assert.Equal(10, jT808Package.Header.MsgNum);
  47. Assert.Equal("12345678900", jT808Package.Header.TerminalPhoneNo);
  48. JT808_0x8001 JT808Bodies = (JT808_0x8001)jT808Package.Bodies;
  49. Assert.Equal(Enums.JT808MsgId.位置信息汇报.ToUInt16Value(), JT808Bodies.MsgId);
  50. Assert.Equal(100, JT808Bodies.MsgNum);
  51. Assert.Equal(Enums.JT808PlatformResult.成功, JT808Bodies.JT808PlatformResult);
  52. }
  53. }
  54. }