Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

62 lignes
2.5 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Xunit;
  5. using JT809.Protocol;
  6. using JT809.Protocol.Extensions;
  7. using System.Threading.Tasks;
  8. using System.Diagnostics;
  9. using JT809.Protocol.Enums;
  10. namespace JT809.Protocol.Test
  11. {
  12. public class JT809HeaderTest
  13. {
  14. private JT809Serializer JT809Serializer = new JT809Serializer();
  15. [Fact]
  16. public void Test1()
  17. {
  18. JT809Header jT809Header = new JT809Header();
  19. jT809Header.MsgLength = 24;
  20. jT809Header.MsgSN = 1024;
  21. jT809Header.BusinessType = JT809BusinessType.从链路静态信息交换消息;
  22. jT809Header.MsgGNSSCENTERID = 1200;
  23. jT809Header.Version = new JT809Header_Version();
  24. jT809Header.EncryptFlag = JT809Header_Encrypt.None;
  25. jT809Header.EncryptKey = 0;
  26. var hex = JT809Serializer.Serialize(jT809Header).ToHexString();
  27. Assert.Equal("00000018000004009600000004B00100000000000000", hex);
  28. //"00 00 00 18 00 00 04 00 96 00 00 00 04 B0 01 00 00 00 00 00 00 00"
  29. }
  30. [Fact]
  31. public void Test2()
  32. {
  33. var bytes = "00 00 00 18 00 00 04 00 96 00 00 00 04 B0 01 00 00 00 00 00 00 00".ToHexBytes();
  34. JT809Header jT809Header= JT809Serializer.Deserialize<JT809Header>(bytes);
  35. Assert.Equal((uint)24, jT809Header.MsgLength);
  36. Assert.Equal((uint)1024, jT809Header.MsgSN);
  37. Assert.Equal(JT809BusinessType.从链路静态信息交换消息, jT809Header.BusinessType);
  38. Assert.Equal((uint)1200, jT809Header.MsgGNSSCENTERID);
  39. Assert.Equal(new JT809Header_Version().ToString(), jT809Header.Version.ToString());
  40. Assert.Equal(JT809Header_Encrypt.None, jT809Header.EncryptFlag);
  41. Assert.Equal((uint)0, jT809Header.EncryptKey);
  42. }
  43. [Fact]
  44. public void Test4()
  45. {
  46. JT809Header jT809Header = new JT809Header();
  47. jT809Header.MsgLength = 24;
  48. jT809Header.MsgSN = 1024;
  49. jT809Header.BusinessType = JT809BusinessType.从链路静态信息交换消息;
  50. jT809Header.MsgGNSSCENTERID = 1200;
  51. jT809Header.Version = new JT809Header_Version (0xFF,0xAA,0xBB);
  52. jT809Header.EncryptFlag = JT809Header_Encrypt.None;
  53. jT809Header.EncryptKey = 0;
  54. var hex = JT809Serializer.Serialize(jT809Header).ToHexString();
  55. Assert.Equal("00000018000004009600000004B0FFAABB0000000000", hex);
  56. }
  57. }
  58. }