Browse Source

添加jt808json测试

tags/v2.2.6
waterliu99 5 years ago
parent
commit
bc7db435d5
12 changed files with 72 additions and 12 deletions
  1. +26
    -8
      src/JT808.Protocol.Test/MessageBody/JT808_0x8800Test.cs
  2. +6
    -0
      src/JT808.Protocol.Test/MessageBody/JT808_0x8801Test.cs
  3. +6
    -0
      src/JT808.Protocol.Test/MessageBody/JT808_0x8802Test.cs
  4. +6
    -0
      src/JT808.Protocol.Test/MessageBody/JT808_0x8803Test.cs
  5. +6
    -0
      src/JT808.Protocol.Test/MessageBody/JT808_0x8804Test.cs
  6. +6
    -0
      src/JT808.Protocol.Test/MessageBody/JT808_0x8805Test.cs
  7. +6
    -0
      src/JT808.Protocol.Test/MessageBody/JT808_0x8900Test.cs
  8. +6
    -0
      src/JT808.Protocol.Test/MessageBody/JT808_0x8A00Test.cs
  9. +1
    -1
      src/JT808.Protocol/Extensions/JT808HexExtensions.cs
  10. +1
    -1
      src/JT808.Protocol/MessageBody/JT808_0x8800.cs
  11. +1
    -1
      src/JT808.Protocol/MessageBody/JT808_0x8805.cs
  12. +1
    -1
      src/JT808.Protocol/MessageBody/JT808_0x8A00.cs

+ 26
- 8
src/JT808.Protocol.Test/MessageBody/JT808_0x8800Test.cs View File

@@ -1,4 +1,5 @@
using JT808.Protocol.Extensions;
using JT808.Protocol.Enums;
using JT808.Protocol.Extensions;
using JT808.Protocol.MessageBody; using JT808.Protocol.MessageBody;
using Xunit; using Xunit;


@@ -10,23 +11,40 @@ namespace JT808.Protocol.Test.MessageBody
[Fact] [Fact]
public void Test1() public void Test1()
{ {
JT808_0x8800 jT808_0X8800 = new JT808_0x8800
JT808Package jT808Package = new JT808Package
{ {
MultimediaId = 129,
RetransmitPackageIds = new byte[] { 0x01, 0x02, 0x03, 0x04 }
Header = new JT808Header
{
MsgId= (ushort)JT808MsgId.多媒体数据上传应答,
TerminalPhoneNo="123456789",
},
Bodies = new JT808_0x8800
{
MultimediaId = 129,
RetransmitPackageIds = new byte[] { 0x01, 0x02, 0x03, 0x04 }
}

}; };
string hex = JT808Serializer.Serialize(jT808_0X8800).ToHexString();
Assert.Equal("000000810201020304", hex);
string hex = JT808Serializer.Serialize(jT808Package).ToHexString();
Assert.Equal("7E8800000900012345678900010000008102010203048E7E", hex);
} }


[Fact] [Fact]
public void Test2() public void Test2()
{ {
byte[] bytes = "000000810201020304".ToHexBytes();
JT808_0x8800 jT808_0X8800 = JT808Serializer.Deserialize<JT808_0x8800>(bytes);
byte[] bytes = "7E8800000900012345678900010000008102010203048E7E".ToHexBytes();
var jt808Package = JT808Serializer.Deserialize<JT808Package>(bytes);
JT808_0x8800 jT808_0X8800 = jt808Package.Bodies as JT808_0x8800;
Assert.Equal((uint)129, jT808_0X8800.MultimediaId); Assert.Equal((uint)129, jT808_0X8800.MultimediaId);
Assert.Equal(2, jT808_0X8800.RetransmitPackageCount); Assert.Equal(2, jT808_0X8800.RetransmitPackageCount);
Assert.Equal(new byte[] { 0x01, 0x02, 0x03, 0x04 }, jT808_0X8800.RetransmitPackageIds); Assert.Equal(new byte[] { 0x01, 0x02, 0x03, 0x04 }, jT808_0X8800.RetransmitPackageIds);
} }

[Fact]
public void Test3()
{
byte[] bytes = "7E8800000900012345678900010000008102010203048E7E".ToHexBytes();
string json = JT808Serializer.Analyze<JT808Package>(bytes);
}
} }
} }

+ 6
- 0
src/JT808.Protocol.Test/MessageBody/JT808_0x8801Test.cs View File

@@ -43,5 +43,11 @@ namespace JT808.Protocol.Test.MessageBody
Assert.Equal(9, jT808_0X8801.VideoQuality); Assert.Equal(9, jT808_0X8801.VideoQuality);
Assert.Equal(2686, jT808_0X8801.VideoTime); Assert.Equal(2686, jT808_0X8801.VideoTime);
} }
[Fact]
public void Test3()
{
byte[] bytes = "8000000A7E010809EB7E78F5".ToHexBytes();
string json = JT808Serializer.Analyze<JT808_0x8801>(bytes);
}
} }
} }

+ 6
- 0
src/JT808.Protocol.Test/MessageBody/JT808_0x8802Test.cs View File

@@ -35,5 +35,11 @@ namespace JT808.Protocol.Test.MessageBody
Assert.Equal(DateTime.Parse("2018-11-16 21:00:08"), jT808_0X8802.StartTime); Assert.Equal(DateTime.Parse("2018-11-16 21:00:08"), jT808_0X8802.StartTime);
Assert.Equal(DateTime.Parse("2018-11-16 22:00:08"), jT808_0X8802.EndTime); Assert.Equal(DateTime.Parse("2018-11-16 22:00:08"), jT808_0X8802.EndTime);
} }
[Fact]
public void Test3()
{
byte[] bytes = "027B03181116210008181116220008".ToHexBytes();
string json = JT808Serializer.Analyze<JT808_0x8802>(bytes);
}
} }
} }

+ 6
- 0
src/JT808.Protocol.Test/MessageBody/JT808_0x8803Test.cs View File

@@ -37,5 +37,11 @@ namespace JT808.Protocol.Test.MessageBody
Assert.Equal(DateTime.Parse("2018-11-16 22:00:21"), jT808_0X8803.StartTime); Assert.Equal(DateTime.Parse("2018-11-16 22:00:21"), jT808_0X8803.StartTime);
Assert.Equal(DateTime.Parse("2018-11-16 23:00:21"), jT808_0X8803.EndTime); Assert.Equal(DateTime.Parse("2018-11-16 23:00:21"), jT808_0X8803.EndTime);
} }
[Fact]
public void Test3()
{
byte[] bytes = "00800018111622002118111623002101".ToHexBytes();
string json = JT808Serializer.Analyze<JT808_0x8803>(bytes);
}
} }
} }

+ 6
- 0
src/JT808.Protocol.Test/MessageBody/JT808_0x8804Test.cs View File

@@ -33,5 +33,11 @@ namespace JT808.Protocol.Test.MessageBody
Assert.Equal(JT808RecordSave.实时上传, jT808_0X8804.RecordSave); Assert.Equal(JT808RecordSave.实时上传, jT808_0X8804.RecordSave);
Assert.Equal(1, jT808_0X8804.AudioSampleRate); Assert.Equal(1, jT808_0X8804.AudioSampleRate);
} }
[Fact]
public void Test3()
{
byte[] bytes = "00001E0001".ToHexBytes();
string json = JT808Serializer.Analyze<JT808_0x8804>(bytes);
}
} }
} }

+ 6
- 0
src/JT808.Protocol.Test/MessageBody/JT808_0x8805Test.cs View File

@@ -27,5 +27,11 @@ namespace JT808.Protocol.Test.MessageBody
Assert.Equal(Enums.JT808MultimediaDeleted.保留.ToByteValue(), jT808_0X8805.MultimediaDeleted); Assert.Equal(Enums.JT808MultimediaDeleted.保留.ToByteValue(), jT808_0X8805.MultimediaDeleted);
Assert.Equal((uint)10000, jT808_0X8805.MultimediaId); Assert.Equal((uint)10000, jT808_0X8805.MultimediaId);
} }
[Fact]
public void Test3()
{
byte[] bytes = "0000271000".ToHexBytes();
string json = JT808Serializer.Analyze<JT808_0x8805>(bytes);
}
} }
} }

+ 6
- 0
src/JT808.Protocol.Test/MessageBody/JT808_0x8900Test.cs View File

@@ -44,5 +44,11 @@ namespace JT808.Protocol.Test.MessageBody
Assert.Equal((uint)12345, jT808_0X8900_Test_BodiesImpl.Id); Assert.Equal((uint)12345, jT808_0X8900_Test_BodiesImpl.Id);
Assert.Equal(0x01, jT808_0X8900_Test_BodiesImpl.Sex); Assert.Equal(0x01, jT808_0X8900_Test_BodiesImpl.Sex);
} }
[Fact]
public void Test3()
{
byte[] bytes = "0B0000303901".ToHexBytes();
string json = JT808Serializer.Analyze<JT808_0x8900>(bytes);
}
} }
} }

+ 6
- 0
src/JT808.Protocol.Test/MessageBody/JT808_0x8A00Test.cs View File

@@ -36,5 +36,11 @@ namespace JT808.Protocol.Test.MessageBody
Assert.Equal((uint)128, jT808_0X8A00.E); Assert.Equal((uint)128, jT808_0X8A00.E);
Assert.Equal(N, jT808_0X8A00.N); Assert.Equal(N, jT808_0X8A00.N);
} }
[Fact]
public void Test3()
{
byte[] bytes = "00000080000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F606162636465666768696A6B6C6D6E6F707172737475767778797A7B7C7D7E7F".ToHexBytes();
string json = JT808Serializer.Analyze<JT808_0x8A00>(bytes);
}
} }
} }

+ 1
- 1
src/JT808.Protocol/Extensions/JT808HexExtensions.cs View File

@@ -71,7 +71,7 @@ namespace JT808.Protocol.Extensions
return hex; return hex;
} }


public static string ReadNumber(this byte value, string format = "X1")
public static string ReadNumber(this byte value, string format = "X2")
{ {
return value.ToString(format); return value.ToString(format);
} }


+ 1
- 1
src/JT808.Protocol/MessageBody/JT808_0x8800.cs View File

@@ -59,7 +59,7 @@ namespace JT808.Protocol.MessageBody
ReadOnlySpan<byte> tmp = value.RetransmitPackageIds; ReadOnlySpan<byte> tmp = value.RetransmitPackageIds;
for(int i=0; i< value.RetransmitPackageCount; i++) for(int i=0; i< value.RetransmitPackageCount; i++)
{ {
writer.WriteString($"ID{i+1}", tmp.Slice(i * 2, 2).ToArray().ToHexString());
writer.WriteStringValue($"{tmp.Slice(i*2 , 2).ToArray().ToHexString()}");
} }
writer.WriteEndArray(); writer.WriteEndArray();
} }


+ 1
- 1
src/JT808.Protocol/MessageBody/JT808_0x8805.cs View File

@@ -43,7 +43,7 @@ namespace JT808.Protocol.MessageBody
jT808_0X8805.MultimediaId = reader.ReadUInt32(); jT808_0X8805.MultimediaId = reader.ReadUInt32();
jT808_0X8805.MultimediaDeleted = reader.ReadByte(); jT808_0X8805.MultimediaDeleted = reader.ReadByte();
writer.WriteNumber($"[{jT808_0X8805.MultimediaId.ReadNumber()}]多媒体ID", jT808_0X8805.MultimediaId); writer.WriteNumber($"[{jT808_0X8805.MultimediaId.ReadNumber()}]多媒体ID", jT808_0X8805.MultimediaId);
writer.WriteNumber($"[{jT808_0X8805.MultimediaId.ReadNumber()}]删除标志", jT808_0X8805.MultimediaDeleted);
writer.WriteNumber($"[{jT808_0X8805.MultimediaDeleted.ReadNumber()}]删除标志", jT808_0X8805.MultimediaDeleted);
} }
} }
} }

+ 1
- 1
src/JT808.Protocol/MessageBody/JT808_0x8A00.cs View File

@@ -50,7 +50,7 @@ namespace JT808.Protocol.MessageBody
jT808_0X8A00.E = reader.ReadUInt32(); jT808_0X8A00.E = reader.ReadUInt32();
jT808_0X8A00.N = reader.ReadArray(128).ToArray(); jT808_0X8A00.N = reader.ReadArray(128).ToArray();
writer.WriteNumber($"[{jT808_0X8A00.E.ReadNumber()}]RSA公钥e", jT808_0X8A00.E); writer.WriteNumber($"[{jT808_0X8A00.E.ReadNumber()}]RSA公钥e", jT808_0X8A00.E);
writer.WriteString($"RSA公钥n", jT808_0X8A00.N.ToHexString());
writer.WriteString($"RSA公钥N", jT808_0X8A00.N.ToHexString());
} }
} }
} }

Loading…
Cancel
Save