diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs
index c08704d..e1c0367 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs
@@ -9,10 +9,25 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
///
public enum ActivePhotographyStrategyType:byte
{
- 不开启=0x00,
- 定时拍照=0x01,
- 定距拍照=0x02,
- 保留=0x03,
- 不修改参数=0xFF
+ ///
+ /// 不开启
+ ///
+ 不开启 = 0x00,
+ ///
+ /// 定时拍照
+ ///
+ 定时拍照 = 0x01,
+ ///
+ /// 定距拍照
+ ///
+ 定距拍照 = 0x02,
+ ///
+ /// 保留
+ ///
+ 保留 = 0x03,
+ ///
+ /// 不修改参数
+ ///
+ 不修改参数 = 0xFF
}
}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs
index f9d4963..e1167c8 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs
@@ -4,12 +4,30 @@ using System.Text;
namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
{
+ ///
+ /// 主动安全消息Id
+ ///
public enum JT808_JTActiveSafety_MsgId : ushort
{
- 报警附件信息消息= 0x1210,
- 文件信息上传= 0x1211,
+ ///
+ /// 报警附件信息消息
+ ///
+ 报警附件信息消息 = 0x1210,
+ ///
+ /// 文件信息上传
+ ///
+ 文件信息上传 = 0x1211,
+ ///
+ /// 文件上传完成消息
+ ///
文件上传完成消息 = 0x1212,
+ ///
+ /// 报警附件上传指令
+ ///
报警附件上传指令 = 0x9208,
+ ///
+ /// 文件上传完成消息应答
+ ///
文件上传完成消息应答 = 0x9212,
}
}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs
index 238e11d..e9b4d17 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs
@@ -9,12 +9,33 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
///
public enum PhotoResolutionType:byte
{
- x352_288=0x01,
- x704_288=0x02,
- x704_576=0x03,
- x640_480=0x04,
- x1280_720=0x05,
- x1920_1080=0x06,
- 不修改参数=0xFF
+ ///
+ /// 352x288
+ ///
+ x352_288 = 0x01,
+ ///
+ /// 704x288
+ ///
+ x704_288 = 0x02,
+ ///
+ /// 704x576
+ ///
+ x704_576 = 0x03,
+ ///
+ /// 640x480
+ ///
+ x640_480 = 0x04,
+ ///
+ /// 1280x720
+ ///
+ x1280_720 = 0x05,
+ ///
+ /// 1920x1080
+ ///
+ x1920_1080 = 0x06,
+ ///
+ /// 不修改参数
+ ///
+ 不修改参数 = 0xFF
}
}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs
index 676a34d..79b6b9f 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs
@@ -4,6 +4,9 @@ using System.Text;
namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
{
+ ///
+ /// USB编号类型
+ ///
public enum USBIDType:byte
{
///
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs
index b10ed4a..3d4026f 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs
@@ -9,13 +9,37 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
///
public enum VideoRecordingResolutionType:byte
{
- CIF=0x01,
- HD1=0x02,
- D1=0x03,
- WD1=0x04,
- VGA=0x05,
- _720P=0x06,
- _1080P=0x07,
- 不修改参数=0xFF
+ ///
+ /// CIF
+ ///
+ CIF = 0x01,
+ ///
+ /// HD1
+ ///
+ HD1 = 0x02,
+ ///
+ /// D1
+ ///
+ D1 = 0x03,
+ ///
+ /// WD1
+ ///
+ WD1 = 0x04,
+ ///
+ /// VGA
+ ///
+ VGA = 0x05,
+ ///
+ /// 720P
+ ///
+ _720P = 0x06,
+ ///
+ /// 1080P
+ ///
+ _1080P = 0x07,
+ ///
+ /// 不修改参数
+ ///
+ 不修改参数 = 0xFF
}
}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs
index 49cc21d..724ae2d 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs
@@ -9,10 +9,25 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
///
public enum WorkingConditionType:byte
{
- 正常工作=0x01,
- 待机状态=0x02,
- 升级维护=0x03,
+ ///
+ /// 正常工作
+ ///
+ 正常工作 = 0x01,
+ ///
+ /// 待机状态
+ ///
+ 待机状态 = 0x02,
+ ///
+ /// 升级维护
+ ///
+ 升级维护 = 0x03,
+ ///
+ /// 设备异常
+ ///
设备异常 = 0x04,
+ ///
+ /// 断开连接
+ ///
断开连接 = 0x10,
}
}
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj
index 723568d..af133cb 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj
@@ -28,7 +28,7 @@
-
+
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml
index 1a58040..8986e83 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml
@@ -9,11 +9,106 @@
主动拍照策略
+
+
+ 不开启
+
+
+
+
+ 定时拍照
+
+
+
+
+ 定距拍照
+
+
+
+
+ 保留
+
+
+
+
+ 不修改参数
+
+
+
+
+ 主动安全消息Id
+
+
+
+
+ 报警附件信息消息
+
+
+
+
+ 文件信息上传
+
+
+
+
+ 文件上传完成消息
+
+
+
+
+ 报警附件上传指令
+
+
+
+
+ 文件上传完成消息应答
+
+
拍照分辨率
+
+
+ 352x288
+
+
+
+
+ 704x288
+
+
+
+
+ 704x576
+
+
+
+
+ 640x480
+
+
+
+
+ 1280x720
+
+
+
+
+ 1920x1080
+
+
+
+
+ 不修改参数
+
+
+
+
+ USB编号类型
+
+
高级驾驶辅助系统
@@ -39,11 +134,81 @@
视频录制分辨率
+
+
+ CIF
+
+
+
+
+ HD1
+
+
+
+
+ D1
+
+
+
+
+ WD1
+
+
+
+
+ VGA
+
+
+
+
+ 720P
+
+
+
+
+ 1080P
+
+
+
+
+ 不修改参数
+
+
工作状态
+
+
+ 正常工作
+
+
+
+
+ 待机状态
+
+
+
+
+ 升级维护
+
+
+
+
+ 设备异常
+
+
+
+
+ 断开连接
+
+
+
+
+ 主动安全常量
+
+
附加信息ID 高级驾驶辅助系统报警信息
@@ -94,11 +259,33 @@
信息查询
+
+
+ 主动安全扩展
+
+
+
+
+ 添加主动安全
+
+
+
+
高级驾驶辅助系统报警信息
+
+
+ 高级驾驶辅助系统报警信息Id
+
+
+
+
+ 高级驾驶辅助系统报警信息附加长度
+
+
报警ID
@@ -181,11 +368,45 @@
报警标识号
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
驾驶员状态监测系统报警信息
+
+
+ 驾驶员状态监测系统报警信息Id
+
+
+
+
+ 驾驶员状态监测系统报警信息长度
+
+
报警ID
@@ -253,11 +474,45 @@
报警标识号
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
胎压监测系统报警信息
+
+
+ 胎压监测系统报警信息Id
+
+
+
+
+ 胎压监测系统报警信息长度
+
+
报警ID
@@ -315,11 +570,45 @@
报警/事件信息列表
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
盲区监测系统报警信息
+
+
+ 盲区监测系统报警信息Id
+
+
+
+
+ 盲区监测系统报警信息长度
+
+
报警ID
@@ -377,16 +666,118 @@
报警标识号
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 透传数据
+
+
+
+
+ 透传类型
+
+
消息列表总数
+
+
+ 消息列表数据
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 透传数据
+
+
+
+
+ 透传类型
+
+
消息列表总数
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
报警附件信息消息
@@ -426,17 +817,61 @@
附件信息列表
+
+
+ 报警附件信息消息Id
+
+
+
+
+ 报警附件信息消息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
文件信息上传
+
+
+ 文件信息上传
+
+
文件名称长度
-
+
+
+ 文件名称
+ 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
+
+
文件类型
@@ -447,17 +882,56 @@
文件大小
+
+
+ 文件信息上传Id
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
文件上传完成消息
+
+
+ 文件上传完成消息
+
+
文件名称长度
-
+
+
+ 文件名称
+ 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
+
+
文件类型
@@ -468,11 +942,50 @@
文件大小
+
+
+ 文件上传完成消息
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
高级驾驶辅助系统参数
+
+
+ 高级驾驶辅助系统参数
+
+
+
+
+ 高级驾驶辅助系统参数长度
+
+
报警判断速度阈值
@@ -700,11 +1213,45 @@
保留字段
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
驾驶员状态监测系统参数
+
+
+ 驾驶员状态监测系统参数
+
+
+
+
+ 驾驶员状态监测系统参数长度
+
+
报警判断速度阈值
@@ -875,11 +1422,45 @@
保留字段
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
胎压监测系统参数
+
+
+ 胎压监测系统参数Id
+
+
+
+
+ 胎压监测系统参数长度
+
+
轮胎规格型号 12位
@@ -935,11 +1516,45 @@
保留项
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
盲区监测系统参数
+
+
+ 盲区监测系统参数Id
+
+
+
+
+ 盲区监测系统参数长度
+
+
后方接近报警时间阈值
@@ -950,11 +1565,40 @@
侧后方接近报警时间阈值
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
查询基本信息
+
+
+ 查询基本信息类型
+
+
外设ID列表总数
@@ -965,11 +1609,40 @@
外设ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
查询基本信息
+
+
+ 查询基本信息透传类型
+
+
外设ID列表总数
@@ -980,11 +1653,60 @@
外设ID
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
报警附件上传指令
+
+
+ Description
+
+
+
+
+ 服务IP地址长度
+
+
+
+
+ 服务IP地址
+
+
+
+
+ TCP端口
+
+
+
+
+ UDP端口
+
+
报警标识号
@@ -1001,11 +1723,45 @@
预留
+
+
+ 报警附件上传指令Id
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
文件上传完成消息应答
+
+
+ 文件上传完成消息应答
+
+
文件名称长度
@@ -1037,6 +1793,35 @@
补传数据包列表
+
+
+ 文件上传完成消息应答Id
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
报警标识号
@@ -1108,7 +1893,12 @@
文件名称长度
-
+
+
+ 文件名称
+ 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
+
+
文件大小
@@ -1129,6 +1919,11 @@
数据长度
+
+
+
+
+
外设ID
@@ -1151,6 +1946,11 @@
报警状态
+
+
+
+
+
外设ID
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs
index d2455fe..9b8a148 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs
@@ -4,6 +4,9 @@ using System.Text;
namespace JT808.Protocol.Extensions.JTActiveSafety
{
+ ///
+ /// 主动安全常量
+ ///
public static class JT808_JTActiveSafety_Constants
{
///
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs
index 13591ca..f066aa4 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs
@@ -9,8 +9,16 @@ using System.Text;
namespace JT808.Protocol.Extensions.JTActiveSafety
{
+ ///
+ /// 主动安全扩展
+ ///
public static class JTActiveSafetyDependencyInjectionExtensions
{
+ ///
+ /// 添加主动安全
+ ///
+ ///
+ ///
public static IJT808Builder AddJTActiveSafetyConfigure(this IJT808Builder jT808Builder)
{
jT808Builder.Config.Register(Assembly.GetExecutingAssembly());
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs
index b83ad42..eb195fe 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs
@@ -15,7 +15,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x0200_0x64 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 高级驾驶辅助系统报警信息Id
+ ///
public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x64;
+ ///
+ /// 高级驾驶辅助系统报警信息附加长度
+ ///
public override byte AttachInfoLength { get; set; } = 32;
///
/// 报警ID
@@ -83,7 +89,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 报警标识号
///
public AlarmIdentificationProperty AlarmIdentification { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x0200_0x64 value = new JT808_0x0200_0x64();
@@ -259,7 +270,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x0200_0x64 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x0200_0x64 value = new JT808_0x0200_0x64();
@@ -290,7 +306,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
};
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x64 value, IJT808Config config)
{
writer.WriteByte(value.AttachInfoId);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs
index 6460d90..95ec9da 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs
@@ -15,7 +15,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x0200_0x65 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 驾驶员状态监测系统报警信息Id
+ ///
public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x65;
+ ///
+ /// 驾驶员状态监测系统报警信息长度
+ ///
public override byte AttachInfoLength { get; set; } = 47;
///
/// 报警ID
@@ -71,7 +77,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 报警标识号
///
public AlarmIdentificationProperty AlarmIdentification { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x0200_0x65 value = new JT808_0x0200_0x65();
@@ -211,7 +222,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x0200_0x65 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x0200_0x65 value = new JT808_0x0200_0x65();
@@ -239,7 +255,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
};
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x65 value, IJT808Config config)
{
writer.WriteByte(value.AttachInfoId);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs
index 2b29d89..d42f267 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs
@@ -15,7 +15,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x0200_0x66 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 胎压监测系统报警信息Id
+ ///
public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x66;
+ ///
+ /// 胎压监测系统报警信息长度
+ ///
public override byte AttachInfoLength { get; set; }
///
/// 报警ID
@@ -63,7 +69,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 报警/事件信息列表
///
public List AlarmOrEvents { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x0200_0x66 value = new JT808_0x0200_0x66();
@@ -212,7 +223,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteEndArray();
}
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x0200_0x66 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x0200_0x66 value = new JT808_0x0200_0x66();
@@ -251,7 +267,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
}
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x66 value, IJT808Config config)
{
writer.WriteByte(value.AttachInfoId);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs
index 212583d..c6c5d57 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs
@@ -15,7 +15,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x0200_0x67 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 盲区监测系统报警信息Id
+ ///
public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x67;
+ ///
+ /// 盲区监测系统报警信息长度
+ ///
public override byte AttachInfoLength { get; set; } = 26;
///
/// 报警ID
@@ -63,7 +69,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 报警标识号
///
public AlarmIdentificationProperty AlarmIdentification { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x0200_0x67 value = new JT808_0x0200_0x67();
@@ -203,7 +214,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteNumber($"[{value.AlarmIdentification.AttachCount.ReadNumber()}]附件数量", value.AlarmIdentification.AttachCount);
writer.WriteNumber($"[{value.AlarmIdentification.Retain.ReadNumber()}]预留", value.AlarmIdentification.Retain);
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x0200_0x67 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x0200_0x67 value = new JT808_0x0200_0x67();
@@ -229,7 +245,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
};
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x67 value, IJT808Config config)
{
writer.WriteByte(value.AttachInfoId);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs
index 401de44..b4c9888 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs
@@ -11,16 +11,29 @@ using System.Text.Json;
namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
{
+ ///
+ /// 透传数据
+ ///
public class JT808_0x0900_0xF7 : JT808_0x0900_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 透传类型
+ ///
public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF7;
///
/// 消息列表总数
///
public byte USBMessageCount { get; set; }
-
+ ///
+ /// 消息列表数据
+ ///
public List USBMessages { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x0900_0xF7 value = new JT808_0x0900_0xF7();
@@ -60,7 +73,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteEndArray();
}
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x0900_0xF7 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x0900_0xF7 value = new JT808_0x0900_0xF7();
@@ -80,7 +98,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
}
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0900_0xF7 value, IJT808Config config)
{
if (value.USBMessages != null && value.USBMessages.Count > 0)
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs
index 6917cc2..6198167 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs
@@ -10,15 +10,29 @@ using System.Text.Json;
namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
{
+ ///
+ /// 透传数据
+ ///
public class JT808_0x0900_0xF8 : JT808_0x0900_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 透传类型
+ ///
public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF8;
///
/// 消息列表总数
///
public byte USBMessageCount { get; set; }
+ ///
+ ///
+ ///
public List USBMessages { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x0900_0xF8 value = new JT808_0x0900_0xF8();
@@ -78,7 +92,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteEndArray();
}
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x0900_0xF8 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x0900_0xF8 value = new JT808_0x0900_0xF8();
@@ -108,7 +127,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
}
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0900_0xF8 value, IJT808Config config)
{
if (value.USBMessages != null && value.USBMessages.Count > 0)
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs
index d3d4708..4a6d105 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs
@@ -42,11 +42,20 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 附件信息列表
///
public List AttachInfos { get; set; }
-
+ ///
+ /// 报警附件信息消息Id
+ ///
public override ushort MsgId => 0x1210;
-
+ ///
+ /// 报警附件信息消息
+ ///
public override string Description => "报警附件信息消息";
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x1210 value = new JT808_0x1210();
@@ -91,7 +100,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteEndArray();
}
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x1210 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x1210 value = new JT808_0x1210();
@@ -121,10 +135,15 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
}
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1210 value, IJT808Config config)
{
- writer.WriteString(value.MakerID.PadRight(7, '0'));
+ writer.WriteString(value.MakerID.PadRight(7, '\0'));
if (value.AlarmIdentification == null)
{
throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空");
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs
index b7fab50..8f071f2 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs
@@ -10,6 +10,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x1211 : JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 文件信息上传
+ ///
public override string Description => "文件信息上传";
///
/// 文件名称长度
@@ -17,7 +20,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
public byte FileNameLength { get; set; }
///
/// 文件名称
- /// <文件类型>_<通道号>_<报警类型>_<序号>_<报警编号>.<后缀名>
+ /// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
///
public string FileName { get; set; }
///
@@ -28,9 +31,16 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 文件大小
///
public uint FileSize { get; set; }
-
+ ///
+ /// 文件信息上传Id
+ ///
public override ushort MsgId => 0x1211;
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x1211 value = new JT808_0x1211();
@@ -44,7 +54,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.FileSize = reader.ReadUInt32();
writer.WriteNumber($"[{value.FileSize.ReadNumber()}]文件大小", value.FileSize);
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x1211 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x1211 value = new JT808_0x1211();
@@ -54,7 +69,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.FileSize = reader.ReadUInt32();
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1211 value, IJT808Config config)
{
writer.Skip(1, out int FileNameLengthPosition);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs
index de734ba..afbf5dd 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs
@@ -10,6 +10,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x1212 : JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 文件上传完成消息
+ ///
public override string Description => "文件上传完成消息";
///
/// 文件名称长度
@@ -17,7 +20,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
public byte FileNameLength { get; set; }
///
/// 文件名称
- /// <文件类型>_<通道号>_<报警类型>_<序号>_<报警编号>.<后缀名>
+ /// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
///
public string FileName { get; set; }
///
@@ -28,8 +31,16 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 文件大小
///
public uint FileSize { get; set; }
+ ///
+ /// 文件上传完成消息
+ ///
public override ushort MsgId => 0x1212;
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x1212 value = new JT808_0x1212();
@@ -43,7 +54,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.FileSize = reader.ReadUInt32();
writer.WriteNumber($"[{value.FileSize.ReadNumber()}]文件大小", value.FileSize);
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x1212 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x1212 value = new JT808_0x1212();
@@ -53,7 +69,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.FileSize = reader.ReadUInt32();
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1212 value, IJT808Config config)
{
writer.Skip(1, out int FileNameLengthPosition);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs
index ae50786..f5b2952 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs
@@ -13,7 +13,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x8103_0xF364 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 高级驾驶辅助系统参数
+ ///
public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF364;
+ ///
+ /// 高级驾驶辅助系统参数长度
+ ///
public override byte ParamLength { get; set; }
///
/// 报警判断速度阈值
@@ -198,7 +204,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 保留字段
///
public byte[] Placeholder2 { get; set; } = new byte[4];
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x8103_0xF364 value = new JT808_0x8103_0xF364();
@@ -326,7 +337,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.Placeholder2 = reader.ReadArray(4).ToArray();
writer.WriteString("保留字段", value.Placeholder2.ToHexString());
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x8103_0xF364 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x8103_0xF364 value = new JT808_0x8103_0xF364();
@@ -379,7 +395,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.Placeholder2 = reader.ReadArray(4).ToArray();
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF364 value, IJT808Config config)
{
writer.WriteUInt32(value.ParamId);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs
index 33e1c5f..d082995 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs
@@ -13,7 +13,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x8103_0xF365 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 驾驶员状态监测系统参数
+ ///
public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF365;
+ ///
+ /// 驾驶员状态监测系统参数长度
+ ///
public override byte ParamLength { get; set; }
///
/// 报警判断速度阈值
@@ -151,7 +157,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 保留字段
///
public byte[] Retain { get; set; } = new byte[2];
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x8103_0xF365 value = new JT808_0x8103_0xF365();
@@ -257,7 +268,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
writer.WriteString("保留字段", value.Retain.ToHexString());
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x8103_0xF365 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x8103_0xF365 value = new JT808_0x8103_0xF365();
@@ -299,7 +315,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF365 value, IJT808Config config)
{
writer.WriteUInt32(value.ParamId);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs
index b8fb336..649c5b2 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs
@@ -11,7 +11,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x8103_0xF366 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 胎压监测系统参数Id
+ ///
public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF366;
+ ///
+ /// 胎压监测系统参数长度
+ ///
public override byte ParamLength { get; set; } = 46;
///
/// 轮胎规格型号 12位
@@ -57,7 +63,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 保留项
///
public byte[] Retain { get; set; } = new byte[6];
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x8103_0xF366 value = new JT808_0x8103_0xF366();
@@ -89,7 +100,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
writer.WriteString("保留项", value.Retain.ToHexString());
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x8103_0xF366 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x8103_0xF366 value = new JT808_0x8103_0xF366();
@@ -108,7 +124,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray();
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF366 value, IJT808Config config)
{
writer.WriteUInt32(value.ParamId);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs
index 71266ec..c8b0aab 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs
@@ -11,7 +11,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x8103_0xF367 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 盲区监测系统参数Id
+ ///
public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF367;
+ ///
+ /// 盲区监测系统参数长度
+ ///
public override byte ParamLength { get; set; } = 2;
///
/// 后方接近报警时间阈值
@@ -21,7 +27,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 侧后方接近报警时间阈值
///
public byte LateralRearApproachAlarmTimeThreshold { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x8103_0xF367 value = new JT808_0x8103_0xF367();
@@ -34,7 +45,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.LateralRearApproachAlarmTimeThreshold = reader.ReadByte();
writer.WriteNumber($"[{value.LateralRearApproachAlarmTimeThreshold.ReadNumber()}]侧后方接近报警时间阈值", value.LateralRearApproachAlarmTimeThreshold);
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x8103_0xF367 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x8103_0xF367 value = new JT808_0x8103_0xF367();
@@ -44,7 +60,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.LateralRearApproachAlarmTimeThreshold = reader.ReadByte();
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF367 value, IJT808Config config)
{
writer.WriteUInt32(value.ParamId);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs
index 2fc77b5..bede06a 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs
@@ -12,6 +12,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x8900_0xF7 : JT808_0x8900_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 查询基本信息类型
+ ///
public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF7;
///
/// 外设ID列表总数
@@ -21,7 +24,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 外设ID
///
public List MultipleUSB { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x8900_0xF7 value = new JT808_0x8900_0xF7();
@@ -40,7 +48,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteEndArray();
}
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x8900_0xF7 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x8900_0xF7 value = new JT808_0x8900_0xF7();
@@ -55,7 +68,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
}
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8900_0xF7 value, IJT808Config config)
{
if (value.MultipleUSB != null && value.MultipleUSB.Count > 0)
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs
index eab3c9c..b7514ac 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs
@@ -12,6 +12,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x8900_0xF8 : JT808_0x8900_BodyBase, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 查询基本信息透传类型
+ ///
public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF8;
///
/// 外设ID列表总数
@@ -21,7 +24,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 外设ID
///
public List MultipleUSB { get; set; }
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x8900_0xF8 value = new JT808_0x8900_0xF8();
@@ -40,7 +48,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteEndArray();
}
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x8900_0xF8 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x8900_0xF8 value = new JT808_0x8900_0xF8();
@@ -55,7 +68,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
}
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8900_0xF8 value, IJT808Config config)
{
if (value.MultipleUSB != null && value.MultipleUSB.Count > 0)
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs
index aaf1c78..f34de32 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs
@@ -12,10 +12,25 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x9208: JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// Description
+ ///
public override string Description => "报警附件上传指令";
+ ///
+ /// 服务IP地址长度
+ ///
public byte AttachmentServerIPLength { get; set; }
+ ///
+ /// 服务IP地址
+ ///
public string AttachmentServerIP { get; set; }
+ ///
+ /// TCP端口
+ ///
public ushort AttachmentServerIPTcpPort { get; set; }
+ ///
+ /// UDP端口
+ ///
public ushort AttachmentServerIPUdpPort { get; set; }
///
/// 报警标识号
@@ -30,9 +45,16 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 预留
///
public byte[] Retain { get; set; } = new byte[16];
-
+ ///
+ /// 报警附件上传指令Id
+ ///
public override ushort MsgId => 0x9208;
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x9208 value = new JT808_0x9208();
@@ -63,7 +85,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
string retainHex = reader.ReadVirtualArray(16).ToArray().ToHexString();
writer.WriteString($"预留", retainHex);
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x9208 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x9208 value = new JT808_0x9208();
@@ -83,7 +110,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
value.Retain = reader.ReadArray(16).ToArray();
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9208 value, IJT808Config config)
{
writer.Skip(1, out int AttachmentServerIPLengthPosition);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs
index d70740d..a3a667d 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs
@@ -12,6 +12,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
///
public class JT808_0x9212: JT808Bodies, IJT808MessagePackFormatter, IJT808Analyze
{
+ ///
+ /// 文件上传完成消息应答
+ ///
public override string Description => "文件上传完成消息应答";
///
/// 文件名称长度
@@ -38,9 +41,16 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 补传数据包列表
///
public List DataPackages { get; set; }
-
+ ///
+ /// 文件上传完成消息应答Id
+ ///
public override ushort MsgId => 0x9212;
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Analyze(ref JT808MessagePackReader reader, Utf8JsonWriter writer, IJT808Config config)
{
JT808_0x9212 value = new JT808_0x9212();
@@ -71,7 +81,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
writer.WriteEndArray();
}
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public JT808_0x9212 Deserialize(ref JT808MessagePackReader reader, IJT808Config config)
{
JT808_0x9212 value = new JT808_0x9212();
@@ -93,7 +108,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
}
return value;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9212 value, IJT808Config config)
{
writer.Skip(1, out int FileNameLengthPosition);
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs
index 0b57375..516c8e3 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs
@@ -15,7 +15,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
public byte FileNameLength { get; set; }
///
/// 文件名称
- /// <文件类型>_<通道号>_<报警类型>_<序号>_<报警编号>.<后缀名>
+ /// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
///
public string FileName{ get; set; }
///
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs
index f040aef..1f2f6de 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs
@@ -4,6 +4,9 @@ using System.Text;
namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
{
+ ///
+ ///
+ ///
public class JT808_0x0900_0xF7_USB
{
///
diff --git a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs
index 1ad713d..611538d 100644
--- a/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs
+++ b/src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs
@@ -4,6 +4,9 @@ using System.Text;
namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
{
+ ///
+ ///
+ ///
public class JT808_0x0900_0xF8_USB
{
///
diff --git a/src/JTActiveSafety.Protocol/Buffers/JTActiveSafetyBufferWriter.cs b/src/JTActiveSafety.Protocol/Buffers/JTActiveSafetyBufferWriter.cs
index 5910600..24242b3 100644
--- a/src/JTActiveSafety.Protocol/Buffers/JTActiveSafetyBufferWriter.cs
+++ b/src/JTActiveSafety.Protocol/Buffers/JTActiveSafetyBufferWriter.cs
@@ -3,19 +3,37 @@
namespace JTActiveSafety.Protocol.Buffers
{
///
- ///
+ /// 内存写入器
+ /// ref:System.Buffers.Writer
///
ref partial struct JTActiveSafetyBufferWriter
{
private Span _buffer;
+ ///
+ ///
+ ///
+ ///
public JTActiveSafetyBufferWriter(Span buffer)
{
_buffer = buffer;
WrittenCount = 0;
}
+ ///
+ ///
+ ///
public Span Free => _buffer.Slice(WrittenCount);
+ ///
+ ///
+ ///
public Span Written => _buffer.Slice(0, WrittenCount);
+ ///
+ ///
+ ///
public int WrittenCount { get; private set; }
+ ///
+ ///
+ ///
+ ///
public void Advance(int count)
{
WrittenCount += count;
diff --git a/src/JTActiveSafety.Protocol/Extensions/HexExtensions.cs b/src/JTActiveSafety.Protocol/Extensions/HexExtensions.cs
index a1e94d8..dc500be 100644
--- a/src/JTActiveSafety.Protocol/Extensions/HexExtensions.cs
+++ b/src/JTActiveSafety.Protocol/Extensions/HexExtensions.cs
@@ -9,6 +9,12 @@ namespace JTActiveSafety.Protocol.Extensions
///
public static partial class HexExtensions
{
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string ToHexString(this byte[] source, string separator = " ")
{
var value = source.Select(s => s.ToString("X2"));
@@ -35,51 +41,117 @@ namespace JTActiveSafety.Protocol.Extensions
}
return buf;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string ReadNumber(this byte value, string format = "X2")
{
return value.ToString(format);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string ReadNumber(this int value, string format = "X8")
{
return value.ToString(format);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string ReadNumber(this uint value, string format = "X8")
{
return value.ToString(format);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string ReadNumber(this long value, string format = "X16")
{
return value.ToString(format);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string ReadNumber(this ulong value, string format = "X16")
{
return value.ToString(format);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string ReadNumber(this short value, string format = "X4")
{
return value.ToString(format);
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string ReadNumber(this ushort value, string format = "X4")
{
return value.ToString(format);
}
+ ///
+ ///
+ ///
+ ///
+ ///
public static ReadOnlySpan ReadBinary(this ushort value)
{
return System.Convert.ToString(value, 2).PadLeft(16, '0').AsSpan();
}
+ ///
+ ///
+ ///
+ ///
+ ///
public static ReadOnlySpan ReadBinary(this short value)
{
return System.Convert.ToString(value, 2).PadLeft(16, '0').AsSpan();
}
+ ///
+ ///
+ ///
+ ///
+ ///
public static ReadOnlySpan ReadBinary(this uint value)
{
return System.Convert.ToString(value, 2).PadLeft(32, '0').AsSpan();
}
+ ///
+ ///
+ ///
+ ///
+ ///
public static ReadOnlySpan ReadBinary(this int value)
{
return System.Convert.ToString(value, 2).PadLeft(32, '0').AsSpan();
}
+ ///
+ ///
+ ///
+ ///
+ ///
public static ReadOnlySpan ReadBinary(this byte value)
{
return System.Convert.ToString(value, 2).PadLeft(8, '0').AsSpan();
diff --git a/src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.xml b/src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.xml
index c7cb0a3..d69e7ad 100644
--- a/src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.xml
+++ b/src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.xml
@@ -6,15 +6,51 @@
-
+ 内存写入器
+ ref:System.Buffers.Writer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
ref:"www.codeproject.com/tips/447938/high-performance-csharp-byte-array-to-hex-string-t"
+
+
+
+
+
+
+
+
16进制字符串转16进制数组
@@ -23,6 +59,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
帧头标识
@@ -60,6 +187,47 @@
默认长度64K,文件小于64K 则为实际长度
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
数字编码 大端模式、高位在前
diff --git a/src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs b/src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs
index dd93894..3c459bb 100644
--- a/src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs
+++ b/src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs
@@ -10,8 +10,17 @@ using System.Text.Json;
namespace JTActiveSafety.Protocol
{
+ ///
+ ///
+ ///
public static class JTActiveSafetySerializer
{
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static byte[] Serialize(JTActiveSafetyPackage package, int minBufferSize = 65 * 1024)
{
byte[] buffer = JTActiveSafetyArrayPool.Rent(minBufferSize);
@@ -30,7 +39,11 @@ namespace JTActiveSafety.Protocol
JTActiveSafetyArrayPool.Return(buffer);
}
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
public static JTActiveSafetyPackage Deserialize(ReadOnlySpan bytes)
{
JTActiveSafetyPackage jTActiveSafetyPackage= new JTActiveSafetyPackage();
@@ -42,7 +55,12 @@ namespace JTActiveSafety.Protocol
jTActiveSafetyPackage.Bodies = reader.ReadRemainArray().ToArray();
return jTActiveSafetyPackage;
}
-
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static byte[] AnalyzeJsonBuffer(ReadOnlySpan bytes, JsonWriterOptions options = default)
{
JTActiveSafetyMessagePackReader reader = new JTActiveSafetyMessagePackReader(bytes);
@@ -65,6 +83,12 @@ namespace JTActiveSafety.Protocol
return memoryStream.ToArray();
}
}
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
public static string Analyze(ReadOnlySpan bytes, JsonWriterOptions options = default)
{
string json = Encoding.UTF8.GetString(AnalyzeJsonBuffer(bytes, options));
diff --git a/src/JTActiveSafety.Protocol/MessagePack/JTActiveSafetyMessagePackReader.cs b/src/JTActiveSafety.Protocol/MessagePack/JTActiveSafetyMessagePackReader.cs
index c13c2bc..5ed7aac 100644
--- a/src/JTActiveSafety.Protocol/MessagePack/JTActiveSafetyMessagePackReader.cs
+++ b/src/JTActiveSafety.Protocol/MessagePack/JTActiveSafetyMessagePackReader.cs
@@ -9,6 +9,9 @@ using System.Text;
namespace JTActiveSafety.Protocol.MessagePack
{
+ ///
+ ///
+ ///
ref struct JTActiveSafetyMessagePackReader
{
public ReadOnlySpan Reader { get; private set; }