diff --git a/.travis.yml b/.travis.yml
index fa0212b..a7ab85a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,6 @@
language: csharp
solution: JT808.DotNetty.sln
-dotnet: 3.0.100
+dotnet: 3.1.100
os: linux
mono: none
dist: trusty2
diff --git a/README.md b/README.md
index 6340112..e7bcda4 100644
--- a/README.md
+++ b/README.md
@@ -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目录运行客户端
如图所示:

\ No newline at end of file
diff --git a/doc/img/demo2.png b/doc/img/demo2.png
index 04883b4..052895e 100644
Binary files a/doc/img/demo2.png and b/doc/img/demo2.png differ
diff --git a/simples/JT808.DotNetty.SimpleClient/JT808.DotNetty.SimpleClient.csproj b/simples/JT808.DotNetty.SimpleClient/JT808.DotNetty.SimpleClient.csproj
index 2761ddd..12f032f 100644
--- a/simples/JT808.DotNetty.SimpleClient/JT808.DotNetty.SimpleClient.csproj
+++ b/simples/JT808.DotNetty.SimpleClient/JT808.DotNetty.SimpleClient.csproj
@@ -2,14 +2,14 @@
Exe
- netcoreapp3.0
+ netcoreapp3.1
7.3
-
-
-
-
+
+
+
+
diff --git a/simples/JT808.DotNetty.SimpleClient/Program.cs b/simples/JT808.DotNetty.SimpleClient/Program.cs
index f8cf3ca..050a4f9 100644
--- a/simples/JT808.DotNetty.SimpleClient/Program.cs
+++ b/simples/JT808.DotNetty.SimpleClient/Program.cs
@@ -33,6 +33,7 @@ namespace JT808.DotNetty.SimpleClient
services.AddJT808Configure()
.AddJT808Client();
services.AddHostedService();
+ services.AddHostedService();
});
await serverHostBuilder.RunConsoleAsync();
}
diff --git a/simples/JT808.DotNetty.SimpleClient/Services/Up2019Service.cs b/simples/JT808.DotNetty.SimpleClient/Services/Up2019Service.cs
new file mode 100644
index 0000000..cfac566
--- /dev/null
+++ b/simples/JT808.DotNetty.SimpleClient/Services/Up2019Service.cs
@@ -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;
+ }
+ }
+}
diff --git a/simples/JT808.DotNetty.SimpleClient/Services/UpService.cs b/simples/JT808.DotNetty.SimpleClient/Services/UpService.cs
index 01b123b..c7ff718 100644
--- a/simples/JT808.DotNetty.SimpleClient/Services/UpService.cs
+++ b/simples/JT808.DotNetty.SimpleClient/Services/UpService.cs
@@ -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);
}
diff --git a/simples/JT808.DotNetty.SimpleServer/JT808.DotNetty.SimpleServer.csproj b/simples/JT808.DotNetty.SimpleServer/JT808.DotNetty.SimpleServer.csproj
index 957e378..ac4d5c7 100644
--- a/simples/JT808.DotNetty.SimpleServer/JT808.DotNetty.SimpleServer.csproj
+++ b/simples/JT808.DotNetty.SimpleServer/JT808.DotNetty.SimpleServer.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp3.0
+ netcoreapp3.1
7.3
@@ -10,10 +10,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/JT808.DotNetty.Abstractions/JT808.DotNetty.Abstractions.csproj b/src/JT808.DotNetty.Abstractions/JT808.DotNetty.Abstractions.csproj
index e345a04..bed7d8f 100644
--- a/src/JT808.DotNetty.Abstractions/JT808.DotNetty.Abstractions.csproj
+++ b/src/JT808.DotNetty.Abstractions/JT808.DotNetty.Abstractions.csproj
@@ -20,7 +20,7 @@
基于DotNetty实现的JT808DotNetty的抽象库
-
+
diff --git a/src/JT808.DotNetty.CleintBenchmark/JT808.DotNetty.CleintBenchmark.csproj b/src/JT808.DotNetty.CleintBenchmark/JT808.DotNetty.CleintBenchmark.csproj
index 74f2ebe..8983666 100644
--- a/src/JT808.DotNetty.CleintBenchmark/JT808.DotNetty.CleintBenchmark.csproj
+++ b/src/JT808.DotNetty.CleintBenchmark/JT808.DotNetty.CleintBenchmark.csproj
@@ -7,10 +7,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/JT808.DotNetty.CleintBenchmark/Services/CleintBenchmarkHostedService.cs b/src/JT808.DotNetty.CleintBenchmark/Services/CleintBenchmarkHostedService.cs
index 7644dc7..a4811df 100644
--- a/src/JT808.DotNetty.CleintBenchmark/Services/CleintBenchmarkHostedService.cs
+++ b/src/JT808.DotNetty.CleintBenchmark/Services/CleintBenchmarkHostedService.cs
@@ -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);
diff --git a/src/JT808.DotNetty.Client/Codecs/JT808ClientTcpEncoder.cs b/src/JT808.DotNetty.Client/Codecs/JT808ClientTcpEncoder.cs
index 741d2f9..0d78878 100644
--- a/src/JT808.DotNetty.Client/Codecs/JT808ClientTcpEncoder.cs
+++ b/src/JT808.DotNetty.Client/Codecs/JT808ClientTcpEncoder.cs
@@ -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();
}
diff --git a/src/JT808.DotNetty.Client/Handlers/JT808TcpClientConnectionHandler.cs b/src/JT808.DotNetty.Client/Handlers/JT808TcpClientConnectionHandler.cs
index e495ffc..cde4d6d 100644
--- a/src/JT808.DotNetty.Client/Handlers/JT808TcpClientConnectionHandler.cs
+++ b/src/JT808.DotNetty.Client/Handlers/JT808TcpClientConnectionHandler.cs
@@ -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();
}
}
diff --git a/src/JT808.DotNetty.Client/JT808.DotNetty.Client.csproj b/src/JT808.DotNetty.Client/JT808.DotNetty.Client.csproj
index 6d68cc9..9f870a8 100644
--- a/src/JT808.DotNetty.Client/JT808.DotNetty.Client.csproj
+++ b/src/JT808.DotNetty.Client/JT808.DotNetty.Client.csproj
@@ -24,11 +24,11 @@
-
-
-
-
-
+
+
+
+
+
diff --git a/src/JT808.DotNetty.Client/JT808DeviceConfig.cs b/src/JT808.DotNetty.Client/JT808DeviceConfig.cs
index 1282d7f..1fc2530 100644
--- a/src/JT808.DotNetty.Client/JT808DeviceConfig.cs
+++ b/src/JT808.DotNetty.Client/JT808DeviceConfig.cs
@@ -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; }
diff --git a/src/JT808.DotNetty.Client/JT808TcpClientExtensions.cs b/src/JT808.DotNetty.Client/JT808TcpClientExtensions.cs
index 3f886a0..97e266d 100644
--- a/src/JT808.DotNetty.Client/JT808TcpClientExtensions.cs
+++ b/src/JT808.DotNetty.Client/JT808TcpClientExtensions.cs
@@ -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);
}
-
- ///
- /// 终端通用应答
- ///
- ///
- ///
- ///
- 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);
- }
-
- ///
- /// 终端心跳
- ///
- ///
- ///
- ///
- 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);
- }
-
- ///
- /// 终端注销
- ///
- ///
- ///
- ///
- 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);
- }
-
- ///
- /// 终端鉴权
- ///
- ///
- ///
- ///
- 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);
- }
-
- ///
- /// 终端注册
- ///
- ///
- ///
- ///
- 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);
- }
-
- ///
- /// 位置信息汇报
- ///
- ///
- ///
- ///
- 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);
- }
}
+
}
diff --git a/src/JT808.DotNetty.Core/Codecs/JT808TcpEncoder.cs b/src/JT808.DotNetty.Core/Codecs/JT808TcpEncoder.cs
index 5cde441..634b3be 100644
--- a/src/JT808.DotNetty.Core/Codecs/JT808TcpEncoder.cs
+++ b/src/JT808.DotNetty.Core/Codecs/JT808TcpEncoder.cs
@@ -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)
diff --git a/src/JT808.DotNetty.Core/Impls/JT808MsgReplyConsumerDefaultImpl.cs b/src/JT808.DotNetty.Core/Impls/JT808MsgReplyConsumerDefaultImpl.cs
index b99fa7e..887a6d6 100644
--- a/src/JT808.DotNetty.Core/Impls/JT808MsgReplyConsumerDefaultImpl.cs
+++ b/src/JT808.DotNetty.Core/Impls/JT808MsgReplyConsumerDefaultImpl.cs
@@ -15,15 +15,19 @@ namespace JT808.DotNetty.Core.Impls
internal class JT808MsgReplyConsumerDefaultImpl : IJT808MsgReplyConsumer
{
private readonly JT808MsgService JT808MsgService;
+
private readonly JT808Serializer JT808Serializer;
- private Dictionary> HandlerDict;
+
+ private Dictionary HandlerDict;
+
+ private delegate byte[] MsgIdMethodDelegate(JT808HeaderPackage package);
public JT808MsgReplyConsumerDefaultImpl(
IJT808Config jT808Config,
JT808MsgService jT808MsgService)
{
JT808MsgService = jT808MsgService;
this.JT808Serializer = jT808Config.GetSerializer();
- HandlerDict = new Dictionary> {
+ HandlerDict = new Dictionary {
{JT808MsgId.终端通用应答.ToUInt16Value(), Msg0x0001},
{JT808MsgId.终端鉴权.ToUInt16Value(), Msg0x0102},
{JT808MsgId.终端心跳.ToUInt16Value(), Msg0x0002},
@@ -97,12 +101,24 @@ namespace JT808.DotNetty.Core.Impls
///
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
+ }));
+ }
}
///
/// 终端注销
@@ -111,12 +127,24 @@ namespace JT808.DotNetty.Core.Impls
///
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
+ }));
+ }
}
///
/// 终端注册
@@ -125,12 +153,24 @@ namespace JT808.DotNetty.Core.Impls
///
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
+ }));
+ }
}
///
/// 终端鉴权
@@ -139,12 +179,24 @@ namespace JT808.DotNetty.Core.Impls
///
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
+ }));
+ }
}
///
/// 位置信息汇报
@@ -153,12 +205,24 @@ namespace JT808.DotNetty.Core.Impls
///
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
+ }));
+ }
}
///
/// 定位数据批量上传
@@ -167,12 +231,24 @@ namespace JT808.DotNetty.Core.Impls
///
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
+ }));
+ }
}
///
/// 数据上行透传
@@ -181,12 +257,24 @@ namespace JT808.DotNetty.Core.Impls
///
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
+ }));
+ }
}
}
}
diff --git a/src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj b/src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj
index 6abd39f..5434585 100644
--- a/src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj
+++ b/src/JT808.DotNetty.Core/JT808.DotNetty.Core.csproj
@@ -25,10 +25,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/JT808.DotNetty.Core/Metadata/JT808Request.cs b/src/JT808.DotNetty.Core/Metadata/JT808Request.cs
deleted file mode 100644
index 84aa29e..0000000
--- a/src/JT808.DotNetty.Core/Metadata/JT808Request.cs
+++ /dev/null
@@ -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; }
-
- ///
- /// 用于消息发送
- ///
- public byte[] OriginalPackage { get;}
-
- public JT808Request(JT808HeaderPackage package, byte[] originalPackage)
- {
- Package = package;
- OriginalPackage = originalPackage;
- }
- }
-}
\ No newline at end of file
diff --git a/src/JT808.DotNetty.Core/Metadata/JT808Response.cs b/src/JT808.DotNetty.Core/Metadata/JT808Response.cs
deleted file mode 100644
index ef75f3c..0000000
--- a/src/JT808.DotNetty.Core/Metadata/JT808Response.cs
+++ /dev/null
@@ -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;
- }
- }
-}
\ No newline at end of file
diff --git a/src/JT808.DotNetty.Kafka/JT808.DotNetty.Kafka.csproj b/src/JT808.DotNetty.Kafka/JT808.DotNetty.Kafka.csproj
index ed7abdb..88d5739 100644
--- a/src/JT808.DotNetty.Kafka/JT808.DotNetty.Kafka.csproj
+++ b/src/JT808.DotNetty.Kafka/JT808.DotNetty.Kafka.csproj
@@ -20,12 +20,12 @@
基于Kafka的JT808消息发布与订阅
-
-
-
-
-
-
+
+
+
+
+
+
diff --git a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.MsgIdHandler.Test/JT808.DotNetty.MsgIdHandler.Test.csproj b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.MsgIdHandler.Test/JT808.DotNetty.MsgIdHandler.Test.csproj
index e1bb8b0..9d8205f 100644
--- a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.MsgIdHandler.Test/JT808.DotNetty.MsgIdHandler.Test.csproj
+++ b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.MsgIdHandler.Test/JT808.DotNetty.MsgIdHandler.Test.csproj
@@ -2,13 +2,13 @@
Exe
- netcoreapp3.0
+ netcoreapp3.1
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.MsgLogging.Test/JT808.DotNetty.MsgLogging.Test.csproj b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.MsgLogging.Test/JT808.DotNetty.MsgLogging.Test.csproj
index 674808c..974be70 100644
--- a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.MsgLogging.Test/JT808.DotNetty.MsgLogging.Test.csproj
+++ b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.MsgLogging.Test/JT808.DotNetty.MsgLogging.Test.csproj
@@ -2,13 +2,13 @@
Exe
- netcoreapp3.0
+ netcoreapp3.1
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.ReplyMessage.Test/JT808.DotNetty.ReplyMessage.Test.csproj b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.ReplyMessage.Test/JT808.DotNetty.ReplyMessage.Test.csproj
index bbb9897..92ddb70 100644
--- a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.ReplyMessage.Test/JT808.DotNetty.ReplyMessage.Test.csproj
+++ b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.ReplyMessage.Test/JT808.DotNetty.ReplyMessage.Test.csproj
@@ -2,13 +2,13 @@
Exe
- netcoreapp3.0
+ netcoreapp3.1
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.SessionNotice.Test/JT808.DotNetty.SessionNotice.Test.csproj b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.SessionNotice.Test/JT808.DotNetty.SessionNotice.Test.csproj
index 502a073..aadc288 100644
--- a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.SessionNotice.Test/JT808.DotNetty.SessionNotice.Test.csproj
+++ b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.SessionNotice.Test/JT808.DotNetty.SessionNotice.Test.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp3.0
+ netcoreapp3.1
diff --git a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.Traffic.Test/JT808.DotNetty.Traffic.Test.csproj b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.Traffic.Test/JT808.DotNetty.Traffic.Test.csproj
index 5a4160e..b79ab93 100644
--- a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.Traffic.Test/JT808.DotNetty.Traffic.Test.csproj
+++ b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.Traffic.Test/JT808.DotNetty.Traffic.Test.csproj
@@ -2,13 +2,13 @@
Exe
- netcoreapp3.0
+ netcoreapp3.1
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.Transmit.Test/JT808.DotNetty.Transmit.Test.csproj b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.Transmit.Test/JT808.DotNetty.Transmit.Test.csproj
index 285c128..800da01 100644
--- a/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.Transmit.Test/JT808.DotNetty.Transmit.Test.csproj
+++ b/src/JT808.DotNetty.Services.Tests/JT808.DotNetty.Transmit.Test/JT808.DotNetty.Transmit.Test.csproj
@@ -2,13 +2,13 @@
Exe
- netcoreapp3.0
+ netcoreapp3.1
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Services/JT808.DotNetty.MsgIdHandler/JT808.DotNetty.MsgIdHandler.csproj b/src/JT808.DotNetty.Services/JT808.DotNetty.MsgIdHandler/JT808.DotNetty.MsgIdHandler.csproj
index 5dc7827..395ef6c 100644
--- a/src/JT808.DotNetty.Services/JT808.DotNetty.MsgIdHandler/JT808.DotNetty.MsgIdHandler.csproj
+++ b/src/JT808.DotNetty.Services/JT808.DotNetty.MsgIdHandler/JT808.DotNetty.MsgIdHandler.csproj
@@ -23,7 +23,7 @@
-
+
diff --git a/src/JT808.DotNetty.Services/JT808.DotNetty.MsgLogging/JT808.DotNetty.MsgLogging.csproj b/src/JT808.DotNetty.Services/JT808.DotNetty.MsgLogging/JT808.DotNetty.MsgLogging.csproj
index f32b7ae..9710260 100644
--- a/src/JT808.DotNetty.Services/JT808.DotNetty.MsgLogging/JT808.DotNetty.MsgLogging.csproj
+++ b/src/JT808.DotNetty.Services/JT808.DotNetty.MsgLogging/JT808.DotNetty.MsgLogging.csproj
@@ -22,9 +22,9 @@
LICENSE
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Services/JT808.DotNetty.ReplyMessage/JT808.DotNetty.ReplyMessage.csproj b/src/JT808.DotNetty.Services/JT808.DotNetty.ReplyMessage/JT808.DotNetty.ReplyMessage.csproj
index ad69ed2..27ab52d 100644
--- a/src/JT808.DotNetty.Services/JT808.DotNetty.ReplyMessage/JT808.DotNetty.ReplyMessage.csproj
+++ b/src/JT808.DotNetty.Services/JT808.DotNetty.ReplyMessage/JT808.DotNetty.ReplyMessage.csproj
@@ -21,9 +21,9 @@
LICENSE
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Services/JT808.DotNetty.ReplyMessage/JT808DotNettyReplyMessageService.cs b/src/JT808.DotNetty.Services/JT808.DotNetty.ReplyMessage/JT808DotNettyReplyMessageService.cs
index 66975ad..df281f8 100644
--- a/src/JT808.DotNetty.Services/JT808.DotNetty.ReplyMessage/JT808DotNettyReplyMessageService.cs
+++ b/src/JT808.DotNetty.Services/JT808.DotNetty.ReplyMessage/JT808DotNettyReplyMessageService.cs
@@ -11,8 +11,9 @@ namespace JT808.DotNetty.ReplyMessage
{
public class JT808DotNettyReplyMessageService
{
- protected Dictionary> HandlerDict { get; }
+ protected Dictionary 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> {
+ HandlerDict = new Dictionary {
{JT808MsgId.终端通用应答.ToUInt16Value(), Msg0x0001},
{JT808MsgId.终端鉴权.ToUInt16Value(), Msg0x0102},
{JT808MsgId.终端心跳.ToUInt16Value(), Msg0x0002},
@@ -59,7 +60,7 @@ namespace JT808.DotNetty.ReplyMessage
///
///
///
- public virtual byte[] Msg0x0001(JT808HeaderPackage request)
+ public byte[] Msg0x0001(JT808HeaderPackage request)
{
return null;
}
@@ -68,98 +69,182 @@ namespace JT808.DotNetty.ReplyMessage
///
///
///
- 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
+ }));
+ }
}
///
/// 终端注销
///
///
///
- 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
+ }));
+ }
}
///
/// 终端注册
///
///
///
- 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
+ }));
+ }
}
///
/// 终端鉴权
///
///
///
- 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
+ }));
+ }
}
///
/// 位置信息汇报
///
///
///
- 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
+ }));
+ }
}
///
/// 定位数据批量上传
///
///
///
- 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
+ }));
+ }
}
///
/// 数据上行透传
///
///
///
- 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
+ }));
+ }
}
}
}
diff --git a/src/JT808.DotNetty.Services/JT808.DotNetty.SessionNotice/JT808.DotNetty.SessionNotice.csproj b/src/JT808.DotNetty.Services/JT808.DotNetty.SessionNotice/JT808.DotNetty.SessionNotice.csproj
index a07d6f1..28ef6f5 100644
--- a/src/JT808.DotNetty.Services/JT808.DotNetty.SessionNotice/JT808.DotNetty.SessionNotice.csproj
+++ b/src/JT808.DotNetty.Services/JT808.DotNetty.SessionNotice/JT808.DotNetty.SessionNotice.csproj
@@ -22,9 +22,9 @@
LICENSE
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Services/JT808.DotNetty.Traffic/JT808.DotNetty.Traffic.csproj b/src/JT808.DotNetty.Services/JT808.DotNetty.Traffic/JT808.DotNetty.Traffic.csproj
index 5119ab1..90acf2a 100644
--- a/src/JT808.DotNetty.Services/JT808.DotNetty.Traffic/JT808.DotNetty.Traffic.csproj
+++ b/src/JT808.DotNetty.Services/JT808.DotNetty.Traffic/JT808.DotNetty.Traffic.csproj
@@ -21,10 +21,10 @@
LICENSE
-
-
-
-
+
+
+
+
diff --git a/src/JT808.DotNetty.Services/JT808.DotNetty.Transmit/JT808.DotNetty.Transmit.csproj b/src/JT808.DotNetty.Services/JT808.DotNetty.Transmit/JT808.DotNetty.Transmit.csproj
index 14f3a8b..ea0e41c 100644
--- a/src/JT808.DotNetty.Services/JT808.DotNetty.Transmit/JT808.DotNetty.Transmit.csproj
+++ b/src/JT808.DotNetty.Services/JT808.DotNetty.Transmit/JT808.DotNetty.Transmit.csproj
@@ -25,10 +25,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs b/src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs
index c65a5cf..db2aba4 100644
--- a/src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs
+++ b/src/JT808.DotNetty.Tcp/Handlers/JT808TcpServerHandler.cs
@@ -47,7 +47,7 @@ namespace JT808.DotNetty.Tcp.Handlers
//解析到头部,然后根据具体的消息Id通过队列去进行消费
//要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息,
//解析具体的消息体,具体调用JT808Serializer.Deserialize
- JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize(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)}");
diff --git a/src/JT808.DotNetty.Tcp/JT808.DotNetty.Tcp.csproj b/src/JT808.DotNetty.Tcp/JT808.DotNetty.Tcp.csproj
index ecb6deb..678326a 100644
--- a/src/JT808.DotNetty.Tcp/JT808.DotNetty.Tcp.csproj
+++ b/src/JT808.DotNetty.Tcp/JT808.DotNetty.Tcp.csproj
@@ -19,14 +19,6 @@
基于DotNetty实现的JT808DotNetty的Tcp服务
基于DotNetty实现的JT808DotNetty的Tcp服务
-
-
-
-
-
-
-
-
diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808.DotNetty.Core.Test.csproj b/src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808.DotNetty.Core.Test.csproj
index 3bbb909..7be504d 100644
--- a/src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808.DotNetty.Core.Test.csproj
+++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.Core.Test/JT808.DotNetty.Core.Test.csproj
@@ -1,19 +1,25 @@
- netcoreapp3.0
+ netcoreapp3.1
false
-
-
-
-
-
-
-
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.Hosting/JT808.DotNetty.Hosting.csproj b/src/JT808.DotNetty.Tests/JT808.DotNetty.Hosting/JT808.DotNetty.Hosting.csproj
index 7191ebf..263522e 100644
--- a/src/JT808.DotNetty.Tests/JT808.DotNetty.Hosting/JT808.DotNetty.Hosting.csproj
+++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.Hosting/JT808.DotNetty.Hosting.csproj
@@ -8,13 +8,13 @@
-
-
-
-
-
-
-
+
+
+
+
+
+
+
diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.Kafka.Test/JT808.DotNetty.Kafka.Test.csproj b/src/JT808.DotNetty.Tests/JT808.DotNetty.Kafka.Test/JT808.DotNetty.Kafka.Test.csproj
index 8c3fbb1..34b7eda 100644
--- a/src/JT808.DotNetty.Tests/JT808.DotNetty.Kafka.Test/JT808.DotNetty.Kafka.Test.csproj
+++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.Kafka.Test/JT808.DotNetty.Kafka.Test.csproj
@@ -1,17 +1,17 @@
- netcoreapp3.0
+ netcoreapp3.1
false
-
-
-
-
-
+
+
+
+
+
all
diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.RabbitMQ.Test/JT808.DotNetty.RabbitMQ.Test.csproj b/src/JT808.DotNetty.Tests/JT808.DotNetty.RabbitMQ.Test/JT808.DotNetty.RabbitMQ.Test.csproj
index e905353..4a5ff02 100644
--- a/src/JT808.DotNetty.Tests/JT808.DotNetty.RabbitMQ.Test/JT808.DotNetty.RabbitMQ.Test.csproj
+++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.RabbitMQ.Test/JT808.DotNetty.RabbitMQ.Test.csproj
@@ -1,15 +1,15 @@
- netcoreapp3.0
+ netcoreapp3.1
false
-
-
-
+
+
+
diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.Tcp.Test/JT808.DotNetty.Tcp.Test.csproj b/src/JT808.DotNetty.Tests/JT808.DotNetty.Tcp.Test/JT808.DotNetty.Tcp.Test.csproj
index b879563..380ffcf 100644
--- a/src/JT808.DotNetty.Tests/JT808.DotNetty.Tcp.Test/JT808.DotNetty.Tcp.Test.csproj
+++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.Tcp.Test/JT808.DotNetty.Tcp.Test.csproj
@@ -1,19 +1,25 @@
- netcoreapp3.0
+ netcoreapp3.1
false
-
-
-
-
-
-
-
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808.DotNetty.Udp.Test.csproj b/src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808.DotNetty.Udp.Test.csproj
index f88b18c..d5a65c8 100644
--- a/src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808.DotNetty.Udp.Test.csproj
+++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.Udp.Test/JT808.DotNetty.Udp.Test.csproj
@@ -1,19 +1,25 @@
- netcoreapp3.0
+ netcoreapp3.1
false
-
-
-
-
-
-
-
+
+
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
diff --git a/src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808.DotNetty.WebApi.Test.csproj b/src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808.DotNetty.WebApi.Test.csproj
index b4c0eca..d32a18f 100644
--- a/src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808.DotNetty.WebApi.Test.csproj
+++ b/src/JT808.DotNetty.Tests/JT808.DotNetty.WebApi.Test/JT808.DotNetty.WebApi.Test.csproj
@@ -1,18 +1,24 @@
- netcoreapp3.0
+ netcoreapp3.1
false
-
-
-
-
-
-
+
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
diff --git a/src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs b/src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs
index e3c6471..b92932c 100644
--- a/src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs
+++ b/src/JT808.DotNetty.Udp/Handlers/JT808UdpServerHandler.cs
@@ -47,7 +47,7 @@ namespace JT808.DotNetty.Udp.Handlers
//解析到头部,然后根据具体的消息Id通过队列去进行消费
//要是一定要解析到数据体可以在JT808MsgIdHandlerBase类中根据具体的消息,
//解析具体的消息体,具体调用JT808Serializer.Deserialize
- JT808HeaderPackage jT808HeaderPackage = JT808Serializer.Deserialize(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)}");
diff --git a/src/JT808.DotNetty.Udp/JT808.DotNetty.Udp.csproj b/src/JT808.DotNetty.Udp/JT808.DotNetty.Udp.csproj
index 512a047..7d7d263 100644
--- a/src/JT808.DotNetty.Udp/JT808.DotNetty.Udp.csproj
+++ b/src/JT808.DotNetty.Udp/JT808.DotNetty.Udp.csproj
@@ -20,15 +20,6 @@
基于DotNetty实现的JT808DotNetty的Udp服务
-
-
-
-
-
-
-
-
-
diff --git a/src/JT808.DotNetty.WebApi/JT808.DotNetty.WebApi.csproj b/src/JT808.DotNetty.WebApi/JT808.DotNetty.WebApi.csproj
index 52f3103..32ae470 100644
--- a/src/JT808.DotNetty.WebApi/JT808.DotNetty.WebApi.csproj
+++ b/src/JT808.DotNetty.WebApi/JT808.DotNetty.WebApi.csproj
@@ -19,16 +19,6 @@
基于DotNetty实现的JT808DotNetty的WebApi服务
基于DotNetty实现的JT808DotNetty的WebApi服务
-
-
-
-
-
-
-
-
-
-
diff --git a/src/JT808.DotNetty.WebApiClientTool/JT808.DotNetty.WebApiClientTool.csproj b/src/JT808.DotNetty.WebApiClientTool/JT808.DotNetty.WebApiClientTool.csproj
index 06f0d78..28c20bd 100644
--- a/src/JT808.DotNetty.WebApiClientTool/JT808.DotNetty.WebApiClientTool.csproj
+++ b/src/JT808.DotNetty.WebApiClientTool/JT808.DotNetty.WebApiClientTool.csproj
@@ -24,7 +24,7 @@
-
+
diff --git a/src/Version.props b/src/Version.props
index ad36108..3ca3866 100644
--- a/src/Version.props
+++ b/src/Version.props
@@ -1,5 +1,5 @@
- 2.2.2
+ 2.3.0
\ No newline at end of file