ソースを参照

1.增加分析器的功能

2.重新生成主命令和子命令的扩展包
tags/v2.2.0
SmallChi(Koike) 5年前
コミット
3539b9883c
10個のファイルの変更365行の追加71行の削除
  1. +8
    -1
      src/JT809.Protocol.Test/JT809Extensions/JT809BinaryExtensionsTest.cs
  2. +9
    -9
      src/JT809.Protocol/Enums/JT809BusinessType.cs
  3. +130
    -24
      src/JT809.Protocol/Extensions/JT809PackageExtensionsTemplate.cs
  4. +6
    -6
      src/JT809.Protocol/Extensions/JT809PackageExtensionsTemplate.tt
  5. +94
    -4
      src/JT809.Protocol/Extensions/JT809SubPackageExtensionsTemplate.cs
  6. +9
    -23
      src/JT809.Protocol/JT809.Protocol.csproj
  7. +1
    -1
      src/JT809.Protocol/JT809Bodies.cs
  8. +8
    -1
      src/JT809.Protocol/JT809Package.cs
  9. +99
    -1
      src/JT809.Protocol/JT809Serializer.cs
  10. +1
    -1
      src/JT809.Protocol/MessageBody/JT809_2019_0x9101.cs

+ 8
- 1
src/JT809.Protocol.Test/JT809Extensions/JT809BinaryExtensionsTest.cs ファイルの表示

@@ -1,4 +1,5 @@
using JT809.Protocol.Enums;
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Extensions; using JT809.Protocol.Extensions;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@@ -42,6 +43,12 @@ namespace JT809.Protocol.Test.JT809Extensions
public void Test5() public void Test5()
{ {
var jT808_Status5 = JT809EnumExtensions.GetEnumTypes<JT808_Status>(8388609, 32,false); var jT808_Status5 = JT809EnumExtensions.GetEnumTypes<JT808_Status>(8388609, 32,false);
}
[Fact]
public void Test6()
{
JT809BodiesTypeAttribute jT809BodiesTypeAttribute = JT809BusinessType.接收车辆定位信息数量通知消息.GetAttribute<JT809BodiesTypeAttribute>();
JT809BodiesTypeAttribute jT809BodiesTypeAttribute1 = JT809BusinessType.发送车辆定位信息数据量通知消息_2019.GetAttribute<JT809BodiesTypeAttribute>();
} }
} }
} }

+ 9
- 9
src/JT809.Protocol/Enums/JT809BusinessType.cs ファイルの表示

@@ -155,12 +155,12 @@ namespace JT809.Protocol.Enums
///发送车辆定位信息数据量通知消息_2019 ///发送车辆定位信息数据量通知消息_2019
///DOWN_TOTAL_RECV_BACK_MSG ///DOWN_TOTAL_RECV_BACK_MSG
///</summary> ///</summary>
[Description("接收车辆定位信息数量通知消息")]
[Description("发送车辆定位信息数据量通知消息_2019")]
[JT809BodiesType(typeof(JT809_2019_0x9101))] [JT809BodiesType(typeof(JT809_2019_0x9101))]
[JT809BusinessTypeDescription("DOWN_TOTAL_RECV_BACK_MSG", "发送车辆定位信息数据量通知消息")]
发送车辆定位信息数据量通知消息_2019 = 0x9101,
[JT809BusinessTypeDescription("DOWN_TOTAL_RECV_BACK_MSG", "发送车辆定位信息数据量通知消息_2019")]
发送车辆定位信息数据量通知消息_2019 = 0x9101,
///<summary> ///<summary>
///发送车辆定位信息数据量通知消息_2019
///平台链路连接情况与车辆定位消息传输情况上报请求消息_2019
///DOWN_TOTAL_RECV_BACK_MSG ///DOWN_TOTAL_RECV_BACK_MSG
///</summary> ///</summary>
[Description("平台链路连接情况与车辆定位消息传输情况上报请求消息")] [Description("平台链路连接情况与车辆定位消息传输情况上报请求消息")]
@@ -168,18 +168,18 @@ namespace JT809.Protocol.Enums
[JT809BusinessTypeDescription("DOWN_MANAGE_MSG_REQ", "平台链路连接情况与车辆定位消息传输情况上报请求消息")] [JT809BusinessTypeDescription("DOWN_MANAGE_MSG_REQ", "平台链路连接情况与车辆定位消息传输情况上报请求消息")]
平台链路连接情况与车辆定位消息传输情况上报请求消息_2019 = 0x9102, 平台链路连接情况与车辆定位消息传输情况上报请求消息_2019 = 0x9102,
///<summary> ///<summary>
///发送车辆定位信息数据量通知消息_2019
///平台链路连接情况与车辆定位消息传输情况上报应答消息_2019
///UP_MANAGE_MSG_RSP ///UP_MANAGE_MSG_RSP
///</summary> ///</summary>
[Description("平台链路连接情况与车辆定位消息传输情况上报应答消息")] [Description("平台链路连接情况与车辆定位消息传输情况上报应答消息")]
[JT809BodiesType(typeof(JT809_0x1102))] [JT809BodiesType(typeof(JT809_0x1102))]
[JT809BusinessTypeDescription("UP_MANAGE_MSG_RSP", "平台链路连接情况与车辆定位消息传输情况上报应答消息")]
[JT809BusinessTypeDescription("UP_MANAGE_MSG_RSP", "平台链路连接情况与车辆定位消息传输情况上报应答消息_2019")]
平台链路连接情况与车辆定位消息传输情况上报应答消息_2019 = 0x1102, 平台链路连接情况与车辆定位消息传输情况上报应答消息_2019 = 0x1102,
///<summary> ///<summary>
///上传平台间消息序列号通知消息 ///上传平台间消息序列号通知消息
///UP_MANAGE_MSG_SN_INFORM ///UP_MANAGE_MSG_SN_INFORM
///</summary> ///</summary>
[Description("上传平台间消息序列号通知消息")]
[Description("上传平台间消息序列号通知消息_2019")]
[JT809BodiesType(typeof(JT809_0x1102))] [JT809BodiesType(typeof(JT809_0x1102))]
[JT809BusinessTypeDescription("UP_MANAGE_MSG_SN_INFORM", "上传平台间消息序列号通知消息")] [JT809BusinessTypeDescription("UP_MANAGE_MSG_SN_INFORM", "上传平台间消息序列号通知消息")]
上传平台间消息序列号通知消息_2019 = 0x1103, 上传平台间消息序列号通知消息_2019 = 0x1103,
@@ -187,9 +187,9 @@ namespace JT809.Protocol.Enums
///下发平台间消息序列号通知消息 ///下发平台间消息序列号通知消息
///UP_MANAGE_MSG_SN_INFORM ///UP_MANAGE_MSG_SN_INFORM
///</summary> ///</summary>
[Description("下发平台间消息序列号通知消息")]
[Description("下发平台间消息序列号通知消息_2019")]
[JT809BodiesType(typeof(JT809_0x1102))] [JT809BodiesType(typeof(JT809_0x1102))]
[JT809BusinessTypeDescription("DOWN_MANAGE_MSG_SN_INFORM", "下发平台间消息序列号通知消息")]
[JT809BusinessTypeDescription("DOWN_MANAGE_MSG_SN_INFORM", "下发平台间消息序列号通知消息_2019")]
下发平台间消息序列号通知消息_2019 = 0x9103, 下发平台间消息序列号通知消息_2019 = 0x9103,
#endregion #endregion
#region 车辆动态信息交换 #region 车辆动态信息交换


+ 130
- 24
src/JT809.Protocol/Extensions/JT809PackageExtensionsTemplate.cs ファイルの表示

@@ -1,11 +1,12 @@
 

using JT809.Protocol.Enums; using JT809.Protocol.Enums;


namespace JT809.Protocol.Extensions namespace JT809.Protocol.Extensions
{ {
public static partial class JT809PackageExtensions public static partial class JT809PackageExtensions
{ {
/// <summary>
/// <summary>
/// UP_CONNECT_REQ - 主链路登录请求消息 /// UP_CONNECT_REQ - 主链路登录请求消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -31,7 +32,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1001>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1001>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_CONNECT_RSP - 主链路登录应答消息 /// UP_CONNECT_RSP - 主链路登录应答消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -57,7 +58,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1002>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1002>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_DISCONNECT_REQ - 主链路注销请求消息 /// UP_DISCONNECT_REQ - 主链路注销请求消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -83,7 +84,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1003>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1003>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_DISCONNECT_RSP - 主链路注销应答消息 /// UP_DISCONNECT_RSP - 主链路注销应答消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -109,7 +110,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1004>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1004>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_LINKTEST_REQ - 主链路连接保持请求消息 /// UP_LINKTEST_REQ - 主链路连接保持请求消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -135,7 +136,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1005>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1005>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_LINKTEST_RSP - 主链路连接保持应答消息 /// UP_LINKTEST_RSP - 主链路连接保持应答消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -161,7 +162,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1006>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1006>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_DISCONNECT_INFORM - 主链路断开通知消息 /// UP_DISCONNECT_INFORM - 主链路断开通知消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -187,7 +188,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1007>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1007>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_CLOSELINK_INFORM - 下级平台主动关闭主从链路通知消息 /// UP_CLOSELINK_INFORM - 下级平台主动关闭主从链路通知消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -213,7 +214,50 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1008>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1008>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// UP_MANAGE_MSG_RSP - 平台链路连接情况与车辆定位消息传输情况上报应答消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_平台链路连接情况与车辆定位消息传输情况上报应答消息_2019(this JT809BusinessType jT809BusinessType,JT809.Protocol.MessageBody.JT809_0x1102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x1102>(jT809BusinessType,bodies);
}

/// <summary>
/// UP_MANAGE_MSG_RSP - 平台链路连接情况与车辆定位消息传输情况上报应答消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create(this JT809BusinessType jT809BusinessType, JT809.Protocol.MessageBody.JT809_0x1102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x1102>(jT809BusinessType,bodies);
}

/// <summary>
/// UP_MANAGE_MSG_RSP - 平台链路连接情况与车辆定位消息传输情况上报应答消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_平台链路连接情况与车辆定位消息传输情况上报应答消息_2019(this JT809BusinessType jT809BusinessType,JT809Header jT809Header, JT809.Protocol.MessageBody.JT809_0x1102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x1102>(jT809BusinessType,jT809Header,bodies);
}
/// <summary>
/// UP_MANAGE_MSG_SN_INFORM - 上传平台间消息序列号通知消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_上传平台间消息序列号通知消息_2019(this JT809BusinessType jT809BusinessType,JT809.Protocol.MessageBody.JT809_0x1102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x1102>(jT809BusinessType,bodies);
}

/// <summary> /// <summary>
/// UP_MANAGE_MSG_SN_INFORM - 上传平台间消息序列号通知消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_上传平台间消息序列号通知消息_2019(this JT809BusinessType jT809BusinessType,JT809Header jT809Header, JT809.Protocol.MessageBody.JT809_0x1102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x1102>(jT809BusinessType,jT809Header,bodies);
}
/// <summary>
/// UP_EXG_MSG - 主链路车辆动态信息交换业务 /// UP_EXG_MSG - 主链路车辆动态信息交换业务
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -239,7 +283,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1200>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1200>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_PLATFORM_MSG - 主链路平台间信息交互消息 /// UP_PLATFORM_MSG - 主链路平台间信息交互消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -265,7 +309,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1300>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1300>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_WARN_MSG - 主链路报警信息交互消息 /// UP_WARN_MSG - 主链路报警信息交互消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -291,7 +335,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1400>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1400>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_CTRL_MSG - 主链路车辆监管消息 /// UP_CTRL_MSG - 主链路车辆监管消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -317,7 +361,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1500>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1500>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// UP_BASE_MSG - 主链路静态信息交换消息 /// UP_BASE_MSG - 主链路静态信息交换消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -343,7 +387,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x1600>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x1600>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_CONNECT_REQ - 从链路连接请求消息 /// DOWN_CONNECT_REQ - 从链路连接请求消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -369,7 +413,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9001>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9001>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_CONNECT_RSP - 从链路连接应答信息 /// DOWN_CONNECT_RSP - 从链路连接应答信息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -395,7 +439,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9002>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9002>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_DISCONNECT_REQ - 从链路注销请求消息 /// DOWN_DISCONNECT_REQ - 从链路注销请求消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -421,7 +465,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9003>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9003>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_DISCONNECT_RSP - 从链路注销应答消息 /// DOWN_DISCONNECT_RSP - 从链路注销应答消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -447,7 +491,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9004>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9004>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_LINKTEST_REQ - 从链路连接保持请求消息 /// DOWN_LINKTEST_REQ - 从链路连接保持请求消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -473,7 +517,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9005>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9005>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_LINKTEST_RSP - 从链路连接保持应答消息 /// DOWN_LINKTEST_RSP - 从链路连接保持应答消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -499,7 +543,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9006>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9006>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_DISCONNECT_INFORM - 从链路断开通知消息 /// DOWN_DISCONNECT_INFORM - 从链路断开通知消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -525,7 +569,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9007>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9007>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_CLOSELINK_INFORM - 上级平台主动关闭链路通知消息 /// DOWN_CLOSELINK_INFORM - 上级平台主动关闭链路通知消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -551,6 +595,34 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9008>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9008>(jT809BusinessType,jT809Header,bodies);
} }

/// <summary>
/// DOWN_TOTAL_RECV_BACK_MSG - 发送车辆定位信息数据量通知消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_发送车辆定位信息数据量通知消息_2019(this JT809BusinessType jT809BusinessType,JT809.Protocol.MessageBody.JT809_2019_0x9101 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_2019_0x9101>(jT809BusinessType,bodies);
}

/// <summary>
/// DOWN_TOTAL_RECV_BACK_MSG - 发送车辆定位信息数据量通知消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create(this JT809BusinessType jT809BusinessType, JT809.Protocol.MessageBody.JT809_2019_0x9101 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_2019_0x9101>(jT809BusinessType,bodies);
}

/// <summary>
/// DOWN_TOTAL_RECV_BACK_MSG - 发送车辆定位信息数据量通知消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_发送车辆定位信息数据量通知消息_2019(this JT809BusinessType jT809BusinessType,JT809Header jT809Header, JT809.Protocol.MessageBody.JT809_2019_0x9101 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_2019_0x9101>(jT809BusinessType,jT809Header,bodies);
}

/// <summary> /// <summary>
/// DOWN_TOTAL_RECV_BACK_MSG - 接收车辆定位信息数量通知消息 /// DOWN_TOTAL_RECV_BACK_MSG - 接收车辆定位信息数量通知消息
/// auto-generated /// auto-generated
@@ -577,7 +649,41 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9101>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9101>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// DOWN_MANAGE_MSG_REQ - 平台链路连接情况与车辆定位消息传输情况上报请求消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_平台链路连接情况与车辆定位消息传输情况上报请求消息_2019(this JT809BusinessType jT809BusinessType,JT809.Protocol.MessageBody.JT809_0x9102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x9102>(jT809BusinessType,bodies);
}

/// <summary> /// <summary>
/// DOWN_MANAGE_MSG_REQ - 平台链路连接情况与车辆定位消息传输情况上报请求消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_平台链路连接情况与车辆定位消息传输情况上报请求消息_2019(this JT809BusinessType jT809BusinessType,JT809Header jT809Header, JT809.Protocol.MessageBody.JT809_0x9102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x9102>(jT809BusinessType,jT809Header,bodies);
}
/// <summary>
/// DOWN_MANAGE_MSG_SN_INFORM - 下发平台间消息序列号通知消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_下发平台间消息序列号通知消息_2019(this JT809BusinessType jT809BusinessType,JT809.Protocol.MessageBody.JT809_0x1102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x1102>(jT809BusinessType,bodies);
}

/// <summary>
/// DOWN_MANAGE_MSG_SN_INFORM - 下发平台间消息序列号通知消息_2019
/// auto-generated
/// </summary>
public static JT809Package Create_下发平台间消息序列号通知消息_2019(this JT809BusinessType jT809BusinessType,JT809Header jT809Header, JT809.Protocol.MessageBody.JT809_0x1102 bodies)
{
return Create<JT809.Protocol.MessageBody.JT809_0x1102>(jT809BusinessType,jT809Header,bodies);
}
/// <summary>
/// DOWN_EXG_MSG - 从链路车辆动态信息交换业务 /// DOWN_EXG_MSG - 从链路车辆动态信息交换业务
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -603,7 +709,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9200>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9200>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_PLATFORM_MSG - 从链路平台间信息交互业务 /// DOWN_PLATFORM_MSG - 从链路平台间信息交互业务
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -629,7 +735,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9300>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9300>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_WARN_MSG - 从链路报警信息交互消息 /// DOWN_WARN_MSG - 从链路报警信息交互消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -655,7 +761,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9400>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9400>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_CTRL_MSG - 从链路车辆监管消息 /// DOWN_CTRL_MSG - 从链路车辆监管消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>
@@ -681,7 +787,7 @@ namespace JT809.Protocol.Extensions
{ {
return Create<JT809.Protocol.MessageBody.JT809_0x9500>(jT809BusinessType,jT809Header,bodies); return Create<JT809.Protocol.MessageBody.JT809_0x9500>(jT809BusinessType,jT809Header,bodies);
} }
/// <summary>
/// <summary>
/// DOWN_BASE_MSG - 从链路静态信息交换消息 /// DOWN_BASE_MSG - 从链路静态信息交换消息
/// auto-generated /// auto-generated
/// </summary> /// </summary>


+ 6
- 6
src/JT809.Protocol/Extensions/JT809PackageExtensionsTemplate.tt ファイルの表示

@@ -16,6 +16,7 @@
<# <#
var types=Enum.GetNames(typeof(JT809BusinessType)); var types=Enum.GetNames(typeof(JT809BusinessType));
#> #>

using JT809.Protocol.Enums; using JT809.Protocol.Enums;


namespace JT809.Protocol.Extensions namespace JT809.Protocol.Extensions
@@ -28,19 +29,18 @@ namespace JT809.Protocol.Extensions
JT809BusinessType jT809BusinessType = item.ToEnum<JT809BusinessType>(); JT809BusinessType jT809BusinessType = item.ToEnum<JT809BusinessType>();
JT809BodiesTypeAttribute jT809BodiesTypeAttribute = jT809BusinessType.GetAttribute<JT809BodiesTypeAttribute>(); JT809BodiesTypeAttribute jT809BodiesTypeAttribute = jT809BusinessType.GetAttribute<JT809BodiesTypeAttribute>();
JT809BusinessTypeDescriptionAttribute jT809MsgIdDescriptionAttribute = jT809BusinessType.GetAttribute<JT809BusinessTypeDescriptionAttribute>(); JT809BusinessTypeDescriptionAttribute jT809MsgIdDescriptionAttribute = jT809BusinessType.GetAttribute<JT809BusinessTypeDescriptionAttribute>();

#> #>
/// <summary> /// <summary>
/// <#= jT809MsgIdDescriptionAttribute.Code #> - <#= jT809MsgIdDescriptionAttribute.Name #>
/// <#= jT809MsgIdDescriptionAttribute.Code #> - <#= item #>
/// auto-generated /// auto-generated
/// </summary> /// </summary>
public static JT809Package Create_<#= jT809MsgIdDescriptionAttribute.Name #>(this JT809BusinessType jT809BusinessType,<#= jT809BodiesTypeAttribute.JT809BodiesType.FullName #> bodies)
public static JT809Package Create_<#= item #>(this JT809BusinessType jT809BusinessType,<#= jT809BodiesTypeAttribute.JT809BodiesType.FullName #> bodies)
{ {
return Create<<#= jT809BodiesTypeAttribute.JT809BodiesType.FullName#>>(jT809BusinessType,bodies); return Create<<#= jT809BodiesTypeAttribute.JT809BodiesType.FullName#>>(jT809BusinessType,bodies);
} }


/// <summary> /// <summary>
/// <#= jT809MsgIdDescriptionAttribute.Code #> - <#= jT809MsgIdDescriptionAttribute.Name #>
/// <#= jT809MsgIdDescriptionAttribute.Code #> - <#= item #>
/// auto-generated /// auto-generated
/// </summary> /// </summary>
public static JT809Package Create(this JT809BusinessType jT809BusinessType, <#= jT809BodiesTypeAttribute.JT809BodiesType.FullName #> bodies) public static JT809Package Create(this JT809BusinessType jT809BusinessType, <#= jT809BodiesTypeAttribute.JT809BodiesType.FullName #> bodies)
@@ -49,10 +49,10 @@ namespace JT809.Protocol.Extensions
} }


/// <summary> /// <summary>
/// <#= jT809MsgIdDescriptionAttribute.Code #> - <#= jT809MsgIdDescriptionAttribute.Name #>
/// <#= jT809MsgIdDescriptionAttribute.Code #> - <#= item #>
/// auto-generated /// auto-generated
/// </summary> /// </summary>
public static JT809Package Create_<#= jT809MsgIdDescriptionAttribute.Name #>(this JT809BusinessType jT809BusinessType,JT809Header jT809Header, <#= jT809BodiesTypeAttribute.JT809BodiesType.FullName #> bodies)
public static JT809Package Create_<#= item #>(this JT809BusinessType jT809BusinessType,JT809Header jT809Header, <#= jT809BodiesTypeAttribute.JT809BodiesType.FullName #> bodies)
{ {
return Create<<#= jT809BodiesTypeAttribute.JT809BodiesType.FullName#>>(jT809BusinessType,jT809Header,bodies); return Create<<#= jT809BodiesTypeAttribute.JT809BodiesType.FullName#>>(jT809BusinessType,jT809Header,bodies);
} }


+ 94
- 4
src/JT809.Protocol/Extensions/JT809SubPackageExtensionsTemplate.cs ファイルの表示

@@ -119,6 +119,15 @@ namespace JT809.Protocol.Extensions
return Create<JT809.Protocol.SubMessageBody.JT809_0x1200_0x120D>(jT809SubBusinessType,subBodies); return Create<JT809.Protocol.SubMessageBody.JT809_0x1200_0x120D>(jT809SubBusinessType,subBodies);
} }
/// <summary> /// <summary>
/// 4608
/// UP_EXG_MSG_DRVLINE_INFO - 主动上报车辆行驶路线信息
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x1200_0x120E Create_主动上报车辆行驶路线信息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x1200_0x120E subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x1200_0x120E>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 4864 /// 4864
/// UP_PLATFORM_MSG_POST_QUERY_ACK - 平台查岗应答消息 /// UP_PLATFORM_MSG_POST_QUERY_ACK - 平台查岗应答消息
/// auto-generated /// auto-generated
@@ -137,6 +146,15 @@ namespace JT809.Protocol.Extensions
return Create<JT809.Protocol.SubMessageBody.JT809_0x1300_0x1302>(jT809SubBusinessType,subBodies); return Create<JT809.Protocol.SubMessageBody.JT809_0x1300_0x1302>(jT809SubBusinessType,subBodies);
} }
/// <summary> /// <summary>
/// 4864
/// UP_PLATFORM_MSG_RETRAN_REQ - 上传平台间消息补传请求消息
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x1300_0x1303 Create_上传平台间消息补传请求消息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x1300_0x1303 subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x1300_0x1303>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 5120 /// 5120
/// UP_WARN_MSG_URGE_TODO_ACK - 报警督办应答消息 /// UP_WARN_MSG_URGE_TODO_ACK - 报警督办应答消息
/// auto-generated /// auto-generated
@@ -156,14 +174,41 @@ namespace JT809.Protocol.Extensions
} }
/// <summary> /// <summary>
/// 5120 /// 5120
/// UP_WARN_MSG_ADPT_TODO_INFO - 主动上报报警处理结果信息
/// UP_WARN_MSG_ADPT_TODO_INFO_2013_UP_WARN_MSG_INFORM_TIPS_2019 - 主动上报报警处理结果信息2013_上报报警预警信息2019
/// auto-generated /// auto-generated
/// </summary> /// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x1400_0x1403 Create_主动上报报警处理结果信息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x1400_0x1403 subBodies)
public static JT809.Protocol.SubMessageBody.JT809_0x1400_0x1403 Create_主动上报报警处理结果信息2013_上报报警预警信息2019(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x1400_0x1403 subBodies)
{ {
return Create<JT809.Protocol.SubMessageBody.JT809_0x1400_0x1403>(jT809SubBusinessType,subBodies); return Create<JT809.Protocol.SubMessageBody.JT809_0x1400_0x1403>(jT809SubBusinessType,subBodies);
} }
/// <summary> /// <summary>
/// 5120
/// UP_WARN_MSG_URGE_TODO_ACK_INFO - 上报报警督办应答消息
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x1400_0x1411 Create_上报报警督办应答消息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x1400_0x1411 subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x1400_0x1411>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 5120
/// UP_WARN_MSG_URGE_TODO_ACK_INFO - 主动上报报警处理结果消息
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x1400_0x1412 Create_主动上报报警处理结果消息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x1400_0x1412 subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x1400_0x1412>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 5120
/// UP_WARN_MSG_URGE_TODO_REQ_INFO - 上报报警督办请求消息
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x1400_0x1413 Create_上报报警督办请求消息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x1400_0x1413 subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x1400_0x1413>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 5376 /// 5376
/// UP_CTRL_MSG_MONITOR_VEHICLE_ACK - 车辆单向监听应答 /// UP_CTRL_MSG_MONITOR_VEHICLE_ACK - 车辆单向监听应答
/// auto-generated /// auto-generated
@@ -218,6 +263,24 @@ namespace JT809.Protocol.Extensions
return Create<JT809.Protocol.SubMessageBody.JT809_0x1600_0x1601>(jT809SubBusinessType,subBodies); return Create<JT809.Protocol.SubMessageBody.JT809_0x1600_0x1601>(jT809SubBusinessType,subBodies);
} }
/// <summary> /// <summary>
/// 5632
/// UP_BASE_MSG_DRVLINE_ADDED_REQ - 补报车辆行驶路线信息应答消息
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x1600_0x1602 Create_补报车辆行驶路线信息应答消息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x1600_0x1602 subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x1600_0x1602>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 37376
/// DOWN_EXG_MSG_REGISTER_ACK - 车辆注册信息应答消息
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x9200_0x9201 Create_车辆注册信息应答消息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x9200_0x9201 subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x9200_0x9201>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 37376 /// 37376
/// DOWN_EXG_MSG_CAR_LOCATION - 交换车辆定位信息消息 /// DOWN_EXG_MSG_CAR_LOCATION - 交换车辆定位信息消息
/// auto-generated /// auto-generated
@@ -308,6 +371,24 @@ namespace JT809.Protocol.Extensions
return Create<JT809.Protocol.SubMessageBody.JT809_0x9200_0x920B>(jT809SubBusinessType,subBodies); return Create<JT809.Protocol.SubMessageBody.JT809_0x9200_0x920B>(jT809SubBusinessType,subBodies);
} }
/// <summary> /// <summary>
/// 37376
/// DOWN_BASE_MSG_DRVLINE_REQ - 上报车辆车辆行驶路线请求
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x9200_0x920C Create_上报车辆车辆行驶路线请求(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x9200_0x920C subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x9200_0x920C>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 37376
/// DOWN_BASE_MSG_DRVLINE_ACK - 车辆行驶线路请求应答
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x9200_0x920D Create_车辆行驶线路请求应答(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x9200_0x920D subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x9200_0x920D>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 37632 /// 37632
/// DOWN_PLATFORM_MSG_POST_QUERY_REQ - 平台查岗请求 /// DOWN_PLATFORM_MSG_POST_QUERY_REQ - 平台查岗请求
/// auto-generated /// auto-generated
@@ -326,6 +407,15 @@ namespace JT809.Protocol.Extensions
return Create<JT809.Protocol.SubMessageBody.JT809_0x9300_0x9302>(jT809SubBusinessType,subBodies); return Create<JT809.Protocol.SubMessageBody.JT809_0x9300_0x9302>(jT809SubBusinessType,subBodies);
} }
/// <summary> /// <summary>
/// 37632
/// DOWN_PLATFORM_MSG_RETRAN_REQ - 下发平台间消息补传请求消息
/// auto-generated
/// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x9300_0x9303 Create_下发平台间消息补传请求消息(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x9300_0x9303 subBodies)
{
return Create<JT809.Protocol.SubMessageBody.JT809_0x9300_0x9303>(jT809SubBusinessType,subBodies);
}
/// <summary>
/// 37888 /// 37888
/// DOWN_WARN_MSG_URGE_TODO_REQ - 报警督办请求消息 /// DOWN_WARN_MSG_URGE_TODO_REQ - 报警督办请求消息
/// auto-generated /// auto-generated
@@ -336,10 +426,10 @@ namespace JT809.Protocol.Extensions
} }
/// <summary> /// <summary>
/// 37888 /// 37888
/// DOWN_WARN_MSG_INFORM_TIPS - 报警预警
/// DOWN_WARN_MSG_INFORM_TIPS - 报警预警2013_下发报警预警消息2019
/// auto-generated /// auto-generated
/// </summary> /// </summary>
public static JT809.Protocol.SubMessageBody.JT809_0x9400_0x9402 Create_报警预警(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x9400_0x9402 subBodies)
public static JT809.Protocol.SubMessageBody.JT809_0x9400_0x9402 Create_报警预警2013_下发报警预警消息2019(this JT809SubBusinessType jT809SubBusinessType,JT809.Protocol.SubMessageBody.JT809_0x9400_0x9402 subBodies)
{ {
return Create<JT809.Protocol.SubMessageBody.JT809_0x9400_0x9402>(jT809SubBusinessType,subBodies); return Create<JT809.Protocol.SubMessageBody.JT809_0x9400_0x9402>(jT809SubBusinessType,subBodies);
} }


+ 9
- 23
src/JT809.Protocol/JT809.Protocol.csproj ファイルの表示

@@ -96,19 +96,6 @@
<Compile Include="Enums\JT809_VehiclePositionEncrypt.cs" /> <Compile Include="Enums\JT809_VehiclePositionEncrypt.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<None Include="Extensions\JT809PackageExtensionsTemplate.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>JT809PackageExtensionsTemplate.tt</DependentUpon>
</None>
<None Include="Extensions\JT809SubPackageExtensionsTemplate.cs">
<DesignTime>True</DesignTime>
<AutoGen>True</AutoGen>
<DependentUpon>JT809SubPackageExtensionsTemplate.tt</DependentUpon>
</None>
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' "> <ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
<PackageReference Include="Microsoft.CSharp" Version="4.6.0" /> <PackageReference Include="Microsoft.CSharp" Version="4.6.0" />
<PackageReference Include="System.Buffers" Version="4.5.1" /> <PackageReference Include="System.Buffers" Version="4.5.1" />
@@ -123,17 +110,9 @@
<PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.3" /> <PackageReference Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="3.1.3" />
<PackageReference Include="System.Text.Json" Version="4.7.1" /> <PackageReference Include="System.Text.Json" Version="4.7.1" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<None Update="Extensions\JT809PackageExtensionsTemplate.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>JT809PackageExtensionsTemplate.cs</LastGenOutput>
</None>
<None Update="Extensions\JT809SubPackageExtensionsTemplate.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>JT809SubPackageExtensionsTemplate.cs</LastGenOutput>
</None>
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
@@ -150,7 +129,14 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
<None Update="Extensions\JT809PackageExtensionsTemplate.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>JT809PackageExtensionsTemplate.cs</LastGenOutput>
</None>
<None Update="Extensions\JT809SubPackageExtensionsTemplate.tt">
<Generator>TextTemplatingFileGenerator</Generator>
<LastGenOutput>JT809SubPackageExtensionsTemplate.cs</LastGenOutput>
</None>
</ItemGroup> </ItemGroup>
</Project> </Project>

+ 1
- 1
src/JT809.Protocol/JT809Bodies.cs ファイルの表示

@@ -11,7 +11,7 @@ namespace JT809.Protocol
/// 当数据体为空的时候,使用null作为空包感觉不适合,所以就算使用空包也需要new一下来表达意思。 /// 当数据体为空的时候,使用null作为空包感觉不适合,所以就算使用空包也需要new一下来表达意思。
/// </summary> /// </summary>
public virtual bool SkipSerialization { get; set; } = false; public virtual bool SkipSerialization { get; set; } = false;
public virtual JT809Version Version => JT809Version.JTT2011;
public virtual JT809Version Version { get;} = JT809Version.JTT2011;
public abstract ushort MsgId { get; } public abstract ushort MsgId { get; }
public abstract JT809_LinkType LinkType { get; } public abstract JT809_LinkType LinkType { get; }
public abstract string Description { get; } public abstract string Description { get; }


+ 8
- 1
src/JT809.Protocol/JT809Package.cs ファイルの表示

@@ -5,10 +5,11 @@ using JT809.Protocol.Formatters;
using JT809.Protocol.Interfaces; using JT809.Protocol.Interfaces;
using JT809.Protocol.MessagePack; using JT809.Protocol.MessagePack;
using System; using System;
using System.Text.Json;


namespace JT809.Protocol namespace JT809.Protocol
{ {
public class JT809Package:IJT809MessagePackFormatter<JT809Package>, IJT809_2019_Version
public class JT809Package:IJT809MessagePackFormatter<JT809Package>, IJT809Analyze, IJT809_2019_Version
{ {
public const byte BEGINFLAG = 0X5B; public const byte BEGINFLAG = 0X5B;


@@ -174,5 +175,11 @@ namespace JT809.Protocol
writer.WriteEncode(); writer.WriteEncode();
// -----------组包完成---------- // -----------组包完成----------
} }

public void Analyze(ref JT809MessagePackReader reader, Utf8JsonWriter writer, IJT809Config config)
{
#warning Analyze NotImplementedException
throw new NotImplementedException();
}
} }
} }

+ 99
- 1
src/JT809.Protocol/JT809Serializer.cs ファイルの表示

@@ -1,4 +1,5 @@
using JT809.Protocol.Extensions;
using JT809.Protocol.Enums;
using JT809.Protocol.Extensions;
using JT809.Protocol.Formatters; using JT809.Protocol.Formatters;
using JT809.Protocol.Interfaces; using JT809.Protocol.Interfaces;
using JT809.Protocol.Internal; using JT809.Protocol.Internal;
@@ -6,7 +7,9 @@ using JT809.Protocol.MessagePack;
using System; using System;
using System.Buffers; using System.Buffers;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO;
using System.Text; using System.Text;
using System.Text.Json;


namespace JT809.Protocol namespace JT809.Protocol
{ {
@@ -103,5 +106,100 @@ namespace JT809.Protocol
JT809ArrayPool.Return(buffer); JT809ArrayPool.Return(buffer);
} }
} }


public string Analyze(ReadOnlySpan<byte> bytes,JsonWriterOptions options = default, int minBufferSize = 8096)
{
byte[] buffer = JT809ArrayPool.Rent(minBufferSize);
try
{
JT809MessagePackReader jT809MessagePackReader = new JT809MessagePackReader(bytes);
jT809MessagePackReader.Decode(buffer);
using (MemoryStream memoryStream = new MemoryStream())
using (Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(memoryStream, options))
{
jT809Package.Analyze(ref jT809MessagePackReader, utf8JsonWriter, jT809Config);
utf8JsonWriter.Flush();
string value = Encoding.UTF8.GetString(memoryStream.ToArray());
return value;
}
}
finally
{
JT809ArrayPool.Return(buffer);
}
}

public string Analyze<T>(ReadOnlySpan<byte> bytes,JsonWriterOptions options = default, int minBufferSize = 8096)
{
byte[] buffer = JT809ArrayPool.Rent(minBufferSize);
try
{
JT809MessagePackReader jT809MessagePackReader = new JT809MessagePackReader(bytes);
if (CheckPackageType(typeof(T)))
jT809MessagePackReader.Decode(buffer);
var analyze = jT809Config.GetAnalyze<T>();
using (MemoryStream memoryStream = new MemoryStream())
using (Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(memoryStream, options))
{
if (!CheckPackageType(typeof(T))) utf8JsonWriter.WriteStartObject();
analyze.Analyze(ref jT809MessagePackReader, utf8JsonWriter, jT809Config);
if (!CheckPackageType(typeof(T))) utf8JsonWriter.WriteEndObject();
utf8JsonWriter.Flush();
string value = Encoding.UTF8.GetString(memoryStream.ToArray());
return value;
}
}
finally
{
JT809ArrayPool.Return(buffer);
}
}

public byte[] AnalyzeJsonBuffer(ReadOnlySpan<byte> bytes, JsonWriterOptions options = default, int minBufferSize = 8096)
{
byte[] buffer = JT809ArrayPool.Rent(minBufferSize);
try
{
JT809MessagePackReader jT809MessagePackReader = new JT809MessagePackReader(bytes);
jT809MessagePackReader.Decode(buffer);
using (MemoryStream memoryStream = new MemoryStream())
using (Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(memoryStream, options))
{
jT809Package.Analyze(ref jT809MessagePackReader, utf8JsonWriter, jT809Config);
utf8JsonWriter.Flush();
return memoryStream.ToArray();
}
}
finally
{
JT809ArrayPool.Return(buffer);
}
}

public byte[] AnalyzeJsonBuffer<T>(ReadOnlySpan<byte> bytes, JsonWriterOptions options = default, int minBufferSize = 8096)
{
byte[] buffer = JT809ArrayPool.Rent(minBufferSize);
try
{
JT809MessagePackReader jT809MessagePackReader = new JT809MessagePackReader(bytes);
if (CheckPackageType(typeof(T)))
jT809MessagePackReader.Decode(buffer);
var analyze = jT809Config.GetAnalyze<T>();
using (MemoryStream memoryStream = new MemoryStream())
using (Utf8JsonWriter utf8JsonWriter = new Utf8JsonWriter(memoryStream, options))
{
if (!CheckPackageType(typeof(T))) utf8JsonWriter.WriteStartObject();
analyze.Analyze(ref jT809MessagePackReader, utf8JsonWriter, jT809Config);
if (!CheckPackageType(typeof(T))) utf8JsonWriter.WriteEndObject();
utf8JsonWriter.Flush();
return memoryStream.ToArray();
}
}
finally
{
JT809ArrayPool.Return(buffer);
}
}
} }
} }

+ 1
- 1
src/JT809.Protocol/MessageBody/JT809_2019_0x9101.cs ファイルの表示

@@ -19,7 +19,7 @@ namespace JT809.Protocol.MessageBody
public class JT809_2019_0x9101 : JT809Bodies, IJT809MessagePackFormatter<JT809_2019_0x9101> public class JT809_2019_0x9101 : JT809Bodies, IJT809MessagePackFormatter<JT809_2019_0x9101>
{ {
public override ushort MsgId => JT809BusinessType.发送车辆定位信息数据量通知消息_2019.ToUInt16Value(); public override ushort MsgId => JT809BusinessType.发送车辆定位信息数据量通知消息_2019.ToUInt16Value();
public override string Description => "发送车辆定位信息数据量通知消息";
public override string Description => "发送车辆定位信息数据量通知消息_2019";
public override JT809_LinkType LinkType => JT809_LinkType.main; public override JT809_LinkType LinkType => JT809_LinkType.main;
public override JT809Version Version => JT809Version.JTT2019; public override JT809Version Version => JT809Version.JTT2019;




読み込み中…
キャンセル
保存