From 7f6a7821d9140e1516d149276b886e643e8971c6 Mon Sep 17 00:00:00 2001 From: "SmallChi(Koike)" <564952747@qq.com> Date: Mon, 28 Jun 2021 13:49:34 +0800 Subject: [PATCH] =?UTF-8?q?v2.4.1=201.=E5=A2=9E=E5=8A=A0=E7=B2=A4=E6=A0=87?= =?UTF-8?q?=E7=9A=84808=E6=89=A9=E5=B1=95=E5=8D=8F=E8=AE=AE=202.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E8=8B=8F=E6=A0=87=E7=9A=84808=E6=89=A9=E5=B1=95?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE=203.=E4=BF=AE=E5=A4=8D1078=E7=9A=849206?= =?UTF-8?q?=E6=8A=A5=E8=AD=A6=E6=A0=87=E5=BF=97=E4=B8=BA8=E4=B8=AA?= =?UTF-8?q?=E5=AD=97=E8=8A=82=204.=E5=A2=9E=E5=8A=A00x8105=E7=BB=88?= =?UTF-8?q?=E7=AB=AF=E6=8E=A7=E5=88=B6=E8=87=AA=E5=AE=9A=E4=B9=89=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E5=8F=82=E6=95=B0=205.=E8=B0=83=E6=95=B40x0200?= =?UTF-8?q?=E9=99=84=E5=8A=A0=E5=9F=BA=E7=B1=BB=EF=BC=8C=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E4=B8=80=E4=B8=AA4=E4=B8=AA=E5=AD=97=E8=8A=82=E7=9A=84?= =?UTF-8?q?=E6=89=A9=E5=B1=95=E9=99=84=E5=8A=A0=E4=BF=A1=E6=81=AF=E9=95=BF?= =?UTF-8?q?=E5=BA=A6=E5=B1=9E=E6=80=A7=EF=BC=88=E7=B2=A4=E6=A0=87=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=8E=82=E5=95=86=E6=89=A9=E5=B1=95=EF=BC=89?= =?UTF-8?q?=206.=E5=A2=9E=E5=8A=A02019=E7=89=88=E6=9C=AC=E6=96=B0=E5=A2=9E?= =?UTF-8?q?0x0200=5F0x07=E9=99=84=E5=8A=A0=E6=95=B0=E6=8D=AE=207.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A02019=E7=89=88=E6=9C=AC=E6=96=B0=E5=A2=9E0x0702?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E7=9A=84=E4=BA=BA=E8=84=B8=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=BA=A6=E3=80=81UID=E5=B1=9E=E6=80=A7=208.=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=BA=8F=E5=88=97=E5=8C=96=E5=85=A5=E5=8F=A3=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E8=BD=AC=E6=8D=A22013=E7=89=88=E6=9C=AC=E5=8F=B7=209.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9B=BF=E6=8D=A2=E5=8E=9F=E6=9C=89=E6=B6=88=E6=81=AF?= =?UTF-8?q?Id=E7=9A=84=E6=96=B9=E6=B3=95=E7=94=A8=E4=BA=8E=E4=B8=B4?= =?UTF-8?q?=E6=97=B6BUG=E4=BF=AE=E5=A4=8D=E5=8A=9F=E8=83=BD=2010.=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D0x8103=E8=87=AA=E5=AE=9A=E4=B9=89=E5=8D=8F=E8=AE=AE?= =?UTF-8?q?=E6=9C=AA=E8=83=BD=E6=B3=A8=E5=86=8C=E7=9A=84=E6=83=85=E5=86=B5?= =?UTF-8?q?=E4=B8=8B=EF=BC=8C=E5=AF=BC=E8=87=B4=E5=8D=8F=E8=AE=AE=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/Info.props | 2 +- .../JT808.Protocol.Extensions.JT1078.csproj | 4 ++-- .../JT808.Protocol.Extensions.JT1078.xml | 10 ++++++++++ .../MessageBody/JT808_0x9206.cs | 8 ++++++-- .../JT808.Protocol.Extensions.YueBiao.xml | 12 ++++++++++-- .../MessageBody/JT808_0x8103_0xF365.cs | 2 ++ src/JT808.Protocol.Test/Simples/Demo14.cs | 8 ++++---- src/JT808.Protocol/Interfaces/GlobalConfigBase.cs | 15 ++++++++++++++- src/JT808.Protocol/Interfaces/IJT808Config.cs | 7 +++++++ src/JT808.Protocol/JT808.Protocol.xml | 12 ++++++++++++ 10 files changed, 68 insertions(+), 12 deletions(-) diff --git a/src/Info.props b/src/Info.props index 0cc82ab..cdbe017 100644 --- a/src/Info.props +++ b/src/Info.props @@ -8,7 +8,7 @@ https://github.com/SmallChi/JT808 https://github.com/SmallChi/JT808/blob/master/LICENSE https://github.com/SmallChi/JT808/blob/master/LICENSE - 2.4.1-preview1 + 2.4.1 LICENSE true latest diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.csproj b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.csproj index e75e3f3..222e512 100644 --- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.csproj +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.csproj @@ -3,8 +3,8 @@ JT808.Protocol.Extensions.JT1078 JT808.Protocol.Extensions.JT1078 - 基于JT808协议、GB808协议扩展的视频消息协议 - 基于JT808协议、GB808协议扩展的视频消息协议 + 基于JT808协议、GB808协议扩展的JT1078视频消息协议 + 基于JT808协议、GB808协议扩展的JT1078视频消息协议 JT808.Protocol.Extensions.JT1078.xml diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.xml b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.xml index bf071bf..a001b22 100644 --- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.xml +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/JT808.Protocol.Extensions.JT1078.xml @@ -1831,6 +1831,16 @@ 文件上传指令 + + + 文件上传指令 + + + + + 0x9206 + + 服务器IP地址服务 diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9206.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9206.cs index 3d8f05a..583cba9 100644 --- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9206.cs +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.JT1078/MessageBody/JT808_0x9206.cs @@ -13,10 +13,14 @@ namespace JT808.Protocol.Extensions.JT1078.MessageBody /// public class JT808_0x9206 : JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze { -#pragma warning disable CS1591 // 缺少对公共可见类型或成员的 XML 注释 + /// + /// 文件上传指令 + /// public override string Description => "文件上传指令"; + /// + /// 0x9206 + /// public override ushort MsgId => 0x9206; -#pragma warning restore CS1591 // 缺少对公共可见类型或成员的 XML 注释 /// /// 服务器IP地址服务 /// diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/JT808.Protocol.Extensions.YueBiao.xml b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/JT808.Protocol.Extensions.YueBiao.xml index bc5393b..7fa816f 100644 --- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/JT808.Protocol.Extensions.YueBiao.xml +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/JT808.Protocol.Extensions.YueBiao.xml @@ -1743,7 +1743,11 @@ 红外墨镜阻断失效报警拍照间隔 - + + + 双脱把报警分级车速阈值 + + 双脱把报警前后视频录制时间 @@ -1759,7 +1763,11 @@ 双脱把报警拍照间隔 - + + + 玩手机报警分级车速阈值 + + 玩手机报警前后视频录制时间 diff --git a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x8103_0xF365.cs b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x8103_0xF365.cs index 850d138..02d912a 100644 --- a/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x8103_0xF365.cs +++ b/src/JT808.Protocol.Extensions/JT808.Protocol.Extensions.YueBiao/MessageBody/JT808_0x8103_0xF365.cs @@ -199,6 +199,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody ///红外墨镜阻断失效报警拍照间隔 /// public byte PictureIntervalInfraredSunglassesBlockingFailure { get; set; } + /// /// 双脱把报警分级车速阈值 /// public byte ClassifiedSpeedThresholdDoubleHanderOff { get; set; } @@ -214,6 +215,7 @@ namespace JT808.Protocol.Extensions.YueBiao.MessageBody ///双脱把报警拍照间隔 /// public byte PictureIntervalDoubleHanderOff { get; set; } + /// ///玩手机报警分级车速阈值 /// public byte ClassifiedSpeedThresholdPlayMobile { get; set; } diff --git a/src/JT808.Protocol.Test/Simples/Demo14.cs b/src/JT808.Protocol.Test/Simples/Demo14.cs index 85a6670..1a9786e 100644 --- a/src/JT808.Protocol.Test/Simples/Demo14.cs +++ b/src/JT808.Protocol.Test/Simples/Demo14.cs @@ -27,17 +27,17 @@ namespace JT808.Protocol.Test.Simples public Demo14() { IServiceCollection serviceDescriptors = new ServiceCollection(); - serviceDescriptors.AddJT808Configure(); + serviceDescriptors.AddJT808Configure(new DefaultGlobalConfig("replace")); //通常在startup中使用app的Use进行扩展 IServiceProvider serviceProvider = serviceDescriptors.BuildServiceProvider(); Use(serviceProvider); } - public void Use(IServiceProvider serviceProvider) + void Use(IServiceProvider serviceProvider) { - IJT808Config jT808Config = serviceProvider.GetRequiredService(); + IJT808Config jT808Config = serviceProvider.GetRequiredService(); //替换原有消息存在的BUG - jT808Config.MsgIdFactory.Map[0x0001]=new JT808_0x0001_Replace(); + jT808Config.ReplaceMsgId(); JT808Serializer = jT808Config.GetSerializer(); } diff --git a/src/JT808.Protocol/Interfaces/GlobalConfigBase.cs b/src/JT808.Protocol/Interfaces/GlobalConfigBase.cs index df96131..2f04e4c 100644 --- a/src/JT808.Protocol/Interfaces/GlobalConfigBase.cs +++ b/src/JT808.Protocol/Interfaces/GlobalConfigBase.cs @@ -126,7 +126,6 @@ namespace JT808.Protocol.Interfaces /// 终端控制自定义参数命令工厂 /// public virtual IJT808_0x8105_Cusotm_Factory JT808_0x8105_Cusotm_Factory { get; set; } - /// /// 外部扩展程序集注册 /// @@ -154,5 +153,19 @@ namespace JT808.Protocol.Interfaces } return this; } + /// + /// 替换原有消息 + /// + /// + /// + public void ReplaceMsgId() + 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); + } } } diff --git a/src/JT808.Protocol/Interfaces/IJT808Config.cs b/src/JT808.Protocol/Interfaces/IJT808Config.cs index b6ee7f5..858151c 100644 --- a/src/JT808.Protocol/Interfaces/IJT808Config.cs +++ b/src/JT808.Protocol/Interfaces/IJT808Config.cs @@ -111,5 +111,12 @@ namespace JT808.Protocol /// /// IJT808Config Register(params Assembly[] externalAssemblies); + /// + /// 替换原有消息 + /// + void ReplaceMsgId() + where TSourceJT808Bodies : JT808Bodies + where TTargetJT808Bodies : JT808Bodies,new(); + } } diff --git a/src/JT808.Protocol/JT808.Protocol.xml b/src/JT808.Protocol/JT808.Protocol.xml index 56f5164..ba6685a 100644 --- a/src/JT808.Protocol/JT808.Protocol.xml +++ b/src/JT808.Protocol/JT808.Protocol.xml @@ -4032,6 +4032,13 @@ + + + 替换原有消息 + + + + JT808分析器 @@ -4500,6 +4507,11 @@ + + + 替换原有消息 + + 默认JT808构造器