@@ -1,6 +1,6 @@ | |||
language: csharp | |||
solution: JT808.DotNetty.sln | |||
dotnet: 3.0.100 | |||
dotnet: 3.1.100 | |||
os: linux | |||
mono: none | |||
dist: trusty2 | |||
@@ -128,13 +128,11 @@ static async Task Main(string[] args) | |||
## 举个栗子2 | |||
1.拉取JT808子模块 | |||
1.打开项目进行还原编译生成 | |||
2.打开项目进行还原编译生成 | |||
2.进入JT808.DotNetty.SimpleServer项目下的Debug目录运行服务端 | |||
3.进入JT808.DotNetty.SimpleServer项目下的Debug目录运行服务端 | |||
4.进入JT808.DotNetty.SimpleClient项目下的Debug目录运行客户端 | |||
3.进入JT808.DotNetty.SimpleClient项目下的Debug目录运行客户端 | |||
如图所示: | |||
 |
@@ -2,14 +2,14 @@ | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
<LangVersion>7.3</LangVersion> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" /> | |||
<PackageReference Include="WebApiClient.Extensions.DependencyInjection" Version="2.0.3" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -33,6 +33,7 @@ namespace JT808.DotNetty.SimpleClient | |||
services.AddJT808Configure() | |||
.AddJT808Client(); | |||
services.AddHostedService<UpService>(); | |||
services.AddHostedService<Up2019Service>(); | |||
}); | |||
await serverHostBuilder.RunConsoleAsync(); | |||
} | |||
@@ -0,0 +1,73 @@ | |||
using JT808.DotNetty.Client; | |||
using JT808.Protocol.MessageBody; | |||
using JT808.Protocol.Enums; | |||
using JT808.Protocol.Extensions; | |||
using Microsoft.Extensions.Hosting; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Text; | |||
using System.Threading; | |||
using System.Threading.Tasks; | |||
namespace JT808.DotNetty.SimpleClient.Services | |||
{ | |||
public class Up2019Service : IHostedService | |||
{ | |||
private readonly IJT808TcpClientFactory jT808TcpClientFactory; | |||
public Up2019Service(IJT808TcpClientFactory jT808TcpClientFactory) | |||
{ | |||
this.jT808TcpClientFactory = jT808TcpClientFactory; | |||
} | |||
public Task StartAsync(CancellationToken cancellationToken) | |||
{ | |||
string sim = "22222222222"; | |||
JT808TcpClient client1 = jT808TcpClientFactory.Create(new JT808DeviceConfig(sim, "127.0.0.1", 808, JT808Version.JTT2019)); | |||
//1.终端注册 | |||
client1.Send(JT808MsgId.终端注册.Create2019(sim, new JT808_0x0100() | |||
{ | |||
PlateNo = "粤A12346", | |||
PlateColor = 2, | |||
AreaID = 0, | |||
CityOrCountyId = 0, | |||
MakerId = "Koike002", | |||
TerminalId = "Koike002", | |||
TerminalModel = "Koike002" | |||
})); | |||
//2.终端鉴权 | |||
client1.Send(JT808MsgId.终端鉴权.Create2019(sim, new JT808_0x0102() | |||
{ | |||
Code = "6666", | |||
IMEI="123456", | |||
SoftwareVersion="v1.0.0" | |||
})); | |||
Task.Run(() => { | |||
while (true) | |||
{ | |||
var i = 0; | |||
//3.每5秒发一次 | |||
client1.Send(JT808MsgId.位置信息汇报.Create2019(sim, new JT808_0x0200() | |||
{ | |||
Lat = 110000 + i, | |||
Lng = 100000 + i, | |||
GPSTime = DateTime.Now, | |||
Speed = 50, | |||
Direction = 30, | |||
AlarmFlag = 5, | |||
Altitude = 50, | |||
StatusFlag = 10 | |||
})); | |||
i++; | |||
Thread.Sleep(5000); | |||
} | |||
}); | |||
return Task.CompletedTask; | |||
} | |||
public Task StopAsync(CancellationToken cancellationToken) | |||
{ | |||
return Task.CompletedTask; | |||
} | |||
} | |||
} |
@@ -1,5 +1,7 @@ | |||
using JT808.DotNetty.Client; | |||
using JT808.Protocol.MessageBody; | |||
using JT808.Protocol.Enums; | |||
using JT808.Protocol.Extensions; | |||
using Microsoft.Extensions.Hosting; | |||
using System; | |||
using System.Collections.Generic; | |||
@@ -20,9 +22,10 @@ namespace JT808.DotNetty.SimpleClient.Services | |||
public Task StartAsync(CancellationToken cancellationToken) | |||
{ | |||
JT808TcpClient client1 = jT808TcpClientFactory.Create(new JT808DeviceConfig("12345678910", "127.0.0.1", 808)); | |||
string sim = "11111111111"; | |||
JT808TcpClient client1 = jT808TcpClientFactory.Create(new JT808DeviceConfig(sim, "127.0.0.1", 808)); | |||
//1.终端注册 | |||
client1.Send(new JT808_0x0100() | |||
client1.Send(JT808MsgId.终端注册.Create(sim, new JT808_0x0100() | |||
{ | |||
PlateNo = "粤A12345", | |||
PlateColor = 2, | |||
@@ -31,18 +34,18 @@ namespace JT808.DotNetty.SimpleClient.Services | |||
MakerId = "Koike001", | |||
TerminalId = "Koike001", | |||
TerminalModel = "Koike001" | |||
}); | |||
})); | |||
//2.终端鉴权 | |||
client1.Send(new JT808_0x0102() | |||
client1.Send(JT808MsgId.终端鉴权.Create(sim, new JT808_0x0102() | |||
{ | |||
Code = "1234" | |||
}); | |||
})); | |||
Task.Run(() => { | |||
while (true) | |||
{ | |||
var i = 0; | |||
//3.每5000秒发一次 | |||
client1.Send(new JT808_0x0200() | |||
//3.每5秒发一次 | |||
client1.Send(JT808MsgId.位置信息汇报.Create(sim, new JT808_0x0200() | |||
{ | |||
Lat = 110000 + i, | |||
Lng = 100000 + i, | |||
@@ -52,7 +55,7 @@ namespace JT808.DotNetty.SimpleClient.Services | |||
AlarmFlag = 5, | |||
Altitude = 50, | |||
StatusFlag = 10 | |||
}); | |||
})); | |||
i++; | |||
Thread.Sleep(5000); | |||
} | |||
@@ -2,7 +2,7 @@ | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
<LangVersion>7.3</LangVersion> | |||
</PropertyGroup> | |||
@@ -10,10 +10,10 @@ | |||
<ProjectReference Include="..\..\src\JT808.DotNetty.Tcp\JT808.DotNetty.Tcp.csproj" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" /> | |||
<PackageReference Include="WebApiClient.Extensions.DependencyInjection" Version="2.0.3" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -20,7 +20,7 @@ | |||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的抽象库</PackageReleaseNotes> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="JT808" Version="2.1.8" /> | |||
<PackageReference Include="JT808" Version="2.2.1" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="..\..\LICENSE" Pack="true" PackagePath="" /> | |||
@@ -7,10 +7,10 @@ | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="NLog.Extensions.Logging" Version="1.6.1" /> | |||
</ItemGroup> | |||
@@ -1,5 +1,7 @@ | |||
using JT808.DotNetty.CleintBenchmark.Configs; | |||
using JT808.DotNetty.Client; | |||
using JT808.Protocol.Enums; | |||
using JT808.Protocol.Extensions; | |||
using JT808.Protocol.MessageBody; | |||
using Microsoft.Extensions.Hosting; | |||
using Microsoft.Extensions.Logging; | |||
@@ -54,7 +56,7 @@ namespace JT808.DotNetty.CleintBenchmark.Services | |||
int Lng = new Random(1000).Next(100000, 180000); | |||
while (!cts.IsCancellationRequested) | |||
{ | |||
client.Send(new JT808_0x0200() | |||
client.Send(JT808MsgId.位置信息汇报.Create(client.DeviceConfig.TerminalPhoneNo,new JT808_0x0200() | |||
{ | |||
Lat = lat, | |||
Lng = Lng, | |||
@@ -64,7 +66,7 @@ namespace JT808.DotNetty.CleintBenchmark.Services | |||
AlarmFlag = 5, | |||
Altitude = 50, | |||
StatusFlag = 10 | |||
}); | |||
})); | |||
Thread.Sleep(clientBenchmarkOptions.Interval); | |||
} | |||
}, i,cts.Token); | |||
@@ -1,12 +1,10 @@ | |||
using DotNetty.Buffers; | |||
using DotNetty.Codecs; | |||
using System.Collections.Generic; | |||
using JT808.Protocol; | |||
using DotNetty.Transport.Channels; | |||
using Microsoft.Extensions.Logging; | |||
using JT808.DotNetty.Client.Metadata; | |||
using JT808.DotNetty.Client.Services; | |||
using JT808.Protocol.Interfaces; | |||
namespace JT808.DotNetty.Client.Codecs | |||
{ | |||
@@ -31,7 +29,7 @@ namespace JT808.DotNetty.Client.Codecs | |||
{ | |||
try | |||
{ | |||
var sendData = JT808Serializer.Serialize(message.Package, message.MinBufferSize); | |||
var sendData = JT808Serializer.Serialize(message.Package, minBufferSize:message.MinBufferSize); | |||
output.WriteBytes(sendData); | |||
jT808SendAtomicCounterService.MsgSuccessIncrement(); | |||
} | |||
@@ -1,5 +1,7 @@ | |||
using DotNetty.Handlers.Timeout; | |||
using DotNetty.Transport.Channels; | |||
using JT808.Protocol.Enums; | |||
using JT808.Protocol.Extensions; | |||
using JT808.Protocol.MessageBody; | |||
using Microsoft.Extensions.Logging; | |||
using System; | |||
@@ -77,7 +79,14 @@ namespace JT808.DotNetty.Client.Handlers | |||
{ | |||
string channelId = context.Channel.Id.AsShortText(); | |||
logger.LogInformation($"{idleStateEvent.State.ToString()}>>>{channelId}"); | |||
jT808TcpClient.Send(new JT808_0x0002()); | |||
if(jT808TcpClient.DeviceConfig.Version== JT808Version.JTT2019) | |||
{ | |||
jT808TcpClient.Send(JT808MsgId.终端心跳.Create2019(jT808TcpClient.DeviceConfig.TerminalPhoneNo,new JT808_0x0002())); | |||
} | |||
else | |||
{ | |||
jT808TcpClient.Send(JT808MsgId.终端心跳.Create(jT808TcpClient.DeviceConfig.TerminalPhoneNo, new JT808_0x0002())); | |||
} | |||
} | |||
} | |||
base.UserEventTriggered(context, evt); | |||
@@ -87,7 +96,6 @@ namespace JT808.DotNetty.Client.Handlers | |||
{ | |||
string channelId = context.Channel.Id.AsShortText(); | |||
logger.LogError(exception,$"{channelId} {exception.Message}" ); | |||
context.CloseAsync(); | |||
} | |||
} | |||
@@ -24,11 +24,11 @@ | |||
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | |||
<PackageReference Include="JT808" Version="2.1.8" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.0" /> | |||
<PackageReference Include="JT808" Version="2.2.1" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="..\..\LICENSE" Pack="true" PackagePath="" /> | |||
@@ -1,4 +1,5 @@ | |||
using JT808.Protocol; | |||
using JT808.Protocol.Enums; | |||
using JT808.Protocol.Interfaces; | |||
using System; | |||
using System.Collections.Generic; | |||
@@ -8,13 +9,15 @@ namespace JT808.DotNetty.Client | |||
{ | |||
public class JT808DeviceConfig | |||
{ | |||
public JT808DeviceConfig(string terminalPhoneNo, string tcpHost,int tcpPort) | |||
public JT808DeviceConfig(string terminalPhoneNo, string tcpHost,int tcpPort, JT808Version version= JT808Version.JTT2013) | |||
{ | |||
TerminalPhoneNo = terminalPhoneNo; | |||
TcpHost = tcpHost; | |||
TcpPort = tcpPort; | |||
MsgSNDistributed = new JT808ClientMsgSNDistributedImpl(); | |||
Version = version; | |||
} | |||
public JT808Version Version { get; private set; } | |||
public string TerminalPhoneNo { get; private set; } | |||
public string TcpHost { get; private set; } | |||
public int TcpPort { get; private set; } | |||
@@ -11,93 +11,13 @@ namespace JT808.DotNetty.Client | |||
{ | |||
public static class JT808TcpClientExtensions | |||
{ | |||
public static void Send(this JT808TcpClient client, JT808Header header, JT808Bodies bodies, int minBufferSize = 1024) | |||
public static void Send(this JT808TcpClient client, JT808Package package, int minBufferSize = 4096) | |||
{ | |||
JT808Package package = new JT808Package(); | |||
package.Header = header; | |||
package.Bodies = bodies; | |||
package.Header.TerminalPhoneNo = client.DeviceConfig.TerminalPhoneNo; | |||
package.Header.MsgNum = client.DeviceConfig.MsgSNDistributed.Increment(); | |||
JT808ClientRequest request = new JT808ClientRequest(package, minBufferSize); | |||
client.Send(request); | |||
} | |||
/// <summary> | |||
/// 终端通用应答 | |||
/// </summary> | |||
/// <param name="client"></param> | |||
/// <param name="bodies"></param> | |||
/// <param name="minBufferSize"></param> | |||
public static void Send(this JT808TcpClient client, JT808_0x0001 bodies, int minBufferSize = 100) | |||
{ | |||
JT808Header header = new JT808Header(); | |||
header.MsgId = JT808MsgId.终端通用应答.ToUInt16Value(); | |||
client.Send(header, bodies, minBufferSize); | |||
} | |||
/// <summary> | |||
/// 终端心跳 | |||
/// </summary> | |||
/// <param name="client"></param> | |||
/// <param name="bodies"></param> | |||
/// <param name="minBufferSize"></param> | |||
public static void Send(this JT808TcpClient client, JT808_0x0002 bodies, int minBufferSize = 100) | |||
{ | |||
JT808Header header = new JT808Header(); | |||
header.MsgId = JT808MsgId.终端心跳.ToUInt16Value(); | |||
client.Send(header, bodies, minBufferSize); | |||
} | |||
/// <summary> | |||
/// 终端注销 | |||
/// </summary> | |||
/// <param name="client"></param> | |||
/// <param name="bodies"></param> | |||
/// <param name="minBufferSize"></param> | |||
public static void Send(this JT808TcpClient client, JT808_0x0003 bodies, int minBufferSize = 100) | |||
{ | |||
JT808Header header = new JT808Header(); | |||
header.MsgId = JT808MsgId.终端注销.ToUInt16Value(); | |||
client.Send(header, bodies, minBufferSize); | |||
} | |||
/// <summary> | |||
/// 终端鉴权 | |||
/// </summary> | |||
/// <param name="client"></param> | |||
/// <param name="bodies"></param> | |||
/// <param name="minBufferSize"></param> | |||
public static void Send(this JT808TcpClient client, JT808_0x0102 bodies, int minBufferSize = 100) | |||
{ | |||
JT808Header header = new JT808Header(); | |||
header.MsgId = JT808MsgId.终端鉴权.ToUInt16Value(); | |||
client.Send(header, bodies, minBufferSize); | |||
} | |||
/// <summary> | |||
/// 终端注册 | |||
/// </summary> | |||
/// <param name="client"></param> | |||
/// <param name="bodies"></param> | |||
/// <param name="minBufferSize"></param> | |||
public static void Send(this JT808TcpClient client, JT808_0x0100 bodies, int minBufferSize = 100) | |||
{ | |||
JT808Header header = new JT808Header(); | |||
header.MsgId = JT808MsgId.终端注册.ToUInt16Value(); | |||
client.Send(header, bodies, minBufferSize); | |||
} | |||
/// <summary> | |||
/// 位置信息汇报 | |||
/// </summary> | |||
/// <param name="client"></param> | |||
/// <param name="bodies"></param> | |||
/// <param name="minBufferSize"></param> | |||
public static void Send(this JT808TcpClient client, JT808_0x0200 bodies, int minBufferSize = 200) | |||
{ | |||
JT808Header header = new JT808Header(); | |||
header.MsgId = JT808MsgId.位置信息汇报.ToUInt16Value(); | |||
client.Send(header, bodies, minBufferSize); | |||
} | |||
} | |||
} |
@@ -31,7 +31,7 @@ namespace JT808.DotNetty.Core.Codecs | |||
{ | |||
try | |||
{ | |||
var sendData = JT808Serializer.Serialize(message.Package, message.MinBufferSize); | |||
var sendData = JT808Serializer.Serialize(message.Package, minBufferSize: message.MinBufferSize); | |||
output.WriteBytes(Unpooled.WrappedBuffer(sendData)); | |||
} | |||
catch (JT808.Protocol.Exceptions.JT808Exception ex) | |||
@@ -15,15 +15,19 @@ namespace JT808.DotNetty.Core.Impls | |||
internal class JT808MsgReplyConsumerDefaultImpl : IJT808MsgReplyConsumer | |||
{ | |||
private readonly JT808MsgService JT808MsgService; | |||
private readonly JT808Serializer JT808Serializer; | |||
private Dictionary<ushort, Func<JT808HeaderPackage, byte[]>> HandlerDict; | |||
private Dictionary<ushort, MsgIdMethodDelegate> HandlerDict; | |||
private delegate byte[] MsgIdMethodDelegate(JT808HeaderPackage package); | |||
public JT808MsgReplyConsumerDefaultImpl( | |||
IJT808Config jT808Config, | |||
JT808MsgService jT808MsgService) | |||
{ | |||
JT808MsgService = jT808MsgService; | |||
this.JT808Serializer = jT808Config.GetSerializer(); | |||
HandlerDict = new Dictionary<ushort, Func<JT808HeaderPackage, byte[]>> { | |||
HandlerDict = new Dictionary<ushort, MsgIdMethodDelegate> { | |||
{JT808MsgId.终端通用应答.ToUInt16Value(), Msg0x0001}, | |||
{JT808MsgId.终端鉴权.ToUInt16Value(), Msg0x0102}, | |||
{JT808MsgId.终端心跳.ToUInt16Value(), Msg0x0002}, | |||
@@ -97,12 +101,24 @@ namespace JT808.DotNetty.Core.Impls | |||
/// <returns></returns> | |||
public byte[] Msg0x0002(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if(request.Version== JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 终端注销 | |||
@@ -111,12 +127,24 @@ namespace JT808.DotNetty.Core.Impls | |||
/// <returns></returns> | |||
public byte[] Msg0x0003(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 终端注册 | |||
@@ -125,12 +153,24 @@ namespace JT808.DotNetty.Core.Impls | |||
/// <returns></returns> | |||
public byte[] Msg0x0100(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.终端注册应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8100() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
Code = "J" + request.Header.TerminalPhoneNo, | |||
JT808TerminalRegisterResult = JT808TerminalRegisterResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.终端注册应答.Create_终端注册应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8100() | |||
{ | |||
Code = "J" + request.Header.TerminalPhoneNo, | |||
JT808TerminalRegisterResult = JT808TerminalRegisterResult.成功, | |||
AckMsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.终端注册应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8100() | |||
{ | |||
Code = "J" + request.Header.TerminalPhoneNo, | |||
JT808TerminalRegisterResult = JT808TerminalRegisterResult.成功, | |||
AckMsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 终端鉴权 | |||
@@ -139,12 +179,24 @@ namespace JT808.DotNetty.Core.Impls | |||
/// <returns></returns> | |||
public byte[] Msg0x0102(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 位置信息汇报 | |||
@@ -153,12 +205,24 @@ namespace JT808.DotNetty.Core.Impls | |||
/// <returns></returns> | |||
public byte[] Msg0x0200(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 定位数据批量上传 | |||
@@ -167,12 +231,24 @@ namespace JT808.DotNetty.Core.Impls | |||
/// <returns></returns> | |||
public byte[] Msg0x0704(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 数据上行透传 | |||
@@ -181,12 +257,24 @@ namespace JT808.DotNetty.Core.Impls | |||
/// <returns></returns> | |||
public byte[] Msg0x0900(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
} | |||
} |
@@ -25,10 +25,10 @@ | |||
<PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Codecs.Http" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.0" /> | |||
<PackageReference Include="System.Text.Json" Version="4.6.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.1.0" /> | |||
<PackageReference Include="System.Text.Json" Version="4.7.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -1,23 +0,0 @@ | |||
using JT808.Protocol; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Reflection; | |||
namespace JT808.DotNetty.Core.Metadata | |||
{ | |||
public class JT808Request | |||
{ | |||
public JT808HeaderPackage Package { get; } | |||
/// <summary> | |||
/// 用于消息发送 | |||
/// </summary> | |||
public byte[] OriginalPackage { get;} | |||
public JT808Request(JT808HeaderPackage package, byte[] originalPackage) | |||
{ | |||
Package = package; | |||
OriginalPackage = originalPackage; | |||
} | |||
} | |||
} |
@@ -1,31 +0,0 @@ | |||
using JT808.DotNetty.Core.Interfaces; | |||
using JT808.Protocol; | |||
using System; | |||
using System.Collections.Generic; | |||
using System.Reflection; | |||
namespace JT808.DotNetty.Core.Metadata | |||
{ | |||
public class JT808Response: IJT808Reply | |||
{ | |||
public JT808Package Package { get; set; } | |||
public byte[] HexData { get; set; } | |||
public int MinBufferSize { get; set; } | |||
public JT808Response() | |||
{ | |||
} | |||
public JT808Response(JT808Package package, int minBufferSize = 1024) | |||
{ | |||
Package = package; | |||
MinBufferSize = minBufferSize; | |||
} | |||
public JT808Response(byte[] hexData) | |||
{ | |||
HexData = hexData; | |||
} | |||
} | |||
} |
@@ -20,12 +20,12 @@ | |||
<PackageReleaseNotes>基于Kafka的JT808消息发布与订阅</PackageReleaseNotes> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Confluent.Kafka" Version="1.2.1" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Confluent.Kafka" Version="1.3.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj" /> | |||
@@ -2,13 +2,13 @@ | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -2,13 +2,13 @@ | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -2,13 +2,13 @@ | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -2,7 +2,7 @@ | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
@@ -2,13 +2,13 @@ | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -2,13 +2,13 @@ | |||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -23,7 +23,7 @@ | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj" /> | |||
@@ -22,9 +22,9 @@ | |||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="..\..\..\LICENSE" Pack="true" PackagePath="" /> | |||
@@ -21,9 +21,9 @@ | |||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj" /> | |||
@@ -11,8 +11,9 @@ namespace JT808.DotNetty.ReplyMessage | |||
{ | |||
public class JT808DotNettyReplyMessageService | |||
{ | |||
protected Dictionary<ushort, Func<JT808HeaderPackage, byte[]>> HandlerDict { get; } | |||
protected Dictionary<ushort, MsgIdMethodDelegate> HandlerDict { get; } | |||
protected delegate byte[] MsgIdMethodDelegate(JT808HeaderPackage package); | |||
protected JT808Serializer JT808Serializer { get; } | |||
protected IJT808MsgReplyProducer JT808MsgReplyProducer { get; } | |||
public JT808DotNettyReplyMessageService( | |||
@@ -21,7 +22,7 @@ namespace JT808.DotNetty.ReplyMessage | |||
{ | |||
this.JT808Serializer = jT808Config.GetSerializer(); | |||
this.JT808MsgReplyProducer = jT808MsgReplyProducer; | |||
HandlerDict = new Dictionary<ushort, Func<JT808HeaderPackage, byte[]>> { | |||
HandlerDict = new Dictionary<ushort, MsgIdMethodDelegate> { | |||
{JT808MsgId.终端通用应答.ToUInt16Value(), Msg0x0001}, | |||
{JT808MsgId.终端鉴权.ToUInt16Value(), Msg0x0102}, | |||
{JT808MsgId.终端心跳.ToUInt16Value(), Msg0x0002}, | |||
@@ -59,7 +60,7 @@ namespace JT808.DotNetty.ReplyMessage | |||
/// </summary> | |||
/// <param name="request"></param> | |||
/// <returns></returns> | |||
public virtual byte[] Msg0x0001(JT808HeaderPackage request) | |||
public byte[] Msg0x0001(JT808HeaderPackage request) | |||
{ | |||
return null; | |||
} | |||
@@ -68,98 +69,182 @@ namespace JT808.DotNetty.ReplyMessage | |||
/// </summary> | |||
/// <param name="request"></param> | |||
/// <returns></returns> | |||
public virtual byte[] Msg0x0002(JT808HeaderPackage request) | |||
public byte[] Msg0x0002(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 终端注销 | |||
/// </summary> | |||
/// <param name="request"></param> | |||
/// <returns></returns> | |||
public virtual byte[] Msg0x0003(JT808HeaderPackage request) | |||
public byte[] Msg0x0003(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 终端注册 | |||
/// </summary> | |||
/// <param name="request"></param> | |||
/// <returns></returns> | |||
public virtual byte[] Msg0x0100(JT808HeaderPackage request) | |||
public byte[] Msg0x0100(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.终端注册应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8100() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
Code = "J" + request.Header.TerminalPhoneNo, | |||
JT808TerminalRegisterResult = JT808TerminalRegisterResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.终端注册应答.Create_终端注册应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8100() | |||
{ | |||
Code = "J" + request.Header.TerminalPhoneNo, | |||
JT808TerminalRegisterResult = JT808TerminalRegisterResult.成功, | |||
AckMsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.终端注册应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8100() | |||
{ | |||
Code = "J" + request.Header.TerminalPhoneNo, | |||
JT808TerminalRegisterResult = JT808TerminalRegisterResult.成功, | |||
AckMsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 终端鉴权 | |||
/// </summary> | |||
/// <param name="request"></param> | |||
/// <returns></returns> | |||
public virtual byte[] Msg0x0102(JT808HeaderPackage request) | |||
public byte[] Msg0x0102(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 位置信息汇报 | |||
/// </summary> | |||
/// <param name="request"></param> | |||
/// <returns></returns> | |||
public virtual byte[] Msg0x0200(JT808HeaderPackage request) | |||
public byte[] Msg0x0200(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 定位数据批量上传 | |||
/// </summary> | |||
/// <param name="request"></param> | |||
/// <returns></returns> | |||
public virtual byte[] Msg0x0704(JT808HeaderPackage request) | |||
public byte[] Msg0x0704(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
/// <summary> | |||
/// 数据上行透传 | |||
/// </summary> | |||
/// <param name="request"></param> | |||
/// <returns></returns> | |||
public virtual byte[] Msg0x0900(JT808HeaderPackage request) | |||
public byte[] Msg0x0900(JT808HeaderPackage request) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
if (request.Version == JT808Version.JTT2019) | |||
{ | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create_平台通用应答_2019(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
else | |||
{ | |||
MsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
return JT808Serializer.Serialize(JT808MsgId.平台通用应答.Create(request.Header.TerminalPhoneNo, new JT808_0x8001() | |||
{ | |||
AckMsgId = request.Header.MsgId, | |||
JT808PlatformResult = JT808PlatformResult.成功, | |||
MsgNum = request.Header.MsgNum | |||
})); | |||
} | |||
} | |||
} | |||
} |
@@ -22,9 +22,9 @@ | |||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="..\..\..\LICENSE" Pack="true" PackagePath="" /> | |||
@@ -21,10 +21,10 @@ | |||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="CSRedisCore" Version="3.1.10" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
<PackageReference Include="CSRedisCore" Version="3.2.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj" /> | |||
@@ -25,10 +25,10 @@ | |||
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Transport" Version="0.6.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Polly" Version="7.1.1" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
<PackageReference Include="Polly" Version="7.2.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\JT808.DotNetty.Abstractions\JT808.DotNetty.Abstractions.csproj" /> | |||
@@ -47,7 +47,7 @@ namespace JT808.DotNetty.Tcp.Handlers | |||
//解析到头部,然后根据具体的消息Id通过队列去进行消费 | |||
//要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, | |||
//解析具体的消息体,具体调用JT808Serializer.Deserialize<T> | |||
JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize<JT808HeaderPackage>(msg); | |||
JT808HeaderPackage jT808HeaderPackage = JT808Serializer.HeaderDeserialize(msg); | |||
if (logger.IsEnabled(LogLevel.Trace)) | |||
{ | |||
logger.LogTrace($"accept package success count=>{jT808AtomicCounterService.MsgSuccessCount.ToString()},accept msg=>{ByteBufferUtil.HexDump(msg)}"); | |||
@@ -19,14 +19,6 @@ | |||
<Description>基于DotNetty实现的JT808DotNetty的Tcp服务</Description> | |||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的Tcp服务</PackageReleaseNotes> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\JT808.DotNetty.Core\JT808.DotNetty.Core.csproj" /> | |||
</ItemGroup> | |||
@@ -1,19 +1,25 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
<IsPackable>false</IsPackable> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" /> | |||
<PackageReference Include="xunit" Version="2.4.0" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> | |||
<PackageReference Include="coverlet.collector" Version="1.0.1" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | |||
<PackageReference Include="xunit" Version="2.4.1" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | |||
<PrivateAssets>all</PrivateAssets> | |||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||
</PackageReference> | |||
<PackageReference Include="coverlet.collector" Version="1.1.0"> | |||
<PrivateAssets>all</PrivateAssets> | |||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||
</PackageReference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -8,13 +8,13 @@ | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Http" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.0.0" /> | |||
<PackageReference Include="NLog" Version="4.6.7" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Http" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="3.1.0" /> | |||
<PackageReference Include="NLog" Version="4.6.8" /> | |||
<PackageReference Include="NLog.Extensions.Logging" Version="1.6.1" /> | |||
</ItemGroup> | |||
@@ -1,17 +1,17 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
<IsPackable>false</IsPackable> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.FileExtensions" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Logging" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.0" /> | |||
<PackageReference Include="xunit" Version="2.4.1" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | |||
<PrivateAssets>all</PrivateAssets> | |||
@@ -1,15 +1,15 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
<IsPackable>false</IsPackable> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" /> | |||
<PackageReference Include="MSTest.TestAdapter" Version="1.4.0" /> | |||
<PackageReference Include="MSTest.TestFramework" Version="1.4.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | |||
<PackageReference Include="MSTest.TestAdapter" Version="2.0.0" /> | |||
<PackageReference Include="MSTest.TestFramework" Version="2.0.0" /> | |||
</ItemGroup> | |||
</Project> |
@@ -1,19 +1,25 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
<IsPackable>false</IsPackable> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" /> | |||
<PackageReference Include="xunit" Version="2.4.0" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> | |||
<PackageReference Include="coverlet.collector" Version="1.0.1" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | |||
<PackageReference Include="xunit" Version="2.4.1" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | |||
<PrivateAssets>all</PrivateAssets> | |||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||
</PackageReference> | |||
<PackageReference Include="coverlet.collector" Version="1.1.0"> | |||
<PrivateAssets>all</PrivateAssets> | |||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||
</PackageReference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -1,19 +1,25 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
<IsPackable>false</IsPackable> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" /> | |||
<PackageReference Include="xunit" Version="2.4.0" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> | |||
<PackageReference Include="coverlet.collector" Version="1.0.1" /> | |||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | |||
<PackageReference Include="xunit" Version="2.4.1" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | |||
<PrivateAssets>all</PrivateAssets> | |||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||
</PackageReference> | |||
<PackageReference Include="coverlet.collector" Version="1.1.0"> | |||
<PrivateAssets>all</PrivateAssets> | |||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||
</PackageReference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -1,18 +1,24 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>netcoreapp3.0</TargetFramework> | |||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||
<IsPackable>false</IsPackable> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.3.0" /> | |||
<PackageReference Include="xunit" Version="2.4.0" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> | |||
<PackageReference Include="coverlet.collector" Version="1.0.1" /> | |||
<PackageReference Include="RichardSzalay.MockHttp" Version="5.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" /> | |||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | |||
<PackageReference Include="xunit" Version="2.4.1" /> | |||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | |||
<PrivateAssets>all</PrivateAssets> | |||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||
</PackageReference> | |||
<PackageReference Include="coverlet.collector" Version="1.1.0"> | |||
<PrivateAssets>all</PrivateAssets> | |||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||
</PackageReference> | |||
<PackageReference Include="RichardSzalay.MockHttp" Version="6.0.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
@@ -47,7 +47,7 @@ namespace JT808.DotNetty.Udp.Handlers | |||
//解析到头部,然后根据具体的消息Id通过队列去进行消费 | |||
//要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息, | |||
//解析具体的消息体,具体调用JT808Serializer.Deserialize<T> | |||
JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize<JT808HeaderPackage>(msg.Buffer); | |||
JT808HeaderPackage jT808HeaderPackage = JT808Serializer.HeaderDeserialize(msg.Buffer); | |||
if (logger.IsEnabled(LogLevel.Trace)) | |||
{ | |||
logger.LogTrace($"accept package success count=>{jT808AtomicCounterService.MsgFailCount.ToString()},accept msg=>{ByteBufferUtil.HexDump(msg.Buffer)}"); | |||
@@ -20,15 +20,6 @@ | |||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的Udp服务</PackageReleaseNotes> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\JT808.DotNetty.Core\JT808.DotNetty.Core.csproj" /> | |||
</ItemGroup> | |||
@@ -19,16 +19,6 @@ | |||
<Description>基于DotNetty实现的JT808DotNetty的WebApi服务</Description> | |||
<PackageReleaseNotes>基于DotNetty实现的JT808DotNetty的WebApi服务</PackageReleaseNotes> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="DotNetty.Buffers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Codecs" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Codecs.Http" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" /> | |||
<PackageReference Include="DotNetty.Transport.Libuv" Version="0.6.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options" Version="3.0.0" /> | |||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.0.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<ProjectReference Include="..\JT808.DotNetty.Core\JT808.DotNetty.Core.csproj" /> | |||
</ItemGroup> | |||
@@ -24,7 +24,7 @@ | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<PackageReference Include="System.Text.Json" Version="4.6.0" /> | |||
<PackageReference Include="System.Text.Json" Version="4.7.0" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<None Include="..\..\LICENSE" Pack="true" PackagePath="" /> | |||
@@ -1,5 +1,5 @@ | |||
<Project> | |||
<PropertyGroup> | |||
<JT808DotNettyPackageVersion>2.2.2</JT808DotNettyPackageVersion> | |||
<JT808DotNettyPackageVersion>2.3.0</JT808DotNettyPackageVersion> | |||
</PropertyGroup> | |||
</Project> |