From 74c98e6e65e4a4e2e4e1c7cf644277b234d0b7d0 Mon Sep 17 00:00:00 2001 From: SmallChi <564952747@qq.com> Date: Thu, 14 Mar 2019 21:12:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=8A=E7=BA=A7=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E9=83=A8=E5=88=86=E6=B6=88=E6=81=AF=E6=8C=87=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JT809.DotNetty.Abstractions.csproj | 15 ++++- .../Codecs/JT809Encoder.cs | 15 +++++ .../JT809SuperiorMsgIdReceiveHandlerBase.cs | 59 ++++++++++++++++--- .../JT809.DotNetty.Core.csproj | 12 ++++ 4 files changed, 91 insertions(+), 10 deletions(-) diff --git a/src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj b/src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj index 9f5c4f4..17e9305 100644 --- a/src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj +++ b/src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj @@ -1,7 +1,20 @@ - + netstandard2.0 + 7.1 + Copyright 2018. + SmallChi + JT809.DotNetty.Abstractions + JT809.DotNetty.Abstractions + 基于DotNetty实现的JT809DotNetty的抽象库 + 基于DotNetty实现的JT809DotNetty的抽象库 + false + https://github.com/SmallChi/JT809DotNetty + https://github.com/SmallChi/JT809DotNetty + https://github.com/SmallChi/JT809DotNetty/blob/master/LICENSE + true + 1.0.0 diff --git a/src/JT809.DotNetty.Core/Codecs/JT809Encoder.cs b/src/JT809.DotNetty.Core/Codecs/JT809Encoder.cs index 5df404a..035288b 100644 --- a/src/JT809.DotNetty.Core/Codecs/JT809Encoder.cs +++ b/src/JT809.DotNetty.Core/Codecs/JT809Encoder.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using DotNetty.Transport.Channels; using JT809.Protocol; using JT809.DotNetty.Core.Metadata; +using Microsoft.Extensions.Logging; namespace JT809.DotNetty.Core.Codecs { @@ -12,14 +13,28 @@ namespace JT809.DotNetty.Core.Codecs /// internal class JT809Encoder : MessageToByteEncoder { + private readonly ILogger logger; + + public JT809Encoder(ILoggerFactory loggerFactory) + { + logger = loggerFactory.CreateLogger(); + } protected override void Encode(IChannelHandlerContext context, JT809Response message, IByteBuffer output) { if (message.Package != null) { var sendData = JT809Serializer.Serialize(message.Package, message.MinBufferSize); + if (logger.IsEnabled(LogLevel.Trace)) + { + logger.LogTrace(ByteBufferUtil.HexDump(sendData)); + } output.WriteBytes(sendData); } else if (message.HexData != null) { + if (logger.IsEnabled(LogLevel.Trace)) + { + logger.LogTrace(ByteBufferUtil.HexDump(message.HexData)); + } output.WriteBytes(message.HexData); } } diff --git a/src/JT809.DotNetty.Core/Handlers/JT809SuperiorMsgIdReceiveHandlerBase.cs b/src/JT809.DotNetty.Core/Handlers/JT809SuperiorMsgIdReceiveHandlerBase.cs index 665a041..e758211 100644 --- a/src/JT809.DotNetty.Core/Handlers/JT809SuperiorMsgIdReceiveHandlerBase.cs +++ b/src/JT809.DotNetty.Core/Handlers/JT809SuperiorMsgIdReceiveHandlerBase.cs @@ -47,7 +47,10 @@ namespace JT809.DotNetty.Core.Handlers }; SubHandlerDict = new Dictionary> { + {JT809SubBusinessType.上传车辆注册信息, Msg0x1200_0x1201}, + {JT809SubBusinessType.主动上报驾驶员身份信息, Msg0x1200_0x120C}, {JT809SubBusinessType.实时上传车辆定位信息, Msg0x1200_0x1202}, + {JT809SubBusinessType.车辆定位信息自动补报, Msg0x1200_0x1203}, }; } @@ -107,7 +110,7 @@ namespace JT809.DotNetty.Core.Handlers { var jT809_0x1007 = request.Package.Bodies as JT809_0x1007; Logger.LogInformation($"主链路断开通知消息:{jT809_0x1007.ErrorCode.ToString()}-{jT809_0x1007.ErrorCode}"); - return null; + return default; } /// @@ -119,7 +122,7 @@ namespace JT809.DotNetty.Core.Handlers { var jT809_0x1008 = request.Package.Bodies as JT809_0x1008; Logger.LogInformation($"下级平台主动关闭链路通知消息:{jT809_0x1008.ReasonCode.ToString()}-{jT809_0x1008.ReasonCode}"); - return null; + return default; } /// @@ -131,7 +134,7 @@ namespace JT809.DotNetty.Core.Handlers { var jT809_0x9002 = request.Package.Bodies as JT809_0x9002; Logger.LogInformation($"从链路连接应答消息:{jT809_0x9002.Result.ToString()}-{jT809_0x9002.Result}"); - return null; + return default; } /// @@ -141,8 +144,8 @@ namespace JT809.DotNetty.Core.Handlers /// 本条消息无需被通知方应答 public virtual JT809Response Msg0x9004(JT809Request request) { - Logger.LogInformation("从链路注销应答消息"); - return null; + Logger.LogInformation($"从链路注销应答消息:{request.OriginalPackage.ToHexString()}"); + return default; } /// @@ -152,8 +155,8 @@ namespace JT809.DotNetty.Core.Handlers /// 本条消息无需被通知方应答 public virtual JT809Response Msg0x9006(JT809Request request) { - Logger.LogInformation("从链路连接保持应答消息"); - return null; + Logger.LogInformation($"从链路连接保持应答消息:{request.OriginalPackage.ToHexString()}"); + return default; } /// @@ -170,7 +173,19 @@ namespace JT809.DotNetty.Core.Handlers { return func(request); } - return null; + return default; + } + + /// + /// 上传车辆注册信息消息 + /// + /// + /// 本条消息无需被通知方应答 + public virtual JT809Response Msg0x1200_0x1201(JT809Request request) + { + if (Logger.IsEnabled(LogLevel.Debug)) + Logger.LogDebug($"上传车辆注册信息消息:{request.OriginalPackage.ToHexString()}"); + return default; } /// @@ -180,7 +195,33 @@ namespace JT809.DotNetty.Core.Handlers /// 本条消息无需被通知方应答 public virtual JT809Response Msg0x1200_0x1202(JT809Request request) { - throw new NotImplementedException("实时上传车辆定位信息"); + if (Logger.IsEnabled(LogLevel.Debug)) + Logger.LogDebug($"实时上传车辆定位信息:{request.OriginalPackage.ToHexString()}"); + return default; + } + + /// + /// 车辆定位信息自动补报 + /// + /// + /// 本条消息无需被通知方应答 + public virtual JT809Response Msg0x1200_0x1203(JT809Request request) + { + if (Logger.IsEnabled(LogLevel.Debug)) + Logger.LogDebug($"车辆定位信息自动补报:{request.OriginalPackage.ToHexString()}"); + return default; + } + + /// + /// 主动上报驾驶员身份信息 + /// + /// + /// 本条消息无需被通知方应答 + public virtual JT809Response Msg0x1200_0x120C(JT809Request request) + { + if (Logger.IsEnabled(LogLevel.Debug)) + Logger.LogDebug($"主动上报驾驶员身份信息:{request.OriginalPackage.ToHexString()}"); + return default; } } } diff --git a/src/JT809.DotNetty.Core/JT809.DotNetty.Core.csproj b/src/JT809.DotNetty.Core/JT809.DotNetty.Core.csproj index 126891e..4ac8f09 100644 --- a/src/JT809.DotNetty.Core/JT809.DotNetty.Core.csproj +++ b/src/JT809.DotNetty.Core/JT809.DotNetty.Core.csproj @@ -3,6 +3,18 @@ netstandard2.0 7.1 + Copyright 2018. + SmallChi + JT809.DotNetty.Core + JT809.DotNetty.Core + 基于DotNetty实现的JT809DotNetty的核心库 + 基于DotNetty实现的JT809DotNetty的核心库 + false + https://github.com/SmallChi/JT809DotNetty + https://github.com/SmallChi/JT809DotNetty + https://github.com/SmallChi/JT809DotNetty/blob/master/LICENSE + true + 1.0.0