@@ -7,6 +7,7 @@ | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="5.0.1" /> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" /> | <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" /> | ||||
<PackageReference Include="xunit" Version="2.4.1" /> | <PackageReference Include="xunit" Version="2.4.1" /> | ||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> | <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> | ||||
@@ -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<IJT808Config>(); | |||||
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<byte, JT808_0x0200_BodyBase>() | |||||
}; | |||||
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<JT808_0x0200>("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<JT808_0x0200>("000000010000000200BA7F0E07E4F11C0028003C00001807151010106447000000010C0605120A0B100F1100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
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<byte, JT808_0x0200_BodyBase>() | |||||
}; | |||||
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<JT808_0x0200>("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<JT808_0x0200>("000000010000000200BA7F0E07E4F11C0028003C00001807151010106547000000010C060512010203041100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
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<byte, JT808_0x0200_BodyBase>() | |||||
}; | |||||
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<Metadata.AlarmOrEventProperty> { | |||||
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<JT808_0x0200>("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<JT808_0x0200>("000000010000000200BA7F0E07E4F11C0028003C00001807151010106653000000010C1100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506020400010003000500020900060008000A0007".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
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<byte, JT808_0x0200_BodyBase>() | |||||
}; | |||||
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<JT808_0x0200>("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<JT808_0x0200>("000000010000000200BA7F0E07E4F11C0028003C00001807151010106742000000010C09081100070000000D0000000E191211183100001334343434343434000000000000000000000000000000000000000000000019121018310003020506".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x0900_0xF7 jT808_0x0900_0xF7 = new JT808_0x0900_0xF7 | |||||
{ | |||||
USBMessageCount = 2, | |||||
USBMessages = new List<JT808_0x0900_0xF7_USB> { | |||||
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<JT808_0x0900_0xF7>("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<JT808_0x0900_0xF7>("020105020000000102050200000001".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x0900_0xF8 jT808_0x0900_0xF8 = new JT808_0x0900_0xF8 | |||||
{ | |||||
USBMessageCount = 1, | |||||
USBMessages = new List<JT808_0x0900_0xF8_USB> { | |||||
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<JT808_0x0900_0xF8>("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<JT808_0x0900_0xF8>("01015C0B436F6D70616E744E616D650C50726F647563744D6F64656C15486172647761726556657273696F6E4E756D62657215536F66747761726556657273696F6E4E756D626572094465766963657349440C437573746F6D6572436F6465".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
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<Metadata.AttachProperty> { | |||||
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<JT808_0x1210>("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<JT808_0x1210>("34343434343434000000000000000000000000000000000000000000000034343434343434000000000000000000000000000000000000000000000019121018310003020103313131313131313131313131313131313131313131313131313131313131313100020866696C656E616D65000000090966696C656E616D65310000000A".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
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<JT808_0x1211>("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<JT808_0x1211>("0846696C654E616D650200000001".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
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<JT808_0x1212>("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<JT808_0x1211>("0846696C654E616D650200000001".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
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<JT808_0x1FC4>("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<JT808_0x1FC4>("000234010301".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103 | |||||
{ | |||||
ParamList = new List<JT808_0x8103_BodyBase> { | |||||
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<JT808_0x8103>("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<JT808_0x8103>("010000F36438052D030002000122231D26000000040000000A1E09152B08180F0E14291011122A16170D13280C0B1C192C1B1A2425270607202101020304".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103 | |||||
{ | |||||
ParamList = new List<JT808_0x8103_BodyBase> { | |||||
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<JT808_0x8103>("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<JT808_0x8103>("010000F3652F052D030002000122231D26000000040000000A003E002E0102033941373831402F3033423C3D3234353F3A3B360506".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103 | |||||
{ | |||||
ParamList = new List<JT808_0x8103_BodyBase> { | |||||
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<JT808_0x8103>("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<JT808_0x8103>("010000F366243939393939393939393939390008000400060005000300020001000A0007010203040506".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x8103 jT808UploadLocationRequest = new JT808_0x8103 | |||||
{ | |||||
ParamList = new List<JT808_0x8103_BodyBase> { | |||||
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<JT808_0x8103>("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<JT808_0x8103>("010000F367020201".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x8900_0xF7 jT808UploadLocationRequest = new JT808_0x8900_0xF7 | |||||
{ | |||||
USBCount = 2, | |||||
MultipleUSB = new List<byte> { 1, 2 } | |||||
}; | |||||
var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); | |||||
Assert.Equal("020102", hex); | |||||
} | |||||
[Fact] | |||||
public void Deserialize() | |||||
{ | |||||
var jT808UploadLocationRequest = JT808Serializer.Deserialize<JT808_0x8900_0xF7>("020102".ToHexBytes()); | |||||
Assert.Equal(2, jT808UploadLocationRequest.USBCount); | |||||
Assert.Equal(new List<byte> { 1, 2 }.ToArray().ToHexString(), jT808UploadLocationRequest.MultipleUSB.ToArray().ToHexString()); | |||||
} | |||||
[Fact] | |||||
public void Json() | |||||
{ | |||||
var json = JT808Serializer.Analyze<JT808_0x8900_0xF7>("020102".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x8900_0xF8 jT808UploadLocationRequest = new JT808_0x8900_0xF8 | |||||
{ | |||||
USBCount = 2, | |||||
MultipleUSB = new List<byte> { 1, 2 } | |||||
}; | |||||
var hex = JT808Serializer.Serialize(jT808UploadLocationRequest).ToHexString(); | |||||
Assert.Equal("020102", hex); | |||||
} | |||||
[Fact] | |||||
public void Deserialize() | |||||
{ | |||||
var jT808UploadLocationRequest = JT808Serializer.Deserialize<JT808_0x8900_0xF8>("020102".ToHexBytes()); | |||||
Assert.Equal(2, jT808UploadLocationRequest.USBCount); | |||||
Assert.Equal(new List<byte> { 1, 2 }.ToArray().ToHexString(), jT808UploadLocationRequest.MultipleUSB.ToArray().ToHexString()); | |||||
} | |||||
[Fact] | |||||
public void Json() | |||||
{ | |||||
var json = JT808Serializer.Analyze<JT808_0x8900_0xF8>("020102".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
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<JT808_0x9208>("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<JT808_0x9208>("0B3139322E3136382E312E311388138934343434343434000000000000000000000000000000000000000000000019121018310003020103313131313131313131313131313131313131313131313131313131313131313100000000000000000000000000000000".ToHexBytes()); | |||||
} | |||||
} | |||||
} |
@@ -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<IJT808Config>(); | |||||
JT808Serializer = new JT808Serializer(jT808Config); | |||||
} | |||||
[Fact] | |||||
public void Serializer() | |||||
{ | |||||
JT808_0x9212 jT808UploadLocationRequest = new JT808_0x9212 | |||||
{ | |||||
DataPackageCount = 2, | |||||
DataPackages = new List<Metadata.DataPackageProperty> { | |||||
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<JT808_0x9212>("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<JT808_0x9212>("0846696C654E616D65010202000000140000000A000000280000001E".ToHexBytes()); | |||||
} | |||||
} | |||||
} | |||||
@@ -1,14 +0,0 @@ | |||||
using System; | |||||
using Xunit; | |||||
namespace JT808.Protocol.Extensions.YueBiao.Test | |||||
{ | |||||
public class UnitTest1 | |||||
{ | |||||
[Fact] | |||||
public void Test1() | |||||
{ | |||||
} | |||||
} | |||||
} |