@@ -1,17 +1,14 @@ | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using Xunit; | |||
using JT809.Protocol; | |||
using JT809.Protocol.Extensions; | |||
using JT809.Protocol.MessageBody; | |||
using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Internal; | |||
using JT809.Protocol.Enums; | |||
using JT808.Protocol; | |||
using JT808.Protocol.Interfaces; | |||
using JT808.Protocol.MessageBody; | |||
using JT809.Protocol.Metadata; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
@@ -30,31 +27,34 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
private JT809Serializer JT809_2019_Serializer = new JT809Serializer(new DefaultGlobalConfig() { Version = JT809Version.JTT2019 }); | |||
private JT808Serializer JT808Serializer_2019; | |||
public JT809_0x1200_0x1202Test() { | |||
public JT809_0x1200_0x1202Test() | |||
{ | |||
IJT808Config jT808Config = new DefaultGlobal808_2019Config(); | |||
JT808Serializer_2019 = new JT808Serializer(jT808Config); | |||
JT808Serializer_2019 = new JT808Serializer(jT808Config); | |||
} | |||
[Fact] | |||
public void Test1() | |||
{ | |||
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.Month = 7; | |||
jT809_0X1200_0X1202.VehiclePosition.Year = 2012; | |||
jT809_0X1200_0X1202.VehiclePosition.Hour = 15; | |||
jT809_0X1200_0X1202.VehiclePosition.Minute = 15; | |||
jT809_0X1200_0X1202.VehiclePosition.Second = 15; | |||
jT809_0X1200_0X1202.VehiclePosition.Lon = 133123456; | |||
jT809_0X1200_0X1202.VehiclePosition.Lat = 24123456; | |||
jT809_0X1200_0X1202.VehiclePosition.Vec1 = 50; | |||
jT809_0X1200_0X1202.VehiclePosition.Vec2 = 51; | |||
jT809_0X1200_0X1202.VehiclePosition.Vec3 = 150; | |||
jT809_0X1200_0X1202.VehiclePosition.Direction = 45; | |||
jT809_0X1200_0X1202.VehiclePosition.Altitude = 45; | |||
jT809_0X1200_0X1202.VehiclePosition.State = 3; | |||
jT809_0X1200_0X1202.VehiclePosition.Alarm = 257; | |||
jT809_0X1200_0X1202.VehiclePosition = new VehiclePositionPropertieOf2011 | |||
{ | |||
Day = 19, | |||
Month = 7, | |||
Year = 2012, | |||
Hour = 15, | |||
Minute = 15, | |||
Second = 15, | |||
Lon = 133123456, | |||
Lat = 24123456, | |||
Vec1 = 50, | |||
Vec2 = 51, | |||
Vec3 = 150, | |||
Direction = 45, | |||
Altitude = 45, | |||
State = 3, | |||
Alarm = 257, | |||
}; | |||
var hex = JT809Serializer.Serialize(jT809_0X1200_0X1202).ToHexString(); | |||
//"00 13 07 07 DC 0F 0F 0F 07 EF 4D 80 01 70 18 40 00 32 00 33 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 01 01" | |||
Assert.Equal("00130707DC0F0F0F07EF4D80017018400032003300000096002D002D0000000300000101", hex); | |||
@@ -65,35 +65,37 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
var bytes = "00 13 07 07 DC 0F 0F 0F 07 EF 4D 80 01 70 18 40 00 32 00 33 00 00 00 96 00 2D 00 2D 00 00 00 03 00 00 01 01".ToHexBytes(); | |||
JT809_0x1200_0x1202 jT809_0X1200_0X1202 = JT809Serializer.Deserialize<JT809_0x1200_0x1202>(bytes); | |||
Assert.Equal(19, jT809_0X1200_0X1202.VehiclePosition.Day); | |||
Assert.Equal(7, jT809_0X1200_0X1202.VehiclePosition.Month); | |||
Assert.Equal(2012, jT809_0X1200_0X1202.VehiclePosition.Year); | |||
Assert.Equal(15, jT809_0X1200_0X1202.VehiclePosition.Hour); | |||
Assert.Equal(15, jT809_0X1200_0X1202.VehiclePosition.Minute); | |||
Assert.Equal(15, jT809_0X1200_0X1202.VehiclePosition.Second); | |||
Assert.Equal((uint)133123456, jT809_0X1200_0X1202.VehiclePosition.Lon); | |||
Assert.Equal((uint)24123456, jT809_0X1200_0X1202.VehiclePosition.Lat); | |||
Assert.Equal(50, jT809_0X1200_0X1202.VehiclePosition.Vec1); | |||
Assert.Equal(51, jT809_0X1200_0X1202.VehiclePosition.Vec2); | |||
Assert.Equal((ushort)45, jT809_0X1200_0X1202.VehiclePosition.Direction); | |||
Assert.Equal((ushort)45, jT809_0X1200_0X1202.VehiclePosition.Altitude); | |||
Assert.Equal((uint)3, jT809_0X1200_0X1202.VehiclePosition.State); | |||
Assert.Equal((uint)257, jT809_0X1200_0X1202.VehiclePosition.Alarm); | |||
var vehiclePosition = jT809_0X1200_0X1202.VehiclePosition as VehiclePositionPropertieOf2011; | |||
Assert.Equal(19, vehiclePosition.Day); | |||
Assert.Equal(7, vehiclePosition.Month); | |||
Assert.Equal(2012, vehiclePosition.Year); | |||
Assert.Equal(15, vehiclePosition.Hour); | |||
Assert.Equal(15, vehiclePosition.Minute); | |||
Assert.Equal(15, vehiclePosition.Second); | |||
Assert.Equal((uint)133123456, vehiclePosition.Lon); | |||
Assert.Equal((uint)24123456, vehiclePosition.Lat); | |||
Assert.Equal(50, vehiclePosition.Vec1); | |||
Assert.Equal(51, vehiclePosition.Vec2); | |||
Assert.Equal((ushort)45, vehiclePosition.Direction); | |||
Assert.Equal((ushort)45, vehiclePosition.Altitude); | |||
Assert.Equal((uint)3, vehiclePosition.State); | |||
Assert.Equal((uint)257, vehiclePosition.Alarm); | |||
} | |||
[Fact] | |||
public void Test_2019_1() | |||
{ | |||
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_0X1202.VehiclePosition = new VehiclePositionPropertieOf2019 | |||
{ | |||
Encrypt = JT809_VehiclePositionEncrypt.已加密, | |||
PlatformId1 = "11111111111", | |||
Alarm1 = 1, | |||
PlatformId2 = "22222222222", | |||
Alarm2 = 2, | |||
PlatformId3 = "33333333333", | |||
Alarm3 = 3, | |||
}; | |||
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1202).ToHexString(); | |||
Assert.Equal("0100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003", hex); | |||
@@ -104,13 +106,14 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
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); | |||
var gnssData = jT809_0X1200_0X1202.VehiclePosition as VehiclePositionPropertieOf2019; | |||
Assert.Equal(JT809_VehiclePositionEncrypt.已加密, gnssData.Encrypt); | |||
Assert.Equal("11111111111", gnssData.PlatformId1); | |||
Assert.Equal(1u, gnssData.Alarm1); | |||
Assert.Equal("22222222222", gnssData.PlatformId2); | |||
Assert.Equal(2u, gnssData.Alarm2); | |||
Assert.Equal("33333333333", gnssData.PlatformId3); | |||
Assert.Equal(3u, gnssData.Alarm3); | |||
} | |||
/// <summary> | |||
@@ -142,15 +145,17 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
var jt808_0x0200Hex = JT808Serializer_2019.Serialize(jT808UploadLocationRequest, JT808.Protocol.Enums.JT808Version.JTT2019); | |||
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 = jt808_0x0200Hex; | |||
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_0X1202.VehiclePosition = new VehiclePositionPropertieOf2019 | |||
{ | |||
Encrypt = JT809_VehiclePositionEncrypt.已加密, | |||
GnssData = jt808_0x0200Hex, | |||
PlatformId1 = "11111111111", | |||
Alarm1 = 1, | |||
PlatformId2 = "22222222222", | |||
Alarm2 = 2, | |||
PlatformId3 = "33333333333", | |||
Alarm3 = 3, | |||
}; | |||
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1202).ToHexString(); | |||
Assert.Equal("0100000026000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003", hex); | |||
@@ -161,15 +166,16 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
var bytes = "0100000026000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003".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); | |||
var gnssData = jT809_0X1200_0X1202.VehiclePosition as VehiclePositionPropertieOf2019; | |||
Assert.Equal(JT809_VehiclePositionEncrypt.已加密, gnssData.Encrypt); | |||
Assert.Equal("11111111111", gnssData.PlatformId1); | |||
Assert.Equal(1u, gnssData.Alarm1); | |||
Assert.Equal("22222222222", gnssData.PlatformId2); | |||
Assert.Equal(2u, gnssData.Alarm2); | |||
Assert.Equal("33333333333", gnssData.PlatformId3); | |||
Assert.Equal(3u, gnssData.Alarm3); | |||
var jt808_0x0200Hex = jT809_0X1200_0X1202.GNSSData.GnssData; | |||
var jt808_0x0200Hex = gnssData.GnssData; | |||
var jt808_0x0200 = JT808Serializer_2019.Deserialize<JT808_0x0200>(jt808_0x0200Hex, JT808.Protocol.Enums.JT808Version.JTT2019); | |||
Assert.Equal((uint)1, jt808_0x0200.AlarmFlag); | |||
Assert.Equal(DateTime.Parse("2018-07-15 10:10:10"), jt808_0x0200.GPSTime); | |||
@@ -9,6 +9,7 @@ using JT809.Protocol.Exceptions; | |||
using JT809.Protocol.SubMessageBody; | |||
using JT809.Protocol.Enums; | |||
using JT809.Protocol.Internal; | |||
using JT809.Protocol.Metadata; | |||
namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
@@ -23,58 +24,64 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
jT809_0X1200_0X1203.GNSS = new List<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.Month = 7; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Year = 2012; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Hour = 15; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Minute = 15; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Second = 15; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Lon = 133123456; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Lat = 24123456; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Vec1 = 50; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Vec2 = 51; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Vec3 = 150; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Direction = 45; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Altitude = 45; | |||
jT809_0X1200_0X1202_1.VehiclePosition.State = 3; | |||
jT809_0X1200_0X1202_1.VehiclePosition.Alarm = 257; | |||
jT809_0X1200_0X1202_1.VehiclePosition = new VehiclePositionPropertieOf2011 | |||
{ | |||
Day = 19, | |||
Month = 7, | |||
Year = 2012, | |||
Hour = 15, | |||
Minute = 15, | |||
Second = 15, | |||
Lon = 133123456, | |||
Lat = 24123456, | |||
Vec1 = 50, | |||
Vec2 = 51, | |||
Vec3 = 150, | |||
Direction = 45, | |||
Altitude = 45, | |||
State = 3, | |||
Alarm = 257, | |||
}; | |||
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.Month = 7; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Year = 2012; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Hour = 16; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Minute = 16; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Second = 16; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Lon = 133123456; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Lat = 24123456; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Vec1 = 50; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Vec2 = 51; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Vec3 = 150; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Direction = 45; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Altitude = 45; | |||
jT809_0X1200_0X1202_2.VehiclePosition.State = 3; | |||
jT809_0X1200_0X1202_2.VehiclePosition.Alarm = 257; | |||
jT809_0X1200_0X1202_2.VehiclePosition = new VehiclePositionPropertieOf2011 | |||
{ | |||
Day = 19, | |||
Month = 7, | |||
Year = 2012, | |||
Hour = 16, | |||
Minute = 16, | |||
Second = 16, | |||
Lon = 133123456, | |||
Lat = 24123456, | |||
Vec1 = 50, | |||
Vec2 = 51, | |||
Vec3 = 150, | |||
Direction = 45, | |||
Altitude = 45, | |||
State = 3, | |||
Alarm = 257, | |||
}; | |||
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.Month = 7; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Year = 2012; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Hour = 17; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Minute = 17; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Second = 17; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Lon = 133123456; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Lat = 24123456; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Vec1 = 50; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Vec2 = 51; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Vec3 = 150; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Direction = 45; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Altitude = 45; | |||
jT809_0X1200_0X1202_3.VehiclePosition.State = 3; | |||
jT809_0X1200_0X1202_3.VehiclePosition.Alarm = 257; | |||
jT809_0X1200_0X1202_3.VehiclePosition = new VehiclePositionPropertieOf2011 | |||
{ | |||
Day = 19, | |||
Month = 7, | |||
Year = 2012, | |||
Hour = 17, | |||
Minute = 17, | |||
Second = 17, | |||
Lon = 133123456, | |||
Lat = 24123456, | |||
Vec1 = 50, | |||
Vec2 = 51, | |||
Vec3 = 150, | |||
Direction = 45, | |||
Altitude = 45, | |||
State = 3, | |||
Alarm = 257, | |||
}; | |||
jT809_0X1200_0X1203.GNSS.Add(jT809_0X1200_0X1202_1); | |||
@@ -94,79 +101,86 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
Assert.Equal(3, jT809_0X1200_0X1203.GNSSCount); | |||
Assert.Equal(19, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Day); | |||
Assert.Equal(7, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Month); | |||
Assert.Equal(2012, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Year); | |||
Assert.Equal(15, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Hour); | |||
Assert.Equal(15, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Minute); | |||
Assert.Equal(15, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Second); | |||
Assert.Equal((uint)133123456, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Lon); | |||
Assert.Equal((uint)24123456, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Lat); | |||
Assert.Equal(50, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Vec1); | |||
Assert.Equal(51, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Vec2); | |||
Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Direction); | |||
Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Altitude); | |||
Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.State); | |||
Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[0].VehiclePosition.Alarm); | |||
Assert.Equal(19, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Day); | |||
Assert.Equal(7, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Month); | |||
Assert.Equal(2012, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Year); | |||
Assert.Equal(16, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Hour); | |||
Assert.Equal(16, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Minute); | |||
Assert.Equal(16, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Second); | |||
Assert.Equal((uint)133123456, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Lon); | |||
Assert.Equal((uint)24123456, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Lat); | |||
Assert.Equal(50, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Vec1); | |||
Assert.Equal(51, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Vec2); | |||
Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Direction); | |||
Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Altitude); | |||
Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.State); | |||
Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[1].VehiclePosition.Alarm); | |||
Assert.Equal(19, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Day); | |||
Assert.Equal(7, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Month); | |||
Assert.Equal(2012, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Year); | |||
Assert.Equal(17, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Hour); | |||
Assert.Equal(17, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Minute); | |||
Assert.Equal(17, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Second); | |||
Assert.Equal((uint)133123456, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Lon); | |||
Assert.Equal((uint)24123456, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Lat); | |||
Assert.Equal(50, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Vec1); | |||
Assert.Equal(51, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Vec2); | |||
Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Direction); | |||
Assert.Equal((ushort)45, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Altitude); | |||
Assert.Equal((uint)3, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.State); | |||
Assert.Equal((uint)257, jT809_0X1200_0X1203.GNSS[2].VehiclePosition.Alarm); | |||
var vehiclePosition1 = jT809_0X1200_0X1203.GNSS[0].VehiclePosition as VehiclePositionPropertieOf2011; | |||
var vehiclePosition2 = jT809_0X1200_0X1203.GNSS[1].VehiclePosition as VehiclePositionPropertieOf2011; | |||
var vehiclePosition3 = jT809_0X1200_0X1203.GNSS[2].VehiclePosition as VehiclePositionPropertieOf2011; | |||
Assert.Equal(19, vehiclePosition1.Day); | |||
Assert.Equal(7, vehiclePosition1.Month); | |||
Assert.Equal(2012, vehiclePosition1.Year); | |||
Assert.Equal(15, vehiclePosition1.Hour); | |||
Assert.Equal(15, vehiclePosition1.Minute); | |||
Assert.Equal(15, vehiclePosition1.Second); | |||
Assert.Equal((uint)133123456, vehiclePosition1.Lon); | |||
Assert.Equal((uint)24123456, vehiclePosition1.Lat); | |||
Assert.Equal(50, vehiclePosition1.Vec1); | |||
Assert.Equal(51, vehiclePosition1.Vec2); | |||
Assert.Equal((ushort)45, vehiclePosition1.Direction); | |||
Assert.Equal((ushort)45, vehiclePosition1.Altitude); | |||
Assert.Equal((uint)3, vehiclePosition1.State); | |||
Assert.Equal((uint)257, vehiclePosition1.Alarm); | |||
Assert.Equal(19, vehiclePosition2.Day); | |||
Assert.Equal(7, vehiclePosition2.Month); | |||
Assert.Equal(2012, vehiclePosition2.Year); | |||
Assert.Equal(16, vehiclePosition2.Hour); | |||
Assert.Equal(16, vehiclePosition2.Minute); | |||
Assert.Equal(16, vehiclePosition2.Second); | |||
Assert.Equal((uint)133123456, vehiclePosition2.Lon); | |||
Assert.Equal((uint)24123456, vehiclePosition2.Lat); | |||
Assert.Equal(50, vehiclePosition2.Vec1); | |||
Assert.Equal(51, vehiclePosition2.Vec2); | |||
Assert.Equal((ushort)45, vehiclePosition2.Direction); | |||
Assert.Equal((ushort)45, vehiclePosition2.Altitude); | |||
Assert.Equal((uint)3, vehiclePosition2.State); | |||
Assert.Equal((uint)257, vehiclePosition2.Alarm); | |||
Assert.Equal(19, vehiclePosition3.Day); | |||
Assert.Equal(7, vehiclePosition3.Month); | |||
Assert.Equal(2012, vehiclePosition3.Year); | |||
Assert.Equal(17, vehiclePosition3.Hour); | |||
Assert.Equal(17, vehiclePosition3.Minute); | |||
Assert.Equal(17, vehiclePosition3.Second); | |||
Assert.Equal((uint)133123456, vehiclePosition3.Lon); | |||
Assert.Equal((uint)24123456, vehiclePosition3.Lat); | |||
Assert.Equal(50, vehiclePosition3.Vec1); | |||
Assert.Equal(51, vehiclePosition3.Vec2); | |||
Assert.Equal((ushort)45, vehiclePosition3.Direction); | |||
Assert.Equal((ushort)45, vehiclePosition3.Altitude); | |||
Assert.Equal((uint)3, vehiclePosition3.State); | |||
Assert.Equal((uint)257, vehiclePosition3.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); | |||
jT809_0X1200_0X1203.GNSS = new List<JT809_0x1200_0x1202>(){ | |||
new JT809_0x1200_0x1202 | |||
{ | |||
VehiclePosition = new VehiclePositionPropertieOf2019 | |||
{ | |||
Encrypt = JT809_VehiclePositionEncrypt.已加密, | |||
PlatformId1 = "11111111111", | |||
Alarm1 = 1, | |||
PlatformId2 = "22222222222", | |||
Alarm2 = 2, | |||
PlatformId3 = "33333333333", | |||
Alarm3 = 3, | |||
} | |||
}, | |||
new JT809_0x1200_0x1202{ | |||
VehiclePosition=new VehiclePositionPropertieOf2019{ | |||
Encrypt = JT809_VehiclePositionEncrypt.已加密, | |||
PlatformId1 = "11111111111", | |||
Alarm1 = 1, | |||
PlatformId2 = "22222222222", | |||
Alarm2 = 2, | |||
PlatformId3 = "33333333333", | |||
Alarm3 = 3, | |||
} | |||
} | |||
}; | |||
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1203).ToHexString(); | |||
Assert.Equal("0201000000003131313131313131313131000000013232323232323232323232000000023333333333333333333333000000030100000000313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003", hex); | |||
@@ -177,21 +191,24 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
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); | |||
var vehiclePosition1 = jT809_0X1200_0X1203.GNSS[0].VehiclePosition as VehiclePositionPropertieOf2019; | |||
var vehiclePosition2 = jT809_0X1200_0X1203.GNSS[1].VehiclePosition as VehiclePositionPropertieOf2019; | |||
Assert.Equal(JT809_VehiclePositionEncrypt.已加密, vehiclePosition1.Encrypt); | |||
Assert.Equal("11111111111", vehiclePosition1.PlatformId1); | |||
Assert.Equal(1u, vehiclePosition1.Alarm1); | |||
Assert.Equal("22222222222", vehiclePosition1.PlatformId2); | |||
Assert.Equal(2u, vehiclePosition1.Alarm2); | |||
Assert.Equal("33333333333", vehiclePosition1.PlatformId3); | |||
Assert.Equal(3u, vehiclePosition1.Alarm3); | |||
Assert.Equal(JT809_VehiclePositionEncrypt.已加密, vehiclePosition2.Encrypt); | |||
Assert.Equal("11111111111", vehiclePosition2.PlatformId1); | |||
Assert.Equal(1u, vehiclePosition2.Alarm1); | |||
Assert.Equal("22222222222", vehiclePosition2.PlatformId2); | |||
Assert.Equal(2u, vehiclePosition2.Alarm2); | |||
Assert.Equal("33333333333", vehiclePosition2.PlatformId3); | |||
Assert.Equal(3u, vehiclePosition2.Alarm3); | |||
} | |||
} | |||
} |
@@ -20,29 +20,29 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
JT809_0x1500_0x1502 jT809_0x1500_0x1502 = new JT809_0x1500_0x1502 | |||
{ | |||
PhotoRspFlag= JT809_0x1502_PhotoRspFlag.完成拍照, | |||
VehiclePosition=new JT809VehiclePositionProperties | |||
{ | |||
Encrypt= JT809_VehiclePositionEncrypt.未加密, | |||
Day=19, | |||
Month=7, | |||
Year=2012, | |||
Hour=15, | |||
Minute=15, | |||
Second=15, | |||
Lon= 133123456, | |||
Lat= 24123456, | |||
Vec1=53, | |||
Vec2=45, | |||
Vec3=1234, | |||
Direction=45, | |||
Altitude=45, | |||
State=1, | |||
Alarm=1 | |||
}, | |||
LensID=123, | |||
SizeType= JT809__0x9502_SizeType._320x240 , | |||
Type= JT809__0x9502_ImageType.jpg, | |||
PhotoRspFlag = JT809_0x1502_PhotoRspFlag.完成拍照, | |||
VehiclePosition = new VehiclePositionPropertieOf2011 | |||
{ | |||
Encrypt = JT809_VehiclePositionEncrypt.未加密, | |||
Day = 19, | |||
Month = 7, | |||
Year = 2012, | |||
Hour = 15, | |||
Minute = 15, | |||
Second = 15, | |||
Lon = 133123456, | |||
Lat = 24123456, | |||
Vec1 = 53, | |||
Vec2 = 45, | |||
Vec3 = 1234, | |||
Direction = 45, | |||
Altitude = 45, | |||
State = 1, | |||
Alarm = 1 | |||
}, | |||
LensID = 123, | |||
SizeType = JT809__0x9502_SizeType._320x240, | |||
Type = JT809__0x9502_ImageType.jpg, | |||
}; | |||
var hex = JT809Serializer.Serialize(jT809_0x1500_0x1502).ToHexString(); | |||
//"01 00 13 07 07 DC 0F 0F 0F 07 EF 4D 80 01 70 18 40 00 35 00 2D 00 00 04 D2 00 2D 00 2D 00 00 00 01 00 00 00 01 7B 00 00 00 00 01 01" | |||
@@ -54,26 +54,28 @@ namespace JT809.Protocol.Test.JT809SubMessageBody | |||
{ | |||
var bytes = "01 00 13 07 07 DC 0F 0F 0F 07 EF 4D 80 01 70 18 40 00 35 00 2D 00 00 04 D2 00 2D 00 2D 00 00 00 01 00 00 00 01 7B 00 00 00 00 01 01".ToHexBytes(); | |||
JT809_0x1500_0x1502 jT809_0x1500_0x1502 = JT809Serializer.Deserialize<JT809_0x1500_0x1502>(bytes); | |||
var vehiclePosition = jT809_0x1500_0x1502.VehiclePosition as VehiclePositionPropertieOf2011; | |||
Assert.Equal(JT809_0x1502_PhotoRspFlag.完成拍照, jT809_0x1500_0x1502.PhotoRspFlag); | |||
Assert.Equal(JT809_VehiclePositionEncrypt.未加密, jT809_0x1500_0x1502.VehiclePosition.Encrypt); | |||
Assert.Equal(19, jT809_0x1500_0x1502.VehiclePosition.Day); | |||
Assert.Equal(7, jT809_0x1500_0x1502.VehiclePosition.Month); | |||
Assert.Equal(2012, jT809_0x1500_0x1502.VehiclePosition.Year); | |||
Assert.Equal(15, jT809_0x1500_0x1502.VehiclePosition.Hour); | |||
Assert.Equal(15, jT809_0x1500_0x1502.VehiclePosition.Minute); | |||
Assert.Equal(15, jT809_0x1500_0x1502.VehiclePosition.Second); | |||
Assert.Equal((uint)133123456, jT809_0x1500_0x1502.VehiclePosition.Lon); | |||
Assert.Equal((uint)24123456, jT809_0x1500_0x1502.VehiclePosition.Lat); | |||
Assert.Equal((ushort)53, jT809_0x1500_0x1502.VehiclePosition.Vec1); | |||
Assert.Equal((ushort)45, jT809_0x1500_0x1502.VehiclePosition.Vec2); | |||
Assert.Equal((uint)1234, jT809_0x1500_0x1502.VehiclePosition.Vec3); | |||
Assert.Equal((ushort)45, jT809_0x1500_0x1502.VehiclePosition.Direction); | |||
Assert.Equal((ushort)45, jT809_0x1500_0x1502.VehiclePosition.Altitude); | |||
Assert.Equal((uint)1, jT809_0x1500_0x1502.VehiclePosition.State); | |||
Assert.Equal((uint)1, jT809_0x1500_0x1502.VehiclePosition.Alarm); | |||
Assert.Equal(JT809_VehiclePositionEncrypt.未加密, vehiclePosition.Encrypt); | |||
Assert.Equal(19, vehiclePosition.Day); | |||
Assert.Equal(7, vehiclePosition.Month); | |||
Assert.Equal(2012, vehiclePosition.Year); | |||
Assert.Equal(15, vehiclePosition.Hour); | |||
Assert.Equal(15, vehiclePosition.Minute); | |||
Assert.Equal(15, vehiclePosition.Second); | |||
Assert.Equal((uint)133123456, vehiclePosition.Lon); | |||
Assert.Equal((uint)24123456, vehiclePosition.Lat); | |||
Assert.Equal((ushort)53, vehiclePosition.Vec1); | |||
Assert.Equal((ushort)45, vehiclePosition.Vec2); | |||
Assert.Equal((uint)1234, vehiclePosition.Vec3); | |||
Assert.Equal((ushort)45, vehiclePosition.Direction); | |||
Assert.Equal((ushort)45, vehiclePosition.Altitude); | |||
Assert.Equal((uint)1, vehiclePosition.State); | |||
Assert.Equal((uint)1, vehiclePosition.Alarm); | |||
Assert.Equal(123, jT809_0x1500_0x1502.LensID); | |||
Assert.Equal( JT809__0x9502_SizeType._320x240, jT809_0x1500_0x1502.SizeType); | |||
Assert.Equal( JT809__0x9502_ImageType.jpg, jT809_0x1500_0x1502.Type); | |||
Assert.Equal(JT809__0x9502_SizeType._320x240, jT809_0x1500_0x1502.SizeType); | |||
Assert.Equal(JT809__0x9502_ImageType.jpg, jT809_0x1500_0x1502.Type); | |||
} | |||
} | |||
} |
@@ -161,15 +161,17 @@ namespace JT809.Protocol.Test.Simples | |||
var jt808_0x0200Hex = JT808_2019_Serializer.Serialize(jT808UploadLocationRequest, JT808.Protocol.Enums.JT808Version.JTT2019); | |||
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 = jt808_0x0200Hex; | |||
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_0X1202.VehiclePosition = new Metadata.VehiclePositionPropertieOf2019 | |||
{ | |||
Encrypt = JT809_VehiclePositionEncrypt.已加密, | |||
GnssData = jt808_0x0200Hex, | |||
PlatformId1 = "11111111111", | |||
Alarm1 = 1, | |||
PlatformId2 = "22222222222", | |||
Alarm2 = 2, | |||
PlatformId3 = "33333333333", | |||
Alarm3 = 3, | |||
}; | |||
var hex = JT809_2019_Serializer.Serialize(jT809_0X1200_0X1202).ToHexString(); | |||
Assert.Equal("0100000026000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003", hex); | |||
@@ -180,15 +182,16 @@ namespace JT809.Protocol.Test.Simples | |||
{ | |||
var bytes = "0100000026000000010000000200BA7F0E07E4F11C0028003C000018071510101001040000006402020037313131313131313131313100000001323232323232323232323200000002333333333333333333333300000003".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); | |||
var jt808_0x0200Hex = jT809_0X1200_0X1202.GNSSData.GnssData; | |||
var GNSSData = jT809_0X1200_0X1202.VehiclePosition as Metadata.VehiclePositionPropertieOf2019; | |||
Assert.Equal(JT809_VehiclePositionEncrypt.已加密, GNSSData.Encrypt); | |||
Assert.Equal("11111111111", GNSSData.PlatformId1); | |||
Assert.Equal(1u, GNSSData.Alarm1); | |||
Assert.Equal("22222222222", GNSSData.PlatformId2); | |||
Assert.Equal(2u, GNSSData.Alarm2); | |||
Assert.Equal("33333333333", GNSSData.PlatformId3); | |||
Assert.Equal(3u, GNSSData.Alarm3); | |||
var jt808_0x0200Hex = GNSSData.GnssData; | |||
var jt808_0x0200 = JT808_2019_Serializer.Deserialize<JT808_0x0200>(jt808_0x0200Hex, JT808.Protocol.Enums.JT808Version.JTT2019); | |||
Assert.Equal((uint)1, jt808_0x0200.AlarmFlag); | |||
Assert.Equal(DateTime.Parse("2018-07-15 10:10:10"), jt808_0x0200.GPSTime); | |||