Browse Source

增加2019版本的单元测试

tags/v2.2.0
SmallChi(Koike) 5 years ago
parent
commit
8e528c9bb0
19 changed files with 396 additions and 29 deletions
  1. +34
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1201Test.cs
  2. +18
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1202Test.cs
  3. +37
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x120ATest.cs
  4. +27
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x120BTest.cs
  5. +30
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x120CTest.cs
  6. +35
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1300_0x1301Test.cs
  7. +26
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1300_0x1302Test.cs
  8. +38
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1402Test.cs
  9. +40
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1403Test.cs
  10. +2
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1501Test.cs
  11. +26
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1503Test.cs
  12. +38
    -10
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1504Test.cs
  13. +25
    -0
      src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1505Test.cs
  14. +6
    -4
      src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1202.cs
  15. +4
    -7
      src/JT809.Protocol/SubMessageBody/JT809_0x1300_0x1301.cs
  16. +6
    -3
      src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1402.cs
  17. +4
    -3
      src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1403.cs
  18. +0
    -1
      src/JT809.Protocol/SubMessageBody/JT809_0x1500_0x1503.cs
  19. +0
    -1
      src/JT809.Protocol/SubMessageBody/JT809_0x1500_0x1504.cs

+ 34
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1201Test.cs View File

@@ -7,12 +7,17 @@ using JT809.Protocol.Extensions;
using JT809.Protocol.MessageBody; using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Internal;
using JT809.Protocol.Enums;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1200_0x1201Test public class JT809_0x1200_0x1201Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();

private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version= JT809Version.JTT2019});

[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -40,5 +45,34 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal("11111111", jT809_0X1200_0X1201.TerminalModelType); Assert.Equal("11111111", jT809_0X1200_0X1201.TerminalModelType);
Assert.Equal("222222222222", jT809_0X1200_0X1201.TerminalSimCode); Assert.Equal("222222222222", jT809_0X1200_0X1201.TerminalSimCode);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = new JT809_0x1200_0x1201
{
PlateformId = "1111111111",
ProducerId = "1111111111",
TerminalId = "11111AA",
TerminalModelType = "11111111",
TerminalSimCode = "222222222222",
IMIEId="123456789"
};
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1201).ToHexString();
Assert.Equal("00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232".ToHexBytes();
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x1201>(bytes);
Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId);
Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId);
Assert.Equal("11111AA", jT809_0X1200_0X1201.TerminalId);
Assert.Equal("11111111", jT809_0X1200_0X1201.TerminalModelType);
Assert.Equal("222222222222", jT809_0X1200_0X1201.TerminalSimCode);
Assert.Equal("123456789", jT809_0X1200_0X1201.IMIEId);
}
} }
} }

+ 18
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x1202Test.cs View File

@@ -7,12 +7,17 @@ using JT809.Protocol.Extensions;
using JT809.Protocol.MessageBody; using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Internal;
using JT809.Protocol.Enums;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1200_0x1202Test public class JT809_0x1200_0x1202Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();

private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });

[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -57,5 +62,18 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal((uint)3, jT809_0X1200_0X1202.VehiclePosition.State); Assert.Equal((uint)3, jT809_0X1200_0X1202.VehiclePosition.State);
Assert.Equal((uint)257, jT809_0X1200_0X1202.VehiclePosition.Alarm); Assert.Equal((uint)257, jT809_0X1200_0X1202.VehiclePosition.Alarm);
} }

[Fact]
public void Test_2019_1()
{
// todo:JT809VehiclePositionProperties_2019
}

[Fact]
public void Test_2019_2()
{
// todo:JT809VehiclePositionProperties_2019
}

} }
} }

+ 37
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x120ATest.cs View File

@@ -7,12 +7,16 @@ using JT809.Protocol.Extensions;
using JT809.Protocol.MessageBody; using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums;
using JT809.Protocol.Internal;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1200_0x120ATest public class JT809_0x1200_0x120ATest
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();

private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -38,5 +42,38 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal("abcdef123456789", jT809_0X1200_0X120A.Licence); Assert.Equal("abcdef123456789", jT809_0X1200_0X120A.Licence);
Assert.Equal("www123456789", jT809_0X1200_0X120A.OrgName); Assert.Equal("www123456789", jT809_0X1200_0X120A.OrgName);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1200_0x120A jT809_0X1200_0X120A = new JT809_0x1200_0x120A
{
DriverID = "123456789123456789",
DriverName = "smallchi",
Licence = "abcdef123456789",
OrgName = "www123456789",
ValidDate = DateTime.Parse("2020-04-23 22:22:22"),
SourceDataType=0x02,
SourceMsgSn=1
};
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X120A).ToHexString();
Assert.Equal("000200000001736D616C6C63686900000000000000003132333435363738393132333435363738390000616263646566313233343536373839000000000000000000000000000000000000000000000000007777773132333435363738390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005EA1A49E", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "000200000001736D616C6C63686900000000000000003132333435363738393132333435363738390000616263646566313233343536373839000000000000000000000000000000000000000000000000007777773132333435363738390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005EA1A49E".ToHexBytes();
JT809_0x1200_0x120A jT809_0X1200_0X120A = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x120A>(bytes);
Assert.Equal("123456789123456789", jT809_0X1200_0X120A.DriverID);
Assert.Equal("smallchi", jT809_0X1200_0X120A.DriverName);
Assert.Equal("abcdef123456789", jT809_0X1200_0X120A.Licence);
Assert.Equal("www123456789", jT809_0X1200_0X120A.OrgName);
Assert.Equal(DateTime.Parse("2020-04-23 22:22:22"), jT809_0X1200_0X120A.ValidDate);
Assert.Equal(0x02, jT809_0X1200_0X120A.SourceDataType);
Assert.Equal(1u, jT809_0X1200_0X120A.SourceMsgSn);
}
} }
} }

+ 27
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x120BTest.cs View File

@@ -7,12 +7,15 @@ using JT809.Protocol.Extensions;
using JT809.Protocol.MessageBody; using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Internal;
using JT809.Protocol.Enums;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1200_0x120BTest public class JT809_0x1200_0x120BTest
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -33,5 +36,29 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal("asd123456asd", jT809_0X1200_0X120B.EwaybillInfo); Assert.Equal("asd123456asd", jT809_0X1200_0X120B.EwaybillInfo);
Assert.Equal((uint)12, jT809_0X1200_0X120B.EwaybillLength); Assert.Equal((uint)12, jT809_0X1200_0X120B.EwaybillLength);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1200_0x120B jT809_0X1200_0X120B = new JT809_0x1200_0x120B
{
EwaybillInfo = "asd123456asd",
SourceDataType=0x02,
SourceMsgSn=1
};
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X120B).ToHexString();
Assert.Equal("0002000000010000000C617364313233343536617364", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "0002000000010000000C617364313233343536617364".ToHexBytes();
JT809_0x1200_0x120B jT809_0X1200_0X120B = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x120B>(bytes);
Assert.Equal("asd123456asd", jT809_0X1200_0X120B.EwaybillInfo);
Assert.Equal((uint)12, jT809_0X1200_0X120B.EwaybillLength);
Assert.Equal(0x02, jT809_0X1200_0X120B.SourceDataType);
Assert.Equal(1u, jT809_0X1200_0X120B.SourceMsgSn);
}
} }
} }

+ 30
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1200_0x120CTest.cs View File

@@ -7,12 +7,15 @@ using JT809.Protocol.Extensions;
using JT809.Protocol.MessageBody; using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Internal;
using JT809.Protocol.Enums;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1200_0x120CTest public class JT809_0x1200_0x120CTest
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -37,5 +40,32 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal("3210987654321", jT809_0X1200_0X120C.Licence); Assert.Equal("3210987654321", jT809_0X1200_0X120C.Licence);
Assert.Equal("gov", jT809_0X1200_0X120C.OrgName); Assert.Equal("gov", jT809_0X1200_0X120C.OrgName);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1200_0x120C jT809_0X1200_0X120C = new JT809_0x1200_0x120C
{
DriverID = "1234567890123",
DriverName = "smallchi",
Licence = "3210987654321",
OrgName = "gov",
ValidDate=DateTime.Parse("2020-04-23 21:51:11")
};
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X120C).ToHexString();
Assert.Equal("736D616C6C6368690000000000000000313233343536373839303132330000000000000033323130393837363534333231000000000000000000000000000000000000000000000000000000676F760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005EA19D4F", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "736D616C6C6368690000000000000000313233343536373839303132330000000000000033323130393837363534333231000000000000000000000000000000000000000000000000000000676F760000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005EA19D4F".ToHexBytes();
JT809_0x1200_0x120C jT809_0X1200_0X120C = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x120C>(bytes);
Assert.Equal("1234567890123", jT809_0X1200_0X120C.DriverID);
Assert.Equal("smallchi", jT809_0X1200_0X120C.DriverName);
Assert.Equal("3210987654321", jT809_0X1200_0X120C.Licence);
Assert.Equal("gov", jT809_0X1200_0X120C.OrgName);
Assert.Equal(DateTime.Parse("2020-04-23 21:51:11"), jT809_0X1200_0X120C.ValidDate);
}
} }
} }

+ 35
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1300_0x1301Test.cs View File

@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums; using JT809.Protocol.Enums;
using JT809.Protocol.Internal;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1300_0x1301Test public class JT809_0x1300_0x1301Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -39,5 +41,38 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal((uint)1234, jT809_0x1300_0x1301.InfoID); Assert.Equal((uint)1234, jT809_0x1300_0x1301.InfoID);
Assert.Equal(JT809_0x1301_ObjectType.当前连接的下级平台, jT809_0x1300_0x1301.ObjectType); Assert.Equal(JT809_0x1301_ObjectType.当前连接的下级平台, jT809_0x1300_0x1301.ObjectType);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1300_0x1301 jT809_0x1300_0x1301 = new JT809_0x1300_0x1301
{
ObjectID = "111",
InfoContent = "22ha22",
InfoID = 1234,
ObjectType = JT809_0x1301_ObjectType.当前连接的下级平台,
SourceMsgSn=99,
ResponderTel="12345678901",
SourceDataType=111,
Responder="smallchi"
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x1300_0x1301).ToHexString();
Assert.Equal("01736D616C6C636869000000000000000031323334353637383930310000000000000000003131310000000000000000000000000000000000006F0000006300000006323268613232", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "01736D616C6C636869000000000000000031323334353637383930310000000000000000003131310000000000000000000000000000000000006F0000006300000006323268613232".ToHexBytes();
JT809_0x1300_0x1301 jT809_0x1300_0x1301 = JT809_2019_Serializer.Deserialize<JT809_0x1300_0x1301>(bytes);
Assert.Equal("111", jT809_0x1300_0x1301.ObjectID);
Assert.Equal("22ha22", jT809_0x1300_0x1301.InfoContent);
Assert.Equal(0u, jT809_0x1300_0x1301.InfoID);
Assert.Equal(JT809_0x1301_ObjectType.当前连接的下级平台, jT809_0x1300_0x1301.ObjectType);
Assert.Equal(99u, jT809_0x1300_0x1301.SourceMsgSn);
Assert.Equal("12345678901", jT809_0x1300_0x1301.ResponderTel);
Assert.Equal(111, jT809_0x1300_0x1301.SourceDataType);
Assert.Equal("smallchi", jT809_0x1300_0x1301.Responder);
}
} }
} }

+ 26
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1300_0x1302Test.cs View File

@@ -7,12 +7,15 @@ using JT809.Protocol.Extensions;
using JT809.Protocol.MessageBody; using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Internal;
using JT809.Protocol.Enums;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1300_0x1302Test public class JT809_0x1300_0x1302Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -31,5 +34,28 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
JT809_0x1300_0x1302 jT809_0x1300_0x1302 = JT809Serializer.Deserialize<JT809_0x1300_0x1302>(bytes); JT809_0x1300_0x1302 jT809_0x1300_0x1302 = JT809Serializer.Deserialize<JT809_0x1300_0x1302>(bytes);
Assert.Equal((uint)1234, jT809_0x1300_0x1302.InfoID); Assert.Equal((uint)1234, jT809_0x1300_0x1302.InfoID);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1300_0x1302 jT809_0x1300_0x1302 = new JT809_0x1300_0x1302
{
InfoID = 1234,
SourceDataType=0x99,
SourceMsgSn=11
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x1300_0x1302).ToHexString();
Assert.Equal("00990000000B", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "00990000000B".ToHexBytes();
JT809_0x1300_0x1302 jT809_0x1300_0x1302 = JT809_2019_Serializer.Deserialize<JT809_0x1300_0x1302>(bytes);
Assert.Equal(0u, jT809_0x1300_0x1302.InfoID);
Assert.Equal(0x99, jT809_0x1300_0x1302.SourceDataType);
Assert.Equal(11u, jT809_0x1300_0x1302.SourceMsgSn);
}
} }
} }

+ 38
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1402Test.cs View File

@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums; using JT809.Protocol.Enums;
using JT809.Protocol.Internal;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1400_0x1402Test public class JT809_0x1400_0x1402Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -42,5 +44,41 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal((uint)10, jT809_0x1400_0x1402.InfoLength); Assert.Equal((uint)10, jT809_0x1400_0x1402.InfoLength);
Assert.Equal(DateTime.Parse("2018-09-26"), jT809_0x1400_0x1402.WarnTime); Assert.Equal(DateTime.Parse("2018-09-26"), jT809_0x1400_0x1402.WarnTime);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1400_0x1402 jT809_0x1400_0x1402 = new JT809_0x1400_0x1402
{
SourcePlatformId = new byte[11],
WarnType = JT809WarnType.偏离路线报警,
WarnTime = DateTime.Parse("2020-04-23"),
StartTime= DateTime.Parse("2020-04-23"),
EndTime= DateTime.Parse("2020-04-24"),
VehicleNo="粤A11111",
VehicleColor= JT809VehicleColorType.蓝色,
DestinationPlatformId = new byte[11],
InfoContent = "gfdf454553",
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x1400_0x1402).ToHexString();
Assert.Equal("0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000000000000A67666466343534353533", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000000000000A67666466343534353533".ToHexBytes();
JT809_0x1400_0x1402 jT809_0x1400_0x1402 = JT809_2019_Serializer.Deserialize<JT809_0x1400_0x1402>(bytes);
Assert.Equal(new byte[11], jT809_0x1400_0x1402.SourcePlatformId);
Assert.Equal("gfdf454553", jT809_0x1400_0x1402.InfoContent);
Assert.Equal(JT809WarnType.偏离路线报警, jT809_0x1400_0x1402.WarnType);
Assert.Equal((uint)10, jT809_0x1400_0x1402.InfoLength);
Assert.Equal(DateTime.Parse("2020-04-23"), jT809_0x1400_0x1402.WarnTime);
Assert.Equal(DateTime.Parse("2020-04-23"), jT809_0x1400_0x1402.StartTime);
Assert.Equal(DateTime.Parse("2020-04-24"), jT809_0x1400_0x1402.EndTime);
Assert.Equal("粤A11111", jT809_0x1400_0x1402.VehicleNo);
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1402.VehicleColor);
Assert.Equal(new byte[11], jT809_0x1400_0x1402.DestinationPlatformId);
}
} }
} }

+ 40
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1403Test.cs View File

@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums; using JT809.Protocol.Enums;
using JT809.Protocol.Internal;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1400_0x1403Test public class JT809_0x1400_0x1403Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -35,5 +37,43 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal(JT809_0x1403_Result.将来处理, jT809_0x1400_0x1403.Result); Assert.Equal(JT809_0x1403_Result.将来处理, jT809_0x1400_0x1403.Result);
Assert.Equal((uint)3344, jT809_0x1400_0x1403.InfoID); Assert.Equal((uint)3344, jT809_0x1400_0x1403.InfoID);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1400_0x1403 jT809_0x1400_0x1403 = new JT809_0x1400_0x1403
{
SourcePlatformId = new byte[11],
WarnType = JT809WarnType.偏离路线报警,
WarnTime = DateTime.Parse("2020-04-23"),
StartTime = DateTime.Parse("2020-04-23"),
EndTime = DateTime.Parse("2020-04-24"),
VehicleNo = "粤A11111",
VehicleColor = JT809VehicleColorType.蓝色,
DestinationPlatformId = new byte[11],
InfoContent = "gfdf454553",
DRVLineId=55
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x1400_0x1403).ToHexString();
Assert.Equal("0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000370000000A67666466343534353533", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000370000000A67666466343534353533".ToHexBytes();
JT809_0x1400_0x1403 jT809_0x1400_0x1403 = JT809_2019_Serializer.Deserialize<JT809_0x1400_0x1403>(bytes);
Assert.Equal(new byte[11], jT809_0x1400_0x1403.SourcePlatformId);
Assert.Equal("gfdf454553", jT809_0x1400_0x1403.InfoContent);
Assert.Equal(JT809WarnType.偏离路线报警, jT809_0x1400_0x1403.WarnType);
Assert.Equal((uint)10, jT809_0x1400_0x1403.InfoLength);
Assert.Equal(DateTime.Parse("2020-04-23"), jT809_0x1400_0x1403.WarnTime);
Assert.Equal(DateTime.Parse("2020-04-23"), jT809_0x1400_0x1403.StartTime);
Assert.Equal(DateTime.Parse("2020-04-24"), jT809_0x1400_0x1403.EndTime);
Assert.Equal("粤A11111", jT809_0x1400_0x1403.VehicleNo);
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1403.VehicleColor);
Assert.Equal(new byte[11], jT809_0x1400_0x1403.DestinationPlatformId);
Assert.Equal(55u, jT809_0x1400_0x1403.DRVLineId);
}
} }
} }

+ 2
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1501Test.cs View File

@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums; using JT809.Protocol.Enums;
using JT809.Protocol.Internal;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1500_0x1501Test public class JT809_0x1500_0x1501Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();

[Fact] [Fact]
public void Test1() public void Test1()
{ {


+ 26
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1503Test.cs View File

@@ -8,12 +8,15 @@ using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums; using JT809.Protocol.Enums;
using JT809.Protocol.Internal;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1500_0x1503Test public class JT809_0x1500_0x1503Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });

[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -34,5 +37,28 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
Assert.Equal(JT809_0x1503_Result.下发成功, jT809_0X1500_0X1503.Result); Assert.Equal(JT809_0x1503_Result.下发成功, jT809_0X1500_0X1503.Result);
Assert.Equal((uint)9999, jT809_0X1500_0X1503.MsgID); Assert.Equal((uint)9999, jT809_0X1500_0X1503.MsgID);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1500_0x1503 jT809_0X1500_0X1503 = new JT809_0x1500_0x1503
{
SourceDataType=99,
SourceMsgSn=11,
Result= JT809_0x1503_Result.下发成功
};
var hex = JT809_2019_Serializer.Serialize(jT809_0X1500_0X1503).ToHexString();
Assert.Equal("00630000000B00", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "00630000000B00".ToHexBytes();
JT809_0x1500_0x1503 jT809_0X1500_0X1503 = JT809_2019_Serializer.Deserialize<JT809_0x1500_0x1503>(bytes);
Assert.Equal(99, jT809_0X1500_0X1503.SourceDataType);
Assert.Equal(11u, jT809_0X1500_0X1503.SourceMsgSn);
Assert.Equal(JT809_0x1503_Result.下发成功, jT809_0X1500_0X1503.Result);
}
} }
} }

+ 38
- 10
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1504Test.cs View File

@@ -8,32 +8,60 @@ using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums; using JT809.Protocol.Enums;
using JT809.Protocol.Internal;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1500_0x1504Test public class JT809_0x1500_0x1504Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
JT809_0x1400_0x1403 jT809_0x1400_0x1403 = new JT809_0x1400_0x1403
JT809_0x1500_0x1504 jT809_0x1500_0x1504 = new JT809_0x1500_0x1504
{ {
Result = JT809_0x1403_Result.将来处理,
InfoID = 3344,
CommandType= JT809CommandType.记录仪唯一性编号,
TraveldataInfo="123456",
}; };
var hex = JT809Serializer.Serialize(jT809_0x1400_0x1403).ToHexString();
// "00 00 0D 10 03"
Assert.Equal("00000D1003",hex);
var hex = JT809Serializer.Serialize(jT809_0x1500_0x1504).ToHexString();
Assert.Equal("0700000006313233343536", hex);
} }


[Fact] [Fact]
public void Test2() public void Test2()
{ {
var bytes = "00 00 0D 10 03".ToHexBytes();
JT809_0x1400_0x1403 jT809_0x1400_0x1403 = JT809Serializer.Deserialize<JT809_0x1400_0x1403>(bytes);
Assert.Equal(JT809_0x1403_Result.将来处理, jT809_0x1400_0x1403.Result);
Assert.Equal((uint)3344, jT809_0x1400_0x1403.InfoID);
var bytes = "0700000006313233343536".ToHexBytes();
JT809_0x1500_0x1504 jT809_0x1500_0x1504 = JT809Serializer.Deserialize<JT809_0x1500_0x1504>(bytes);
Assert.Equal(JT809CommandType.记录仪唯一性编号, jT809_0x1500_0x1504.CommandType);
Assert.Equal("123456", jT809_0x1500_0x1504.TraveldataInfo);
Assert.Equal(6u, jT809_0x1500_0x1504.TraveldataLength);
}

[Fact]
public void Test_2019_1()
{
JT809_0x1500_0x1504 jT809_0x1500_0x1504 = new JT809_0x1500_0x1504
{
CommandType = JT809CommandType.记录仪唯一性编号,
TraveldataInfo = "123456",
SourceMsgSn = 1,
SourceDataType = 12,
};
var hex = JT809_2019_Serializer.Serialize(jT809_0x1500_0x1504).ToHexString();
Assert.Equal("000C000000010700000006313233343536", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "000C000000010700000006313233343536".ToHexBytes();
JT809_0x1500_0x1504 jT809_0x1500_0x1504 = JT809_2019_Serializer.Deserialize<JT809_0x1500_0x1504>(bytes);
Assert.Equal(JT809CommandType.记录仪唯一性编号, jT809_0x1500_0x1504.CommandType);
Assert.Equal("123456", jT809_0x1500_0x1504.TraveldataInfo);
Assert.Equal(6u, jT809_0x1500_0x1504.TraveldataLength);
Assert.Equal(1u, jT809_0x1500_0x1504.SourceMsgSn);
Assert.Equal(12, jT809_0x1500_0x1504.SourceDataType);
} }
} }
} }

+ 25
- 0
src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1500_0x1505Test.cs View File

@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody;
using JT809.Protocol.Exceptions; using JT809.Protocol.Exceptions;
using JT809.Protocol.SubMessageBody; using JT809.Protocol.SubMessageBody;
using JT809.Protocol.Enums; using JT809.Protocol.Enums;
using JT809.Protocol.Internal;


namespace JT809.Protocol.Test.JT809SubMessageBody namespace JT809.Protocol.Test.JT809SubMessageBody
{ {
public class JT809_0x1500_0x1505Test public class JT809_0x1500_0x1505Test
{ {
private JT809Serializer JT809Serializer = new JT809Serializer(); private JT809Serializer JT809Serializer = new JT809Serializer();
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 });
[Fact] [Fact]
public void Test1() public void Test1()
{ {
@@ -32,5 +34,28 @@ namespace JT809.Protocol.Test.JT809SubMessageBody
JT809_0x1500_0x1505 jT809_0X1500_0X1505 = JT809Serializer.Deserialize<JT809_0x1500_0x1505>(bytes); JT809_0x1500_0x1505 jT809_0X1500_0X1505 = JT809Serializer.Deserialize<JT809_0x1500_0x1505>(bytes);
Assert.Equal(JT809_0x1505_Result.无该车辆, jT809_0X1500_0X1505.Result); Assert.Equal(JT809_0x1505_Result.无该车辆, jT809_0X1500_0X1505.Result);
} }

[Fact]
public void Test_2019_1()
{
JT809_0x1500_0x1505 jT809_0X1500_0X1505 = new JT809_0x1500_0x1505
{
Result = JT809_0x1505_Result.无该车辆,
SourceDataType=5,
SourceMsgSn=1
};
var hex = JT809_2019_Serializer.Serialize(jT809_0X1500_0X1505).ToHexString();
Assert.Equal("00050000000101", hex);
}

[Fact]
public void Test_2019_2()
{
var bytes = "00050000000101".ToHexBytes();
JT809_0x1500_0x1505 jT809_0X1500_0X1505 = JT809_2019_Serializer.Deserialize<JT809_0x1500_0x1505>(bytes);
Assert.Equal(JT809_0x1505_Result.无该车辆, jT809_0X1500_0X1505.Result);
Assert.Equal(5, jT809_0X1500_0X1505.SourceDataType);
Assert.Equal(1u, jT809_0X1500_0X1505.SourceMsgSn);
}
} }
} }

+ 6
- 4
src/JT809.Protocol/SubMessageBody/JT809_0x1200_0x1202.cs View File

@@ -49,8 +49,9 @@ namespace JT809.Protocol.SubMessageBody
value.VehiclePosition.State = reader.ReadUInt32(); value.VehiclePosition.State = reader.ReadUInt32();
value.VehiclePosition.Alarm = reader.ReadUInt32(); value.VehiclePosition.Alarm = reader.ReadUInt32();
} }
else {
else
{
#warning JT809VehiclePositionProperties_2019
} }
return value; return value;
} }
@@ -76,8 +77,9 @@ namespace JT809.Protocol.SubMessageBody
writer.WriteUInt32(value.VehiclePosition.State); writer.WriteUInt32(value.VehiclePosition.State);
writer.WriteUInt32(value.VehiclePosition.Alarm); writer.WriteUInt32(value.VehiclePosition.Alarm);
} }
else {
else
{
#warning JT809VehiclePositionProperties_2019
} }
} }
} }


+ 4
- 7
src/JT809.Protocol/SubMessageBody/JT809_0x1300_0x1301.cs View File

@@ -30,14 +30,11 @@ namespace JT809.Protocol.SubMessageBody
public string ResponderTel { get; set; } public string ResponderTel { get; set; }
/// <summary> /// <summary>
/// 查岗对象的ID /// 查岗对象的ID
/// 2013:12位
/// 2019:20位
/// </summary> /// </summary>
public string ObjectID { get; set; } public string ObjectID { get; set; }
/// <summary> /// <summary>
/// 查岗对象的ID
/// 20位
/// </summary>
public string ObjectID_2019 { get; set; }
/// <summary>
/// 对应平台查岗请求消息源子业务类型标识 /// 对应平台查岗请求消息源子业务类型标识
/// </summary> /// </summary>
public ushort SourceDataType { get; set; } public ushort SourceDataType { get; set; }
@@ -69,7 +66,7 @@ namespace JT809.Protocol.SubMessageBody
else { else {
value.Responder = reader.ReadString(16); value.Responder = reader.ReadString(16);
value.ResponderTel = reader.ReadString(20); value.ResponderTel = reader.ReadString(20);
value.ObjectID_2019 = reader.ReadString(20);
value.ObjectID = reader.ReadString(20);
value.SourceDataType = reader.ReadUInt16(); value.SourceDataType = reader.ReadUInt16();
value.SourceMsgSn = reader.ReadUInt32(); value.SourceMsgSn = reader.ReadUInt32();
} }
@@ -89,7 +86,7 @@ namespace JT809.Protocol.SubMessageBody
else { else {
writer.WriteStringPadRight(value.Responder, 16); writer.WriteStringPadRight(value.Responder, 16);
writer.WriteStringPadRight(value.ResponderTel, 20); writer.WriteStringPadRight(value.ResponderTel, 20);
writer.WriteStringPadRight(value.ObjectID_2019, 20);
writer.WriteStringPadRight(value.ObjectID, 20);
writer.WriteUInt16(value.SourceDataType); writer.WriteUInt16(value.SourceDataType);
writer.WriteUInt32(value.SourceMsgSn); writer.WriteUInt32(value.SourceMsgSn);
} }


+ 6
- 3
src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1402.cs View File

@@ -77,7 +77,8 @@ namespace JT809.Protocol.SubMessageBody
{ {
value.WarnSrc = (JT809WarnSrc)reader.ReadByte(); value.WarnSrc = (JT809WarnSrc)reader.ReadByte();
} }
else {
else
{
value.SourcePlatformId = reader.ReadArray(11).ToArray(); value.SourcePlatformId = reader.ReadArray(11).ToArray();
} }
value.WarnType = (JT809WarnType)reader.ReadUInt16(); value.WarnType = (JT809WarnType)reader.ReadUInt16();
@@ -107,7 +108,8 @@ namespace JT809.Protocol.SubMessageBody
{ {
writer.WriteByte((byte)value.WarnSrc); writer.WriteByte((byte)value.WarnSrc);
} }
else {
else
{
writer.WriteArray(value.SourcePlatformId); writer.WriteArray(value.SourcePlatformId);
} }
writer.WriteUInt16((ushort)value.WarnType); writer.WriteUInt16((ushort)value.WarnType);
@@ -116,7 +118,8 @@ namespace JT809.Protocol.SubMessageBody
{ {
writer.WriteUInt32(value.InfoID); writer.WriteUInt32(value.InfoID);
} }
else {
else
{
writer.WriteUTCDateTime(value.StartTime); writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime); writer.WriteUTCDateTime(value.EndTime);
writer.WriteStringPadRight(value.VehicleNo,21); writer.WriteStringPadRight(value.VehicleNo,21);


+ 4
- 3
src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1403.cs View File

@@ -81,7 +81,8 @@ namespace JT809.Protocol.SubMessageBody
value.InfoID = reader.ReadUInt32(); value.InfoID = reader.ReadUInt32();
value.Result = (JT809_0x1403_Result)reader.ReadByte(); value.Result = (JT809_0x1403_Result)reader.ReadByte();
} }
else {
else
{
value.SourcePlatformId = reader.ReadArray(11).ToArray(); value.SourcePlatformId = reader.ReadArray(11).ToArray();
value.WarnType = (JT809WarnType)reader.ReadUInt16(); value.WarnType = (JT809WarnType)reader.ReadUInt16();
value.WarnTime = reader.ReadUTCDateTime(); value.WarnTime = reader.ReadUTCDateTime();
@@ -105,7 +106,8 @@ namespace JT809.Protocol.SubMessageBody
writer.WriteUInt32(value.InfoID); writer.WriteUInt32(value.InfoID);
writer.WriteByte((byte)value.Result); writer.WriteByte((byte)value.Result);
} }
else {
else
{
writer.WriteArray(value.SourcePlatformId); writer.WriteArray(value.SourcePlatformId);
writer.WriteUInt16((ushort)value.WarnType); writer.WriteUInt16((ushort)value.WarnType);
writer.WriteUTCDateTime(value.WarnTime); writer.WriteUTCDateTime(value.WarnTime);
@@ -119,7 +121,6 @@ namespace JT809.Protocol.SubMessageBody
writer.Skip(4, out int lengthPosition); writer.Skip(4, out int lengthPosition);
writer.WriteString(value.InfoContent); writer.WriteString(value.InfoContent);
writer.WriteInt32Return(writer.GetCurrentPosition() - lengthPosition - 4, lengthPosition); writer.WriteInt32Return(writer.GetCurrentPosition() - lengthPosition - 4, lengthPosition);

} }
} }
} }


+ 0
- 1
src/JT809.Protocol/SubMessageBody/JT809_0x1500_0x1503.cs View File

@@ -45,7 +45,6 @@ namespace JT809.Protocol.SubMessageBody
{ {
value.MsgID = reader.ReadUInt32(); value.MsgID = reader.ReadUInt32();
} }

value.Result = (JT809_0x1503_Result)reader.ReadByte(); value.Result = (JT809_0x1503_Result)reader.ReadByte();
return value; return value;
} }


+ 0
- 1
src/JT809.Protocol/SubMessageBody/JT809_0x1500_0x1504.cs View File

@@ -47,7 +47,6 @@ namespace JT809.Protocol.SubMessageBody
value.CommandType = (JT809CommandType)reader.ReadByte(); value.CommandType = (JT809CommandType)reader.ReadByte();
value.TraveldataLength = reader.ReadUInt32(); value.TraveldataLength = reader.ReadUInt32();
value.TraveldataInfo = reader.ReadString((int)value.TraveldataLength); value.TraveldataInfo = reader.ReadString((int)value.TraveldataLength);

return value; return value;
} }




Loading…
Cancel
Save