소스 검색

增加上级平台部分消息指令

tags/old
SmallChi 6 년 전
부모
커밋
74c98e6e65
4개의 변경된 파일91개의 추가작업 그리고 10개의 파일을 삭제
  1. +14
    -1
      src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj
  2. +15
    -0
      src/JT809.DotNetty.Core/Codecs/JT809Encoder.cs
  3. +50
    -9
      src/JT809.DotNetty.Core/Handlers/JT809SuperiorMsgIdReceiveHandlerBase.cs
  4. +12
    -0
      src/JT809.DotNetty.Core/JT809.DotNetty.Core.csproj

+ 14
- 1
src/JT809.DotNetty.Abstractions/JT809.DotNetty.Abstractions.csproj 파일 보기

@@ -1,7 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">


<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.1</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi</Authors>
<PackageId>JT809.DotNetty.Abstractions</PackageId>
<Product>JT809.DotNetty.Abstractions</Product>
<Description>基于DotNetty实现的JT809DotNetty的抽象库</Description>
<PackageReleaseNotes>基于DotNetty实现的JT809DotNetty的抽象库</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT809DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT809DotNetty</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT809DotNetty/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
</PropertyGroup> </PropertyGroup>


</Project> </Project>

+ 15
- 0
src/JT809.DotNetty.Core/Codecs/JT809Encoder.cs 파일 보기

@@ -4,6 +4,7 @@ using System.Collections.Generic;
using DotNetty.Transport.Channels; using DotNetty.Transport.Channels;
using JT809.Protocol; using JT809.Protocol;
using JT809.DotNetty.Core.Metadata; using JT809.DotNetty.Core.Metadata;
using Microsoft.Extensions.Logging;


namespace JT809.DotNetty.Core.Codecs namespace JT809.DotNetty.Core.Codecs
{ {
@@ -12,14 +13,28 @@ namespace JT809.DotNetty.Core.Codecs
/// </summary> /// </summary>
internal class JT809Encoder : MessageToByteEncoder<JT809Response> internal class JT809Encoder : MessageToByteEncoder<JT809Response>
{ {
private readonly ILogger<JT809Encoder> logger;

public JT809Encoder(ILoggerFactory loggerFactory)
{
logger = loggerFactory.CreateLogger<JT809Encoder>();
}
protected override void Encode(IChannelHandlerContext context, JT809Response message, IByteBuffer output) protected override void Encode(IChannelHandlerContext context, JT809Response message, IByteBuffer output)
{ {
if (message.Package != null) { if (message.Package != null) {
var sendData = JT809Serializer.Serialize(message.Package, message.MinBufferSize); var sendData = JT809Serializer.Serialize(message.Package, message.MinBufferSize);
if (logger.IsEnabled(LogLevel.Trace))
{
logger.LogTrace(ByteBufferUtil.HexDump(sendData));
}
output.WriteBytes(sendData); output.WriteBytes(sendData);
} }
else if (message.HexData != null) else if (message.HexData != null)
{ {
if (logger.IsEnabled(LogLevel.Trace))
{
logger.LogTrace(ByteBufferUtil.HexDump(message.HexData));
}
output.WriteBytes(message.HexData); output.WriteBytes(message.HexData);
} }
} }


+ 50
- 9
src/JT809.DotNetty.Core/Handlers/JT809SuperiorMsgIdReceiveHandlerBase.cs 파일 보기

@@ -47,7 +47,10 @@ namespace JT809.DotNetty.Core.Handlers
}; };
SubHandlerDict = new Dictionary<JT809SubBusinessType, Func<JT809Request, JT809Response>> SubHandlerDict = new Dictionary<JT809SubBusinessType, Func<JT809Request, JT809Response>>
{ {
{JT809SubBusinessType.上传车辆注册信息, Msg0x1200_0x1201},
{JT809SubBusinessType.主动上报驾驶员身份信息, Msg0x1200_0x120C},
{JT809SubBusinessType.实时上传车辆定位信息, Msg0x1200_0x1202}, {JT809SubBusinessType.实时上传车辆定位信息, Msg0x1200_0x1202},
{JT809SubBusinessType.车辆定位信息自动补报, Msg0x1200_0x1203},
}; };
} }


@@ -107,7 +110,7 @@ namespace JT809.DotNetty.Core.Handlers
{ {
var jT809_0x1007 = request.Package.Bodies as JT809_0x1007; var jT809_0x1007 = request.Package.Bodies as JT809_0x1007;
Logger.LogInformation($"主链路断开通知消息:{jT809_0x1007.ErrorCode.ToString()}-{jT809_0x1007.ErrorCode}"); Logger.LogInformation($"主链路断开通知消息:{jT809_0x1007.ErrorCode.ToString()}-{jT809_0x1007.ErrorCode}");
return null;
return default;
} }


/// <summary> /// <summary>
@@ -119,7 +122,7 @@ namespace JT809.DotNetty.Core.Handlers
{ {
var jT809_0x1008 = request.Package.Bodies as JT809_0x1008; var jT809_0x1008 = request.Package.Bodies as JT809_0x1008;
Logger.LogInformation($"下级平台主动关闭链路通知消息:{jT809_0x1008.ReasonCode.ToString()}-{jT809_0x1008.ReasonCode}"); Logger.LogInformation($"下级平台主动关闭链路通知消息:{jT809_0x1008.ReasonCode.ToString()}-{jT809_0x1008.ReasonCode}");
return null;
return default;
} }


/// <summary> /// <summary>
@@ -131,7 +134,7 @@ namespace JT809.DotNetty.Core.Handlers
{ {
var jT809_0x9002 = request.Package.Bodies as JT809_0x9002; var jT809_0x9002 = request.Package.Bodies as JT809_0x9002;
Logger.LogInformation($"从链路连接应答消息:{jT809_0x9002.Result.ToString()}-{jT809_0x9002.Result}"); Logger.LogInformation($"从链路连接应答消息:{jT809_0x9002.Result.ToString()}-{jT809_0x9002.Result}");
return null;
return default;
} }


/// <summary> /// <summary>
@@ -141,8 +144,8 @@ namespace JT809.DotNetty.Core.Handlers
/// <returns>本条消息无需被通知方应答</returns> /// <returns>本条消息无需被通知方应答</returns>
public virtual JT809Response Msg0x9004(JT809Request request) public virtual JT809Response Msg0x9004(JT809Request request)
{ {
Logger.LogInformation("从链路注销应答消息");
return null;
Logger.LogInformation($"从链路注销应答消息:{request.OriginalPackage.ToHexString()}");
return default;
} }


/// <summary> /// <summary>
@@ -152,8 +155,8 @@ namespace JT809.DotNetty.Core.Handlers
/// <returns>本条消息无需被通知方应答</returns> /// <returns>本条消息无需被通知方应答</returns>
public virtual JT809Response Msg0x9006(JT809Request request) public virtual JT809Response Msg0x9006(JT809Request request)
{ {
Logger.LogInformation("从链路连接保持应答消息");
return null;
Logger.LogInformation($"从链路连接保持应答消息:{request.OriginalPackage.ToHexString()}");
return default;
} }


/// <summary> /// <summary>
@@ -170,7 +173,19 @@ namespace JT809.DotNetty.Core.Handlers
{ {
return func(request); return func(request);
} }
return null;
return default;
}

/// <summary>
/// 上传车辆注册信息消息
/// </summary>
/// <param name="request"></param>
/// <returns>本条消息无需被通知方应答</returns>
public virtual JT809Response Msg0x1200_0x1201(JT809Request request)
{
if (Logger.IsEnabled(LogLevel.Debug))
Logger.LogDebug($"上传车辆注册信息消息:{request.OriginalPackage.ToHexString()}");
return default;
} }


/// <summary> /// <summary>
@@ -180,7 +195,33 @@ namespace JT809.DotNetty.Core.Handlers
/// <returns>本条消息无需被通知方应答</returns> /// <returns>本条消息无需被通知方应答</returns>
public virtual JT809Response Msg0x1200_0x1202(JT809Request request) public virtual JT809Response Msg0x1200_0x1202(JT809Request request)
{ {
throw new NotImplementedException("实时上传车辆定位信息");
if (Logger.IsEnabled(LogLevel.Debug))
Logger.LogDebug($"实时上传车辆定位信息:{request.OriginalPackage.ToHexString()}");
return default;
}

/// <summary>
/// 车辆定位信息自动补报
/// </summary>
/// <param name="request"></param>
/// <returns>本条消息无需被通知方应答</returns>
public virtual JT809Response Msg0x1200_0x1203(JT809Request request)
{
if (Logger.IsEnabled(LogLevel.Debug))
Logger.LogDebug($"车辆定位信息自动补报:{request.OriginalPackage.ToHexString()}");
return default;
}

/// <summary>
/// 主动上报驾驶员身份信息
/// </summary>
/// <param name="request"></param>
/// <returns>本条消息无需被通知方应答</returns>
public virtual JT809Response Msg0x1200_0x120C(JT809Request request)
{
if (Logger.IsEnabled(LogLevel.Debug))
Logger.LogDebug($"主动上报驾驶员身份信息:{request.OriginalPackage.ToHexString()}");
return default;
} }
} }
} }

+ 12
- 0
src/JT809.DotNetty.Core/JT809.DotNetty.Core.csproj 파일 보기

@@ -3,6 +3,18 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework> <TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.1</LangVersion> <LangVersion>7.1</LangVersion>
<Copyright>Copyright 2018.</Copyright>
<Authors>SmallChi</Authors>
<PackageId>JT809.DotNetty.Core</PackageId>
<Product>JT809.DotNetty.Core</Product>
<Description>基于DotNetty实现的JT809DotNetty的核心库</Description>
<PackageReleaseNotes>基于DotNetty实现的JT809DotNetty的核心库</PackageReleaseNotes>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<RepositoryUrl>https://github.com/SmallChi/JT809DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT809DotNetty</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT809DotNetty/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.0</Version>
</PropertyGroup> </PropertyGroup>


<ItemGroup> <ItemGroup>


불러오는 중...
취소
저장