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.

66 line
2.8 KiB

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using Xunit;
  5. using JT809.Protocol;
  6. using JT809.Protocol.JT809Extensions;
  7. using JT809.Protocol.JT809MessageBody;
  8. using JT809.Protocol.JT809Encrypt;
  9. namespace JT809.Protocol.Test.JT809Packages
  10. {
  11. public class JT809_0x1001EncryptPackageTest
  12. {
  13. public JT809_0x1001EncryptPackageTest()
  14. {
  15. JT809GlobalConfig.Instance.SetEncrypt(new JT809EncryptImpl(new JT809Configs.JT809EncryptOptions()
  16. {
  17. IA1 = 20000000,
  18. IC1 = 20000000,
  19. M1 = 30000000
  20. }));
  21. }
  22. [Fact]
  23. public void Test1()
  24. {
  25. JT809Package jT809Package = new JT809Package();
  26. jT809Package.Header = new JT809Header
  27. {
  28. EncryptFlag= JT809Header_Encrypt.Common,
  29. MsgSN= 133,
  30. EncryptKey= 256178,
  31. BusinessType= JT809Enums.JT809BusinessType.主链路登录请求消息,
  32. MsgGNSSCENTERID= 20180920,
  33. };
  34. JT809_0x1001 jT809_0X1001 = new JT809_0x1001();
  35. jT809_0X1001.UserId = 20180920;
  36. jT809_0X1001.Password = "20180920";
  37. jT809_0X1001.DownLinkIP = "127.0.0.1";
  38. jT809_0X1001.DownLinkPort = 809;
  39. jT809Package.Bodies = jT809_0X1001;
  40. var hex = JT809Serializer.Serialize(jT809Package).ToHexString();
  41. //"5B 00 00 00 48 00 00 00 85 10 01 01 33 EF B8 01 00 00 01 00 00 16 BB D3 7D 9C C4 90 0C 77 DC 78 F8 67 65 27 D8 AE 12 24 3C FB 64 CC 2F BA 61 9A EF AD 33 AC CB 32 56 F6 7B FF 19 DF 33 09 78 41 09 86 65 70 3F 2E B5 5D"
  42. }
  43. [Fact]
  44. public void Test2()
  45. {
  46. var bytes = "5B000000480000008510010133EFB8010000010003E8B2D37D9CC4900C77DC78F8676527D8AE12243CFB64CC2FBA619AEFAD33ACCB3256F67BFF19DF33097841098665703FE36E5D".ToStr2HexBytes();
  47. JT809Package jT809Package = JT809Serializer.Deserialize(bytes);
  48. Assert.Equal(JT809Header_Encrypt.Common, jT809Package.Header.EncryptFlag);
  49. Assert.Equal((uint)256178, jT809Package.Header.EncryptKey);
  50. Assert.Equal((uint)72, jT809Package.Header.MsgLength);
  51. Assert.Equal((uint)133, jT809Package.Header.MsgSN);
  52. Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID);
  53. Assert.Equal(JT809Enums.JT809BusinessType.主链路登录请求消息, jT809Package.Header.BusinessType);
  54. Assert.Equal("010000", jT809Package.Header.Version);
  55. JT809_0x1001 jT809_0X1001 = (JT809_0x1001)jT809Package.Bodies;
  56. Assert.Equal((uint)20180920, jT809_0X1001.UserId);
  57. Assert.Equal("20180920", jT809_0X1001.Password);
  58. Assert.Equal("127.0.0.1", jT809_0X1001.DownLinkIP);
  59. Assert.Equal((ushort)809, jT809_0X1001.DownLinkPort);
  60. }
  61. }
  62. }