From d45d4d6e447745be50e942afad7e3ffbab4d4e50 Mon Sep 17 00:00:00 2001 From: "SmallChi(Koike)" <564952747@qq.com> Date: Fri, 30 Apr 2021 14:48:13 +0800 Subject: [PATCH] =?UTF-8?q?v1.1.5=201.=E4=BF=AE=E5=A4=8D0x1210=E8=A1=A5\0?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=202.=E5=8D=87=E7=BA=A7808=E5=BA=93=203.?= =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Enums/ActivePhotographyStrategyType.cs | 25 +- .../Enums/JT808_JTActiveSafety_MsgId.cs | 22 +- .../Enums/PhotoResolutionType.cs | 35 +- .../Enums/USBIDType.cs | 3 + .../Enums/VideoRecordingResolutionType.cs | 40 +- .../Enums/WorkingConditionType.cs | 21 +- ....Protocol.Extensions.JTActiveSafety.csproj | 2 +- ...808.Protocol.Extensions.JTActiveSafety.xml | 806 +++++++++++++++++- .../JT808_JTActiveSafety_Constants.cs | 3 + ...tiveSafetyDependencyInjectionExtensions.cs | 8 + .../MessageBody/JT808_0x0200_0x64.cs | 27 +- .../MessageBody/JT808_0x0200_0x65.cs | 27 +- .../MessageBody/JT808_0x0200_0x66.cs | 27 +- .../MessageBody/JT808_0x0200_0x67.cs | 27 +- .../MessageBody/JT808_0x0900_0xF7.cs | 31 +- .../MessageBody/JT808_0x0900_0xF8.cs | 30 +- .../MessageBody/JT808_0x1210.cs | 31 +- .../MessageBody/JT808_0x1211.cs | 30 +- .../MessageBody/JT808_0x1212.cs | 29 +- .../MessageBody/JT808_0x8103_0xF364.cs | 27 +- .../MessageBody/JT808_0x8103_0xF365.cs | 27 +- .../MessageBody/JT808_0x8103_0xF366.cs | 27 +- .../MessageBody/JT808_0x8103_0xF367.cs | 27 +- .../MessageBody/JT808_0x8900_0xF7.cs | 24 +- .../MessageBody/JT808_0x8900_0xF8.cs | 24 +- .../MessageBody/JT808_0x9208.cs | 40 +- .../MessageBody/JT808_0x9212.cs | 28 +- .../Metadata/AttachProperty.cs | 2 +- .../Metadata/JT808_0x0900_0xF7_USB.cs | 3 + .../Metadata/JT808_0x0900_0xF8_USB.cs | 3 + .../Buffers/JTActiveSafetyBufferWriter.cs | 20 +- .../Extensions/HexExtensions.cs | 74 +- .../JTActiveSafety.Protocol.xml | 170 +++- .../JTActiveSafetySerializer.cs | 28 +- .../JTActiveSafetyMessagePackReader.cs | 3 + 35 files changed, 1656 insertions(+), 95 deletions(-) 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; }