1.增加粤标的808扩展协议 2.增加苏标的808扩展协议 3.修复1078的9206报警标志为8个字节 4.增加0x8105终端控制自定义命令参数 5.调整0x0200附加基类,新增一个4个字节的扩展附加信息长度属性(粤标自定义厂商扩展) 6.增加2019版本新增0x0200_0x07附加数据 7.增加2019版本新增0x0702对应的人脸匹配度、UID属性 8.增加序列化入口强制转换2013版本号 9.增加替换原有消息Id的方法用于临时BUG修复功能 10.修复0x8103自定义协议未能注册的情况下,导致协议解析报错tags/v2.4.1
@@ -8,7 +8,7 @@ | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT808</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JT808</PackageProjectUrl> | ||||
<licenseUrl>https://github.com/SmallChi/JT808/blob/master/LICENSE</licenseUrl> | <licenseUrl>https://github.com/SmallChi/JT808/blob/master/LICENSE</licenseUrl> | ||||
<license>https://github.com/SmallChi/JT808/blob/master/LICENSE</license> | <license>https://github.com/SmallChi/JT808/blob/master/LICENSE</license> | ||||
<Version>2.4.1-preview1</Version> | |||||
<Version>2.4.1</Version> | |||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | ||||
<AnalysisLevel>latest</AnalysisLevel> | <AnalysisLevel>latest</AnalysisLevel> | ||||
@@ -3,8 +3,8 @@ | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<PackageId>JT808.Protocol.Extensions.JT1078</PackageId> | <PackageId>JT808.Protocol.Extensions.JT1078</PackageId> | ||||
<Product>JT808.Protocol.Extensions.JT1078</Product> | <Product>JT808.Protocol.Extensions.JT1078</Product> | ||||
<Description>基于JT808协议、GB808协议扩展的视频消息协议</Description> | |||||
<PackageReleaseNotes>基于JT808协议、GB808协议扩展的视频消息协议</PackageReleaseNotes> | |||||
<Description>基于JT808协议、GB808协议扩展的JT1078视频消息协议</Description> | |||||
<PackageReleaseNotes>基于JT808协议、GB808协议扩展的JT1078视频消息协议</PackageReleaseNotes> | |||||
<DocumentationFile>JT808.Protocol.Extensions.JT1078.xml</DocumentationFile> | <DocumentationFile>JT808.Protocol.Extensions.JT1078.xml</DocumentationFile> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
@@ -1831,6 +1831,16 @@ | |||||
文件上传指令 | 文件上传指令 | ||||
</summary> | </summary> | ||||
</member> | </member> | ||||
<member name="P:JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9206.Description"> | |||||
<summary> | |||||
文件上传指令 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9206.MsgId"> | |||||
<summary> | |||||
0x9206 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9206.ServerIpLength"> | <member name="P:JT808.Protocol.Extensions.JT1078.MessageBody.JT808_0x9206.ServerIpLength"> | ||||
<summary> | <summary> | ||||
服务器IP地址服务 | 服务器IP地址服务 | ||||
@@ -13,10 +13,14 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody | |||||
/// </summary> | /// </summary> | ||||
public class JT808_0x9206 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x9206>, IJT808Analyze | public class JT808_0x9206 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x9206>, IJT808Analyze | ||||
{ | { | ||||
#pragma warning disable CS1591 // 缺少对公共可见类型或成员的 XML 注释 | |||||
/// <summary> | |||||
/// 文件上传指令 | |||||
/// </summary> | |||||
public override string Description => "文件上传指令"; | public override string Description => "文件上传指令"; | ||||
/// <summary> | |||||
/// 0x9206 | |||||
/// </summary> | |||||
public override ushort MsgId => 0x9206; | public override ushort MsgId => 0x9206; | ||||
#pragma warning restore CS1591 // 缺少对公共可见类型或成员的 XML 注释 | |||||
/// <summary> | /// <summary> | ||||
/// 服务器IP地址服务 | /// 服务器IP地址服务 | ||||
/// </summary> | /// </summary> | ||||
@@ -1743,7 +1743,11 @@ | |||||
红外墨镜阻断失效报警拍照间隔 | 红外墨镜阻断失效报警拍照间隔 | ||||
</summary> | </summary> | ||||
</member> | </member> | ||||
<!-- Badly formed XML comment ignored for member "P:JT808.Protocol.Extensions.YueBiao.MessageBody.JT808_0x8103_0xF365.ClassifiedSpeedThresholdDoubleHanderOff" --> | |||||
<member name="P:JT808.Protocol.Extensions.YueBiao.MessageBody.JT808_0x8103_0xF365.ClassifiedSpeedThresholdDoubleHanderOff"> | |||||
<summary> | |||||
双脱把报警分级车速阈值 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.YueBiao.MessageBody.JT808_0x8103_0xF365.VideoRecordingTimeDoubleHanderOff"> | <member name="P:JT808.Protocol.Extensions.YueBiao.MessageBody.JT808_0x8103_0xF365.VideoRecordingTimeDoubleHanderOff"> | ||||
<summary> | <summary> | ||||
双脱把报警前后视频录制时间 | 双脱把报警前后视频录制时间 | ||||
@@ -1759,7 +1763,11 @@ | |||||
双脱把报警拍照间隔 | 双脱把报警拍照间隔 | ||||
</summary> | </summary> | ||||
</member> | </member> | ||||
<!-- Badly formed XML comment ignored for member "P:JT808.Protocol.Extensions.YueBiao.MessageBody.JT808_0x8103_0xF365.ClassifiedSpeedThresholdPlayMobile" --> | |||||
<member name="P:JT808.Protocol.Extensions.YueBiao.MessageBody.JT808_0x8103_0xF365.ClassifiedSpeedThresholdPlayMobile"> | |||||
<summary> | |||||
玩手机报警分级车速阈值 | |||||
</summary> | |||||
</member> | |||||
<member name="P:JT808.Protocol.Extensions.YueBiao.MessageBody.JT808_0x8103_0xF365.VideoRecordingTimePlayMobile"> | <member name="P:JT808.Protocol.Extensions.YueBiao.MessageBody.JT808_0x8103_0xF365.VideoRecordingTimePlayMobile"> | ||||
<summary> | <summary> | ||||
玩手机报警前后视频录制时间 | 玩手机报警前后视频录制时间 | ||||
@@ -199,6 +199,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody | |||||
///红外墨镜阻断失效报警拍照间隔 | ///红外墨镜阻断失效报警拍照间隔 | ||||
/// </summary> | /// </summary> | ||||
public byte PictureIntervalInfraredSunglassesBlockingFailure { get; set; } | public byte PictureIntervalInfraredSunglassesBlockingFailure { get; set; } | ||||
/// <summary> | |||||
/// 双脱把报警分级车速阈值 | /// 双脱把报警分级车速阈值 | ||||
/// </summary> | /// </summary> | ||||
public byte ClassifiedSpeedThresholdDoubleHanderOff { get; set; } | public byte ClassifiedSpeedThresholdDoubleHanderOff { get; set; } | ||||
@@ -214,6 +215,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody | |||||
///双脱把报警拍照间隔 | ///双脱把报警拍照间隔 | ||||
/// </summary> | /// </summary> | ||||
public byte PictureIntervalDoubleHanderOff { get; set; } | public byte PictureIntervalDoubleHanderOff { get; set; } | ||||
/// <summary> | |||||
///玩手机报警分级车速阈值 | ///玩手机报警分级车速阈值 | ||||
/// </summary> | /// </summary> | ||||
public byte ClassifiedSpeedThresholdPlayMobile { get; set; } | public byte ClassifiedSpeedThresholdPlayMobile { get; set; } | ||||
@@ -27,17 +27,17 @@ namespace JT808.Protocol.Test.Simples | |||||
public Demo14() | public Demo14() | ||||
{ | { | ||||
IServiceCollection serviceDescriptors = new ServiceCollection(); | IServiceCollection serviceDescriptors = new ServiceCollection(); | ||||
serviceDescriptors.AddJT808Configure(); | |||||
serviceDescriptors.AddJT808Configure(new DefaultGlobalConfig("replace")); | |||||
//通常在startup中使用app的Use进行扩展 | //通常在startup中使用app的Use进行扩展 | ||||
IServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider(); | IServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider(); | ||||
Use(serviceProvider); | Use(serviceProvider); | ||||
} | } | ||||
public void Use(IServiceProvider serviceProvider) | |||||
void Use(IServiceProvider serviceProvider) | |||||
{ | { | ||||
IJT808Config jT808Config = serviceProvider.GetRequiredService<IJT808Config>(); | |||||
IJT808Config jT808Config = serviceProvider.GetRequiredService<DefaultGlobalConfig>(); | |||||
//替换原有消息存在的BUG | //替换原有消息存在的BUG | ||||
jT808Config.MsgIdFactory.Map[0x0001]=new JT808_0x0001_Replace(); | |||||
jT808Config.ReplaceMsgId<JT808_0x0001, JT808_0x0001_Replace>(); | |||||
JT808Serializer = jT808Config.GetSerializer(); | JT808Serializer = jT808Config.GetSerializer(); | ||||
} | } | ||||
@@ -126,7 +126,6 @@ namespace JT808.Protocol.Interfaces | |||||
/// 终端控制自定义参数命令工厂 | /// 终端控制自定义参数命令工厂 | ||||
/// </summary> | /// </summary> | ||||
public virtual IJT808_0x8105_Cusotm_Factory JT808_0x8105_Cusotm_Factory { get; set; } | public virtual IJT808_0x8105_Cusotm_Factory JT808_0x8105_Cusotm_Factory { get; set; } | ||||
/// <summary> | /// <summary> | ||||
/// 外部扩展程序集注册 | /// 外部扩展程序集注册 | ||||
/// </summary> | /// </summary> | ||||
@@ -154,5 +153,19 @@ namespace JT808.Protocol.Interfaces | |||||
} | } | ||||
return this; | return this; | ||||
} | } | ||||
/// <summary> | |||||
/// 替换原有消息 | |||||
/// </summary> | |||||
/// <typeparam name="TSourceJT808Bodies"></typeparam> | |||||
/// <typeparam name="TTargetJT808Bodies"></typeparam> | |||||
public void ReplaceMsgId<TSourceJT808Bodies, TTargetJT808Bodies>() | |||||
where TSourceJT808Bodies : JT808Bodies | |||||
where TTargetJT808Bodies : JT808Bodies, new() | |||||
{ | |||||
TTargetJT808Bodies bodies = new TTargetJT808Bodies(); | |||||
MsgIdFactory.Map[bodies.MsgId] = bodies; | |||||
FormatterFactory.FormatterDict.Remove(typeof(TSourceJT808Bodies).GUID); | |||||
FormatterFactory.FormatterDict.Add(typeof(TTargetJT808Bodies).GUID, bodies); | |||||
} | |||||
} | } | ||||
} | } |
@@ -111,5 +111,12 @@ namespace JT808.Protocol | |||||
/// <param name="externalAssemblies"></param> | /// <param name="externalAssemblies"></param> | ||||
/// <returns></returns> | /// <returns></returns> | ||||
IJT808Config Register(params Assembly[] externalAssemblies); | IJT808Config Register(params Assembly[] externalAssemblies); | ||||
/// <summary> | |||||
/// 替换原有消息 | |||||
/// </summary> | |||||
void ReplaceMsgId<TSourceJT808Bodies, TTargetJT808Bodies>() | |||||
where TSourceJT808Bodies : JT808Bodies | |||||
where TTargetJT808Bodies : JT808Bodies,new(); | |||||
} | } | ||||
} | } |
@@ -4032,6 +4032,13 @@ | |||||
<param name="externalAssemblies"></param> | <param name="externalAssemblies"></param> | ||||
<returns></returns> | <returns></returns> | ||||
</member> | </member> | ||||
<member name="M:JT808.Protocol.Interfaces.GlobalConfigBase.ReplaceMsgId``2"> | |||||
<summary> | |||||
替换原有消息 | |||||
</summary> | |||||
<typeparam name="TSourceJT808Bodies"></typeparam> | |||||
<typeparam name="TTargetJT808Bodies"></typeparam> | |||||
</member> | |||||
<member name="T:JT808.Protocol.Interfaces.IJT808Analyze"> | <member name="T:JT808.Protocol.Interfaces.IJT808Analyze"> | ||||
<summary> | <summary> | ||||
JT808分析器 | JT808分析器 | ||||
@@ -4500,6 +4507,11 @@ | |||||
<param name="externalAssemblies"></param> | <param name="externalAssemblies"></param> | ||||
<returns></returns> | <returns></returns> | ||||
</member> | </member> | ||||
<member name="M:JT808.Protocol.IJT808Config.ReplaceMsgId``2"> | |||||
<summary> | |||||
替换原有消息 | |||||
</summary> | |||||
</member> | |||||
<member name="T:JT808.Protocol.Internal.DefaultBuilder"> | <member name="T:JT808.Protocol.Internal.DefaultBuilder"> | ||||
<summary> | <summary> | ||||
默认JT808构造器 | 默认JT808构造器 | ||||