@@ -7,12 +7,17 @@ using JT809.Protocol.Extensions; | |||
using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Internal; | |||
using JT809.Protocol.Enums; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1200_0x1201Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version= JT809Version.JTT2019}); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -40,5 +45,34 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal("11111111", jT809_0X1200_0X1201.TerminalModelType); | |||
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); | |||
} | |||
} | |||
} |
@@ -7,12 +7,17 @@ using JT809.Protocol.Extensions; | |||
using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Internal; | |||
using JT809.Protocol.Enums; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1200_0x1202Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -57,5 +62,18 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal((uint)3, jT809_0X1200_0X1202.VehiclePosition.State); | |||
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 | |||
} | |||
} | |||
} |
@@ -7,12 +7,16 @@ using JT809.Protocol.Extensions; | |||
using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1200_0x120ATest | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -38,5 +42,38 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal("abcdef123456789", jT809_0X1200_0X120A.Licence); | |||
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); | |||
} | |||
} | |||
} |
@@ -7,12 +7,15 @@ using JT809.Protocol.Extensions; | |||
using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Internal; | |||
using JT809.Protocol.Enums; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1200_0x120BTest | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -33,5 +36,29 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal("asd123456asd", jT809_0X1200_0X120B.EwaybillInfo); | |||
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); | |||
} | |||
} | |||
} |
@@ -7,12 +7,15 @@ using JT809.Protocol.Extensions; | |||
using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Internal; | |||
using JT809.Protocol.Enums; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1200_0x120CTest | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -37,5 +40,32 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal("3210987654321", jT809_0X1200_0X120C.Licence); | |||
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); | |||
} | |||
} | |||
} |
@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1300_0x1301Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -39,5 +41,38 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal((uint)1234, jT809_0x1300_0x1301.InfoID); | |||
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); | |||
} | |||
} | |||
} |
@@ -7,12 +7,15 @@ using JT809.Protocol.Extensions; | |||
using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Internal; | |||
using JT809.Protocol.Enums; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1300_0x1302Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -31,5 +34,28 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
JT809_0x1300_0x1302 jT809_0x1300_0x1302 = JT809Serializer.Deserialize<JT809_0x1300_0x1302>(bytes); | |||
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); | |||
} | |||
} | |||
} |
@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1400_0x1402Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -42,5 +44,41 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal((uint)10, jT809_0x1400_0x1402.InfoLength); | |||
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); | |||
} | |||
} | |||
} |
@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1400_0x1403Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -35,5 +37,43 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal(JT809_0x1403_Result.将来处理, jT809_0x1400_0x1403.Result); | |||
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); | |||
} | |||
} | |||
} |
@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1500_0x1501Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -8,12 +8,15 @@ using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1500_0x1503Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -34,5 +37,28 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal(JT809_0x1503_Result.下发成功, jT809_0X1500_0X1503.Result); | |||
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); | |||
} | |||
} | |||
} |
@@ -8,32 +8,60 @@ using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1500_0x1504Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
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] | |||
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); | |||
} | |||
} | |||
} |
@@ -8,12 +8,14 @@ using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
public class JT809_0x1500_0x1505Test | |||
{ | |||
private JT809Serializer JT809Serializer = new JT809Serializer(); | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
[Fact] | |||
public void Test1() | |||
{ | |||
@@ -32,5 +34,28 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
JT809_0x1500_0x1505 jT809_0X1500_0X1505 = JT809Serializer.Deserialize<JT809_0x1500_0x1505>(bytes); | |||
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); | |||
} | |||
} | |||
} |
@@ -49,8 +49,9 @@ namespace JT809.Protocol.SubMessageBody | |||
value.VehiclePosition.State = reader.ReadUInt32(); | |||
value.VehiclePosition.Alarm = reader.ReadUInt32(); | |||
} | |||
else { | |||
else | |||
{ | |||
#warning JT809VehiclePositionProperties_2019 | |||
} | |||
return value; | |||
} | |||
@@ -76,8 +77,9 @@ namespace JT809.Protocol.SubMessageBody | |||
writer.WriteUInt32(value.VehiclePosition.State); | |||
writer.WriteUInt32(value.VehiclePosition.Alarm); | |||
} | |||
else { | |||
else | |||
{ | |||
#warning JT809VehiclePositionProperties_2019 | |||
} | |||
} | |||
} | |||
@@ -30,14 +30,11 @@ namespace JT809.Protocol.SubMessageBody | |||
public string ResponderTel { get; set; } | |||
/// <summary> | |||
/// 查岗对象的ID | |||
/// 2013:12位 | |||
/// 2019:20位 | |||
/// </summary> | |||
public string ObjectID { get; set; } | |||
/// <summary> | |||
/// 查岗对象的ID | |||
/// 20位 | |||
/// </summary> | |||
public string ObjectID_2019 { get; set; } | |||
/// <summary> | |||
/// 对应平台查岗请求消息源子业务类型标识 | |||
/// </summary> | |||
public ushort SourceDataType { get; set; } | |||
@@ -69,7 +66,7 @@ namespace JT809.Protocol.SubMessageBody | |||
else { | |||
value.Responder = reader.ReadString(16); | |||
value.ResponderTel = reader.ReadString(20); | |||
value.ObjectID_2019 = reader.ReadString(20); | |||
value.ObjectID = reader.ReadString(20); | |||
value.SourceDataType = reader.ReadUInt16(); | |||
value.SourceMsgSn = reader.ReadUInt32(); | |||
} | |||
@@ -89,7 +86,7 @@ namespace JT809.Protocol.SubMessageBody | |||
else { | |||
writer.WriteStringPadRight(value.Responder, 16); | |||
writer.WriteStringPadRight(value.ResponderTel, 20); | |||
writer.WriteStringPadRight(value.ObjectID_2019, 20); | |||
writer.WriteStringPadRight(value.ObjectID, 20); | |||
writer.WriteUInt16(value.SourceDataType); | |||
writer.WriteUInt32(value.SourceMsgSn); | |||
} | |||
@@ -77,7 +77,8 @@ namespace JT809.Protocol.SubMessageBody | |||
{ | |||
value.WarnSrc = (JT809WarnSrc)reader.ReadByte(); | |||
} | |||
else { | |||
else | |||
{ | |||
value.SourcePlatformId = reader.ReadArray(11).ToArray(); | |||
} | |||
value.WarnType = (JT809WarnType)reader.ReadUInt16(); | |||
@@ -107,7 +108,8 @@ namespace JT809.Protocol.SubMessageBody | |||
{ | |||
writer.WriteByte((byte)value.WarnSrc); | |||
} | |||
else { | |||
else | |||
{ | |||
writer.WriteArray(value.SourcePlatformId); | |||
} | |||
writer.WriteUInt16((ushort)value.WarnType); | |||
@@ -116,7 +118,8 @@ namespace JT809.Protocol.SubMessageBody | |||
{ | |||
writer.WriteUInt32(value.InfoID); | |||
} | |||
else { | |||
else | |||
{ | |||
writer.WriteUTCDateTime(value.StartTime); | |||
writer.WriteUTCDateTime(value.EndTime); | |||
writer.WriteStringPadRight(value.VehicleNo,21); | |||
@@ -81,7 +81,8 @@ namespace JT809.Protocol.SubMessageBody | |||
value.InfoID = reader.ReadUInt32(); | |||
value.Result = (JT809_0x1403_Result)reader.ReadByte(); | |||
} | |||
else { | |||
else | |||
{ | |||
value.SourcePlatformId = reader.ReadArray(11).ToArray(); | |||
value.WarnType = (JT809WarnType)reader.ReadUInt16(); | |||
value.WarnTime = reader.ReadUTCDateTime(); | |||
@@ -105,7 +106,8 @@ namespace JT809.Protocol.SubMessageBody | |||
writer.WriteUInt32(value.InfoID); | |||
writer.WriteByte((byte)value.Result); | |||
} | |||
else { | |||
else | |||
{ | |||
writer.WriteArray(value.SourcePlatformId); | |||
writer.WriteUInt16((ushort)value.WarnType); | |||
writer.WriteUTCDateTime(value.WarnTime); | |||
@@ -119,7 +121,6 @@ namespace JT809.Protocol.SubMessageBody | |||
writer.Skip(4, out int lengthPosition); | |||
writer.WriteString(value.InfoContent); | |||
writer.WriteInt32Return(writer.GetCurrentPosition() - lengthPosition - 4, lengthPosition); | |||
} | |||
} | |||
} | |||
@@ -45,7 +45,6 @@ namespace JT809.Protocol.SubMessageBody | |||
{ | |||
value.MsgID = reader.ReadUInt32(); | |||
} | |||
value.Result = (JT809_0x1503_Result)reader.ReadByte(); | |||
return value; | |||
} | |||
@@ -47,7 +47,6 @@ namespace JT809.Protocol.SubMessageBody | |||
value.CommandType = (JT809CommandType)reader.ReadByte(); | |||
value.TraveldataLength = reader.ReadUInt32(); | |||
value.TraveldataInfo = reader.ReadString((int)value.TraveldataLength); | |||
return value; | |||
} | |||