Ver a proveniência

增加平台间信息交互类主/从链路平台间信息交互消息及子类型消息

tags/v1.3.0
SmallChi há 6 anos
ascendente
cometimento
47f2575f92
19 ficheiros alterados com 547 adições e 1 eliminações
  1. +19
    -1
      README.md
  2. +3
    -0
      src/JT809.Protocol/JT809.Protocol.csproj
  3. +3
    -0
      src/JT809.Protocol/JT809Enums/JT809BusinessType.cs
  4. +4
    -0
      src/JT809.Protocol/JT809Enums/JT809SubBusinessType.cs
  5. +16
    -0
      src/JT809.Protocol/JT809Enums/JT809_0x1301_ObjectType.cs
  6. +16
    -0
      src/JT809.Protocol/JT809Enums/JT809_0x9301_ObjectType.cs
  7. +23
    -0
      src/JT809.Protocol/JT809Enums/JT809_0x9302_ObjectType.cs
  8. +60
    -0
      src/JT809.Protocol/JT809Formatters/JT809MessageBodyFormatters/JT809_0x1300Formatter.cs
  9. +60
    -0
      src/JT809.Protocol/JT809Formatters/JT809MessageBodyFormatters/JT809_0x9300Formatter.cs
  10. +38
    -0
      src/JT809.Protocol/JT809Formatters/JT809SubMessageBodyFormatters/JT809_0x1300_0x1301Formatter.cs
  11. +27
    -0
      src/JT809.Protocol/JT809Formatters/JT809SubMessageBodyFormatters/JT809_0x1300_0x1302Formatter.cs
  12. +38
    -0
      src/JT809.Protocol/JT809Formatters/JT809SubMessageBodyFormatters/JT809_0x9300_0x9301Formatter.cs
  13. +38
    -0
      src/JT809.Protocol/JT809Formatters/JT809SubMessageBodyFormatters/JT809_0x9300_0x9302Formatter.cs
  14. +30
    -0
      src/JT809.Protocol/JT809MessageBody/JT809_0x1300.cs
  15. +33
    -0
      src/JT809.Protocol/JT809MessageBody/JT809_0x9300.cs
  16. +39
    -0
      src/JT809.Protocol/JT809SubMessageBody/JT809_0x1300_0x1301.cs
  17. +22
    -0
      src/JT809.Protocol/JT809SubMessageBody/JT809_0x1300_0x1302.cs
  18. +39
    -0
      src/JT809.Protocol/JT809SubMessageBody/JT809_0x9300_0x9301.cs
  19. +39
    -0
      src/JT809.Protocol/JT809SubMessageBody/JT809_0x9300_0x9302.cs

+ 19
- 1
README.md Ver ficheiro

@@ -71,4 +71,22 @@
| 8 | 0x9208 | √ | 取消申请交换指定车辆定位信息应答消息 |
| 9 | 0x9209 | √ | 补发车辆定位信息应答消息 |
| 10 | 0x920A | √ | 上报驾驶员身份识别信息请求消息 |
| 11 | 0x920B | √ | 上报车辆电子运单请求消息 |
| 11 | 0x920B | √ | 上报车辆电子运单请求消息 |

### 平台间信息交互类

#### 主链路平台间信息交互消息

|序号|消息ID|完成情况|消息体名称|
|:------:|:------:|:------:|:------:|
| 1 | 0x1300 | √ | 主链路平台间信息交互消息 |
| 2 | 0x1301 | √ | 平台查岗应答消息 |
| 3 | 0x1302 | √ | 下发平台间报文应答消息 |

#### 从链路平台间信息交互消息

|序号|消息ID|完成情况|消息体名称|
|:------:|:------:|:------:|:------:|
| 1 | 0x9300 | √ | 从链路平台间信息交互消息 |
| 2 | 0x9301 | √ | 平台查岗请求 |
| 3 | 0x9302 | √ | 下发平台间报文请求 |

+ 3
- 0
src/JT809.Protocol/JT809.Protocol.csproj Ver ficheiro

@@ -40,6 +40,9 @@
<Compile Include="JT809Enums\JT809VehicleColorType.cs" />
<Compile Include="JT809Enums\JT809_0x1002_Result.cs" />
<Compile Include="JT809Enums\JT809_0x1007_ErrorCode.cs" />
<Compile Include="JT809Enums\JT809_0x9302_ObjectType.cs" />
<Compile Include="JT809Enums\JT809_0x9301_ObjectType.cs" />
<Compile Include="JT809Enums\JT809_0x1301_ObjectType.cs" />
<Compile Include="JT809Enums\JT809_0x9209_Result.cs" />
<Compile Include="JT809Enums\JT809_0x9208_Result.cs" />
<Compile Include="JT809Enums\JT809_0x9207_Result.cs" />


+ 3
- 0
src/JT809.Protocol/JT809Enums/JT809BusinessType.cs Ver ficheiro

@@ -137,11 +137,13 @@ namespace JT809.Protocol.JT809Enums
///主链路平台间信息交互消息
///</summary>
[Description("主链路平台间信息交互消息")]
[JT809BodiesType(typeof(JT809_0x1300))]
UP_PLATFORM_MSG = 0x1300,
///<summary>
///从链路平台间信息交互消息
///</summary>
[Description("从链路平台间信息交互消息")]
[JT809BodiesType(typeof(JT809_0x9300))]
DOWN_PLATFORM_MSG = 0x9300,
#endregion
#region 车辆报警信息交互类
@@ -156,6 +158,7 @@ namespace JT809.Protocol.JT809Enums
[Description("从链路报警信息交互消息")]
DOWN_WARN_MSG = 0x9400,
#endregion

#region 车辆监管类
///<summary>
///主链路车辆监管消息


+ 4
- 0
src/JT809.Protocol/JT809Enums/JT809SubBusinessType.cs Ver ficheiro

@@ -152,11 +152,13 @@ namespace JT809.Protocol.JT809Enums
///平台查岗应答
///</summary>
[Description("平台查岗应答")]
[JT809BodiesType(typeof(JT809_0x1300_0x1301))]
UP_PLATFORM_MSG_POST_QUERY_ACK = 0x1301,
///<summary>
///下发平台间报文应答
///</summary>
[Description("下发平台间报文应答")]
[JT809BodiesType(typeof(JT809_0x1300_0x1302))]
UP_PLATFORM_MSG_INFO_ACK = 0x1302,
#endregion

@@ -165,11 +167,13 @@ namespace JT809.Protocol.JT809Enums
///平台查岗请求
///</summary>
[Description("平台查岗请求")]
[JT809BodiesType(typeof(JT809_0x9300_0x9301))]
DOWN_PLATFORM_MSG_POST_QUERY_REQ = 0x9301,
///<summary>
///下发平台间报文请求
///</summary>
[Description("下发平台间报文请求")]
[JT809BodiesType(typeof(JT809_0x9300_0x9302))]
DOWN_PLATFORM_MSG_INFO_REQ = 0x9302,
#endregion



+ 16
- 0
src/JT809.Protocol/JT809Enums/JT809_0x1301_ObjectType.cs Ver ficheiro

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Enums
{
/// <summary>
/// 查岗对象的类型
/// </summary>
public enum JT809_0x1301_ObjectType:byte
{
当前连接的下级平台=0x01,
下级平台所属单一业户=0x02,
下级平台所属所有业户=0x03
}
}

+ 16
- 0
src/JT809.Protocol/JT809Enums/JT809_0x9301_ObjectType.cs Ver ficheiro

@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Enums
{
/// <summary>
/// 查岗对象的类型
/// </summary>
public enum JT809_0x9301_ObjectType : byte
{
当前连接的下级平台=0x01,
下级平台所属单一业户=0x02,
下级平台所属所有业户=0x03
}
}

+ 23
- 0
src/JT809.Protocol/JT809Enums/JT809_0x9302_ObjectType.cs Ver ficheiro

@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Enums
{
/// <summary>
/// 查岗对象的类型
/// </summary>
public enum JT809_0x9302_ObjectType : byte
{
下级平台所属单一平台 = 0x00,
当前连接的下级平台 = 0x01,
下级平台所属单一业户 = 0x02,
下级平台所属所有业户 = 0x03,
下级平台所属所有平台 = 0x04,
下级平台所属所有平台和业户 = 0x05,
下级平台所属所有政府监管平台_含监控端 = 0x06,
下级平台所属所有企业监控平台 = 0x07,
下级平台所属所有经营性企业监控平台 = 0x08,
下级平台所属所有非经营性企业监控平台 = 0x09,
}
}

+ 60
- 0
src/JT809.Protocol/JT809Formatters/JT809MessageBodyFormatters/JT809_0x1300Formatter.cs Ver ficheiro

@@ -0,0 +1,60 @@
using JT809.Protocol.JT809Attributes;
using JT809.Protocol.JT809Enums;
using JT809.Protocol.JT809Exceptions;
using JT809.Protocol.JT809Extensions;
using JT809.Protocol.JT809MessageBody;
using System;
using System.Buffers;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Formatters.JT809MessageBodyFormatters
{
public class JT809_0x1300Formatter : IJT809Formatter<JT809_0x1300>
{
public JT809_0x1300 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JT809_0x1300 jT809_0X1300 = new JT809_0x1300();
jT809_0X1300.SubBusinessType = (JT809SubBusinessType)JT809BinaryExtensions.ReadUInt16Little(bytes, ref offset);
jT809_0X1300.DataLength = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
//JT809.Protocol.JT809Enums.JT809BusinessType 映射对应消息特性
JT809BodiesTypeAttribute jT809SubBodiesTypeAttribute = jT809_0X1300.SubBusinessType.GetAttribute<JT809BodiesTypeAttribute>();
if (jT809SubBodiesTypeAttribute == null)
{
throw new JT809Exception(JT809ErrorCode.GetAttributeError, $"JT809BodiesTypeAttribute Not Found>{jT809_0X1300.SubBusinessType.ToString()}");
}
try
{
jT809_0X1300.JT809SubBodies = JT809FormatterResolverExtensions.JT809DynamicDeserialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), bytes.Slice(offset, (int)jT809_0X1300.DataLength), out readSize);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{jT809_0X1300.SubBusinessType.ToString()}");
}
readSize = offset;
return jT809_0X1300;
}

public int Serialize(IMemoryOwner<byte> memoryOwner, int offset, JT809_0x1300 value)
{
offset += JT809BinaryExtensions.WriteUInt16Little(memoryOwner, offset, (ushort)value.SubBusinessType);
offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.DataLength);
//JT809.Protocol.JT809Enums.JT809BusinessType 映射对应消息特性
JT809BodiesTypeAttribute jT809SubBodiesTypeAttribute = value.SubBusinessType.GetAttribute<JT809BodiesTypeAttribute>();
if (jT809SubBodiesTypeAttribute == null)
{
throw new JT809Exception(JT809ErrorCode.GetAttributeError, $"JT809BodiesTypeAttribute Not Found>{value.SubBusinessType.ToString()}");
}
try
{
offset = JT809FormatterResolverExtensions.JT809DynamicSerialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), memoryOwner, offset, value.JT809SubBodies);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return offset;
}
}
}

+ 60
- 0
src/JT809.Protocol/JT809Formatters/JT809MessageBodyFormatters/JT809_0x9300Formatter.cs Ver ficheiro

@@ -0,0 +1,60 @@
using JT809.Protocol.JT809Attributes;
using JT809.Protocol.JT809Enums;
using JT809.Protocol.JT809Exceptions;
using JT809.Protocol.JT809Extensions;
using JT809.Protocol.JT809MessageBody;
using System;
using System.Buffers;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Formatters.JT809MessageBodyFormatters
{
public class JT809_0x9300Formatter : IJT809Formatter<JT809_0x9300>
{
public JT809_0x9300 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JT809_0x9300 jT809_0X9300 = new JT809_0x9300();
jT809_0X9300.SubBusinessType = (JT809SubBusinessType)JT809BinaryExtensions.ReadUInt16Little(bytes, ref offset);
jT809_0X9300.DataLength = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
//JT809.Protocol.JT809Enums.JT809BusinessType 映射对应消息特性
JT809BodiesTypeAttribute jT809SubBodiesTypeAttribute = jT809_0X9300.SubBusinessType.GetAttribute<JT809BodiesTypeAttribute>();
if (jT809SubBodiesTypeAttribute == null)
{
throw new JT809Exception(JT809ErrorCode.GetAttributeError, $"JT809BodiesTypeAttribute Not Found>{jT809_0X9300.SubBusinessType.ToString()}");
}
try
{
jT809_0X9300.JT809SubBodies = JT809FormatterResolverExtensions.JT809DynamicDeserialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), bytes.Slice(offset, (int)jT809_0X9300.DataLength), out readSize);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{jT809_0X9300.SubBusinessType.ToString()}");
}
readSize = offset;
return jT809_0X9300;
}

public int Serialize(IMemoryOwner<byte> memoryOwner, int offset, JT809_0x9300 value)
{
offset += JT809BinaryExtensions.WriteUInt16Little(memoryOwner, offset, (ushort)value.SubBusinessType);
offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.DataLength);
//JT809.Protocol.JT809Enums.JT809BusinessType 映射对应消息特性
JT809BodiesTypeAttribute jT809SubBodiesTypeAttribute = value.SubBusinessType.GetAttribute<JT809BodiesTypeAttribute>();
if (jT809SubBodiesTypeAttribute == null)
{
throw new JT809Exception(JT809ErrorCode.GetAttributeError, $"JT809BodiesTypeAttribute Not Found>{value.SubBusinessType.ToString()}");
}
try
{
offset = JT809FormatterResolverExtensions.JT809DynamicSerialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), memoryOwner, offset, value.JT809SubBodies);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return offset;
}
}
}

+ 38
- 0
src/JT809.Protocol/JT809Formatters/JT809SubMessageBodyFormatters/JT809_0x1300_0x1301Formatter.cs Ver ficheiro

@@ -0,0 +1,38 @@
using JT809.Protocol.JT809Extensions;
using JT809.Protocol.JT809SubMessageBody;
using System;
using System.Buffers;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Formatters.JT809SubMessageBodyFormatters
{
public class JT809_0x1300_0x1301Formatter : IJT809Formatter<JT809_0x1300_0x1301>
{
public JT809_0x1300_0x1301 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JT809_0x1300_0x1301 jT809_0X1200_0X1301 = new JT809_0x1300_0x1301();
jT809_0X1200_0X1301.ObjectType = (JT809Enums.JT809_0x1301_ObjectType)JT809BinaryExtensions.ReadByteLittle(bytes, ref offset);
jT809_0X1200_0X1301.ObjectID = JT809BinaryExtensions.ReadStringLittle(bytes, ref offset, 12);
jT809_0X1200_0X1301.InfoID = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
jT809_0X1200_0X1301.InfoLength = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
jT809_0X1200_0X1301.InfoContent = JT809BinaryExtensions.ReadStringLittle(bytes, ref offset, (int)jT809_0X1200_0X1301.InfoLength);
readSize = offset;
return jT809_0X1200_0X1301;
}

public int Serialize(IMemoryOwner<byte> memoryOwner, int offset, JT809_0x1300_0x1301 value)
{
offset += JT809BinaryExtensions.WriteByteLittle(memoryOwner, offset, (byte)value.ObjectType);
offset += JT809BinaryExtensions.WriteStringPadRightLittle(memoryOwner, offset, value.ObjectID, 12);
offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.InfoID);
// 先计算内容长度(汉字为两个字节)
offset += 4;
int byteLength = JT809BinaryExtensions.WriteStringLittle(memoryOwner, offset, value.InfoContent);
JT809BinaryExtensions.WriteInt32Little(memoryOwner, offset - 4, byteLength);
offset += byteLength;
return offset;
}
}
}

+ 27
- 0
src/JT809.Protocol/JT809Formatters/JT809SubMessageBodyFormatters/JT809_0x1300_0x1302Formatter.cs Ver ficheiro

@@ -0,0 +1,27 @@
using JT809.Protocol.JT809Extensions;
using JT809.Protocol.JT809SubMessageBody;
using System;
using System.Buffers;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Formatters.JT809SubMessageBodyFormatters
{
public class JT809_0x1300_0x1302Formatter : IJT809Formatter<JT809_0x1300_0x1302>
{
public JT809_0x1300_0x1302 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JT809_0x1300_0x1302 jT809_0X1200_0X1302 = new JT809_0x1300_0x1302();
jT809_0X1200_0X1302.InfoID = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
readSize = offset;
return jT809_0X1200_0X1302;
}

public int Serialize(IMemoryOwner<byte> memoryOwner, int offset, JT809_0x1300_0x1302 value)
{
offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.InfoID);
return offset;
}
}
}

+ 38
- 0
src/JT809.Protocol/JT809Formatters/JT809SubMessageBodyFormatters/JT809_0x9300_0x9301Formatter.cs Ver ficheiro

@@ -0,0 +1,38 @@
using JT809.Protocol.JT809Extensions;
using JT809.Protocol.JT809SubMessageBody;
using System;
using System.Buffers;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Formatters.JT809SubMessageBodyFormatters
{
public class JT809_0x9300_0x9301Formatter : IJT809Formatter<JT809_0x9300_0x9301>
{
public JT809_0x9300_0x9301 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JT809_0x9300_0x9301 jT809_0X9300_0X9301 = new JT809_0x9300_0x9301();
jT809_0X9300_0X9301.ObjectType = (JT809Enums.JT809_0x9301_ObjectType)JT809BinaryExtensions.ReadByteLittle(bytes, ref offset);
jT809_0X9300_0X9301.ObjectID = JT809BinaryExtensions.ReadStringLittle(bytes, ref offset, 12);
jT809_0X9300_0X9301.InfoID = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
jT809_0X9300_0X9301.InfoLength = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
jT809_0X9300_0X9301.InfoContent = JT809BinaryExtensions.ReadStringLittle(bytes, ref offset, (int)jT809_0X9300_0X9301.InfoLength);
readSize = offset;
return jT809_0X9300_0X9301;
}

public int Serialize(IMemoryOwner<byte> memoryOwner, int offset, JT809_0x9300_0x9301 value)
{
offset += JT809BinaryExtensions.WriteByteLittle(memoryOwner, offset, (byte)value.ObjectType);
offset += JT809BinaryExtensions.WriteStringPadRightLittle(memoryOwner, offset, value.ObjectID, 12);
offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.InfoID);
// 先计算内容长度(汉字为两个字节)
offset += 4;
int byteLength = JT809BinaryExtensions.WriteStringLittle(memoryOwner, offset, value.InfoContent);
JT809BinaryExtensions.WriteInt32Little(memoryOwner, offset - 4, byteLength);
offset += byteLength;
return offset;
}
}
}

+ 38
- 0
src/JT809.Protocol/JT809Formatters/JT809SubMessageBodyFormatters/JT809_0x9300_0x9302Formatter.cs Ver ficheiro

@@ -0,0 +1,38 @@
using JT809.Protocol.JT809Extensions;
using JT809.Protocol.JT809SubMessageBody;
using System;
using System.Buffers;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809Formatters.JT809SubMessageBodyFormatters
{
public class JT809_0x9300_0x9302Formatter : IJT809Formatter<JT809_0x9300_0x9302>
{
public JT809_0x9300_0x9302 Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
int offset = 0;
JT809_0x9300_0x9302 jT809_0X9300_0X9302 = new JT809_0x9300_0x9302();
jT809_0X9300_0X9302.ObjectType = (JT809Enums.JT809_0x9302_ObjectType)JT809BinaryExtensions.ReadByteLittle(bytes, ref offset);
jT809_0X9300_0X9302.ObjectID = JT809BinaryExtensions.ReadStringLittle(bytes, ref offset, 12);
jT809_0X9300_0X9302.InfoID = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
jT809_0X9300_0X9302.InfoLength = JT809BinaryExtensions.ReadUInt32Little(bytes, ref offset);
jT809_0X9300_0X9302.InfoContent = JT809BinaryExtensions.ReadStringLittle(bytes, ref offset, (int)jT809_0X9300_0X9302.InfoLength);
readSize = offset;
return jT809_0X9300_0X9302;
}

public int Serialize(IMemoryOwner<byte> memoryOwner, int offset, JT809_0x9300_0x9302 value)
{
offset += JT809BinaryExtensions.WriteByteLittle(memoryOwner, offset, (byte)value.ObjectType);
offset += JT809BinaryExtensions.WriteStringPadRightLittle(memoryOwner, offset, value.ObjectID, 12);
offset += JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset, value.InfoID);
// 先计算内容长度(汉字为两个字节)
offset += 4;
int byteLength = JT809BinaryExtensions.WriteStringLittle(memoryOwner, offset, value.InfoContent);
JT809BinaryExtensions.WriteInt32Little(memoryOwner, offset - 4, byteLength);
offset += byteLength;
return offset;
}
}
}

+ 30
- 0
src/JT809.Protocol/JT809MessageBody/JT809_0x1300.cs Ver ficheiro

@@ -0,0 +1,30 @@
using JT809.Protocol.JT809Enums;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809MessageBody
{
/// <summary>
/// 主链路平台间信息交互消息
/// <para>链路类型:主链路</para>
/// <para>消息方向:下级平台往上级平台</para>
/// <para>业务数据类型标识:UP_PLATFORM_MSG</para>
/// <para>描述:下级平台向上级平台发送平台间交互信息</para>
/// </summary>
public class JT809_0x1300:JT809Bodies
{
/// <summary>
/// 子业务类型标识
/// </summary>
public JT809SubBusinessType SubBusinessType { get; set; }
/// <summary>
/// 后续数据长度
/// </summary>
public uint DataLength { get; set; }
/// <summary>
/// 子业务数据体
/// </summary>
public JT809SubBodies JT809SubBodies { get; set; }
}
}

+ 33
- 0
src/JT809.Protocol/JT809MessageBody/JT809_0x9300.cs Ver ficheiro

@@ -0,0 +1,33 @@
using JT809.Protocol.JT809Attributes;
using JT809.Protocol.JT809Enums;
using JT809.Protocol.JT809Formatters.JT809MessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809MessageBody
{
/// <summary>
/// 从链路平台间信息交互业务
/// <para>链路类型:从链路</para>
/// <para>消息方向:上级平台往下级平台</para>
/// <para>业务数据类型标识:DOWN_PLATFORM_MSG</para>
/// <para>描述:上级平台向下级平台发送平台问交互信息</para>
/// </summary>
[JT809Formatter(typeof(JT809_0x9300Formatter))]
public class JT809_0x9300:JT809Bodies
{
/// <summary>
/// 子业务类型标识
/// </summary>
public JT809SubBusinessType SubBusinessType { get; set; }
/// <summary>
/// 后续数据长度
/// </summary>
public uint DataLength { get; set; }
/// <summary>
/// 子业务数据体
/// </summary>
public JT809SubBodies JT809SubBodies { get; set; }
}
}

+ 39
- 0
src/JT809.Protocol/JT809SubMessageBody/JT809_0x1300_0x1301.cs Ver ficheiro

@@ -0,0 +1,39 @@
using JT809.Protocol.JT809Attributes;
using JT809.Protocol.JT809Enums;
using JT809.Protocol.JT809Formatters.JT809SubMessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809SubMessageBody
{
/// <summary>
/// 平台查岗应答消息
/// <para>子业务类型标识:UP_PLATFORM_MSG_POST_QUERY_ACK</para>
/// <para>描述:下级平台应答上级平台发送的不定期平台查岗消息</para>
/// </summary>
[JT809Formatter(typeof(JT809_0x1300_0x1301Formatter))]
public class JT809_0x1300_0x1301:JT809SubBodies
{
/// <summary>
/// 查岗对象的类型
/// </summary>
public JT809_0x1301_ObjectType ObjectType { get; set; }
/// <summary>
/// 查岗对象的ID
/// </summary>
public string ObjectID { get; set; }
/// <summary>
/// 信息ID
/// </summary>
public uint InfoID { get; set; }
/// <summary>
/// 数据长度
/// </summary>
public uint InfoLength { get; set; }
/// <summary>
/// 应答内容
/// </summary>
public string InfoContent { get; set; }
}
}

+ 22
- 0
src/JT809.Protocol/JT809SubMessageBody/JT809_0x1300_0x1302.cs Ver ficheiro

@@ -0,0 +1,22 @@
using JT809.Protocol.JT809Attributes;
using JT809.Protocol.JT809Formatters.JT809SubMessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809SubMessageBody
{
/// <summary>
/// 下发平台间报文应答消息
/// <para>子业务类型标识:UP_PLATFORM_MSG_INFO_ACK</para>
/// <para>描述:下级平台收到上级平台发送的下发平台间报文请求消息后,发送应答消息</para>
/// </summary>
[JT809Formatter(typeof(JT809_0x1300_0x1302Formatter))]
public class JT809_0x1300_0x1302:JT809SubBodies
{
/// <summary>
/// 信息ID
/// </summary>
public uint InfoID { get; set; }
}
}

+ 39
- 0
src/JT809.Protocol/JT809SubMessageBody/JT809_0x9300_0x9301.cs Ver ficheiro

@@ -0,0 +1,39 @@
using JT809.Protocol.JT809Attributes;
using JT809.Protocol.JT809Enums;
using JT809.Protocol.JT809Formatters.JT809SubMessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809SubMessageBody
{
/// <summary>
/// 平台查岗请求
/// <para>子业务类型标识:DOWN_PLATFORM-MSG_POST_QUERY_REQ</para>
/// <para>描述:上级平台不定期向下级平台发送平台查岗信息</para>
/// </summary>
[JT809Formatter(typeof(JT809_0x9300_0x9301Formatter))]
public class JT809_0x9300_0x9301:JT809SubBodies
{
/// <summary>
/// 查岗对象的类型
/// </summary>
public JT809_0x9301_ObjectType ObjectType { get; set; }
/// <summary>
/// 查岗对象的ID
/// </summary>
public string ObjectID { get; set; }
/// <summary>
/// 信息ID
/// </summary>
public uint InfoID { get; set; }
/// <summary>
/// 数据长度
/// </summary>
public uint InfoLength { get; set; }
/// <summary>
/// 应答内容
/// </summary>
public string InfoContent { get; set; }
}
}

+ 39
- 0
src/JT809.Protocol/JT809SubMessageBody/JT809_0x9300_0x9302.cs Ver ficheiro

@@ -0,0 +1,39 @@
using JT809.Protocol.JT809Attributes;
using JT809.Protocol.JT809Enums;
using JT809.Protocol.JT809Formatters.JT809SubMessageBodyFormatters;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.JT809SubMessageBody
{
/// <summary>
/// 下发平台间报文请求
/// <para>子业务类型标识:DOWN_PLATFORM_MSG_INFO_REQ</para>
/// <para>描述:上级平台不定期向下级平台下发平台间报文</para>
/// </summary>
[JT809Formatter(typeof(JT809_0x9300_0x9302Formatter))]
public class JT809_0x9300_0x9302:JT809SubBodies
{
/// <summary>
/// 查岗对象的类型
/// </summary>
public JT809_0x9302_ObjectType ObjectType { get; set; }
/// <summary>
/// 查岗对象的ID
/// </summary>
public string ObjectID { get; set; }
/// <summary>
/// 信息ID
/// </summary>
public uint InfoID { get; set; }
/// <summary>
/// 数据长度
/// </summary>
public uint InfoLength { get; set; }
/// <summary>
/// 应答内容
/// </summary>
public string InfoContent { get; set; }
}
}

Carregando…
Cancelar
Guardar