@@ -43,7 +43,7 @@ namespace JT809.Protocol.Test.JT809MessageBody | |||||
//00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 | //00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 | ||||
//00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32 | //00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32 | ||||
//D4C1413132333435000000000000000000000000000112010000003D00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232 | //D4C1413132333435000000000000000000000000000112010000003D00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232 | ||||
Assert.Equal("D4C1413132333435000000000000000000000000000112010000003D00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232", hex); | |||||
Assert.Equal("D4C1413132333435000000000000000000000000000112010000003D31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232", hex); | |||||
//"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32" | //"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32" | ||||
//"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 61 61 32 32 32 32 32 32 32 32 32 32 32 32" | //"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 61 61 32 32 32 32 32 32 32 32 32 32 32 32" | ||||
} | } | ||||
@@ -51,7 +51,7 @@ namespace JT809.Protocol.Test.JT809MessageBody | |||||
[Fact] | [Fact] | ||||
public void Test2() | public void Test2() | ||||
{ | { | ||||
var bytes = "D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32".ToHexBytes(); | |||||
var bytes = "D4C1413132333435000000000000000000000000000112010000003D31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232".ToHexBytes(); | |||||
JT809_0x1200 jT809_0X9001 = JT809Serializer.Deserialize<JT809_0x1200>(bytes); | JT809_0x1200 jT809_0X9001 = JT809Serializer.Deserialize<JT809_0x1200>(bytes); | ||||
Assert.Equal("粤A12345", jT809_0X9001.VehicleNo); | Assert.Equal("粤A12345", jT809_0X9001.VehicleNo); | ||||
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor); | Assert.Equal(JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor); | ||||
@@ -84,13 +84,13 @@ namespace JT809.Protocol.Test.JT809MessageBody | |||||
}; | }; | ||||
jT809_0X1200.SubBodies = jT809_0X1200_0X1201; | jT809_0X1200.SubBodies = jT809_0X1200_0X1201; | ||||
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200).ToHexString(); | var hex = JT809_2019_Serializer.Serialize(jT809_0X1200).ToHexString(); | ||||
Assert.Equal("D4C1413132333435000000000000000000000000000112010000006E00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232", hex); | |||||
Assert.Equal("D4C1413132333435000000000000000000000000000112010000006E3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void Test_2019_2() | public void Test_2019_2() | ||||
{ | { | ||||
var bytes = "D4C1413132333435000000000000000000000000000112010000006E00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232".ToHexBytes(); | |||||
var bytes = "D4C1413132333435000000000000000000000000000112010000006E3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200".ToHexBytes(); | |||||
JT809_0x1200 jT809_0X9001 = JT809_2019_Serializer.Deserialize<JT809_0x1200>(bytes); | JT809_0x1200 jT809_0X9001 = JT809_2019_Serializer.Deserialize<JT809_0x1200>(bytes); | ||||
Assert.Equal("粤A12345", jT809_0X9001.VehicleNo); | Assert.Equal("粤A12345", jT809_0X9001.VehicleNo); | ||||
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor); | Assert.Equal(JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor); | ||||
@@ -31,13 +31,13 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
}; | }; | ||||
var hex = JT809Serializer.Serialize(jT809_0X1200_0X1201).ToHexString(); | var hex = JT809Serializer.Serialize(jT809_0X1200_0X1201).ToHexString(); | ||||
//"00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32" | //"00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32" | ||||
Assert.Equal("00000000000000423A35C700000000000000423A35C7313131313131313100000000000000000000000031313131314141323232323232323232323232",hex); | |||||
Assert.Equal("31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void Test2() | public void Test2() | ||||
{ | { | ||||
var bytes = "00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32".ToHexBytes(); | |||||
var bytes = "31313131313131313131003131313131313131313100313131313131313100000000000000000000000031313131314141323232323232323232323232".ToHexBytes(); | |||||
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = JT809Serializer.Deserialize<JT809_0x1200_0x1201>(bytes); | JT809_0x1200_0x1201 jT809_0X1200_0X1201 = JT809Serializer.Deserialize<JT809_0x1200_0x1201>(bytes); | ||||
Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId); | Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId); | ||||
Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId); | Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId); | ||||
@@ -59,13 +59,13 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
IMIEId="123456789" | IMIEId="123456789" | ||||
}; | }; | ||||
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1201).ToHexString(); | var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1201).ToHexString(); | ||||
Assert.Equal("00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232", hex); | |||||
Assert.Equal("3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void Test_2019_2() | public void Test_2019_2() | ||||
{ | { | ||||
var bytes = "00000000000000423A35C700000000000000423A35C731313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000000323232323232323232323232".ToHexBytes(); | |||||
var bytes = "3131313131313131313100313131313131313131310031313131313131310000000000000000000000000000000000000000000031323334353637383900000000000031313131314141000000000000000000000000000000000000000000000032323232323232323232323200".ToHexBytes(); | |||||
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x1201>(bytes); | 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.PlateformId); | ||||
Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId); | Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId); | ||||
@@ -22,6 +22,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
public void Test1() | public void Test1() | ||||
{ | { | ||||
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = new JT809_0x1200_0x1202(); | JT809_0x1200_0x1202 jT809_0X1200_0X1202 = new JT809_0x1200_0x1202(); | ||||
jT809_0X1200_0X1202.VehiclePosition = new Metadata.JT809VehiclePositionProperties(); | |||||
jT809_0X1200_0X1202.VehiclePosition.Day = 19; | jT809_0X1200_0X1202.VehiclePosition.Day = 19; | ||||
jT809_0X1200_0X1202.VehiclePosition.Month = 7; | jT809_0X1200_0X1202.VehiclePosition.Month = 7; | ||||
jT809_0X1200_0X1202.VehiclePosition.Year = 2012; | jT809_0X1200_0X1202.VehiclePosition.Year = 2012; | ||||
@@ -66,13 +67,33 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
[Fact] | [Fact] | ||||
public void Test_2019_1() | public void Test_2019_1() | ||||
{ | { | ||||
// todo:JT809VehiclePositionProperties_2019 | |||||
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = new JT809_0x1200_0x1202(); | |||||
jT809_0X1200_0X1202.GNSSData = new Metadata.JT809VehiclePositionProperties_2019(); | |||||
jT809_0X1200_0X1202.GNSSData.Encrypt = JT809_VehiclePositionEncrypt.已加密; | |||||
//jT809_0X1200_0X1202.GNSSData.GnssData = new byte[20]; | |||||
jT809_0X1200_0X1202.GNSSData.PlatformId1 = "11111111111"; | |||||
jT809_0X1200_0X1202.GNSSData.Alarm1 = 1; | |||||
jT809_0X1200_0X1202.GNSSData.PlatformId2 = "22222222222"; | |||||
jT809_0X1200_0X1202.GNSSData.Alarm2 = 2; | |||||
jT809_0X1200_0X1202.GNSSData.PlatformId3 = "33333333333"; | |||||
jT809_0X1200_0X1202.GNSSData.Alarm3 = 3; | |||||
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1202).ToHexString(); | |||||
Assert.Equal("0100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void Test_2019_2() | public void Test_2019_2() | ||||
{ | { | ||||
// todo:JT809VehiclePositionProperties_2019 | |||||
var bytes = "0100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003".ToHexBytes(); | |||||
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x1202>(bytes); | |||||
Assert.Equal( JT809_VehiclePositionEncrypt.已加密, jT809_0X1200_0X1202.GNSSData.Encrypt); | |||||
Assert.Equal("11111111111", jT809_0X1200_0X1202.GNSSData.PlatformId1); | |||||
Assert.Equal(1u, jT809_0X1200_0X1202.GNSSData.Alarm1); | |||||
Assert.Equal("22222222222", jT809_0X1200_0X1202.GNSSData.PlatformId2); | |||||
Assert.Equal(2u, jT809_0X1200_0X1202.GNSSData.Alarm2); | |||||
Assert.Equal("33333333333", jT809_0X1200_0X1202.GNSSData.PlatformId3); | |||||
Assert.Equal(3u, jT809_0X1200_0X1202.GNSSData.Alarm3); | |||||
} | } | ||||
} | } | ||||
@@ -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.Enums; | |||||
using JT809.Protocol.Internal; | |||||
namespace JT809.Protocol.Test.JT809SubMessageBody | namespace JT809.Protocol.Test.JT809SubMessageBody | ||||
{ | { | ||||
public class JT809_0x1200_0x1203Test | public class JT809_0x1200_0x1203Test | ||||
{ | { | ||||
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() | ||||
{ | { | ||||
@@ -20,6 +23,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
jT809_0X1200_0X1203.GNSS = new List<JT809_0x1200_0x1202>(); | jT809_0X1200_0X1203.GNSS = new List<JT809_0x1200_0x1202>(); | ||||
JT809_0x1200_0x1202 jT809_0X1200_0X1202_1 = new JT809_0x1200_0x1202(); | JT809_0x1200_0x1202 jT809_0X1200_0X1202_1 = new JT809_0x1200_0x1202(); | ||||
jT809_0X1200_0X1202_1.VehiclePosition = new Metadata.JT809VehiclePositionProperties(); | |||||
jT809_0X1200_0X1202_1.VehiclePosition.Day = 19; | jT809_0X1200_0X1202_1.VehiclePosition.Day = 19; | ||||
jT809_0X1200_0X1202_1.VehiclePosition.Month = 7; | jT809_0X1200_0X1202_1.VehiclePosition.Month = 7; | ||||
jT809_0X1200_0X1202_1.VehiclePosition.Year = 2012; | jT809_0X1200_0X1202_1.VehiclePosition.Year = 2012; | ||||
@@ -37,6 +41,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
jT809_0X1200_0X1202_1.VehiclePosition.Alarm = 257; | jT809_0X1200_0X1202_1.VehiclePosition.Alarm = 257; | ||||
JT809_0x1200_0x1202 jT809_0X1200_0X1202_2 = new JT809_0x1200_0x1202(); | JT809_0x1200_0x1202 jT809_0X1200_0X1202_2 = new JT809_0x1200_0x1202(); | ||||
jT809_0X1200_0X1202_2.VehiclePosition = new Metadata.JT809VehiclePositionProperties(); | |||||
jT809_0X1200_0X1202_2.VehiclePosition.Day = 19; | jT809_0X1200_0X1202_2.VehiclePosition.Day = 19; | ||||
jT809_0X1200_0X1202_2.VehiclePosition.Month = 7; | jT809_0X1200_0X1202_2.VehiclePosition.Month = 7; | ||||
jT809_0X1200_0X1202_2.VehiclePosition.Year = 2012; | jT809_0X1200_0X1202_2.VehiclePosition.Year = 2012; | ||||
@@ -54,6 +59,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
jT809_0X1200_0X1202_2.VehiclePosition.Alarm = 257; | jT809_0X1200_0X1202_2.VehiclePosition.Alarm = 257; | ||||
JT809_0x1200_0x1202 jT809_0X1200_0X1202_3 = new JT809_0x1200_0x1202(); | JT809_0x1200_0x1202 jT809_0X1200_0X1202_3 = new JT809_0x1200_0x1202(); | ||||
jT809_0X1200_0X1202_3.VehiclePosition = new Metadata.JT809VehiclePositionProperties(); | |||||
jT809_0X1200_0X1202_3.VehiclePosition.Day = 19; | jT809_0X1200_0X1202_3.VehiclePosition.Day = 19; | ||||
jT809_0X1200_0X1202_3.VehiclePosition.Month = 7; | jT809_0X1200_0X1202_3.VehiclePosition.Month = 7; | ||||
jT809_0X1200_0X1202_3.VehiclePosition.Year = 2012; | jT809_0X1200_0X1202_3.VehiclePosition.Year = 2012; | ||||
@@ -134,5 +140,58 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.State); | Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.State); | ||||
Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Alarm); | Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Alarm); | ||||
} | } | ||||
[Fact] | |||||
public void Test_2019_1() | |||||
{ | |||||
JT809_0x1200_0x1203 jT809_0X1200_0X1203 = new JT809_0x1200_0x1203(); | |||||
jT809_0X1200_0X1203.GNSS = new List<JT809_0x1200_0x1202>(); | |||||
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = new JT809_0x1200_0x1202(); | |||||
jT809_0X1200_0X1202.GNSSData = new Metadata.JT809VehiclePositionProperties_2019(); | |||||
jT809_0X1200_0X1202.GNSSData.Encrypt = JT809_VehiclePositionEncrypt.已加密; | |||||
//jT809_0X1200_0X1202.GNSSData.GnssData = new byte[20]; | |||||
jT809_0X1200_0X1202.GNSSData.PlatformId1 = "11111111111"; | |||||
jT809_0X1200_0X1202.GNSSData.Alarm1 = 1; | |||||
jT809_0X1200_0X1202.GNSSData.PlatformId2 = "22222222222"; | |||||
jT809_0X1200_0X1202.GNSSData.Alarm2 = 2; | |||||
jT809_0X1200_0X1202.GNSSData.PlatformId3 = "33333333333"; | |||||
jT809_0X1200_0X1202.GNSSData.Alarm3 = 3; | |||||
jT809_0X1200_0X1203.GNSS.Add(jT809_0X1200_0X1202); | |||||
JT809_0x1200_0x1202 jT809_0X1200_0X1202_1 = new JT809_0x1200_0x1202(); | |||||
jT809_0X1200_0X1202_1.GNSSData = new Metadata.JT809VehiclePositionProperties_2019(); | |||||
jT809_0X1200_0X1202_1.GNSSData.Encrypt = JT809_VehiclePositionEncrypt.已加密; | |||||
jT809_0X1200_0X1202_1.GNSSData.PlatformId1 = "11111111111"; | |||||
jT809_0X1200_0X1202_1.GNSSData.Alarm1 = 1; | |||||
jT809_0X1200_0X1202_1.GNSSData.PlatformId2 = "22222222222"; | |||||
jT809_0X1200_0X1202_1.GNSSData.Alarm2 = 2; | |||||
jT809_0X1200_0X1202_1.GNSSData.PlatformId3 = "33333333333"; | |||||
jT809_0X1200_0X1202_1.GNSSData.Alarm3 = 3; | |||||
jT809_0X1200_0X1203.GNSS.Add(jT809_0X1200_0X1202_1); | |||||
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1203).ToHexString(); | |||||
Assert.Equal("0201000000003131313131313131313131000000013232323232323232323232000000023333333333333333333333000000030100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003", hex); | |||||
} | |||||
[Fact] | |||||
public void Test_2019_2() | |||||
{ | |||||
var bytes = "0201000000003131313131313131313131000000013232323232323232323232000000023333333333333333333333000000030100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003".ToHexBytes(); | |||||
JT809_0x1200_0x1203 jT809_0X1200_0X1203 = JT809_2019_Serializer.Deserialize<JT809_0x1200_0x1203>(bytes); | |||||
Assert.Equal(JT809_VehiclePositionEncrypt.已加密, jT809_0X1200_0X1203.GNSS[0].GNSSData.Encrypt); | |||||
Assert.Equal("11111111111", jT809_0X1200_0X1203.GNSS[0].GNSSData.PlatformId1); | |||||
Assert.Equal(1u, jT809_0X1200_0X1203.GNSS[0].GNSSData.Alarm1); | |||||
Assert.Equal("22222222222", jT809_0X1200_0X1203.GNSS[0].GNSSData.PlatformId2); | |||||
Assert.Equal(2u, jT809_0X1200_0X1203.GNSS[0].GNSSData.Alarm2); | |||||
Assert.Equal("33333333333", jT809_0X1200_0X1203.GNSS[0].GNSSData.PlatformId3); | |||||
Assert.Equal(3u, jT809_0X1200_0X1203.GNSS[0].GNSSData.Alarm3); | |||||
Assert.Equal(JT809_VehiclePositionEncrypt.已加密, jT809_0X1200_0X1203.GNSS[1].GNSSData.Encrypt); | |||||
Assert.Equal("11111111111", jT809_0X1200_0X1203.GNSS[1].GNSSData.PlatformId1); | |||||
Assert.Equal(1u, jT809_0X1200_0X1203.GNSS[1].GNSSData.Alarm1); | |||||
Assert.Equal("22222222222", jT809_0X1200_0X1203.GNSS[1].GNSSData.PlatformId2); | |||||
Assert.Equal(2u, jT809_0X1200_0X1203.GNSS[1].GNSSData.Alarm2); | |||||
Assert.Equal("33333333333", jT809_0X1200_0X1203.GNSS[1].GNSSData.PlatformId3); | |||||
Assert.Equal(3u, jT809_0X1200_0X1203.GNSS[1].GNSSData.Alarm3); | |||||
} | |||||
} | } | ||||
} | } |
@@ -50,26 +50,26 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
{ | { | ||||
JT809_0x1400_0x1402 jT809_0x1400_0x1402 = new JT809_0x1400_0x1402 | JT809_0x1400_0x1402 jT809_0x1400_0x1402 = new JT809_0x1400_0x1402 | ||||
{ | { | ||||
SourcePlatformId = "30313233343536373839", | |||||
SourcePlatformId = "12345678900", | |||||
WarnType = JT809WarnType.偏离路线报警, | WarnType = JT809WarnType.偏离路线报警, | ||||
WarnTime = DateTime.Parse("2020-04-23"), | WarnTime = DateTime.Parse("2020-04-23"), | ||||
StartTime= DateTime.Parse("2020-04-23"), | StartTime= DateTime.Parse("2020-04-23"), | ||||
EndTime= DateTime.Parse("2020-04-24"), | EndTime= DateTime.Parse("2020-04-24"), | ||||
VehicleNo="粤A11111", | VehicleNo="粤A11111", | ||||
VehicleColor= JT809VehicleColorType.蓝色, | VehicleColor= JT809VehicleColorType.蓝色, | ||||
DestinationPlatformId = "30313233343536373839", | |||||
DestinationPlatformId = "12345678900", | |||||
InfoContent = "gfdf454553", | InfoContent = "gfdf454553", | ||||
}; | }; | ||||
var hex = JT809_2019_Serializer.Serialize(jT809_0x1400_0x1402).ToHexString(); | var hex = JT809_2019_Serializer.Serialize(jT809_0x1400_0x1402).ToHexString(); | ||||
Assert.Equal("0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000000000000A67666466343534353533", hex); | |||||
Assert.Equal("3132333435363738393030000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000013132333435363738393030000000000000000A67666466343534353533", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void Test_2019_2() | public void Test_2019_2() | ||||
{ | { | ||||
var bytes = "0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000000000000A67666466343534353533".ToHexBytes(); | |||||
var bytes = "3132333435363738393030000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000013132333435363738393030000000000000000A67666466343534353533".ToHexBytes(); | |||||
JT809_0x1400_0x1402 jT809_0x1400_0x1402 = JT809_2019_Serializer.Deserialize<JT809_0x1400_0x1402>(bytes); | JT809_0x1400_0x1402 jT809_0x1400_0x1402 = JT809_2019_Serializer.Deserialize<JT809_0x1400_0x1402>(bytes); | ||||
Assert.Equal("30313233343536373839", jT809_0x1400_0x1402.SourcePlatformId); | |||||
Assert.Equal("12345678900", jT809_0x1400_0x1402.SourcePlatformId); | |||||
Assert.Equal("gfdf454553", jT809_0x1400_0x1402.InfoContent); | Assert.Equal("gfdf454553", jT809_0x1400_0x1402.InfoContent); | ||||
Assert.Equal(JT809WarnType.偏离路线报警, jT809_0x1400_0x1402.WarnType); | Assert.Equal(JT809WarnType.偏离路线报警, jT809_0x1400_0x1402.WarnType); | ||||
Assert.Equal((uint)10, jT809_0x1400_0x1402.InfoLength); | Assert.Equal((uint)10, jT809_0x1400_0x1402.InfoLength); | ||||
@@ -78,7 +78,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
Assert.Equal(DateTime.Parse("2020-04-24"), jT809_0x1400_0x1402.EndTime); | Assert.Equal(DateTime.Parse("2020-04-24"), jT809_0x1400_0x1402.EndTime); | ||||
Assert.Equal("粤A11111", jT809_0x1400_0x1402.VehicleNo); | Assert.Equal("粤A11111", jT809_0x1400_0x1402.VehicleNo); | ||||
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1402.VehicleColor); | Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1402.VehicleColor); | ||||
Assert.Equal("30313233343536373839", jT809_0x1400_0x1402.DestinationPlatformId); | |||||
Assert.Equal("12345678900", jT809_0x1400_0x1402.DestinationPlatformId); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -43,27 +43,27 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
{ | { | ||||
JT809_0x1400_0x1403 jT809_0x1400_0x1403 = new JT809_0x1400_0x1403 | JT809_0x1400_0x1403 jT809_0x1400_0x1403 = new JT809_0x1400_0x1403 | ||||
{ | { | ||||
SourcePlatformId = "30313233343536373839", | |||||
SourcePlatformId = "12345678900", | |||||
WarnType = JT809WarnType.偏离路线报警, | WarnType = JT809WarnType.偏离路线报警, | ||||
WarnTime = DateTime.Parse("2020-04-23"), | WarnTime = DateTime.Parse("2020-04-23"), | ||||
StartTime = DateTime.Parse("2020-04-23"), | StartTime = DateTime.Parse("2020-04-23"), | ||||
EndTime = DateTime.Parse("2020-04-24"), | EndTime = DateTime.Parse("2020-04-24"), | ||||
VehicleNo = "粤A11111", | VehicleNo = "粤A11111", | ||||
VehicleColor = JT809VehicleColorType.蓝色, | VehicleColor = JT809VehicleColorType.蓝色, | ||||
DestinationPlatformId = "30313233343536373839", | |||||
DestinationPlatformId = "12345678900", | |||||
InfoContent = "gfdf454553", | InfoContent = "gfdf454553", | ||||
DRVLineId=55 | DRVLineId=55 | ||||
}; | }; | ||||
var hex = JT809_2019_Serializer.Serialize(jT809_0x1400_0x1403).ToHexString(); | var hex = JT809_2019_Serializer.Serialize(jT809_0x1400_0x1403).ToHexString(); | ||||
Assert.Equal("0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000370000000A67666466343534353533", hex); | |||||
Assert.Equal("00000000000002DFDC1C34000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C1413131313131000000000000000000000000000100000000000002DFDC1C34000000370000000A67666466343534353533", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void Test_2019_2() | public void Test_2019_2() | ||||
{ | { | ||||
var bytes = "0000000000000000000000000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C141313131313100000000000000000000000000010000000000000000000000000000370000000A67666466343534353533".ToHexBytes(); | |||||
var bytes = "00000000000002DFDC1C34000B000000005EA06A00000000005EA06A00000000005EA1BB80D4C1413131313131000000000000000000000000000100000000000002DFDC1C34000000370000000A67666466343534353533".ToHexBytes(); | |||||
JT809_0x1400_0x1403 jT809_0x1400_0x1403 = JT809_2019_Serializer.Deserialize<JT809_0x1400_0x1403>(bytes); | JT809_0x1400_0x1403 jT809_0x1400_0x1403 = JT809_2019_Serializer.Deserialize<JT809_0x1400_0x1403>(bytes); | ||||
Assert.Equal("30313233343536373839", jT809_0x1400_0x1403.SourcePlatformId); | |||||
Assert.Equal("12345678900", jT809_0x1400_0x1403.SourcePlatformId); | |||||
Assert.Equal("gfdf454553", jT809_0x1400_0x1403.InfoContent); | Assert.Equal("gfdf454553", jT809_0x1400_0x1403.InfoContent); | ||||
Assert.Equal(JT809WarnType.偏离路线报警, jT809_0x1400_0x1403.WarnType); | Assert.Equal(JT809WarnType.偏离路线报警, jT809_0x1400_0x1403.WarnType); | ||||
Assert.Equal((uint)10, jT809_0x1400_0x1403.InfoLength); | Assert.Equal((uint)10, jT809_0x1400_0x1403.InfoLength); | ||||
@@ -72,7 +72,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
Assert.Equal(DateTime.Parse("2020-04-24"), jT809_0x1400_0x1403.EndTime); | Assert.Equal(DateTime.Parse("2020-04-24"), jT809_0x1400_0x1403.EndTime); | ||||
Assert.Equal("粤A11111", jT809_0x1400_0x1403.VehicleNo); | Assert.Equal("粤A11111", jT809_0x1400_0x1403.VehicleNo); | ||||
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1403.VehicleColor); | Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1403.VehicleColor); | ||||
Assert.Equal("30313233343536373839", jT809_0x1400_0x1403.DestinationPlatformId); | |||||
Assert.Equal("12345678900", jT809_0x1400_0x1403.DestinationPlatformId); | |||||
Assert.Equal(55u, jT809_0x1400_0x1403.DRVLineId); | Assert.Equal(55u, jT809_0x1400_0x1403.DRVLineId); | ||||
} | } | ||||
} | } | ||||
@@ -47,25 +47,25 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
{ | { | ||||
JT809_0x9400_0x9402 jT809_0x9400_0x9402 = new JT809_0x9400_0x9402 | JT809_0x9400_0x9402 jT809_0x9400_0x9402 = new JT809_0x9400_0x9402 | ||||
{ | { | ||||
SourcePlatformId = "30313233343536373839", | |||||
SourcePlatformId = "12345678901", | |||||
WarnType = JT809WarnType.劫警, | WarnType = JT809WarnType.劫警, | ||||
WarnTime = DateTime.Parse("2020-04-26 18:23:00"), | WarnTime = DateTime.Parse("2020-04-26 18:23:00"), | ||||
StartTime = DateTime.Parse("2020-04-26 18:23:00"), | StartTime = DateTime.Parse("2020-04-26 18:23:00"), | ||||
EndTime = DateTime.Parse("2020-04-26 19:23:00"), | EndTime = DateTime.Parse("2020-04-26 19:23:00"), | ||||
VehicleNo= "粤A12345", | VehicleNo= "粤A12345", | ||||
VehicleColor= JT809VehicleColorType.蓝色, | VehicleColor= JT809VehicleColorType.蓝色, | ||||
DestinationPlatformId = "30313233343536373839", | |||||
DestinationPlatformId = "12345678901", | |||||
DRVLineId=22, | DRVLineId=22, | ||||
WarnContent = "劫警", | WarnContent = "劫警", | ||||
}; | }; | ||||
var hex = JT809_2019_Serializer.Serialize(jT809_0x9400_0x9402).ToHexString(); | var hex = JT809_2019_Serializer.Serialize(jT809_0x9400_0x9402).ToHexString(); | ||||
Assert.Equal("0000000000000000000000000A000000005EA56104000000005EA56104000000005EA56F14D4C1413132333435000000000000000000000000000100000000000000000000000000001600000004BDD9BEAF", hex); | |||||
Assert.Equal("00000000000002DFDC1C35000A000000005EA56104000000005EA56104000000005EA56F14D4C1413132333435000000000000000000000000000100000000000002DFDC1C350000001600000004BDD9BEAF", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void Test_2019_2() | public void Test_2019_2() | ||||
{ | { | ||||
var bytes = "0000000000000000000000000A000000005EA56104000000005EA56104000000005EA56F14D4C1413132333435000000000000000000000000000100000000000000000000000000001600000004BDD9BEAF".ToHexBytes(); | |||||
var bytes = "00000000000002DFDC1C35000A000000005EA56104000000005EA56104000000005EA56F14D4C1413132333435000000000000000000000000000100000000000002DFDC1C350000001600000004BDD9BEAF".ToHexBytes(); | |||||
JT809_0x9400_0x9402 jT809_0x9400_0x9402 = JT809_2019_Serializer.Deserialize<JT809_0x9400_0x9402>(bytes); | JT809_0x9400_0x9402 jT809_0x9400_0x9402 = JT809_2019_Serializer.Deserialize<JT809_0x9400_0x9402>(bytes); | ||||
Assert.Equal(JT809WarnType.劫警, jT809_0x9400_0x9402.WarnType); | Assert.Equal(JT809WarnType.劫警, jT809_0x9400_0x9402.WarnType); | ||||
Assert.Equal(DateTime.Parse("2020-04-26 18:23:00"), jT809_0x9400_0x9402.WarnTime); | Assert.Equal(DateTime.Parse("2020-04-26 18:23:00"), jT809_0x9400_0x9402.WarnTime); | ||||
@@ -74,8 +74,8 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
Assert.Equal(DateTime.Parse("2020-04-26 19:23:00"), jT809_0x9400_0x9402.EndTime); | Assert.Equal(DateTime.Parse("2020-04-26 19:23:00"), jT809_0x9400_0x9402.EndTime); | ||||
Assert.Equal("粤A12345", jT809_0x9400_0x9402.VehicleNo); | Assert.Equal("粤A12345", jT809_0x9400_0x9402.VehicleNo); | ||||
Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x9400_0x9402.VehicleColor); | Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x9400_0x9402.VehicleColor); | ||||
Assert.Equal("30313233343536373839", jT809_0x9400_0x9402.DestinationPlatformId); | |||||
Assert.Equal("30313233343536373839", jT809_0x9400_0x9402.SourcePlatformId); | |||||
Assert.Equal("12345678901", jT809_0x9400_0x9402.DestinationPlatformId); | |||||
Assert.Equal("12345678901", jT809_0x9400_0x9402.SourcePlatformId); | |||||
Assert.Equal(22u, jT809_0x9400_0x9402.DRVLineId); | Assert.Equal(22u, jT809_0x9400_0x9402.DRVLineId); | ||||
Assert.Equal(4u, jT809_0x9400_0x9402.WarnLength); | Assert.Equal(4u, jT809_0x9400_0x9402.WarnLength); | ||||
} | } | ||||
@@ -47,24 +47,24 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
{ | { | ||||
JT809_0x9400_0x9403 jT809_0x9400_0x9403 = new JT809_0x9400_0x9403 | JT809_0x9400_0x9403 jT809_0x9400_0x9403 = new JT809_0x9400_0x9403 | ||||
{ | { | ||||
SourcePlatformId = "30313233343536373839", | |||||
SourcePlatformId = "12345678901", | |||||
WarnType = JT809WarnType.疲劳驾驶报警, | WarnType = JT809WarnType.疲劳驾驶报警, | ||||
WarnTime = DateTime.Parse("2020-04-26 18:24:00"), | WarnTime = DateTime.Parse("2020-04-26 18:24:00"), | ||||
StartTime = DateTime.Parse("2020-04-26 18:24:00"), | StartTime = DateTime.Parse("2020-04-26 18:24:00"), | ||||
EndTime = DateTime.Parse("2020-04-26 19:24:00"), | EndTime = DateTime.Parse("2020-04-26 19:24:00"), | ||||
VehicleNo = "粤A5647", | VehicleNo = "粤A5647", | ||||
VehicleColor = JT809VehicleColorType.黄色, | VehicleColor = JT809VehicleColorType.黄色, | ||||
DestinationPlatformId = "30313233343536373839", | |||||
DestinationPlatformId = "12345678901", | |||||
WarnContent = "疲劳驾驶报警", | WarnContent = "疲劳驾驶报警", | ||||
}; | }; | ||||
var hex = JT809_2019_Serializer.Serialize(jT809_0x9400_0x9403).ToHexString(); | var hex = JT809_2019_Serializer.Serialize(jT809_0x9400_0x9403).ToHexString(); | ||||
Assert.Equal("00000000000000000000000002000000005EA56140000000005EA56140000000005EA56F50D4C141353634370000000000000000000000000000020000000000000000000000000000000000000CC6A3C0CDBCDDCABBB1A8BEAF", hex); | |||||
Assert.Equal("00000000000002DFDC1C350002000000005EA56140000000005EA56140000000005EA56F50D4C1413536343700000000000000000000000000000200000000000002DFDC1C35000000000000000CC6A3C0CDBCDDCABBB1A8BEAF", hex); | |||||
} | } | ||||
[Fact] | [Fact] | ||||
public void Test_2019_2() | public void Test_2019_2() | ||||
{ | { | ||||
var bytes = "00000000000000000000000002000000005EA56140000000005EA56140000000005EA56F50D4C141353634370000000000000000000000000000020000000000000000000000000000000000000CC6A3C0CDBCDDCABBB1A8BEAF".ToHexBytes(); | |||||
var bytes = "00000000000002DFDC1C350002000000005EA56140000000005EA56140000000005EA56F50D4C1413536343700000000000000000000000000000200000000000002DFDC1C35000000000000000CC6A3C0CDBCDDCABBB1A8BEAF".ToHexBytes(); | |||||
JT809_0x9400_0x9403 jT809_0x9400_0x9403 = JT809_2019_Serializer.Deserialize<JT809_0x9400_0x9403>(bytes); | JT809_0x9400_0x9403 jT809_0x9400_0x9403 = JT809_2019_Serializer.Deserialize<JT809_0x9400_0x9403>(bytes); | ||||
Assert.Equal(JT809WarnType.疲劳驾驶报警, jT809_0x9400_0x9403.WarnType); | Assert.Equal(JT809WarnType.疲劳驾驶报警, jT809_0x9400_0x9403.WarnType); | ||||
Assert.Equal(DateTime.Parse("2020-04-26 18:24:00"), jT809_0x9400_0x9403.WarnTime); | Assert.Equal(DateTime.Parse("2020-04-26 18:24:00"), jT809_0x9400_0x9403.WarnTime); | ||||
@@ -72,8 +72,8 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||||
Assert.Equal(DateTime.Parse("2020-04-26 19:24:00"), jT809_0x9400_0x9403.EndTime); | Assert.Equal(DateTime.Parse("2020-04-26 19:24:00"), jT809_0x9400_0x9403.EndTime); | ||||
Assert.Equal("疲劳驾驶报警", jT809_0x9400_0x9403.WarnContent); | Assert.Equal("疲劳驾驶报警", jT809_0x9400_0x9403.WarnContent); | ||||
Assert.Equal((uint)12, jT809_0x9400_0x9403.WarnLength); | Assert.Equal((uint)12, jT809_0x9400_0x9403.WarnLength); | ||||
Assert.Equal("30313233343536373839", jT809_0x9400_0x9403.DestinationPlatformId); | |||||
Assert.Equal("30313233343536373839", jT809_0x9400_0x9403.SourcePlatformId); | |||||
Assert.Equal("12345678901", jT809_0x9400_0x9403.DestinationPlatformId); | |||||
Assert.Equal("12345678901", jT809_0x9400_0x9403.SourcePlatformId); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -4,6 +4,7 @@ using JT809.Protocol.Exceptions; | |||||
using JT809.Protocol.Extensions; | using JT809.Protocol.Extensions; | ||||
using JT809.Protocol.Formatters; | using JT809.Protocol.Formatters; | ||||
using JT809.Protocol.MessagePack; | using JT809.Protocol.MessagePack; | ||||
using System; | |||||
namespace JT809.Protocol.MessageBody | namespace JT809.Protocol.MessageBody | ||||
{ | { | ||||
@@ -70,7 +71,7 @@ namespace JT809.Protocol.MessageBody | |||||
} | } | ||||
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition); | writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition); | ||||
} | } | ||||
catch | |||||
catch(Exception ex) | |||||
{ | { | ||||
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}"); | throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}"); | ||||
} | } | ||||
@@ -49,21 +49,21 @@ namespace JT809.Protocol.SubMessageBody | |||||
JT809_0x1200_0x1201 value = new JT809_0x1200_0x1201(); | JT809_0x1200_0x1201 value = new JT809_0x1200_0x1201(); | ||||
if(config.Version== JT809Version.JTT2011) | if(config.Version== JT809Version.JTT2011) | ||||
{ | { | ||||
value.PlateformId = reader.ReadBigNumber(11); | |||||
value.ProducerId = reader.ReadBigNumber(11); | |||||
value.PlateformId = reader.ReadString(11); | |||||
value.ProducerId = reader.ReadString(11); | |||||
#warning 此处应该改成大端模式读取数据吧 | #warning 此处应该改成大端模式读取数据吧 | ||||
value.TerminalModelType = reader.ReadBigNumber(20); | |||||
value.TerminalId = reader.ReadBigNumber(7); | |||||
value.TerminalModelType = reader.ReadString(20); | |||||
value.TerminalId = reader.ReadString(7); | |||||
value.TerminalId = value.TerminalId.ToUpper(); | value.TerminalId = value.TerminalId.ToUpper(); | ||||
value.TerminalSimCode = reader.ReadString(12); | value.TerminalSimCode = reader.ReadString(12); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
value.PlateformId = reader.ReadBigNumber(11); | |||||
value.ProducerId = reader.ReadBigNumber(11); | |||||
value.TerminalModelType = reader.ReadBigNumber(30); | |||||
value.PlateformId = reader.ReadString(11); | |||||
value.ProducerId = reader.ReadString(11); | |||||
value.TerminalModelType = reader.ReadString(30); | |||||
value.IMIEId = reader.ReadString(15); | value.IMIEId = reader.ReadString(15); | ||||
value.TerminalId = reader.ReadBigNumber(30); | |||||
value.TerminalId = reader.ReadString(30); | |||||
value.TerminalId = value.TerminalId.ToUpper(); | value.TerminalId = value.TerminalId.ToUpper(); | ||||
value.TerminalSimCode = reader.ReadString(13); | value.TerminalSimCode = reader.ReadString(13); | ||||
} | } | ||||
@@ -74,21 +74,21 @@ namespace JT809.Protocol.SubMessageBody | |||||
{ | { | ||||
if(config.Version== JT809Version.JTT2011) | if(config.Version== JT809Version.JTT2011) | ||||
{ | { | ||||
writer.WriteBigNumber(value.PlateformId, 11); | |||||
writer.WriteBigNumber(value.ProducerId, 11); | |||||
writer.WriteStringPadRight(value.PlateformId, 11); | |||||
writer.WriteStringPadRight(value.ProducerId, 11); | |||||
#warning 此处应该改成大端模式读取数据吧 | #warning 此处应该改成大端模式读取数据吧 | ||||
writer.WriteBigNumber(value.TerminalModelType, 20); | |||||
writer.WriteBigNumber(value.TerminalId.ToUpper(), 7); | |||||
writer.WriteStringPadRight(value.TerminalModelType, 20); | |||||
writer.WriteStringPadRight(value.TerminalId.ToUpper(), 7); | |||||
writer.WriteStringPadLeft(value.TerminalSimCode, 12); | writer.WriteStringPadLeft(value.TerminalSimCode, 12); | ||||
} | } | ||||
else | else | ||||
{ | { | ||||
writer.WriteBigNumber(value.PlateformId, 11); | |||||
writer.WriteBigNumber(value.ProducerId, 11); | |||||
writer.WriteBigNumber(value.TerminalModelType, 30); | |||||
writer.WriteStringPadRight(value.PlateformId, 11); | |||||
writer.WriteStringPadRight(value.ProducerId, 11); | |||||
writer.WriteStringPadRight(value.TerminalModelType, 30); | |||||
writer.WriteStringPadRight(value.IMIEId, 15); | writer.WriteStringPadRight(value.IMIEId, 15); | ||||
writer.WriteBigNumber(value.TerminalId.ToUpper(), 30); | |||||
writer.WriteStringPadLeft(value.TerminalSimCode, 13); | |||||
writer.WriteStringPadRight(value.TerminalId.ToUpper(), 30); | |||||
writer.WriteStringPadRight(value.TerminalSimCode, 13); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -54,11 +54,11 @@ namespace JT809.Protocol.SubMessageBody | |||||
value.GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); | value.GNSSData.Encrypt = (JT809_VehiclePositionEncrypt)reader.ReadByte(); | ||||
value.GNSSData.DataLength = reader.ReadUInt32(); | value.GNSSData.DataLength = reader.ReadUInt32(); | ||||
value.GNSSData.GnssData = reader.ReadArray((int)value.GNSSData.DataLength).ToArray(); | value.GNSSData.GnssData = reader.ReadArray((int)value.GNSSData.DataLength).ToArray(); | ||||
value.GNSSData.PlatformId1 = reader.ReadBigNumber(11); | |||||
value.GNSSData.PlatformId1 = reader.ReadString(11); | |||||
value.GNSSData.Alarm1 = reader.ReadUInt32(); | value.GNSSData.Alarm1 = reader.ReadUInt32(); | ||||
value.GNSSData.PlatformId2 = reader.ReadBigNumber(11); | |||||
value.GNSSData.PlatformId2 = reader.ReadString(11); | |||||
value.GNSSData.Alarm2 = reader.ReadUInt32(); | value.GNSSData.Alarm2 = reader.ReadUInt32(); | ||||
value.GNSSData.PlatformId3 = reader.ReadBigNumber(11); | |||||
value.GNSSData.PlatformId3 = reader.ReadString(11); | |||||
value.GNSSData.Alarm3 = reader.ReadUInt32(); | value.GNSSData.Alarm3 = reader.ReadUInt32(); | ||||
} | } | ||||
return value; | return value; | ||||
@@ -90,13 +90,13 @@ namespace JT809.Protocol.SubMessageBody | |||||
writer.WriteByte((byte)value.GNSSData.Encrypt); | writer.WriteByte((byte)value.GNSSData.Encrypt); | ||||
writer.Skip(4, out int position); | writer.Skip(4, out int position); | ||||
writer.WriteArray(value.GNSSData.GnssData); | writer.WriteArray(value.GNSSData.GnssData); | ||||
writer.WriteBigNumber(value.GNSSData.PlatformId1,11); | |||||
writer.WriteUInt32Return((uint)(writer.GetCurrentPosition() - position - 4), position); | |||||
writer.WriteStringPadRight(value.GNSSData.PlatformId1,11); | |||||
writer.WriteUInt32(value.GNSSData.Alarm1); | writer.WriteUInt32(value.GNSSData.Alarm1); | ||||
writer.WriteBigNumber(value.GNSSData.PlatformId2,11); | |||||
writer.WriteStringPadRight(value.GNSSData.PlatformId2,11); | |||||
writer.WriteUInt32(value.GNSSData.Alarm2); | writer.WriteUInt32(value.GNSSData.Alarm2); | ||||
writer.WriteBigNumber(value.GNSSData.PlatformId3,11); | |||||
writer.WriteStringPadRight(value.GNSSData.PlatformId3,11); | |||||
writer.WriteUInt32(value.GNSSData.Alarm3); | writer.WriteUInt32(value.GNSSData.Alarm3); | ||||
writer.WriteUInt32Return((uint)(writer.GetCurrentPosition() - position - 4), position); | |||||
} | } | ||||
} | } | ||||
} | } | ||||
@@ -80,7 +80,7 @@ namespace JT809.Protocol.SubMessageBody | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
value.SourcePlatformId = reader.ReadBigNumber(11); | |||||
value.SourcePlatformId = reader.ReadString(11); | |||||
} | } | ||||
value.WarnType = (JT809WarnType)reader.ReadUInt16(); | value.WarnType = (JT809WarnType)reader.ReadUInt16(); | ||||
value.WarnTime = reader.ReadUTCDateTime(); | value.WarnTime = reader.ReadUTCDateTime(); | ||||
@@ -95,7 +95,7 @@ namespace JT809.Protocol.SubMessageBody | |||||
#warning 此处车牌号文档长度有误,使用旧版长度21 | #warning 此处车牌号文档长度有误,使用旧版长度21 | ||||
value.VehicleNo = reader.ReadString(21); | value.VehicleNo = reader.ReadString(21); | ||||
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); | value.VehicleColor = (JT809VehicleColorType)reader.ReadByte(); | ||||
value.DestinationPlatformId = reader.ReadBigNumber(11); | |||||
value.DestinationPlatformId = reader.ReadString(11); | |||||
value.DRVLineId = reader.ReadUInt32(); | value.DRVLineId = reader.ReadUInt32(); | ||||
} | } | ||||
value.InfoLength = reader.ReadUInt32(); | value.InfoLength = reader.ReadUInt32(); | ||||
@@ -111,7 +111,7 @@ namespace JT809.Protocol.SubMessageBody | |||||
} | } | ||||
else | else | ||||
{ | { | ||||
writer.WriteBigNumber(value.SourcePlatformId,11); | |||||
writer.WriteStringPadRight(value.SourcePlatformId,11); | |||||
} | } | ||||
writer.WriteUInt16((ushort)value.WarnType); | writer.WriteUInt16((ushort)value.WarnType); | ||||
writer.WriteUTCDateTime(value.WarnTime); | writer.WriteUTCDateTime(value.WarnTime); | ||||
@@ -125,7 +125,7 @@ namespace JT809.Protocol.SubMessageBody | |||||
writer.WriteUTCDateTime(value.EndTime); | writer.WriteUTCDateTime(value.EndTime); | ||||
writer.WriteStringPadRight(value.VehicleNo,21); | writer.WriteStringPadRight(value.VehicleNo,21); | ||||
writer.WriteByte((byte)value.VehicleColor); | writer.WriteByte((byte)value.VehicleColor); | ||||
writer.WriteBigNumber(value.DestinationPlatformId,11); | |||||
writer.WriteStringPadRight(value.DestinationPlatformId,11); | |||||
writer.WriteUInt32(value.DRVLineId); | writer.WriteUInt32(value.DRVLineId); | ||||
} | } | ||||
// 先计算内容长度(汉字为两个字节) | // 先计算内容长度(汉字为两个字节) | ||||