diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808.Protocol.Extensions.YueBiao.Test.csproj b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808.Protocol.Extensions.YueBiao.Test.csproj index cc854f7..57df50e 100644 --- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808.Protocol.Extensions.YueBiao.Test.csproj +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808.Protocol.Extensions.YueBiao.Test.csproj @@ -7,6 +7,7 @@ + diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x64_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x64_Test.cs new file mode 100644 index 0000000..c1105f3 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x64_Test.cs @@ -0,0 +1,103 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x0200_0x64_Test + { + JT808Serializer JT808Serializer; + public JT808_0x0200_0x64_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200 + { + AlarmFlag = 1, + Altitude = 40, + GPSTime = DateTime.Parse("2018-07-15 10:10:10"), + Lat = 12222222, + Lng = 132444444, + Speed = 60, + Direction = 0, + StatusFlag = 2, + JT808LocationAttachData = new Dictionary() + }; + jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_YueBiao_Constants.JT808_0X0200_0x64, new JT808_0x0200_0x64 + { + AlarmId = 1, + AlarmIdentification = new Metadata.AlarmIdentificationProperty + { + AttachCount = 2, + SN = 3, + TerminalId = "4444444", + Time = Convert.ToDateTime("2019-12-10 18:31:00"), + Retain1 = 5, + Retain2 = 6 + }, + AlarmLevel = 5, + AlarmOrEventType = 6, + AlarmTime = Convert.ToDateTime("2019-12-11 18:31:00"), + Altitude = 7, + CarOrPedestrianDistanceAhead = 10, + DeviateType = 11, + FlagState = 12, + Latitude = 13, + Longitude = 14, + RoadSignIdentificationData = 15, + RoadSignIdentificationType = 16, + Speed = 17, + VehicleSpeed = 18, + VehicleState = 19 + }); + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C00001807151010106447000000010C0605120A0B100F1100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("000000010000000200BA7F0E07E4F11C0028003C00001807151010106447000000010C0605120A0B100F1100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); + jT808UploadLocationRequest.JT808LocationAttachData.TryGetValue(JT808_YueBiao_Constants.JT808_0X0200_0x64, out var value); + JT808_0x0200_0x64 jT808_0X0200_0X64 = value as JT808_0x0200_0x64; + Assert.Equal(1u, jT808_0X0200_0X64.AlarmId); + Assert.Equal(2, jT808_0X0200_0X64.AlarmIdentification.AttachCount); + Assert.Equal(3, jT808_0X0200_0X64.AlarmIdentification.SN); + Assert.Equal("4444444", jT808_0X0200_0X64.AlarmIdentification.TerminalId); + Assert.Equal(5, jT808_0X0200_0X64.AlarmIdentification.Retain1); + Assert.Equal(6, jT808_0X0200_0X64.AlarmIdentification.Retain2); + Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808_0X0200_0X64.AlarmIdentification.Time); + Assert.Equal(5, jT808_0X0200_0X64.AlarmLevel); + Assert.Equal(6, jT808_0X0200_0X64.AlarmOrEventType); + Assert.Equal(Convert.ToDateTime("2019-12-11 18:31:00"), jT808_0X0200_0X64.AlarmTime); + Assert.Equal(7, jT808_0X0200_0X64.Altitude); + Assert.Equal(0x64, jT808_0X0200_0X64.AttachInfoId); + Assert.Equal(71, jT808_0X0200_0X64.AttachInfoLength); + Assert.Equal(10, jT808_0X0200_0X64.CarOrPedestrianDistanceAhead); + Assert.Equal(11, jT808_0X0200_0X64.DeviateType); + Assert.Equal(12, jT808_0X0200_0X64.FlagState); + Assert.Equal(13, jT808_0X0200_0X64.Latitude); + Assert.Equal(14, jT808_0X0200_0X64.Longitude); + Assert.Equal(15, jT808_0X0200_0X64.RoadSignIdentificationData); + Assert.Equal(16, jT808_0X0200_0X64.RoadSignIdentificationType); + Assert.Equal(17, jT808_0X0200_0X64.Speed); + Assert.Equal(18, jT808_0X0200_0X64.VehicleSpeed); + Assert.Equal(19, jT808_0X0200_0X64.VehicleState); + } + + [Fact] + public void Deserialize1() + { + var json = JT808Serializer.Analyze("000000010000000200BA7F0E07E4F11C0028003C00001807151010106447000000010C0605120A0B100F1100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x65_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x65_Test.cs new file mode 100644 index 0000000..f3a6e13 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x65_Test.cs @@ -0,0 +1,97 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x0200_0x65_Test + { + JT808Serializer JT808Serializer; + public JT808_0x0200_0x65_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200 + { + AlarmFlag = 1, + Altitude = 40, + GPSTime = DateTime.Parse("2018-07-15 10:10:10"), + Lat = 12222222, + Lng = 132444444, + Speed = 60, + Direction = 0, + StatusFlag = 2, + JT808LocationAttachData = new Dictionary() + }; + jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_YueBiao_Constants.JT808_0X0200_0x65, new JT808_0x0200_0x65 + { + AlarmId = 1, + AlarmIdentification = new Metadata.AlarmIdentificationProperty + { + AttachCount = 2, + SN = 3, + TerminalId = "4444444", + Time = Convert.ToDateTime("2019-12-10 18:31:00"), + Retain1=5, + Retain2=6 + }, + AlarmLevel = 5, + AlarmOrEventType = 6, + AlarmTime = Convert.ToDateTime("2019-12-11 18:31:00"), + Altitude = 7, + Retain = new byte[] { 1, 2, 3, 4 }, + FlagState = 12, + Latitude = 13, + Longitude = 14, + Speed = 17, + Fatigue = 18, + VehicleState = 19 + }); + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C00001807151010106547000000010C060512010203041100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("000000010000000200BA7F0E07E4F11C0028003C00001807151010106547000000010C060512010203041100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); + jT808UploadLocationRequest.JT808LocationAttachData.TryGetValue(JT808_YueBiao_Constants.JT808_0X0200_0x65, out var value); + JT808_0x0200_0x65 jT808_0X0200_0X65 = value as JT808_0x0200_0x65; + Assert.Equal(1u, jT808_0X0200_0X65.AlarmId); + Assert.Equal(2, jT808_0X0200_0X65.AlarmIdentification.AttachCount); + Assert.Equal(3, jT808_0X0200_0X65.AlarmIdentification.SN); + Assert.Equal("4444444", jT808_0X0200_0X65.AlarmIdentification.TerminalId); + Assert.Equal(5, jT808_0X0200_0X65.AlarmIdentification.Retain1); + Assert.Equal(6, jT808_0X0200_0X65.AlarmIdentification.Retain2); + Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808_0X0200_0X65.AlarmIdentification.Time); + Assert.Equal(5, jT808_0X0200_0X65.AlarmLevel); + Assert.Equal(6, jT808_0X0200_0X65.AlarmOrEventType); + Assert.Equal(Convert.ToDateTime("2019-12-11 18:31:00"), jT808_0X0200_0X65.AlarmTime); + Assert.Equal(7, jT808_0X0200_0X65.Altitude); + Assert.Equal(0x65, jT808_0X0200_0X65.AttachInfoId); + Assert.Equal(71, jT808_0X0200_0X65.AttachInfoLength); + Assert.Equal(new byte[] { 1, 2, 3, 4 }.ToHexString(), jT808_0X0200_0X65.Retain.ToHexString()); + Assert.Equal(12, jT808_0X0200_0X65.FlagState); + Assert.Equal(13, jT808_0X0200_0X65.Latitude); + Assert.Equal(14, jT808_0X0200_0X65.Longitude); + Assert.Equal(17, jT808_0X0200_0X65.Speed); + Assert.Equal(18, jT808_0X0200_0X65.Fatigue); + Assert.Equal(19, jT808_0X0200_0X65.VehicleState); + } + + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("000000010000000200BA7F0E07E4F11C0028003C00001807151010106547000000010C060512010203041100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x66_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x66_Test.cs new file mode 100644 index 0000000..e81113b --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x66_Test.cs @@ -0,0 +1,117 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x0200_0x66_Test + { + JT808Serializer JT808Serializer; + public JT808_0x0200_0x66_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200 + { + AlarmFlag = 1, + Altitude = 40, + GPSTime = DateTime.Parse("2018-07-15 10:10:10"), + Lat = 12222222, + Lng = 132444444, + Speed = 60, + Direction = 0, + StatusFlag = 2, + JT808LocationAttachData = new Dictionary() + }; + jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_YueBiao_Constants.JT808_0X0200_0x66, new JT808_0x0200_0x66 + { + AlarmId = 1, + AlarmIdentification = new Metadata.AlarmIdentificationProperty + { + AttachCount = 2, + SN = 3, + TerminalId = "4444444", + Time = Convert.ToDateTime("2019-12-10 18:31:00"), + Retain1=5, + Retain2=6 + }, + AlarmTime = Convert.ToDateTime("2019-12-11 18:31:00"), + Altitude = 7, + AlarmOrEventCount = 2, + AlarmOrEvents = new List { + new Metadata.AlarmOrEventProperty{ + AlarmOrEventType=1, + BatteryLevel=2, + TirePressure=3, + TirePressureAlarmPosition=4, + TireTemperature=5 + }, + new Metadata.AlarmOrEventProperty{ + AlarmOrEventType=6, + BatteryLevel=7, + TirePressure=8, + TirePressureAlarmPosition=9, + TireTemperature=10 + } + }, + FlagState = 12, + Latitude = 13, + Longitude = 14, + Speed = 17, + VehicleState = 19 + }); + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C00001807151010106653000000010C1100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506020400010003000500020900060008000A0007", hex); + } + + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("000000010000000200BA7F0E07E4F11C0028003C00001807151010106653000000010C1100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506020400010003000500020900060008000A0007".ToHexBytes()); + jT808UploadLocationRequest.JT808LocationAttachData.TryGetValue(JT808_YueBiao_Constants.JT808_0X0200_0x66, out var value); + JT808_0x0200_0x66 jT808_0X0200_0X66 = value as JT808_0x0200_0x66; + Assert.Equal(1u, jT808_0X0200_0X66.AlarmId); + Assert.Equal(2, jT808_0X0200_0X66.AlarmIdentification.AttachCount); + Assert.Equal(3, jT808_0X0200_0X66.AlarmIdentification.SN); + Assert.Equal("4444444", jT808_0X0200_0X66.AlarmIdentification.TerminalId); + Assert.Equal(5, jT808_0X0200_0X66.AlarmIdentification.Retain1); + Assert.Equal(6, jT808_0X0200_0X66.AlarmIdentification.Retain2); + Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808_0X0200_0X66.AlarmIdentification.Time); + Assert.Equal(Convert.ToDateTime("2019-12-11 18:31:00"), jT808_0X0200_0X66.AlarmTime); + Assert.Equal(7, jT808_0X0200_0X66.Altitude); + Assert.Equal(2, jT808_0X0200_0X66.AlarmOrEventCount); + Assert.Equal(1, jT808_0X0200_0X66.AlarmOrEvents[0].AlarmOrEventType); + Assert.Equal(2, jT808_0X0200_0X66.AlarmOrEvents[0].BatteryLevel); + Assert.Equal(3, jT808_0X0200_0X66.AlarmOrEvents[0].TirePressure); + Assert.Equal(4, jT808_0X0200_0X66.AlarmOrEvents[0].TirePressureAlarmPosition); + Assert.Equal(5, jT808_0X0200_0X66.AlarmOrEvents[0].TireTemperature); + Assert.Equal(6, jT808_0X0200_0X66.AlarmOrEvents[1].AlarmOrEventType); + Assert.Equal(7, jT808_0X0200_0X66.AlarmOrEvents[1].BatteryLevel); + Assert.Equal(8, jT808_0X0200_0X66.AlarmOrEvents[1].TirePressure); + Assert.Equal(9, jT808_0X0200_0X66.AlarmOrEvents[1].TirePressureAlarmPosition); + Assert.Equal(10, jT808_0X0200_0X66.AlarmOrEvents[1].TireTemperature); + Assert.Equal(0x66, jT808_0X0200_0X66.AttachInfoId); + Assert.Equal(12, jT808_0X0200_0X66.FlagState); + Assert.Equal(13, jT808_0X0200_0X66.Latitude); + Assert.Equal(14, jT808_0X0200_0X66.Longitude); + Assert.Equal(17, jT808_0X0200_0X66.Speed); + Assert.Equal(19, jT808_0X0200_0X66.VehicleState); + } + + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("000000010000000200BA7F0E07E4F11C0028003C00001807151010106653000000010C1100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506020400010003000500020900060008000A0007".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x67_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x67_Test.cs new file mode 100644 index 0000000..3322182 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0200_0x67_Test.cs @@ -0,0 +1,92 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x0200_0x67_Test + { + JT808Serializer JT808Serializer; + public JT808_0x0200_0x67_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x0200 jT808UploadLocationRequest = new JT808_0x0200 + { + AlarmFlag = 1, + Altitude = 40, + GPSTime = DateTime.Parse("2018-07-15 10:10:10"), + Lat = 12222222, + Lng = 132444444, + Speed = 60, + Direction = 0, + StatusFlag = 2, + JT808LocationAttachData = new Dictionary() + }; + jT808UploadLocationRequest.JT808LocationAttachData.Add(JT808_YueBiao_Constants.JT808_0X0200_0x67, new JT808_0x0200_0x67 + { + AlarmId = 1, + AlarmIdentification = new Metadata.AlarmIdentificationProperty + { + AttachCount = 2, + SN = 3, + TerminalId = "4444444", + Time = Convert.ToDateTime("2019-12-10 18:31:00"), + Retain1=5, + Retain2=6 + }, + AlarmTime = Convert.ToDateTime("2019-12-11 18:31:00"), + Altitude = 7, + AlarmLevel = 8, + AlarmOrEventType = 9, + FlagState = 12, + Latitude = 13, + Longitude = 14, + Speed = 17, + VehicleState = 19 + }); + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("000000010000000200BA7F0E07E4F11C0028003C00001807151010106742000000010C09081100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("000000010000000200BA7F0E07E4F11C0028003C00001807151010106742000000010C09081100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); + jT808UploadLocationRequest.JT808LocationAttachData.TryGetValue(JT808_YueBiao_Constants.JT808_0X0200_0x67, out var value); + JT808_0x0200_0x67 jT808_0X0200_0X67 = value as JT808_0x0200_0x67; + Assert.Equal(1u, jT808_0X0200_0X67.AlarmId); + Assert.Equal(2, jT808_0X0200_0X67.AlarmIdentification.AttachCount); + Assert.Equal(3, jT808_0X0200_0X67.AlarmIdentification.SN); + Assert.Equal("4444444", jT808_0X0200_0X67.AlarmIdentification.TerminalId); + Assert.Equal(5, jT808_0X0200_0X67.AlarmIdentification.Retain1); + Assert.Equal(6, jT808_0X0200_0X67.AlarmIdentification.Retain2); + Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808_0X0200_0X67.AlarmIdentification.Time); + Assert.Equal(Convert.ToDateTime("2019-12-11 18:31:00"), jT808_0X0200_0X67.AlarmTime); + Assert.Equal(7, jT808_0X0200_0X67.Altitude); + Assert.Equal(8, jT808_0X0200_0X67.AlarmLevel); + Assert.Equal(9, jT808_0X0200_0X67.AlarmOrEventType); + Assert.Equal(0x67, jT808_0X0200_0X67.AttachInfoId); + Assert.Equal(66, jT808_0X0200_0X67.AttachInfoLength); + Assert.Equal(12, jT808_0X0200_0X67.FlagState); + Assert.Equal(13, jT808_0X0200_0X67.Latitude); + Assert.Equal(14, jT808_0X0200_0X67.Longitude); + Assert.Equal(17, jT808_0X0200_0X67.Speed); + Assert.Equal(19, jT808_0X0200_0X67.VehicleState); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("000000010000000200BA7F0E07E4F11C0028003C00001807151010106742000000010C09081100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0900_0xF7_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0900_0xF7_Test.cs new file mode 100644 index 0000000..0004c22 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0900_0xF7_Test.cs @@ -0,0 +1,68 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x0900_0xF7_Test + { + JT808Serializer JT808Serializer; + public JT808_0x0900_0xF7_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x0900_0xF7 jT808_0x0900_0xF7 = new JT808_0x0900_0xF7 + { + USBMessageCount = 2, + USBMessages = new List { + new JT808_0x0900_0xF7_USB { + USBID = 1, + AlarmStatus = 1, + WorkingCondition = 2 + }, + new JT808_0x0900_0xF7_USB { + USBID = 2, + AlarmStatus = 1, + WorkingCondition = 2 + } + } + }; + var hex = JT808Serializer.Serialize(jT808_0x0900_0xF7).ToHexString(); + Assert.Equal("020105020000000102050200000001", hex); + } + + [Fact] + public void Deserialize() + { + var jT808_0x0900_0xF7 = JT808Serializer.Deserialize("020105020000000102050200000001".ToHexBytes()); + + Assert.Equal(JT808_YueBiao_Constants.JT808_0X0900_0xF7, jT808_0x0900_0xF7.PassthroughType); + Assert.Equal(2, jT808_0x0900_0xF7.USBMessageCount); + Assert.Equal(1, jT808_0x0900_0xF7.USBMessages[0].USBID); + Assert.Equal(5, jT808_0x0900_0xF7.USBMessages[0].MessageLength); + Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[0].WorkingCondition); + Assert.Equal(1u, jT808_0x0900_0xF7.USBMessages[0].AlarmStatus); + + Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[1].USBID); + Assert.Equal(5, jT808_0x0900_0xF7.USBMessages[1].MessageLength); + Assert.Equal(2, jT808_0x0900_0xF7.USBMessages[1].WorkingCondition); + Assert.Equal(1u, jT808_0x0900_0xF7.USBMessages[1].AlarmStatus); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("020105020000000102050200000001".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0900_0xF8_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0900_0xF8_Test.cs new file mode 100644 index 0000000..d132c50 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x0900_0xF8_Test.cs @@ -0,0 +1,71 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x0900_0xF8_Test + { + JT808Serializer JT808Serializer; + public JT808_0x0900_0xF8_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x0900_0xF8 jT808_0x0900_0xF8 = new JT808_0x0900_0xF8 + { + USBMessageCount = 1, + USBMessages = new List { + new JT808_0x0900_0xF8_USB { + USBID = 1, + CompantName = "CompantName", + CustomerCode = "CustomerCode", + DevicesID = "DevicesID", + HardwareVersionNumber = "HardwareVersionNumber", + ProductModel = "ProductModel", + SoftwareVersionNumber = "SoftwareVersionNumber" + } + } + }; + var hex = JT808Serializer.Serialize(jT808_0x0900_0xF8).ToHexString(); + Assert.Equal("01015C0B436F6D70616E744E616D650C50726F647563744D6F64656C15486172647761726556657273696F6E4E756D62657215536F66747761726556657273696F6E4E756D626572094465766963657349440C437573746F6D6572436F6465", hex); + + } + + [Fact] + public void Deserialize() + { + var jT808_0x0900_0xF8 = JT808Serializer.Deserialize("01015C0B436F6D70616E744E616D650C50726F647563744D6F64656C15486172647761726556657273696F6E4E756D62657215536F66747761726556657273696F6E4E756D626572094465766963657349440C437573746F6D6572436F6465".ToHexBytes()); + Assert.Equal(JT808_YueBiao_Constants.JT808_0X0900_0xF8, jT808_0x0900_0xF8.PassthroughType); + Assert.Equal(1, jT808_0x0900_0xF8.USBMessageCount); + Assert.Equal(1, jT808_0x0900_0xF8.USBMessages[0].USBID); + Assert.Equal("CompantName", jT808_0x0900_0xF8.USBMessages[0].CompantName); + Assert.Equal("CompantName".Length, jT808_0x0900_0xF8.USBMessages[0].CompantNameLength); + Assert.Equal("CustomerCode", jT808_0x0900_0xF8.USBMessages[0].CustomerCode); + Assert.Equal("CustomerCode".Length, jT808_0x0900_0xF8.USBMessages[0].CustomerCodeLength); + Assert.Equal("DevicesID", jT808_0x0900_0xF8.USBMessages[0].DevicesID); + Assert.Equal("DevicesID".Length, jT808_0x0900_0xF8.USBMessages[0].DevicesIDLength); + Assert.Equal("HardwareVersionNumber", jT808_0x0900_0xF8.USBMessages[0].HardwareVersionNumber); + Assert.Equal("HardwareVersionNumber".Length, jT808_0x0900_0xF8.USBMessages[0].HardwareVersionNumberLength); + Assert.Equal("ProductModel", jT808_0x0900_0xF8.USBMessages[0].ProductModel); + Assert.Equal("ProductModel".Length, jT808_0x0900_0xF8.USBMessages[0].ProductModelLength); + Assert.Equal("SoftwareVersionNumber", jT808_0x0900_0xF8.USBMessages[0].SoftwareVersionNumber); + Assert.Equal("SoftwareVersionNumber".Length, jT808_0x0900_0xF8.USBMessages[0].SoftwareVersionNumberLength); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("01015C0B436F6D70616E744E616D650C50726F647563744D6F64656C15486172647761726556657273696F6E4E756D62657215536F66747761726556657273696F6E4E756D626572094465766963657349440C437573746F6D6572436F6465".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1210_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1210_Test.cs new file mode 100644 index 0000000..0374471 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1210_Test.cs @@ -0,0 +1,86 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x1210_Test + { + JT808Serializer JT808Serializer; + public JT808_0x1210_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x1210 jT808UploadLocationRequest = new JT808_0x1210 + { + AlarmId = "11111111111111111111111111111111", + AlarmIdentification = new Metadata.AlarmIdentificationProperty + { + Retain1 = 1, + Retain2=3, + AttachCount = 2, + SN = 3, + TerminalId = "4444444", + Time = Convert.ToDateTime("2019-12-10 18:31:00") + }, + AttachInfos = new List { + new Metadata.AttachProperty{ + FileName="filename", + FileSize=9 + }, + new Metadata.AttachProperty{ + FileName="filename1", + FileSize=10 + } + }, + TerminalId = "4444444", + InfoType = 0 + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("34343434343434000000000000000000000000000000000000000000000034343434343434000000000000000000000000000000000000000000000019121018310003020103313131313131313131313131313131313131313131313131313131313131313100020866696C656E616D65000000090966696C656E616D65310000000A", hex); + + } + + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("34343434343434000000000000000000000000000000000000000000000034343434343434000000000000000000000000000000000000000000000019121018310003020103313131313131313131313131313131313131313131313131313131313131313100020866696C656E616D65000000090966696C656E616D65310000000A".ToHexBytes()); + Assert.Equal("11111111111111111111111111111111", jT808UploadLocationRequest.AlarmId); + Assert.Equal(2, jT808UploadLocationRequest.AlarmIdentification.AttachCount); + Assert.Equal(3, jT808UploadLocationRequest.AlarmIdentification.SN); + Assert.Equal(1, jT808UploadLocationRequest.AlarmIdentification.Retain1); + Assert.Equal(3, jT808UploadLocationRequest.AlarmIdentification.Retain2); + Assert.Equal("4444444", jT808UploadLocationRequest.AlarmIdentification.TerminalId); + Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808UploadLocationRequest.AlarmIdentification.Time); + Assert.Equal(2, jT808UploadLocationRequest.AttachCount); + + Assert.Equal("filename", jT808UploadLocationRequest.AttachInfos[0].FileName); + Assert.Equal(8, jT808UploadLocationRequest.AttachInfos[0].FileNameLength); + Assert.Equal(9u, jT808UploadLocationRequest.AttachInfos[0].FileSize); + + Assert.Equal("filename1", jT808UploadLocationRequest.AttachInfos[1].FileName); + Assert.Equal(9, jT808UploadLocationRequest.AttachInfos[1].FileNameLength); + Assert.Equal(10u, jT808UploadLocationRequest.AttachInfos[1].FileSize); + + Assert.Equal("4444444", jT808UploadLocationRequest.TerminalId); + Assert.Equal(0, jT808UploadLocationRequest.InfoType); + + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("34343434343434000000000000000000000000000000000000000000000034343434343434000000000000000000000000000000000000000000000019121018310003020103313131313131313131313131313131313131313131313131313131313131313100020866696C656E616D65000000090966696C656E616D65310000000A".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1211_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1211_Test.cs new file mode 100644 index 0000000..fde2627 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1211_Test.cs @@ -0,0 +1,50 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x1211_Test + { + JT808Serializer JT808Serializer; + public JT808_0x1211_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x1211 jT808UploadLocationRequest = new JT808_0x1211 + { + FileName = "FileName", + FileSize = 1, + FileType = 2 + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("0846696C654E616D650200000001", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("0846696C654E616D650200000001".ToHexBytes()); + Assert.Equal("FileName", jT808UploadLocationRequest.FileName); + Assert.Equal(1u, jT808UploadLocationRequest.FileSize); + Assert.Equal(2, jT808UploadLocationRequest.FileType); + Assert.Equal("FileName".Length, jT808UploadLocationRequest.FileNameLength); + } + + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("0846696C654E616D650200000001".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1212_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1212_Test.cs new file mode 100644 index 0000000..57667da --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1212_Test.cs @@ -0,0 +1,49 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x1212_Test + { + JT808Serializer JT808Serializer; + public JT808_0x1212_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x1212 jT808UploadLocationRequest = new JT808_0x1212 + { + FileName = "FileName", + FileSize = 1, + FileType = 2 + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("0846696C654E616D650200000001", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("0846696C654E616D650200000001".ToHexBytes()); + Assert.Equal("FileName", jT808UploadLocationRequest.FileName); + Assert.Equal(1u, jT808UploadLocationRequest.FileSize); + Assert.Equal(2, jT808UploadLocationRequest.FileType); + Assert.Equal("FileName".Length, jT808UploadLocationRequest.FileNameLength); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("0846696C654E616D650200000001".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1FC4_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1FC4_Test.cs new file mode 100644 index 0000000..828882a --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x1FC4_Test.cs @@ -0,0 +1,52 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x1FC4_Test + { + JT808Serializer JT808Serializer; + public JT808_0x1FC4_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x1FC4 jT808UploadLocationRequest = new JT808_0x1FC4 + { + ErrorCode=1, + MsgNum=2, + UpgradeStatus= Enums.JT808UpgradeStatus.固件下载中, + UpgradeType= Protocol.Enums.JT808UpgradeType.北斗卫星定位模块, + UploadProgress=3 + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("000234010301", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("000234010301".ToHexBytes()); + Assert.Equal(1, jT808UploadLocationRequest.ErrorCode); + Assert.Equal(2, jT808UploadLocationRequest.MsgNum); + Assert.Equal(Enums.JT808UpgradeStatus.固件下载中, jT808UploadLocationRequest.UpgradeStatus); + Assert.Equal(Protocol.Enums.JT808UpgradeType.北斗卫星定位模块, jT808UploadLocationRequest.UpgradeType); + Assert.Equal(3, jT808UploadLocationRequest.UploadProgress); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("000234010301".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF364_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF364_Test.cs new file mode 100644 index 0000000..967c36b --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF364_Test.cs @@ -0,0 +1,139 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x8103_0xF364_Test + { + JT808Serializer JT808Serializer; + public JT808_0x8103_0xF364_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103 + { + ParamList = new List { + new JT808_0x8103_0xF364{ + ActiveDistancePhotographyDistanceInterval=1, + ActivelyTimePhotoInterval=2, + ActivePhotographyStrategy=3, + AlarmEnable=4, + AlarmJudgeSpeedThreshold=5, + AlarmPhotoVehicleCloseDistance=6, + AlarmPhotoVehicleCloseDistanceInterval=7, + BarrierAlarmPhotographs=8, + DistanceThresholdObstacleAlarm=9, + EventEnable=10, + ForwardCollisionAlarmInterval=11, + ForwardCollisionAlarmPhotographs=12, + ForwardCollisionWarningTimeThreshold=13, + FrequentAlarmJudgmentNumberChannelChange=14, + FrequentChannelChangeAlarmJudgmentTimePeriod=15, + FrequentChannelChangeAlarmPhotos=16, + FrequentLaneChangeAlarmInterval=17, + GradedSpeedThresholdLaneDeviationAlarm=18, + HierarchicalSpeedThresholdForwardCollisionWarning=19, + HierarchicalSpeedThresholdFrequentChannelChangeAlarm=20, + HierarchicalSpeedThresholdObstacleAlarm=21, + LaneDepartureAlarmPhoto=22, + LaneDepartureAlarmPhotoInterval=23, + ObstacleAlarmInterval=24, + PedestrianCollisionAlarmEnablingSpeedThreshold=25, + PedestrianCollisionAlarmInterval=26, + PedestrianCollisionAlarmPhotos=27, + PedestrianCollisionAlarmTimeThreshold=28, + PhotoResolution=29, + Placeholder1=30, + Placeholder2=new byte[]{1,2,3,4 }, + RoadSignRecognitionPhotographs=32, + RoadSignRecognitionPhotographsInterval=33, + SingleInitiativePhotos=34, + SingleInitiativePhotosInterval=35, + VehicleDistanceMonitoringAlarmDistanceThreshold=36, + VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold=37, + VideoRecordingResolution=38, + VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity=39, + VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm=40, + VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm=41, + VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm=42, + VideoRecordingTimeBeforeAndAfterObstacleAlarm=43, + VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm=44, + WarningVolume=45 + } + } + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("010000F36438052D030002000122231D26000000040000000A1E09152B08180F0E14291011122A16170D13280C0B1C192C1B1A2425270607202101020304", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("010000F36438052D030002000122231D26000000040000000A1E09152B08180F0E14291011122A16170D13280C0B1C192C1B1A2425270607202101020304".ToHexBytes()); + JT808_0x8103_0xF364 jT808_0X8103_0XF364 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF364; + Assert.Equal(1, jT808_0X8103_0XF364.ActiveDistancePhotographyDistanceInterval); + Assert.Equal(2, jT808_0X8103_0XF364.ActivelyTimePhotoInterval); + Assert.Equal(3, jT808_0X8103_0XF364.ActivePhotographyStrategy); + Assert.Equal(4u, jT808_0X8103_0XF364.AlarmEnable); + Assert.Equal(5, jT808_0X8103_0XF364.AlarmJudgeSpeedThreshold); + Assert.Equal(6, jT808_0X8103_0XF364.AlarmPhotoVehicleCloseDistance); + Assert.Equal(7, jT808_0X8103_0XF364.AlarmPhotoVehicleCloseDistanceInterval); + Assert.Equal(8, jT808_0X8103_0XF364.BarrierAlarmPhotographs); + Assert.Equal(9, jT808_0X8103_0XF364.DistanceThresholdObstacleAlarm); + Assert.Equal(10u, jT808_0X8103_0XF364.EventEnable); + Assert.Equal(11, jT808_0X8103_0XF364.ForwardCollisionAlarmInterval); + Assert.Equal(12, jT808_0X8103_0XF364.ForwardCollisionAlarmPhotographs); + Assert.Equal(13, jT808_0X8103_0XF364.ForwardCollisionWarningTimeThreshold); + Assert.Equal(14, jT808_0X8103_0XF364.FrequentAlarmJudgmentNumberChannelChange); + Assert.Equal(15, jT808_0X8103_0XF364.FrequentChannelChangeAlarmJudgmentTimePeriod); + Assert.Equal(16, jT808_0X8103_0XF364.FrequentChannelChangeAlarmPhotos); + Assert.Equal(17, jT808_0X8103_0XF364.FrequentLaneChangeAlarmInterval); + Assert.Equal(18, jT808_0X8103_0XF364.GradedSpeedThresholdLaneDeviationAlarm); + Assert.Equal(19, jT808_0X8103_0XF364.HierarchicalSpeedThresholdForwardCollisionWarning); + Assert.Equal(20, jT808_0X8103_0XF364.HierarchicalSpeedThresholdFrequentChannelChangeAlarm); + Assert.Equal(21, jT808_0X8103_0XF364.HierarchicalSpeedThresholdObstacleAlarm); + Assert.Equal(22, jT808_0X8103_0XF364.LaneDepartureAlarmPhoto); + Assert.Equal(23, jT808_0X8103_0XF364.LaneDepartureAlarmPhotoInterval); + Assert.Equal(24, jT808_0X8103_0XF364.ObstacleAlarmInterval); + Assert.Equal(25, jT808_0X8103_0XF364.PedestrianCollisionAlarmEnablingSpeedThreshold); + Assert.Equal(26, jT808_0X8103_0XF364.PedestrianCollisionAlarmInterval); + Assert.Equal(27, jT808_0X8103_0XF364.PedestrianCollisionAlarmPhotos); + Assert.Equal(28, jT808_0X8103_0XF364.PedestrianCollisionAlarmTimeThreshold); + Assert.Equal(29, jT808_0X8103_0XF364.PhotoResolution); + Assert.Equal(30, jT808_0X8103_0XF364.Placeholder1); + Assert.Equal(new byte[] { 1, 2, 3, 4 }.ToHexString(), jT808_0X8103_0XF364.Placeholder2.ToHexString()); + Assert.Equal(32, jT808_0X8103_0XF364.RoadSignRecognitionPhotographs); + Assert.Equal(33, jT808_0X8103_0XF364.RoadSignRecognitionPhotographsInterval); + Assert.Equal(34, jT808_0X8103_0XF364.SingleInitiativePhotos); + Assert.Equal(35, jT808_0X8103_0XF364.SingleInitiativePhotosInterval); + Assert.Equal(36, jT808_0X8103_0XF364.VehicleDistanceMonitoringAlarmDistanceThreshold); + Assert.Equal(37, jT808_0X8103_0XF364.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold); + Assert.Equal(38, jT808_0X8103_0XF364.VideoRecordingResolution); + Assert.Equal(39, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity); + Assert.Equal(40, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm); + Assert.Equal(41, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm); + Assert.Equal(42, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm); + Assert.Equal(43, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterObstacleAlarm); + Assert.Equal(44, jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm); + Assert.Equal(45, jT808_0X8103_0XF364.WarningVolume); + Assert.Equal(JT808_YueBiao_Constants.JT808_0X8103_0xF364, jT808_0X8103_0XF364.ParamId); + } + + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("010000F36438052D030002000122231D26000000040000000A1E09152B08180F0E14291011122A16170D13280C0B1C192C1B1A2425270607202101020304".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF365_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF365_Test.cs new file mode 100644 index 0000000..305d9e4 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF365_Test.cs @@ -0,0 +1,116 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x8103_0xF365_Test + { + JT808Serializer JT808Serializer; + public JT808_0x8103_0xF365_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103 + { + ParamList = new List { + new JT808_0x8103_0xF365{ + ActiveDistancePhotographyDistanceInterval=1, + ActivelyTimePhotoInterval=2, + ActivePhotographyStrategy=3, + AlarmEnable=4, + AlarmJudgeSpeedThreshold=5, + EventEnable=10, + PhotoResolution=29, + SingleInitiativePhotos=34, + SingleInitiativePhotosInterval=35, + VideoRecordingResolution=38, + WarningVolume=45, + CallAlarmDetermineTimeInterval=46, + CallAlarmTakePicturesDriverFacialFeatures=47, + CallAlarmTakePicturesDriverFacialFeaturesInterval=48, + ClassifiedSpeedThresholdCallAlarm=49, + ClassifiedSpeedThresholdDistractedDrivingAlarm=50, + ClassifiedSpeedThresholdSmokingAlarm=51, + DistractedDrivingAlarmPhotography=52, + DistractedDrivingAlarmPhotographyInterval=53, + DriverIdentificationTrigger=54, + FatigueDrivingAlarmPhotograph=55, + FatigueDrivingAlarmPhotographInterval=56, + GradedSpeedThresholdFatigueDrivingAlarm=57, + PhotographsAbnormalDrivingBehavior=58, + PictureIntervalAbnormalDrivingBehavior=59, + Reserve=new byte[]{1,2,3 }, + Retain=new byte[]{5,6 }, + SmokingAlarmPhotographsDriverFaceCharacteristics=60, + SmokingAlarmPhotographsDriverFaceCharacteristicsInterval=61, + TimeIntervalSmokingAlarmJudgment=62, + VideoRecordingTimeAbnormalDrivingBehavior=63, + VideoRecordingTimeBeforeAndAfterCallAlarm=64, + VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm=65, + VideoRecordingTimeBeforeAndAfterSmokingAlarm=66 + } + } + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("010000F3652F052D030002000122231D26000000040000000A003E002E0102033941373831402F3033423C3D3234353F3A3B360506", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("010000F3652F052D030002000122231D26000000040000000A003E002E0102033941373831402F3033423C3D3234353F3A3B360506".ToHexBytes()); + JT808_0x8103_0xF365 jT808_0X8103_0XF365 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF365; + Assert.Equal(1, jT808_0X8103_0XF365.ActiveDistancePhotographyDistanceInterval); + Assert.Equal(2, jT808_0X8103_0XF365.ActivelyTimePhotoInterval); + Assert.Equal(3, jT808_0X8103_0XF365.ActivePhotographyStrategy); + Assert.Equal(4u, jT808_0X8103_0XF365.AlarmEnable); + Assert.Equal(5, jT808_0X8103_0XF365.AlarmJudgeSpeedThreshold); + Assert.Equal(10u, jT808_0X8103_0XF365.EventEnable); + Assert.Equal(29, jT808_0X8103_0XF365.PhotoResolution); + Assert.Equal(34, jT808_0X8103_0XF365.SingleInitiativePhotos); + Assert.Equal(35, jT808_0X8103_0XF365.SingleInitiativePhotosInterval); + Assert.Equal(38, jT808_0X8103_0XF365.VideoRecordingResolution); + Assert.Equal(45, jT808_0X8103_0XF365.WarningVolume); + Assert.Equal(46, jT808_0X8103_0XF365.CallAlarmDetermineTimeInterval); + Assert.Equal(47, jT808_0X8103_0XF365.CallAlarmTakePicturesDriverFacialFeatures); + Assert.Equal(48, jT808_0X8103_0XF365.CallAlarmTakePicturesDriverFacialFeaturesInterval); + Assert.Equal(49, jT808_0X8103_0XF365.ClassifiedSpeedThresholdCallAlarm); + Assert.Equal(50, jT808_0X8103_0XF365.ClassifiedSpeedThresholdDistractedDrivingAlarm); + Assert.Equal(51, jT808_0X8103_0XF365.ClassifiedSpeedThresholdSmokingAlarm); + Assert.Equal(52, jT808_0X8103_0XF365.DistractedDrivingAlarmPhotography); + Assert.Equal(53, jT808_0X8103_0XF365.DistractedDrivingAlarmPhotographyInterval); + Assert.Equal(54, jT808_0X8103_0XF365.DriverIdentificationTrigger); + Assert.Equal(55, jT808_0X8103_0XF365.FatigueDrivingAlarmPhotograph); + Assert.Equal(56, jT808_0X8103_0XF365.FatigueDrivingAlarmPhotographInterval); + Assert.Equal(57, jT808_0X8103_0XF365.GradedSpeedThresholdFatigueDrivingAlarm); + Assert.Equal(58, jT808_0X8103_0XF365.PhotographsAbnormalDrivingBehavior); + Assert.Equal(59, jT808_0X8103_0XF365.PictureIntervalAbnormalDrivingBehavior); + Assert.Equal(new byte[] { 1, 2, 3 }.ToHexString(), jT808_0X8103_0XF365.Reserve.ToHexString()); + Assert.Equal(new byte[] { 5, 6 }.ToHexString(), jT808_0X8103_0XF365.Retain.ToHexString()); + Assert.Equal(60, jT808_0X8103_0XF365.SmokingAlarmPhotographsDriverFaceCharacteristics); + Assert.Equal(61, jT808_0X8103_0XF365.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval); + Assert.Equal(62, jT808_0X8103_0XF365.TimeIntervalSmokingAlarmJudgment); + Assert.Equal(63, jT808_0X8103_0XF365.VideoRecordingTimeAbnormalDrivingBehavior); + Assert.Equal(64, jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterCallAlarm); + Assert.Equal(65, jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm); + Assert.Equal(66, jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterSmokingAlarm); + Assert.Equal(JT808_YueBiao_Constants.JT808_0X8103_0xF365, jT808_0X8103_0XF365.ParamId); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("010000F3652F052D030002000122231D26000000040000000A003E002E0102033941373831402F3033423C3D3234353F3A3B360506".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF366_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF366_Test.cs new file mode 100644 index 0000000..e19dcc4 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF366_Test.cs @@ -0,0 +1,69 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x8103_0xF366_Test + { + JT808Serializer JT808Serializer; + public JT808_0x8103_0xF366_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103 + { + ParamList = new List { + new JT808_0x8103_0xF366{ + HighTemperatureThreshold=1, + HighVoltageThreshold=2, + LowVoltageThreshold=3, + NormalFetalPressure=4, + Retain=new byte[]{1,2,3,4,5,6 }, + SlowLeakageThreshold=5, + ThresholdUnbalancedTirePressure=6, + TimedReportingInterval=7, + TyrePressureUnit=8, + TyreSpecificationType="999999999999", + VoltageThreshold=10 + } + } + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506".ToHexBytes()); + JT808_0x8103_0xF366 jT808_0x8103_0xF366 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF366; + Assert.Equal(1, jT808_0x8103_0xF366.HighTemperatureThreshold); + Assert.Equal(2, jT808_0x8103_0xF366.HighVoltageThreshold); + Assert.Equal(3, jT808_0x8103_0xF366.LowVoltageThreshold); + Assert.Equal(4, jT808_0x8103_0xF366.NormalFetalPressure); + Assert.Equal(new byte[] { 1, 2, 3, 4, 5, 6 }.ToHexString(), jT808_0x8103_0xF366.Retain.ToHexString()); + Assert.Equal(5, jT808_0x8103_0xF366.SlowLeakageThreshold); + Assert.Equal(6, jT808_0x8103_0xF366.ThresholdUnbalancedTirePressure); + Assert.Equal(7, jT808_0x8103_0xF366.TimedReportingInterval); + Assert.Equal(8, jT808_0x8103_0xF366.TyrePressureUnit); + Assert.Equal("999999999999", jT808_0x8103_0xF366.TyreSpecificationType); + Assert.Equal(10, jT808_0x8103_0xF366.VoltageThreshold); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF367_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF367_Test.cs new file mode 100644 index 0000000..b3fac8e --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8103_0xF367_Test.cs @@ -0,0 +1,51 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x8103_0xF367_Test + { + JT808Serializer JT808Serializer; + public JT808_0x8103_0xF367_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103 + { + ParamList = new List { + new JT808_0x8103_0xF367{ + LateralRearApproachAlarmTimeThreshold=1, + RearApproachAlarmTimeThreshold=2 + } + } + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("010000F367020201", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("010000F367020201".ToHexBytes()); + JT808_0x8103_0xF367 jT808_0x8103_0xF367 = jT808UploadLocationRequest.ParamList[0] as JT808_0x8103_0xF367; + Assert.Equal(1, jT808_0x8103_0xF367.LateralRearApproachAlarmTimeThreshold); + Assert.Equal(2, jT808_0x8103_0xF367.RearApproachAlarmTimeThreshold); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("010000F367020201".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8900_0xF7_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8900_0xF7_Test.cs new file mode 100644 index 0000000..f39757c --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8900_0xF7_Test.cs @@ -0,0 +1,46 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x8900_0xF7_Test + { + JT808Serializer JT808Serializer; + public JT808_0x8900_0xF7_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x8900_0xF7 jT808UploadLocationRequest = new JT808_0x8900_0xF7 + { + USBCount = 2, + MultipleUSB = new List { 1, 2 } + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("020102", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("020102".ToHexBytes()); + Assert.Equal(2, jT808UploadLocationRequest.USBCount); + Assert.Equal(new List { 1, 2 }.ToArray().ToHexString(), jT808UploadLocationRequest.MultipleUSB.ToArray().ToHexString()); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("020102".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8900_0xF8_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8900_0xF8_Test.cs new file mode 100644 index 0000000..caf0a3b --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x8900_0xF8_Test.cs @@ -0,0 +1,46 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x8900_0xF8_Test + { + JT808Serializer JT808Serializer; + public JT808_0x8900_0xF8_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x8900_0xF8 jT808UploadLocationRequest = new JT808_0x8900_0xF8 + { + USBCount = 2, + MultipleUSB = new List { 1, 2 } + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("020102", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("020102".ToHexBytes()); + Assert.Equal(2, jT808UploadLocationRequest.USBCount); + Assert.Equal(new List { 1, 2 }.ToArray().ToHexString(), jT808UploadLocationRequest.MultipleUSB.ToArray().ToHexString()); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("020102".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x9208_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x9208_Test.cs new file mode 100644 index 0000000..a483cd6 --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x9208_Test.cs @@ -0,0 +1,67 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x9208_Test + { + JT808Serializer JT808Serializer; + public JT808_0x9208_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x9208 jT808UploadLocationRequest = new JT808_0x9208 + { + AlarmId = "11111111111111111111111111111111", + AlarmIdentification = new Metadata.AlarmIdentificationProperty + { + Retain1 = 1, + Retain2=3, + AttachCount = 2, + SN = 3, + TerminalId = "4444444", + Time = Convert.ToDateTime("2019-12-10 18:31:00") + }, + AttachmentServerIP = "192.168.1.1", + AttachmentServerIPTcpPort = 5000, + AttachmentServerIPUdpPort = 5001 + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("0B3139322E3136382E312E311388138934343434343434000000000000000000000000000000000000000000000019121018310003020103313131313131313131313131313131313131313131313131313131313131313100000000000000000000000000000000", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("0B3139322E3136382E312E311388138934343434343434000000000000000000000000000000000000000000000019121018310003020103313131313131313131313131313131313131313131313131313131313131313100000000000000000000000000000000".ToHexBytes()); + Assert.Equal("11111111111111111111111111111111", jT808UploadLocationRequest.AlarmId); + Assert.Equal(1, jT808UploadLocationRequest.AlarmIdentification.Retain1); + Assert.Equal(3, jT808UploadLocationRequest.AlarmIdentification.Retain2); + Assert.Equal(2, jT808UploadLocationRequest.AlarmIdentification.AttachCount); + Assert.Equal(3, jT808UploadLocationRequest.AlarmIdentification.SN); + Assert.Equal("4444444", jT808UploadLocationRequest.AlarmIdentification.TerminalId); + Assert.Equal(Convert.ToDateTime("2019-12-10 18:31:00"), jT808UploadLocationRequest.AlarmIdentification.Time); + Assert.Equal("192.168.1.1", jT808UploadLocationRequest.AttachmentServerIP); + Assert.Equal("192.168.1.1".Length, jT808UploadLocationRequest.AttachmentServerIPLength); + Assert.Equal(5000, jT808UploadLocationRequest.AttachmentServerIPTcpPort); + Assert.Equal(5001, jT808UploadLocationRequest.AttachmentServerIPUdpPort); + } + + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("0B3139322E3136382E312E311388138934343434343434000000000000000000000000000000000000000000000019121018310003020103313131313131313131313131313131313131313131313131313131313131313100000000000000000000000000000000".ToHexBytes()); + } + } +} diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x9212_Test.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x9212_Test.cs new file mode 100644 index 0000000..055a05a --- /dev/null +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/JT808_0x9212_Test.cs @@ -0,0 +1,67 @@ +using JT808.Protocol.Extensions.YueBiao.MessageBody; +using JT808.Protocol.Extensions.YueBiao.Metadata; +using JT808.Protocol.MessageBody; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using Xunit; + +namespace JT808.Protocol.Extensions.YueBiao.Test +{ + public class JT808_0x9212_Test + { + JT808Serializer JT808Serializer; + public JT808_0x9212_Test() + { + ServiceCollection serviceDescriptors = new ServiceCollection(); + serviceDescriptors.AddJT808Configure() + .AddYueBiaoConfigure(); + IJT808Config jT808Config = serviceDescriptors.BuildServiceProvider().GetRequiredService(); + JT808Serializer = new JT808Serializer(jT808Config); + } + [Fact] + public void Serializer() + { + JT808_0x9212 jT808UploadLocationRequest = new JT808_0x9212 + { + DataPackageCount = 2, + DataPackages = new List { + new Metadata.DataPackageProperty{ + Length=10, + Offset=20 + }, + new Metadata.DataPackageProperty{ + Length=30, + Offset=40 + } + }, + FileName = "FileName", + FileType = 1, + UploadResult = 2 + }; + var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); + Assert.Equal("0846696C654E616D65010202000000140000000A000000280000001E", hex); + } + [Fact] + public void Deserialize() + { + var jT808UploadLocationRequest = JT808Serializer.Deserialize("0846696C654E616D65010202000000140000000A000000280000001E".ToHexBytes()); + Assert.Equal(2, jT808UploadLocationRequest.DataPackageCount); + Assert.Equal("FileName", jT808UploadLocationRequest.FileName); + Assert.Equal(1, jT808UploadLocationRequest.FileType); + Assert.Equal(2, jT808UploadLocationRequest.UploadResult); + + Assert.Equal(10u, jT808UploadLocationRequest.DataPackages[0].Length); + Assert.Equal(20u, jT808UploadLocationRequest.DataPackages[0].Offset); + + Assert.Equal(30u, jT808UploadLocationRequest.DataPackages[1].Length); + Assert.Equal(40u, jT808UploadLocationRequest.DataPackages[1].Offset); + } + [Fact] + public void Json() + { + var json = JT808Serializer.Analyze("0846696C654E616D65010202000000140000000A000000280000001E".ToHexBytes()); + } + } +} + diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/UnitTest1.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/UnitTest1.cs deleted file mode 100644 index b46b2a0..0000000 --- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao.Test/UnitTest1.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using Xunit; - -namespace JT808.Protocol.Extensions.YueBiao.Test -{ - public class UnitTest1 - { - [Fact] - public void Test1() - { - - } - } -}