|
- using System;
- using System.Collections.Generic;
- using System.Text;
- using Xunit;
- using JT809.Protocol;
- using JT809.Protocol.Extensions;
- using JT809.Protocol.MessageBody;
- using JT809.Protocol.Enums;
-
- namespace JT809.Protocol.Test.JT809Packages
- {
- public class JT809_0x1001PackageTest
- {
- private JT809Serializer JT809Serializer = new JT809Serializer();
- [Fact]
- public void Test1()
- {
- JT809Package jT809Package = new JT809Package();
- jT809Package.Header = new JT809Header
- {
- MsgSN= 133,
- EncryptKey=9999,
- BusinessType= JT809BusinessType.主链路登录请求消息.ToUInt16Value(),
- MsgGNSSCENTERID= 20180920,
- };
- JT809_0x1001 jT809_0X1001 = new JT809_0x1001();
- jT809_0X1001.UserId = 20180920;
- jT809_0X1001.Password = "20180920";
- jT809_0X1001.DownLinkIP = "127.0.0.1";
- jT809_0X1001.DownLinkPort = 809;
- jT809Package.Bodies = jT809_0X1001;
- var hex = JT809Serializer.Serialize(jT809Package).ToHexString();
- //5B000000 4800000085 10010133EFB801 000000000027 0F0133EFB8 323031383 039323031 32372 E302E302E31 00000000000000000000000000000000000000000000000329 4055 5D
- //5B000000 4800000085 10010133EFB801 000000000027 0F0133EFB8 323031383 039323031 32372 E302E302E31 00000000000000000000000000000000000000000000000329 6A91 5D
- Assert.Equal("5B000000480000008510010133EFB8010000000000270F0133EFB832303138303932303132372E302E302E31000000000000000000000000000000000000000000000003296A915D", hex);
- //"5B
- //00 00 00 48
- //00 00 00 85
- //10 01
- //01 33 EF B8
- //01 00 00
- //00
- //00 00 27 0F
- //01 33 EF B8
- //32 30 31 38 30 39 32 30
- //31 32 37 2E 30 2E 30 2E 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
- //03 29
- //6A 91
- //5D"
- }
-
- [Fact]
- public void Test2()
- {
- var bytes = "5B 00 00 00 48 00 00 00 85 10 01 01 33 EF B8 01 00 00 00 00 00 27 0F 01 33 EF B8 32 30 31 38 30 39 32 30 31 32 37 2E 30 2E 30 2E 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 03 29 6A 91 5D".ToHexBytes();
- JT809Package jT809Package = JT809Serializer.Deserialize(bytes);
- Assert.Equal((uint)72, jT809Package.Header.MsgLength);
- Assert.Equal((uint)133, jT809Package.Header.MsgSN);
- Assert.Equal((uint)9999, jT809Package.Header.EncryptKey);
- Assert.Equal((uint)20180920, jT809Package.Header.MsgGNSSCENTERID);
- Assert.Equal(JT809BusinessType.主链路登录请求消息, (JT809BusinessType)jT809Package.Header.BusinessType);
- Assert.Equal(new JT809Header_Version().ToString(), jT809Package.Header.Version.ToString());
- JT809_0x1001 jT809_0X1001 = (JT809_0x1001)jT809Package.Bodies;
- Assert.Equal((uint)20180920, jT809_0X1001.UserId);
- Assert.Equal("20180920", jT809_0X1001.Password);
- Assert.Equal("127.0.0.1", jT809_0X1001.DownLinkIP);
- Assert.Equal((ushort)809, jT809_0X1001.DownLinkPort);
- }
-
- [Fact]
- public void Test3()
- {
- Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- //字符'0':char c = '0'; 它的ASCII码实际上是48。
- //字符'\0' : ASCII码为0,表示一个字符串结束的标志。
- //"5B 00 00 00 48 00 00 00 85 10 01 01 33 EF B8 01 00 00 00 00 00 27 0F 30 01 33 EF B8 32 30 31 38 30 39 32 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 31 32 37 2E 30 2E 30 2E 31 03 29 7D 38 5D"
- var data="32 30 31 38 30 39 32 30".ToHexBytes();
- var str = Encoding.GetEncoding("GBK").GetString(data);
- var data1 = "31 32 37 2E 30 2E 30 2E 31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00".ToHexBytes();
- var str1 = Encoding.GetEncoding("GBK").GetString(data1);
- var test1 = Encoding.GetEncoding("GBK").GetBytes("\0\0\0\0\0\0127.0.0.1");
- var test2 = Encoding.GetEncoding("GBK").GetBytes("127.0.0.1\0\0\0\0\0\0");
- var test3 = Encoding.GetEncoding("GBK").GetBytes("000000127.0.0.1");
- var test4 = Encoding.GetEncoding("GBK").GetBytes("127.0.0.1000000");
- }
- }
- }
|