Pārlūkot izejas kodu

v1.1.5

1.修复0x1210补\0操作
2.升级808库
3.完善注释
pull/4/head
SmallChi(Koike) pirms 4 gadiem
vecāks
revīzija
d45d4d6e44
35 mainītis faili ar 1656 papildinājumiem un 95 dzēšanām
  1. +20
    -5
      src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs
  2. +20
    -2
      src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs
  3. +28
    -7
      src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs
  4. +3
    -0
      src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs
  5. +32
    -8
      src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs
  6. +18
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs
  7. +1
    -1
      src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj
  8. +803
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml
  9. +3
    -0
      src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs
  10. +8
    -0
      src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs
  11. +24
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs
  12. +24
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs
  13. +24
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs
  14. +24
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs
  15. +27
    -4
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs
  16. +27
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs
  17. +25
    -6
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs
  18. +25
    -5
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs
  19. +25
    -4
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs
  20. +24
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs
  21. +24
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs
  22. +24
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs
  23. +24
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs
  24. +21
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs
  25. +21
    -3
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs
  26. +36
    -4
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs
  27. +24
    -4
      src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs
  28. +1
    -1
      src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs
  29. +3
    -0
      src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs
  30. +3
    -0
      src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs
  31. +19
    -1
      src/JTActiveSafety.Protocol/Buffers/JTActiveSafetyBufferWriter.cs
  32. +73
    -1
      src/JTActiveSafety.Protocol/Extensions/HexExtensions.cs
  33. +169
    -1
      src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.xml
  34. +26
    -2
      src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs
  35. +3
    -0
      src/JTActiveSafety.Protocol/MessagePack/JTActiveSafetyMessagePackReader.cs

+ 20
- 5
src/JT808.Protocol.Extensions.JTActiveSafety/Enums/ActivePhotographyStrategyType.cs Parādīt failu

@@ -9,10 +9,25 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
/// </summary>
public enum ActivePhotographyStrategyType:byte
{
不开启=0x00,
定时拍照=0x01,
定距拍照=0x02,
保留=0x03,
不修改参数=0xFF
/// <summary>
/// 不开启
/// </summary>
不开启 = 0x00,
/// <summary>
/// 定时拍照
/// </summary>
定时拍照 = 0x01,
/// <summary>
/// 定距拍照
/// </summary>
定距拍照 = 0x02,
/// <summary>
/// 保留
/// </summary>
保留 = 0x03,
/// <summary>
/// 不修改参数
/// </summary>
不修改参数 = 0xFF
}
}

+ 20
- 2
src/JT808.Protocol.Extensions.JTActiveSafety/Enums/JT808_JTActiveSafety_MsgId.cs Parādīt failu

@@ -4,12 +4,30 @@ using System.Text;

namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
{
/// <summary>
/// 主动安全消息Id
/// </summary>
public enum JT808_JTActiveSafety_MsgId : ushort
{
报警附件信息消息= 0x1210,
文件信息上传= 0x1211,
/// <summary>
/// 报警附件信息消息
/// </summary>
报警附件信息消息 = 0x1210,
/// <summary>
/// 文件信息上传
/// </summary>
文件信息上传 = 0x1211,
/// <summary>
/// 文件上传完成消息
/// </summary>
文件上传完成消息 = 0x1212,
/// <summary>
/// 报警附件上传指令
/// </summary>
报警附件上传指令 = 0x9208,
/// <summary>
/// 文件上传完成消息应答
/// </summary>
文件上传完成消息应答 = 0x9212,
}
}

+ 28
- 7
src/JT808.Protocol.Extensions.JTActiveSafety/Enums/PhotoResolutionType.cs Parādīt failu

@@ -9,12 +9,33 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
/// </summary>
public enum PhotoResolutionType:byte
{
x352_288=0x01,
x704_288=0x02,
x704_576=0x03,
x640_480=0x04,
x1280_720=0x05,
x1920_1080=0x06,
不修改参数=0xFF
/// <summary>
/// 352x288
/// </summary>
x352_288 = 0x01,
/// <summary>
/// 704x288
/// </summary>
x704_288 = 0x02,
/// <summary>
/// 704x576
/// </summary>
x704_576 = 0x03,
/// <summary>
/// 640x480
/// </summary>
x640_480 = 0x04,
/// <summary>
/// 1280x720
/// </summary>
x1280_720 = 0x05,
/// <summary>
/// 1920x1080
/// </summary>
x1920_1080 = 0x06,
/// <summary>
/// 不修改参数
/// </summary>
不修改参数 = 0xFF
}
}

+ 3
- 0
src/JT808.Protocol.Extensions.JTActiveSafety/Enums/USBIDType.cs Parādīt failu

@@ -4,6 +4,9 @@ using System.Text;

namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
{
/// <summary>
/// USB编号类型
/// </summary>
public enum USBIDType:byte
{
/// <summary>


+ 32
- 8
src/JT808.Protocol.Extensions.JTActiveSafety/Enums/VideoRecordingResolutionType.cs Parādīt failu

@@ -9,13 +9,37 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
/// </summary>
public enum VideoRecordingResolutionType:byte
{
CIF=0x01,
HD1=0x02,
D1=0x03,
WD1=0x04,
VGA=0x05,
_720P=0x06,
_1080P=0x07,
不修改参数=0xFF
/// <summary>
/// CIF
/// </summary>
CIF = 0x01,
/// <summary>
/// HD1
/// </summary>
HD1 = 0x02,
/// <summary>
/// D1
/// </summary>
D1 = 0x03,
/// <summary>
/// WD1
/// </summary>
WD1 = 0x04,
/// <summary>
/// VGA
/// </summary>
VGA = 0x05,
/// <summary>
/// 720P
/// </summary>
_720P = 0x06,
/// <summary>
/// 1080P
/// </summary>
_1080P = 0x07,
/// <summary>
/// 不修改参数
/// </summary>
不修改参数 = 0xFF
}
}

+ 18
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/Enums/WorkingConditionType.cs Parādīt failu

@@ -9,10 +9,25 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Enums
/// </summary>
public enum WorkingConditionType:byte
{
正常工作=0x01,
待机状态=0x02,
升级维护=0x03,
/// <summary>
/// 正常工作
/// </summary>
正常工作 = 0x01,
/// <summary>
/// 待机状态
/// </summary>
待机状态 = 0x02,
/// <summary>
/// 升级维护
/// </summary>
升级维护 = 0x03,
/// <summary>
/// 设备异常
/// </summary>
设备异常 = 0x04,
/// <summary>
/// 断开连接
/// </summary>
断开连接 = 0x10,
}
}

+ 1
- 1
src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.csproj Parādīt failu

@@ -28,7 +28,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="JT808" Version="2.3.7" />
<PackageReference Include="JT808" Version="2.3.9" />
</ItemGroup>




+ 803
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/JT808.Protocol.Extensions.JTActiveSafety.xml
Failā izmaiņas netiks attēlotas, jo tās ir par lielu
Parādīt failu


+ 3
- 0
src/JT808.Protocol.Extensions.JTActiveSafety/JT808_JTActiveSafety_Constants.cs Parādīt failu

@@ -4,6 +4,9 @@ using System.Text;

namespace JT808.Protocol.Extensions.JTActiveSafety
{
/// <summary>
/// 主动安全常量
/// </summary>
public static class JT808_JTActiveSafety_Constants
{
/// <summary>


+ 8
- 0
src/JT808.Protocol.Extensions.JTActiveSafety/JTActiveSafetyDependencyInjectionExtensions.cs Parādīt failu

@@ -9,8 +9,16 @@ using System.Text;

namespace JT808.Protocol.Extensions.JTActiveSafety
{
/// <summary>
/// 主动安全扩展
/// </summary>
public static class JTActiveSafetyDependencyInjectionExtensions
{
/// <summary>
/// 添加主动安全
/// </summary>
/// <param name="jT808Builder"></param>
/// <returns></returns>
public static IJT808Builder AddJTActiveSafetyConfigure(this IJT808Builder jT808Builder)
{
jT808Builder.Config.Register(Assembly.GetExecutingAssembly());


+ 24
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x64.cs Parādīt failu

@@ -15,7 +15,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x0200_0x64 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter<JT808_0x0200_0x64>, IJT808Analyze
{
/// <summary>
/// 高级驾驶辅助系统报警信息Id
/// </summary>
public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x64;
/// <summary>
/// 高级驾驶辅助系统报警信息附加长度
/// </summary>
public override byte AttachInfoLength { get; set; } = 32;
/// <summary>
/// 报警ID
@@ -83,7 +89,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 报警标识号
/// </summary>
public AlarmIdentificationProperty AlarmIdentification { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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);
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x64 value, IJT808Config config)
{
writer.WriteByte(value.AttachInfoId);


+ 24
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x65.cs Parādīt failu

@@ -15,7 +15,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x0200_0x65 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter<JT808_0x0200_0x65>, IJT808Analyze
{
/// <summary>
/// 驾驶员状态监测系统报警信息Id
/// </summary>
public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x65;
/// <summary>
/// 驾驶员状态监测系统报警信息长度
/// </summary>
public override byte AttachInfoLength { get; set; } = 47;
/// <summary>
/// 报警ID
@@ -71,7 +77,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 报警标识号
/// </summary>
public AlarmIdentificationProperty AlarmIdentification { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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);
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x65 value, IJT808Config config)
{
writer.WriteByte(value.AttachInfoId);


+ 24
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x66.cs Parādīt failu

@@ -15,7 +15,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x0200_0x66 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter<JT808_0x0200_0x66>, IJT808Analyze
{
/// <summary>
/// 胎压监测系统报警信息Id
/// </summary>
public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x66;
/// <summary>
/// 胎压监测系统报警信息长度
/// </summary>
public override byte AttachInfoLength { get; set; }
/// <summary>
/// 报警ID
@@ -63,7 +69,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 报警/事件信息列表
/// </summary>
public List<AlarmOrEventProperty> AlarmOrEvents { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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();
}
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x66 value, IJT808Config config)
{
writer.WriteByte(value.AttachInfoId);


+ 24
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0200_0x67.cs Parādīt failu

@@ -15,7 +15,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x0200_0x67 : JT808_0x0200_BodyBase, IJT808MessagePackFormatter<JT808_0x0200_0x67>, IJT808Analyze
{
/// <summary>
/// 盲区监测系统报警信息Id
/// </summary>
public override byte AttachInfoId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0200_0x67;
/// <summary>
/// 盲区监测系统报警信息长度
/// </summary>
public override byte AttachInfoLength { get; set; } = 26;
/// <summary>
/// 报警ID
@@ -63,7 +69,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 报警标识号
/// </summary>
public AlarmIdentificationProperty AlarmIdentification { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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);
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x67 value, IJT808Config config)
{
writer.WriteByte(value.AttachInfoId);


+ 27
- 4
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF7.cs Parādīt failu

@@ -11,16 +11,29 @@ using System.Text.Json;

namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
{
/// <summary>
/// 透传数据
/// </summary>
public class JT808_0x0900_0xF7 : JT808_0x0900_BodyBase, IJT808MessagePackFormatter<JT808_0x0900_0xF7>, IJT808Analyze
{
/// <summary>
/// 透传类型
/// </summary>
public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF7;
/// <summary>
/// 消息列表总数
/// </summary>
public byte USBMessageCount { get; set; }
/// <summary>
/// 消息列表数据
/// </summary>
public List<JT808_0x0900_0xF7_USB> USBMessages { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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();
}
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0900_0xF7 value, IJT808Config config)
{
if (value.USBMessages != null && value.USBMessages.Count > 0)


+ 27
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x0900_0xF8.cs Parādīt failu

@@ -10,15 +10,29 @@ using System.Text.Json;

namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
{
/// <summary>
/// 透传数据
/// </summary>
public class JT808_0x0900_0xF8 : JT808_0x0900_BodyBase, IJT808MessagePackFormatter<JT808_0x0900_0xF8>, IJT808Analyze
{
/// <summary>
/// 透传类型
/// </summary>
public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF8;
/// <summary>
/// 消息列表总数
/// </summary>
public byte USBMessageCount { get; set; }
/// <summary>
///
/// </summary>
public List<JT808_0x0900_0xF8_USB> USBMessages { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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();
}
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0900_0xF8 value, IJT808Config config)
{
if (value.USBMessages != null && value.USBMessages.Count > 0)


+ 25
- 6
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1210.cs Parādīt failu

@@ -42,11 +42,20 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 附件信息列表
/// </summary>
public List<AttachProperty> AttachInfos { get; set; }

/// <summary>
/// 报警附件信息消息Id
/// </summary>
public override ushort MsgId => 0x1210;

/// <summary>
/// 报警附件信息消息
/// </summary>
public override string Description => "报警附件信息消息";

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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();
}
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
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)}不为空");


+ 25
- 5
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1211.cs Parādīt failu

@@ -10,6 +10,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x1211 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x1211>, IJT808Analyze
{
/// <summary>
/// 文件信息上传
/// </summary>
public override string Description => "文件信息上传";
/// <summary>
/// 文件名称长度
@@ -17,7 +20,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
public byte FileNameLength { get; set; }
/// <summary>
/// 文件名称
/// <文件类型>_<通道号>_<报警类型>_<序号>_<报警编号>.<后缀名>
/// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
/// </summary>
public string FileName { get; set; }
/// <summary>
@@ -28,9 +31,16 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 文件大小
/// </summary>
public uint FileSize { get; set; }

/// <summary>
/// 文件信息上传Id
/// </summary>
public override ushort MsgId => 0x1211;

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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);
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1211 value, IJT808Config config)
{
writer.Skip(1, out int FileNameLengthPosition);


+ 25
- 4
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x1212.cs Parādīt failu

@@ -10,6 +10,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x1212 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x1212>, IJT808Analyze
{
/// <summary>
/// 文件上传完成消息
/// </summary>
public override string Description => "文件上传完成消息";
/// <summary>
/// 文件名称长度
@@ -17,7 +20,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
public byte FileNameLength { get; set; }
/// <summary>
/// 文件名称
/// <文件类型>_<通道号>_<报警类型>_<序号>_<报警编号>.<后缀名>
/// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
/// </summary>
public string FileName { get; set; }
/// <summary>
@@ -28,8 +31,16 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 文件大小
/// </summary>
public uint FileSize { get; set; }
/// <summary>
/// 文件上传完成消息
/// </summary>
public override ushort MsgId => 0x1212;

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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);
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1212 value, IJT808Config config)
{
writer.Skip(1, out int FileNameLengthPosition);


+ 24
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF364.cs Parādīt failu

@@ -13,7 +13,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x8103_0xF364 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter<JT808_0x8103_0xF364>, IJT808Analyze
{
/// <summary>
/// 高级驾驶辅助系统参数
/// </summary>
public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF364;
/// <summary>
/// 高级驾驶辅助系统参数长度
/// </summary>
public override byte ParamLength { get; set; }
/// <summary>
/// 报警判断速度阈值
@@ -198,7 +204,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 保留字段
/// </summary>
public byte[] Placeholder2 { get; set; } = new byte[4];

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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());
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF364 value, IJT808Config config)
{
writer.WriteUInt32(value.ParamId);


+ 24
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF365.cs Parādīt failu

@@ -13,7 +13,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x8103_0xF365 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter<JT808_0x8103_0xF365>, IJT808Analyze
{
/// <summary>
/// 驾驶员状态监测系统参数
/// </summary>
public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF365;
/// <summary>
/// 驾驶员状态监测系统参数长度
/// </summary>
public override byte ParamLength { get; set; }
/// <summary>
/// 报警判断速度阈值
@@ -151,7 +157,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 保留字段
/// </summary>
public byte[] Retain { get; set; } = new byte[2];

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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());
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF365 value, IJT808Config config)
{
writer.WriteUInt32(value.ParamId);


+ 24
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF366.cs Parādīt failu

@@ -11,7 +11,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x8103_0xF366 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter<JT808_0x8103_0xF366>, IJT808Analyze
{
/// <summary>
/// 胎压监测系统参数Id
/// </summary>
public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF366;
/// <summary>
/// 胎压监测系统参数长度
/// </summary>
public override byte ParamLength { get; set; } = 46;
/// <summary>
/// 轮胎规格型号 12位
@@ -57,7 +63,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 保留项
/// </summary>
public byte[] Retain { get; set; } = new byte[6];

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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());
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF366 value, IJT808Config config)
{
writer.WriteUInt32(value.ParamId);


+ 24
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8103_0xF367.cs Parādīt failu

@@ -11,7 +11,13 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x8103_0xF367 : JT808_0x8103_BodyBase, IJT808MessagePackFormatter<JT808_0x8103_0xF367>, IJT808Analyze
{
/// <summary>
/// 盲区监测系统参数Id
/// </summary>
public override uint ParamId { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X8103_0xF367;
/// <summary>
/// 盲区监测系统参数长度
/// </summary>
public override byte ParamLength { get; set; } = 2;
/// <summary>
/// 后方接近报警时间阈值
@@ -21,7 +27,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 侧后方接近报警时间阈值
/// </summary>
public byte LateralRearApproachAlarmTimeThreshold { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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);
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF367 value, IJT808Config config)
{
writer.WriteUInt32(value.ParamId);


+ 21
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF7.cs Parādīt failu

@@ -12,6 +12,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x8900_0xF7 : JT808_0x8900_BodyBase, IJT808MessagePackFormatter<JT808_0x8900_0xF7>, IJT808Analyze
{
/// <summary>
/// 查询基本信息类型
/// </summary>
public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF7;
/// <summary>
/// 外设ID列表总数
@@ -21,7 +24,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 外设ID
/// </summary>
public List<byte> MultipleUSB { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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();
}
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8900_0xF7 value, IJT808Config config)
{
if (value.MultipleUSB != null && value.MultipleUSB.Count > 0)


+ 21
- 3
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x8900_0xF8.cs Parādīt failu

@@ -12,6 +12,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x8900_0xF8 : JT808_0x8900_BodyBase, IJT808MessagePackFormatter<JT808_0x8900_0xF8>, IJT808Analyze
{
/// <summary>
/// 查询基本信息透传类型
/// </summary>
public override byte PassthroughType { get; set; } = JT808_JTActiveSafety_Constants.JT808_0X0900_0xF8;
/// <summary>
/// 外设ID列表总数
@@ -21,7 +24,12 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 外设ID
/// </summary>
public List<byte> MultipleUSB { get; set; }

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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();
}
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8900_0xF8 value, IJT808Config config)
{
if (value.MultipleUSB != null && value.MultipleUSB.Count > 0)


+ 36
- 4
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9208.cs Parādīt failu

@@ -12,10 +12,25 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x9208: JT808Bodies, IJT808MessagePackFormatter<JT808_0x9208>, IJT808Analyze
{
/// <summary>
/// Description
/// </summary>
public override string Description => "报警附件上传指令";
/// <summary>
/// 服务IP地址长度
/// </summary>
public byte AttachmentServerIPLength { get; set; }
/// <summary>
/// 服务IP地址
/// </summary>
public string AttachmentServerIP { get; set; }
/// <summary>
/// TCP端口
/// </summary>
public ushort AttachmentServerIPTcpPort { get; set; }
/// <summary>
/// UDP端口
/// </summary>
public ushort AttachmentServerIPUdpPort { get; set; }
/// <summary>
/// 报警标识号
@@ -30,9 +45,16 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 预留
/// </summary>
public byte[] Retain { get; set; } = new byte[16];

/// <summary>
/// 报警附件上传指令Id
/// </summary>
public override ushort MsgId => 0x9208;

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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);
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9208 value, IJT808Config config)
{
writer.Skip(1, out int AttachmentServerIPLengthPosition);


+ 24
- 4
src/JT808.Protocol.Extensions.JTActiveSafety/MessageBody/JT808_0x9212.cs Parādīt failu

@@ -12,6 +12,9 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// </summary>
public class JT808_0x9212: JT808Bodies, IJT808MessagePackFormatter<JT808_0x9212>, IJT808Analyze
{
/// <summary>
/// 文件上传完成消息应答
/// </summary>
public override string Description => "文件上传完成消息应答";
/// <summary>
/// 文件名称长度
@@ -38,9 +41,16 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody
/// 补传数据包列表
/// </summary>
public List<DataPackageProperty> DataPackages { get; set; }

/// <summary>
/// 文件上传完成消息应答Id
/// </summary>
public override ushort MsgId => 0x9212;

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="writer"></param>
/// <param name="config"></param>
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();
}
}

/// <summary>
///
/// </summary>
/// <param name="reader"></param>
/// <param name="config"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="writer"></param>
/// <param name="value"></param>
/// <param name="config"></param>
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9212 value, IJT808Config config)
{
writer.Skip(1, out int FileNameLengthPosition);


+ 1
- 1
src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/AttachProperty.cs Parādīt failu

@@ -15,7 +15,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
public byte FileNameLength { get; set; }
/// <summary>
/// 文件名称
/// <文件类型>_<通道号>_<报警类型>_<序号>_<报警编号>.<后缀名>
/// 形如:文件类型_通道号_报警类型_序号_报警编号.后缀名
/// </summary>
public string FileName{ get; set; }
/// <summary>


+ 3
- 0
src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF7_USB.cs Parādīt failu

@@ -4,6 +4,9 @@ using System.Text;

namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
{
/// <summary>
///
/// </summary>
public class JT808_0x0900_0xF7_USB
{
/// <summary>


+ 3
- 0
src/JT808.Protocol.Extensions.JTActiveSafety/Metadata/JT808_0x0900_0xF8_USB.cs Parādīt failu

@@ -4,6 +4,9 @@ using System.Text;

namespace JT808.Protocol.Extensions.JTActiveSafety.Metadata
{
/// <summary>
///
/// </summary>
public class JT808_0x0900_0xF8_USB
{
/// <summary>


+ 19
- 1
src/JTActiveSafety.Protocol/Buffers/JTActiveSafetyBufferWriter.cs Parādīt failu

@@ -3,19 +3,37 @@
namespace JTActiveSafety.Protocol.Buffers
{
/// <summary>
/// <see cref="System.Buffers.Writer"/>
/// 内存写入器
/// ref:System.Buffers.Writer
/// </summary>
ref partial struct JTActiveSafetyBufferWriter
{
private Span<byte> _buffer;
/// <summary>
///
/// </summary>
/// <param name="buffer"></param>
public JTActiveSafetyBufferWriter(Span<byte> buffer)
{
_buffer = buffer;
WrittenCount = 0;
}
/// <summary>
///
/// </summary>
public Span<byte> Free => _buffer.Slice(WrittenCount);
/// <summary>
///
/// </summary>
public Span<byte> Written => _buffer.Slice(0, WrittenCount);
/// <summary>
///
/// </summary>
public int WrittenCount { get; private set; }
/// <summary>
///
/// </summary>
/// <param name="count"></param>
public void Advance(int count)
{
WrittenCount += count;


+ 73
- 1
src/JTActiveSafety.Protocol/Extensions/HexExtensions.cs Parādīt failu

@@ -9,6 +9,12 @@ namespace JTActiveSafety.Protocol.Extensions
/// </summary>
public static partial class HexExtensions
{
/// <summary>
///
/// </summary>
/// <param name="source"></param>
/// <param name="separator"></param>
/// <returns></returns>
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;
}

/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <param name="format"></param>
/// <returns></returns>
public static string ReadNumber(this byte value, string format = "X2")
{
return value.ToString(format);
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <param name="format"></param>
/// <returns></returns>
public static string ReadNumber(this int value, string format = "X8")
{
return value.ToString(format);
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <param name="format"></param>
/// <returns></returns>
public static string ReadNumber(this uint value, string format = "X8")
{
return value.ToString(format);
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <param name="format"></param>
/// <returns></returns>
public static string ReadNumber(this long value, string format = "X16")
{
return value.ToString(format);
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <param name="format"></param>
/// <returns></returns>
public static string ReadNumber(this ulong value, string format = "X16")
{
return value.ToString(format);
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <param name="format"></param>
/// <returns></returns>
public static string ReadNumber(this short value, string format = "X4")
{
return value.ToString(format);
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <param name="format"></param>
/// <returns></returns>
public static string ReadNumber(this ushort value, string format = "X4")
{
return value.ToString(format);
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static ReadOnlySpan<char> ReadBinary(this ushort value)
{
return System.Convert.ToString(value, 2).PadLeft(16, '0').AsSpan();
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static ReadOnlySpan<char> ReadBinary(this short value)
{
return System.Convert.ToString(value, 2).PadLeft(16, '0').AsSpan();
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static ReadOnlySpan<char> ReadBinary(this uint value)
{
return System.Convert.ToString(value, 2).PadLeft(32, '0').AsSpan();
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static ReadOnlySpan<char> ReadBinary(this int value)
{
return System.Convert.ToString(value, 2).PadLeft(32, '0').AsSpan();
}
/// <summary>
///
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
public static ReadOnlySpan<char> ReadBinary(this byte value)
{
return System.Convert.ToString(value, 2).PadLeft(8, '0').AsSpan();


+ 169
- 1
src/JTActiveSafety.Protocol/JTActiveSafety.Protocol.xml Parādīt failu

@@ -6,15 +6,51 @@
<members>
<member name="T:JTActiveSafety.Protocol.Buffers.JTActiveSafetyBufferWriter">
<summary>
<see cref="!:System.Buffers.Writer"/>
内存写入器
ref:System.Buffers.Writer
</summary>
</member>
<member name="M:JTActiveSafety.Protocol.Buffers.JTActiveSafetyBufferWriter.#ctor(System.Span{System.Byte})">
<summary>
</summary>
<param name="buffer"></param>
</member>
<member name="P:JTActiveSafety.Protocol.Buffers.JTActiveSafetyBufferWriter.Free">
<summary>
</summary>
</member>
<member name="P:JTActiveSafety.Protocol.Buffers.JTActiveSafetyBufferWriter.Written">
<summary>
</summary>
</member>
<member name="P:JTActiveSafety.Protocol.Buffers.JTActiveSafetyBufferWriter.WrittenCount">
<summary>
</summary>
</member>
<member name="M:JTActiveSafety.Protocol.Buffers.JTActiveSafetyBufferWriter.Advance(System.Int32)">
<summary>
</summary>
<param name="count"></param>
</member>
<member name="T:JTActiveSafety.Protocol.Extensions.HexExtensions">
<summary>
ref:"www.codeproject.com/tips/447938/high-performance-csharp-byte-array-to-hex-string-t"
</summary>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ToHexString(System.Byte[],System.String)">
<summary>
</summary>
<param name="source"></param>
<param name="separator"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ToHexBytes(System.String,System.String)">
<summary>
16进制字符串转16进制数组
@@ -23,6 +59,97 @@
<param name="separator"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadNumber(System.Byte,System.String)">
<summary>
</summary>
<param name="value"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadNumber(System.Int32,System.String)">
<summary>
</summary>
<param name="value"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadNumber(System.UInt32,System.String)">
<summary>
</summary>
<param name="value"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadNumber(System.Int64,System.String)">
<summary>
</summary>
<param name="value"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadNumber(System.UInt64,System.String)">
<summary>
</summary>
<param name="value"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadNumber(System.Int16,System.String)">
<summary>
</summary>
<param name="value"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadNumber(System.UInt16,System.String)">
<summary>
</summary>
<param name="value"></param>
<param name="format"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadBinary(System.UInt16)">
<summary>
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadBinary(System.Int16)">
<summary>
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadBinary(System.UInt32)">
<summary>
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadBinary(System.Int32)">
<summary>
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.Extensions.HexExtensions.ReadBinary(System.Byte)">
<summary>
</summary>
<param name="value"></param>
<returns></returns>
</member>
<member name="F:JTActiveSafety.Protocol.JTActiveSafetyPackage.FH_Bytes">
<summary>
帧头标识
@@ -60,6 +187,47 @@
默认长度64K,文件小于64K 则为实际长度
</summary>
</member>
<member name="T:JTActiveSafety.Protocol.JTActiveSafetySerializer">
<summary>
</summary>
</member>
<member name="M:JTActiveSafety.Protocol.JTActiveSafetySerializer.Serialize(JTActiveSafety.Protocol.JTActiveSafetyPackage,System.Int32)">
<summary>
</summary>
<param name="package"></param>
<param name="minBufferSize"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.JTActiveSafetySerializer.Deserialize(System.ReadOnlySpan{System.Byte})">
<summary>
</summary>
<param name="bytes"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.JTActiveSafetySerializer.AnalyzeJsonBuffer(System.ReadOnlySpan{System.Byte},System.Text.Json.JsonWriterOptions)">
<summary>
</summary>
<param name="bytes"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="M:JTActiveSafety.Protocol.JTActiveSafetySerializer.Analyze(System.ReadOnlySpan{System.Byte},System.Text.Json.JsonWriterOptions)">
<summary>
</summary>
<param name="bytes"></param>
<param name="options"></param>
<returns></returns>
</member>
<member name="T:JTActiveSafety.Protocol.MessagePack.JTActiveSafetyMessagePackReader">
<summary>
</summary>
</member>
<member name="M:JTActiveSafety.Protocol.MessagePack.JTActiveSafetyMessagePackReader.ReadBigNumber(System.Int32)">
<summary>
数字编码 大端模式、高位在前


+ 26
- 2
src/JTActiveSafety.Protocol/JTActiveSafetySerializer.cs Parādīt failu

@@ -10,8 +10,17 @@ using System.Text.Json;

namespace JTActiveSafety.Protocol
{
/// <summary>
///
/// </summary>
public static class JTActiveSafetySerializer
{
/// <summary>
///
/// </summary>
/// <param name="package"></param>
/// <param name="minBufferSize"></param>
/// <returns></returns>
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);
}
}

/// <summary>
///
/// </summary>
/// <param name="bytes"></param>
/// <returns></returns>
public static JTActiveSafetyPackage Deserialize(ReadOnlySpan<byte> bytes)
{
JTActiveSafetyPackage jTActiveSafetyPackage= new JTActiveSafetyPackage();
@@ -42,7 +55,12 @@ namespace JTActiveSafety.Protocol
jTActiveSafetyPackage.Bodies = reader.ReadRemainArray().ToArray();
return jTActiveSafetyPackage;
}

/// <summary>
///
/// </summary>
/// <param name="bytes"></param>
/// <param name="options"></param>
/// <returns></returns>
public static byte[] AnalyzeJsonBuffer(ReadOnlySpan<byte> bytes, JsonWriterOptions options = default)
{
JTActiveSafetyMessagePackReader reader = new JTActiveSafetyMessagePackReader(bytes);
@@ -65,6 +83,12 @@ namespace JTActiveSafety.Protocol
return memoryStream.ToArray();
}
}
/// <summary>
///
/// </summary>
/// <param name="bytes"></param>
/// <param name="options"></param>
/// <returns></returns>
public static string Analyze(ReadOnlySpan<byte> bytes, JsonWriterOptions options = default)
{
string json = Encoding.UTF8.GetString(AnalyzeJsonBuffer(bytes, options));


+ 3
- 0
src/JTActiveSafety.Protocol/MessagePack/JTActiveSafetyMessagePackReader.cs Parādīt failu

@@ -9,6 +9,9 @@ using System.Text;

namespace JTActiveSafety.Protocol.MessagePack
{
/// <summary>
///
/// </summary>
ref struct JTActiveSafetyMessagePackReader
{
public ReadOnlySpan<byte> Reader { get; private set; }


Notiek ielāde…
Atcelt
Saglabāt