@@ -1,33 +0,0 @@ | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.DotNetty.Abstractions.Dtos | |||||
{ | |||||
/// <summary> | |||||
/// 原包通道信息 | |||||
/// </summary> | |||||
public class JT808SourcePackageChannelInfoDto | |||||
{ | |||||
/// <summary> | |||||
/// 远程地址 | |||||
/// </summary> | |||||
public string RemoteAddress { get; set; } | |||||
/// <summary> | |||||
/// 本地地址 | |||||
/// </summary> | |||||
public string LocalAddress { get; set; } | |||||
/// <summary> | |||||
/// 是否注册 | |||||
/// </summary> | |||||
public bool Registered { get; set; } | |||||
/// <summary> | |||||
/// 是否活动 | |||||
/// </summary> | |||||
public bool Active { get; set; } | |||||
/// <summary> | |||||
/// 是否打开 | |||||
/// </summary> | |||||
public bool Open { get; set; } | |||||
} | |||||
} |
@@ -1,8 +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> | <LangVersion>7.1</LangVersion> | ||||
<Copyright>Copyright 2018.</Copyright> | |||||
<Authors>SmallChi</Authors> | |||||
<PackageId>JT808.DotNetty.Abstractions</PackageId> | |||||
<Product>JT808.DotNetty.Abstractions</Product> | |||||
<Description>基于DotNetty实现的JT808DotNetty的抽象库</Description> | |||||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的抽象库</PackageReleaseNotes> | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | |||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | |||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | |||||
<Version>1.0.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
</Project> | </Project> |
@@ -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>JT808.DotNetty.Codecs</PackageId> | |||||
<Product>JT808.DotNetty.Codecs</Product> | |||||
<Description>基于DotNetty实现的JT808DotNetty的编解码库</Description> | |||||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的编解码库</PackageReleaseNotes> | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | |||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | |||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | |||||
<Version>1.0.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | <PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | ||||
@@ -5,7 +5,7 @@ namespace JT808.DotNetty.Core.Interfaces | |||||
/// <summary> | /// <summary> | ||||
/// JT808基于tcp的统一下发命令服务 | /// JT808基于tcp的统一下发命令服务 | ||||
/// </summary> | /// </summary> | ||||
internal interface IJT808UnificationTcpSendService | |||||
public interface IJT808UnificationTcpSendService | |||||
{ | { | ||||
JT808ResultDto<bool> Send(string terminalPhoneNo, byte[] data); | JT808ResultDto<bool> Send(string terminalPhoneNo, byte[] data); | ||||
} | } | ||||
@@ -5,7 +5,7 @@ namespace JT808.DotNetty.Core.Interfaces | |||||
/// <summary> | /// <summary> | ||||
/// JT808基于udp的统一下发命令服务 | /// JT808基于udp的统一下发命令服务 | ||||
/// </summary> | /// </summary> | ||||
internal interface IJT808UnificationUdpSendService | |||||
public interface IJT808UnificationUdpSendService | |||||
{ | { | ||||
JT808ResultDto<bool> Send(string terminalPhoneNo, byte[] data); | JT808ResultDto<bool> Send(string terminalPhoneNo, byte[] data); | ||||
} | } | ||||
@@ -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>JT808.DotNetty.Core</PackageId> | |||||
<Product>JT808.DotNetty.Core</Product> | |||||
<Description>基于DotNetty实现的JT808DotNetty的核心库</Description> | |||||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的核心库</PackageReleaseNotes> | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | |||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | |||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | |||||
<Version>1.0.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -2,6 +2,19 @@ | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFramework>netstandard2.0</TargetFramework> | <TargetFramework>netstandard2.0</TargetFramework> | ||||
<LangVersion>7.1</LangVersion> | |||||
<Copyright>Copyright 2018.</Copyright> | |||||
<Authors>SmallChi</Authors> | |||||
<PackageId>JT808.DotNetty.Tcp</PackageId> | |||||
<Product>JT808.DotNetty.Tcp</Product> | |||||
<Description>基于DotNetty实现的JT808DotNetty的Tcp服务</Description> | |||||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的Tcp服务</PackageReleaseNotes> | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | |||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | |||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | |||||
<Version>1.0.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | <PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | ||||
@@ -51,6 +51,11 @@ namespace JT808.DotNetty.Udp.Handlers | |||||
//解析具体的消息体,具体调用JT808Serializer.Deserialize<T> | //解析具体的消息体,具体调用JT808Serializer.Deserialize<T> | ||||
JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize<JT808HeaderPackage>(msg.Buffer); | JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize<JT808HeaderPackage>(msg.Buffer); | ||||
jT808UdpAtomicCounterService.MsgSuccessIncrement(); | jT808UdpAtomicCounterService.MsgSuccessIncrement(); | ||||
jT808UdpSessionManager.TryAdd(new JT808UdpSession { | |||||
Channel= ctx.Channel, | |||||
Sender= msg.Sender, | |||||
TerminalPhoneNo= jT808HeaderPackage.Header.TerminalPhoneNo | |||||
}); | |||||
if (logger.IsEnabled(LogLevel.Debug)) | if (logger.IsEnabled(LogLevel.Debug)) | ||||
{ | { | ||||
logger.LogDebug("accept package success count<<<" + jT808UdpAtomicCounterService.MsgSuccessCount.ToString()); | logger.LogDebug("accept package success count<<<" + jT808UdpAtomicCounterService.MsgSuccessCount.ToString()); | ||||
@@ -1,8 +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> | <LangVersion>7.1</LangVersion> | ||||
<Copyright>Copyright 2018.</Copyright> | |||||
<Authors>SmallChi</Authors> | |||||
<PackageId>JT808.DotNetty.Udp</PackageId> | |||||
<Product>JT808.DotNetty.Udp</Product> | |||||
<Description>基于DotNetty实现的JT808DotNetty的Udp服务</Description> | |||||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的Udp服务</PackageReleaseNotes> | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | |||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | |||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | |||||
<Version>1.0.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
@@ -1,27 +1,236 @@ | |||||
using JT808.DotNetty.Core.Handlers; | |||||
using JT808.DotNetty.Abstractions.Dtos; | |||||
using JT808.DotNetty.Core.Handlers; | |||||
using JT808.DotNetty.Core.Interfaces; | |||||
using JT808.DotNetty.Core.Metadata; | |||||
using JT808.DotNetty.Core.Services; | |||||
using Newtonsoft.Json; | |||||
namespace JT808.DotNetty.WebApi.Handlers | namespace JT808.DotNetty.WebApi.Handlers | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 默认消息处理业务实现 | /// 默认消息处理业务实现 | ||||
/// </summary> | /// </summary> | ||||
internal class JT808MsgIdDefaultWebApiHandler : JT808MsgIdHttpHandlerBase | |||||
public class JT808MsgIdDefaultWebApiHandler : JT808MsgIdHttpHandlerBase | |||||
{ | { | ||||
private const string sessionRoutePrefix = "Session"; | private const string sessionRoutePrefix = "Session"; | ||||
private const string sourcePackagePrefix = "SourcePackage"; | |||||
private const string transmitPrefix = "Transmit"; | private const string transmitPrefix = "Transmit"; | ||||
//1.TCP一套注入 | |||||
//2.UDP一套注入 | |||||
//3.统一的一套注入 | |||||
private readonly JT808TcpAtomicCounterService jT808TcpAtomicCounterService; | |||||
private readonly JT808UdpAtomicCounterService jT808UdpAtomicCounterService; | |||||
private readonly JT808TransmitAddressFilterService jT808TransmitAddressFilterService; | |||||
private readonly IJT808TcpSessionService jT808TcpSessionService; | |||||
private readonly IJT808UnificationTcpSendService jT808UnificationTcpSendService; | |||||
private readonly IJT808UnificationUdpSendService jT808UnificationUdpSendService; | |||||
/// <summary> | |||||
/// TCP一套注入 | |||||
/// </summary> | |||||
/// <param name="jT808TcpAtomicCounterService"></param> | |||||
public JT808MsgIdDefaultWebApiHandler( | public JT808MsgIdDefaultWebApiHandler( | ||||
IJT808UnificationTcpSendService jT808UnificationTcpSendService, | |||||
IJT808TcpSessionService jT808TcpSessionService, | |||||
JT808TransmitAddressFilterService jT808TransmitAddressFilterService, | |||||
JT808TcpAtomicCounterService jT808TcpAtomicCounterService | |||||
) | |||||
{ | |||||
this.jT808UnificationTcpSendService = jT808UnificationTcpSendService; | |||||
this.jT808TcpSessionService = jT808TcpSessionService; | |||||
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; | |||||
this.jT808TcpAtomicCounterService = jT808TcpAtomicCounterService; | |||||
InitTcpRoute(); | |||||
} | |||||
/// <summary> | |||||
/// UDP一套注入 | |||||
/// </summary> | |||||
/// <param name="jT808UdpAtomicCounterService"></param> | |||||
public JT808MsgIdDefaultWebApiHandler( | |||||
IJT808UnificationUdpSendService jT808UnificationUdpSendService, | |||||
JT808UdpAtomicCounterService jT808UdpAtomicCounterService | |||||
) | ) | ||||
{ | { | ||||
this.jT808UnificationUdpSendService = jT808UnificationUdpSendService; | |||||
this.jT808UdpAtomicCounterService = jT808UdpAtomicCounterService; | |||||
InitUdpRoute(); | |||||
} | |||||
/// <summary> | |||||
/// 统一的一套注入 | |||||
/// </summary> | |||||
/// <param name="jT808TcpAtomicCounterService"></param> | |||||
/// <param name="jT808UdpAtomicCounterService"></param> | |||||
public JT808MsgIdDefaultWebApiHandler( | |||||
IJT808UnificationTcpSendService jT808UnificationTcpSendService, | |||||
IJT808UnificationUdpSendService jT808UnificationUdpSendService, | |||||
IJT808TcpSessionService jT808TcpSessionService, | |||||
JT808TransmitAddressFilterService jT808TransmitAddressFilterService, | |||||
JT808TcpAtomicCounterService jT808TcpAtomicCounterService, | |||||
JT808UdpAtomicCounterService jT808UdpAtomicCounterService | |||||
) | |||||
{ | |||||
this.jT808UnificationTcpSendService = jT808UnificationTcpSendService; | |||||
this.jT808UnificationUdpSendService = jT808UnificationUdpSendService; | |||||
this.jT808TcpSessionService = jT808TcpSessionService; | |||||
this.jT808TransmitAddressFilterService = jT808TransmitAddressFilterService; | |||||
this.jT808TcpAtomicCounterService = jT808TcpAtomicCounterService; | |||||
this.jT808UdpAtomicCounterService = jT808UdpAtomicCounterService; | |||||
InitTcpRoute(); | |||||
InitUdpRoute(); | |||||
} | |||||
/// <summary> | |||||
/// 会话服务集合 | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse GetSessionAll(JT808HttpRequest request) | |||||
{ | |||||
var result = jT808TcpSessionService.GetAll(); | |||||
return CreateJT808HttpResponse(result); | |||||
} | |||||
/// <summary> | |||||
/// 会话服务-通过设备终端号移除对应会话 | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse RemoveByTerminalPhoneNo(JT808HttpRequest request) | |||||
{ | |||||
if (string.IsNullOrEmpty(request.Json)) | |||||
{ | |||||
return EmptyHttpResponse(); | |||||
} | |||||
var result = jT808TcpSessionService.RemoveByTerminalPhoneNo(request.Json); | |||||
return CreateJT808HttpResponse(result); | |||||
} | |||||
/// <summary> | |||||
/// 添加转发过滤地址 | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse AddTransmitAddress(JT808HttpRequest request) | |||||
{ | |||||
if (string.IsNullOrEmpty(request.Json)) | |||||
{ | |||||
return EmptyHttpResponse(); | |||||
} | |||||
JT808IPAddressDto jT808IPAddressDto = JsonConvert.DeserializeObject<JT808IPAddressDto>(request.Json); | |||||
return CreateJT808HttpResponse(jT808TransmitAddressFilterService.Add(jT808IPAddressDto)); | |||||
} | |||||
/// <summary> | |||||
/// 删除转发过滤地址(不能删除在网关服务器配置文件配的地址) | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse RemoveTransmitAddress(JT808HttpRequest request) | |||||
{ | |||||
if (string.IsNullOrEmpty(request.Json)) | |||||
{ | |||||
return EmptyHttpResponse(); | |||||
} | |||||
JT808IPAddressDto jT808IPAddressDto = JsonConvert.DeserializeObject<JT808IPAddressDto>(request.Json); | |||||
return CreateJT808HttpResponse(jT808TransmitAddressFilterService.Remove(jT808IPAddressDto)); | |||||
} | |||||
/// <summary> | |||||
/// 获取转发过滤地址信息集合 | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse GetTransmitAll(JT808HttpRequest request) | |||||
{ | |||||
return CreateJT808HttpResponse(jT808TransmitAddressFilterService.GetAll()); | |||||
} | |||||
/// <summary> | |||||
/// 获取Tcp包计数器 | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse GetTcpAtomicCounter(JT808HttpRequest request) | |||||
{ | |||||
JT808AtomicCounterDto jT808AtomicCounterDto = new JT808AtomicCounterDto(); | |||||
jT808AtomicCounterDto.MsgFailCount = jT808TcpAtomicCounterService.MsgFailCount; | |||||
jT808AtomicCounterDto.MsgSuccessCount = jT808TcpAtomicCounterService.MsgSuccessCount; | |||||
return CreateJT808HttpResponse(new JT808ResultDto<JT808AtomicCounterDto> | |||||
{ | |||||
Code = JT808ResultCode.Ok, | |||||
Data = jT808AtomicCounterDto | |||||
}); | |||||
} | |||||
/// <summary> | |||||
/// 获取Udp包计数器 | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse GetUdpAtomicCounter(JT808HttpRequest request) | |||||
{ | |||||
JT808AtomicCounterDto jT808AtomicCounterDto = new JT808AtomicCounterDto(); | |||||
jT808AtomicCounterDto.MsgFailCount = jT808UdpAtomicCounterService.MsgFailCount; | |||||
jT808AtomicCounterDto.MsgSuccessCount = jT808UdpAtomicCounterService.MsgSuccessCount; | |||||
return CreateJT808HttpResponse(new JT808ResultDto<JT808AtomicCounterDto> | |||||
{ | |||||
Code = JT808ResultCode.Ok, | |||||
Data = jT808AtomicCounterDto | |||||
}); | |||||
} | |||||
/// <summary> | |||||
/// 基于Tcp的统一下发信息 | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse UnificationTcpSend(JT808HttpRequest request) | |||||
{ | |||||
if (string.IsNullOrEmpty(request.Json)) | |||||
{ | |||||
return EmptyHttpResponse(); | |||||
} | |||||
JT808UnificationSendRequestDto jT808UnificationSendRequestDto = JsonConvert.DeserializeObject<JT808UnificationSendRequestDto>(request.Json); | |||||
var result = jT808UnificationTcpSendService.Send(jT808UnificationSendRequestDto.TerminalPhoneNo, jT808UnificationSendRequestDto.Data); | |||||
return CreateJT808HttpResponse(result); | |||||
} | |||||
/// <summary> | |||||
/// 基于Udp的统一下发信息 | |||||
/// </summary> | |||||
/// <param name="request"></param> | |||||
/// <returns></returns> | |||||
public JT808HttpResponse UnificationUdpSend(JT808HttpRequest request) | |||||
{ | |||||
if (string.IsNullOrEmpty(request.Json)) | |||||
{ | |||||
return EmptyHttpResponse(); | |||||
} | |||||
JT808UnificationSendRequestDto jT808UnificationSendRequestDto = JsonConvert.DeserializeObject<JT808UnificationSendRequestDto>(request.Json); | |||||
var result = jT808UnificationUdpSendService.Send(jT808UnificationSendRequestDto.TerminalPhoneNo, jT808UnificationSendRequestDto.Data); | |||||
return CreateJT808HttpResponse(result); | |||||
} | |||||
protected virtual void InitTcpRoute() | |||||
{ | |||||
CreateRoute($"{transmitPrefix}/Add", AddTransmitAddress); | |||||
CreateRoute($"{transmitPrefix}/Remove", RemoveTransmitAddress); | |||||
CreateRoute($"{transmitPrefix}/GetAll", GetTransmitAll); | |||||
CreateRoute($"GetTcpAtomicCounter", GetTcpAtomicCounter); | |||||
CreateRoute($"{sessionRoutePrefix}/GetAll", GetSessionAll); | |||||
CreateRoute($"{sessionRoutePrefix}/RemoveByTerminalPhoneNo", RemoveByTerminalPhoneNo); | |||||
CreateRoute($"UnificationTcpSend", UnificationTcpSend); | |||||
} | |||||
protected virtual void InitUdpRoute() | |||||
{ | |||||
CreateRoute($"GetUdpAtomicCounter", GetUdpAtomicCounter); | |||||
CreateRoute($"UnificationUdpSend", UnificationUdpSend); | |||||
} | } | ||||
} | } | ||||
} | } |
@@ -2,6 +2,19 @@ | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFramework>netstandard2.0</TargetFramework> | <TargetFramework>netstandard2.0</TargetFramework> | ||||
<LangVersion>7.1</LangVersion> | |||||
<Copyright>Copyright 2018.</Copyright> | |||||
<Authors>SmallChi</Authors> | |||||
<PackageId>JT808.DotNetty.WebApi</PackageId> | |||||
<Product>JT808.DotNetty.WebApi</Product> | |||||
<Description>基于DotNetty实现的JT808DotNetty的WebApi服务</Description> | |||||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的WebApi服务</PackageReleaseNotes> | |||||
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance> | |||||
<RepositoryUrl>https://github.com/SmallChi/JT808DotNetty</RepositoryUrl> | |||||
<PackageProjectUrl>https://github.com/SmallChi/JT808DotNetty</PackageProjectUrl> | |||||
<PackageLicenseUrl>https://github.com/SmallChi/JT808DotNetty/blob/master/LICENSE</PackageLicenseUrl> | |||||
<GeneratePackageOnBuild>true</GeneratePackageOnBuild> | |||||
<Version>1.0.0</Version> | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | <PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | ||||
@@ -1,12 +1,8 @@ | |||||
| | ||||
Microsoft Visual Studio Solution File, Format Version 12.00 | Microsoft Visual Studio Solution File, Format Version 12.00 | ||||
# Visual Studio 15 | |||||
VisualStudioVersion = 15.0.28307.168 | |||||
# Visual Studio Version 16 | |||||
VisualStudioVersion = 16.0.28407.52 | |||||
MinimumVisualStudioVersion = 10.0.40219.1 | MinimumVisualStudioVersion = 10.0.40219.1 | ||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty", "JT808.DotNetty\JT808.DotNetty.csproj", "{80C7F67E-6B7C-4178-8726-ADD3695622DD}" | |||||
EndProject | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Test", "JT808.DotNetty.Test\JT808.DotNetty.Test.csproj", "{7315D030-16CA-4AC8-B892-720F3D78C651}" | |||||
EndProject | |||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5A80356-5AF6-449F-9D8B-3C1BBB9D2443}" | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{B5A80356-5AF6-449F-9D8B-3C1BBB9D2443}" | ||||
EndProject | EndProject | ||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Protocol", "JT808.Protocol\src\JT808.Protocol\JT808.Protocol.csproj", "{9FCA2EE9-8253-41AA-A64C-9883413864F9}" | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.Protocol", "JT808.Protocol\src\JT808.Protocol\JT808.Protocol.csproj", "{9FCA2EE9-8253-41AA-A64C-9883413864F9}" | ||||
@@ -17,13 +13,13 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Codecs", "JT | |||||
EndProject | EndProject | ||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Core", "JT808.DotNetty.Core\JT808.DotNetty.Core.csproj", "{67C5DC72-0004-48B3-BB5A-9CB7069B4F02}" | Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Core", "JT808.DotNetty.Core\JT808.DotNetty.Core.csproj", "{67C5DC72-0004-48B3-BB5A-9CB7069B4F02}" | ||||
EndProject | EndProject | ||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT808.DotNetty.Abstractions", "JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj", "{4DCF33C0-67C5-4179-AF1E-4E919F9F856D}" | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Abstractions", "JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj", "{4DCF33C0-67C5-4179-AF1E-4E919F9F856D}" | |||||
EndProject | EndProject | ||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{3BD7FF02-8516-4A77-A385-9FDCDD792E22}" | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{3BD7FF02-8516-4A77-A385-9FDCDD792E22}" | ||||
EndProject | EndProject | ||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT808.DotNetty.Tcp", "JT808.DotNetty.Tcp\JT808.DotNetty.Tcp.csproj", "{330CD783-5564-4083-ABFC-573CDC369F50}" | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.Tcp", "JT808.DotNetty.Tcp\JT808.DotNetty.Tcp.csproj", "{330CD783-5564-4083-ABFC-573CDC369F50}" | |||||
EndProject | EndProject | ||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "JT808.DotNetty.WebApi", "JT808.DotNetty.WebApi\JT808.DotNetty.WebApi.csproj", "{B783DE53-CE2A-4225-921F-04E5E57B28F3}" | |||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JT808.DotNetty.WebApi", "JT808.DotNetty.WebApi\JT808.DotNetty.WebApi.csproj", "{B783DE53-CE2A-4225-921F-04E5E57B28F3}" | |||||
EndProject | EndProject | ||||
Global | Global | ||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
@@ -31,14 +27,6 @@ Global | |||||
Release|Any CPU = Release|Any CPU | Release|Any CPU = Release|Any CPU | ||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
{80C7F67E-6B7C-4178-8726-ADD3695622DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{80C7F67E-6B7C-4178-8726-ADD3695622DD}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{80C7F67E-6B7C-4178-8726-ADD3695622DD}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{80C7F67E-6B7C-4178-8726-ADD3695622DD}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{7315D030-16CA-4AC8-B892-720F3D78C651}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||||
{7315D030-16CA-4AC8-B892-720F3D78C651}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||||
{7315D030-16CA-4AC8-B892-720F3D78C651}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||||
{7315D030-16CA-4AC8-B892-720F3D78C651}.Release|Any CPU.Build.0 = Release|Any CPU | |||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | {9FCA2EE9-8253-41AA-A64C-9883413864F9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Debug|Any CPU.Build.0 = Debug|Any CPU | {9FCA2EE9-8253-41AA-A64C-9883413864F9}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9}.Release|Any CPU.ActiveCfg = Release|Any CPU | {9FCA2EE9-8253-41AA-A64C-9883413864F9}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||
@@ -72,8 +60,6 @@ Global | |||||
HideSolutionNode = FALSE | HideSolutionNode = FALSE | ||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(NestedProjects) = preSolution | GlobalSection(NestedProjects) = preSolution | ||||
{80C7F67E-6B7C-4178-8726-ADD3695622DD} = {B5A80356-5AF6-449F-9D8B-3C1BBB9D2443} | |||||
{7315D030-16CA-4AC8-B892-720F3D78C651} = {3BD7FF02-8516-4A77-A385-9FDCDD792E22} | |||||
{9FCA2EE9-8253-41AA-A64C-9883413864F9} = {B5A80356-5AF6-449F-9D8B-3C1BBB9D2443} | {9FCA2EE9-8253-41AA-A64C-9883413864F9} = {B5A80356-5AF6-449F-9D8B-3C1BBB9D2443} | ||||
EndGlobalSection | EndGlobalSection | ||||
GlobalSection(ExtensibilityGlobals) = postSolution | GlobalSection(ExtensibilityGlobals) = postSolution | ||||