瀏覽代碼

1.修复序列化出现死循环;

2.增加交换信息数据体;
3.增加创建空数据体的扩展;
4.修改文档.
tags/v1.3.0
SmallChi 6 年之前
父節點
當前提交
6a5b891474
共有 24 個檔案被更改,包括 75 行新增67 行删除
  1. +4
    -2
      README.md
  2. +3
    -3
      src/JT809.Protocol.Benchmark/JT809SerializerContext.cs
  3. +2
    -2
      src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1200Test.cs
  4. +2
    -2
      src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1300Test.cs
  5. +2
    -2
      src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1600Test.cs
  6. +5
    -5
      src/JT809.Protocol.Test/JT809Packages/JT809_0x9400_0x9401PackageTest.cs
  7. +1
    -1
      src/JT809.Protocol/JT809.Protocol.csproj
  8. +1
    -20
      src/JT809.Protocol/JT809Bodies.cs
  9. +36
    -0
      src/JT809.Protocol/JT809ExchangeMessageBodies.cs
  10. +1
    -12
      src/JT809.Protocol/JT809Extensions/JT809PackageExtensions.cs
  11. +3
    -3
      src/JT809.Protocol/JT809Formatters/JT809BodiesFormatter.cs
  12. +2
    -2
      src/JT809.Protocol/JT809Formatters/JT809MessageBodyFormatters/JT809_0x1300Formatter.cs
  13. +2
    -2
      src/JT809.Protocol/JT809Formatters/JT809MessageBodyFormatters/JT809_0x9300Formatter.cs
  14. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x1200.cs
  15. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x1300.cs
  16. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x1400.cs
  17. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x1500.cs
  18. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x1600.cs
  19. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x9200.cs
  20. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x9300.cs
  21. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x9400.cs
  22. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x9500.cs
  23. +1
    -1
      src/JT809.Protocol/JT809MessageBody/JT809_0x9600.cs
  24. +1
    -1
      src/JT809.Protocol/JT809Serializer.cs

+ 4
- 2
README.md 查看文件

@@ -75,7 +75,7 @@ jT809Package.Header = new JT809Header
MsgGNSSCENTERID = 20180920,
};

jT809Package.Bodies = new JT809_0x9400
JT809_0x9400 bodies = new JT809_0x9400
{
VehicleNo="粤A12345",
VehicleColor= JT809Enums.JT809VehicleColorType.黄色,
@@ -95,7 +95,9 @@ JT809_0x9400_0x9401 jT809_0x9400_0x9401 = new JT809_0x9400_0x9401
SupervisorEmail = "123456@qq.com"
};

jT809Package.Bodies.JT809SubBodies = jT809_0x9400_0x9401;
bodies.SubBodies = jT809_0x9400_0x9401;

jT809Package.Bodies = bodies;

byte[] data = JT809Serializer.Serialize(jT809Package);



+ 3
- 3
src/JT809.Protocol.Benchmark/JT809SerializerContext.cs 查看文件

@@ -55,7 +55,7 @@ namespace JT809.Protocol.Benchmark
MsgGNSSCENTERID = 20180920,
};

jT809Package.Bodies = new JT809_0x9400
JT809_0x9400 bodies = new JT809_0x9400
{
VehicleNo = "粤A12345",
VehicleColor = JT809Enums.JT809VehicleColorType.黄色,
@@ -74,8 +74,8 @@ namespace JT809.Protocol.Benchmark
SupervisorTel = "12345678901",
SupervisorEmail = "123456@qq.com"
};
jT809Package.Bodies.JT809SubBodies = jT809_0x9400_0x9401;
bodies.SubBodies = jT809_0x9400_0x9401;
jT809Package.Bodies = bodies;
var hex = JT809Serializer.Serialize(jT809Package);
}
}


+ 2
- 2
src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1200Test.cs 查看文件

@@ -28,7 +28,7 @@ namespace JT809.Protocol.Test.JT809MessageBody
TerminalModelType = "11111111",
TerminalSimCode = "222222222222"
};
jT809_0X1200.JT809SubBodies = jT809_0X1200_0X1201;
jT809_0X1200.SubBodies = jT809_0X1200_0X1201;
var hex = JT809Serializer.Serialize(jT809_0X1200).ToHexString();
//"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 41 41 32 32 32 32 32 32 32 32 32 32 32 32"
//"D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 01 12 01 00 00 00 3D 00 00 00 00 00 00 00 42 3A 35 C7 00 00 00 00 00 00 00 42 3A 35 C7 31 31 31 31 31 31 31 31 00 00 00 00 00 00 00 00 00 00 00 00 31 31 31 31 31 61 61 32 32 32 32 32 32 32 32 32 32 32 32"
@@ -43,7 +43,7 @@ namespace JT809.Protocol.Test.JT809MessageBody
Assert.Equal(JT809Enums.JT809VehicleColorType.蓝色, jT809_0X9001.VehicleColor);
Assert.Equal(JT809Enums.JT809SubBusinessType.上传车辆注册信息, jT809_0X9001.SubBusinessType);
Assert.Equal((ushort)61, jT809_0X9001.DataLength);
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = jT809_0X9001.JT809SubBodies as JT809_0x1200_0x1201;
JT809_0x1200_0x1201 jT809_0X1200_0X1201 = jT809_0X9001.SubBodies as JT809_0x1200_0x1201;
Assert.Equal("1111111111", jT809_0X1200_0X1201.PlateformId);
Assert.Equal("1111111111", jT809_0X1200_0X1201.ProducerId);
Assert.Equal("11111AA", jT809_0X1200_0X1201.TerminalId);


+ 2
- 2
src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1300Test.cs 查看文件

@@ -17,7 +17,7 @@ namespace JT809.Protocol.Test.JT809MessageBody
{
JT809_0x1300 jT809Bodies = new JT809_0x1300();
jT809Bodies.SubBusinessType = JT809Enums.JT809SubBusinessType.平台查岗应答;
jT809Bodies.JT809SubBodies = new JT809_0x1300_0x1301
jT809Bodies.SubBodies = new JT809_0x1300_0x1301
{
ObjectID="111",
InfoContent= "22ha22",
@@ -34,7 +34,7 @@ namespace JT809.Protocol.Test.JT809MessageBody
var bytes = "13 01 00 00 00 1B 01 31 31 31 00 00 00 00 00 00 00 00 00 00 00 04 D2 00 00 00 06 32 32 68 61 32 32".ToHexBytes();
JT809_0x1300 jT809Bodies = JT809Serializer.Deserialize<JT809_0x1300>(bytes);
Assert.Equal(JT809Enums.JT809SubBusinessType.平台查岗应答, jT809Bodies.SubBusinessType);
JT809_0x1300_0x1301 jT809SubBodies = (JT809_0x1300_0x1301)jT809Bodies.JT809SubBodies;
JT809_0x1300_0x1301 jT809SubBodies = (JT809_0x1300_0x1301)jT809Bodies.SubBodies;
Assert.Equal("111", jT809SubBodies.ObjectID);
Assert.Equal("22ha22", jT809SubBodies.InfoContent);
Assert.Equal((uint)1234, jT809SubBodies.InfoID);


+ 2
- 2
src/JT809.Protocol.Test/JT809MessageBody/JT809_0x1600Test.cs 查看文件

@@ -19,7 +19,7 @@ namespace JT809.Protocol.Test.JT809MessageBody
jT809Bodies.VehicleNo = "粤A12345";
jT809Bodies.VehicleColor = JT809Enums.JT809VehicleColorType.蓝色;
jT809Bodies.SubBusinessType = JT809Enums.JT809SubBusinessType.补报车辆静态信息应答;
jT809Bodies.JT809SubBodies = new JT809_0x1600_0x1601
jT809Bodies.SubBodies = new JT809_0x1600_0x1601
{
CarInfo = "什么鬼"
};
@@ -35,7 +35,7 @@ namespace JT809.Protocol.Test.JT809MessageBody
Assert.Equal("粤A12345", jT809Bodies.VehicleNo);
Assert.Equal(JT809Enums.JT809VehicleColorType.蓝色, jT809Bodies.VehicleColor);
Assert.Equal(JT809Enums.JT809SubBusinessType.补报车辆静态信息应答, jT809Bodies.SubBusinessType);
Assert.Equal("什么鬼", ((JT809_0x1600_0x1601)jT809Bodies.JT809SubBodies).CarInfo);
Assert.Equal("什么鬼", ((JT809_0x1600_0x1601)jT809Bodies.SubBodies).CarInfo);
}
}
}

+ 5
- 5
src/JT809.Protocol.Test/JT809Packages/JT809_0x9400_0x9401PackageTest.cs 查看文件

@@ -27,7 +27,7 @@ namespace JT809.Protocol.Test.JT809Packages
MsgGNSSCENTERID = 20180920,
};

jT809Package.Bodies = new JT809_0x9400
JT809_0x9400 bodies = new JT809_0x9400
{
VehicleNo="粤A12345",
VehicleColor= JT809Enums.JT809VehicleColorType.黄色,
@@ -46,8 +46,8 @@ namespace JT809.Protocol.Test.JT809Packages
SupervisorTel = "12345678901",
SupervisorEmail = "123456@qq.com"
};
jT809Package.Bodies.JT809SubBodies = jT809_0x9400_0x9401;
bodies.SubBodies = jT809_0x9400_0x9401;
jT809Package.Bodies = bodies;
var hex = JT809Serializer.Serialize(jT809Package).ToHexString();
//"5B 00 00 00 92 00 00 06 82 94 00 01 33 EF B8 01 00 00 00 00 00 27 0F D4 C1 41 31 32 33 34 35 00 00 00 00 00 00 00 00 00 00 00 00 00 02 94 01 00 00 00 5C 01 00 02 00 00 00 00 5A 01 AC 3F 40 12 3F FA A1 00 00 00 00 5A 01 AC 4D 50 03 73 6D 61 6C 6C 63 68 69 00 00 00 00 00 00 00 00 31 32 33 34 35 36 37 38 39 30 31 00 00 00 00 00 00 00 00 00 31 32 33 34 35 36 40 71 71 2E 63 6F 6D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 BA D8 5D"
}
@@ -72,7 +72,7 @@ namespace JT809.Protocol.Test.JT809Packages
Assert.Equal(JT809Enums.JT809SubBusinessType.报警督办请求, jT809_0X400.SubBusinessType);
Assert.Equal((uint)92, jT809_0X400.DataLength);

JT809_0x9400_0x9401 jT809_0x9400_0x9401 = (JT809_0x9400_0x9401)jT809_0X400.JT809SubBodies;
JT809_0x9400_0x9401 jT809_0x9400_0x9401 = (JT809_0x9400_0x9401)jT809_0X400.SubBodies;
Assert.Equal(JT809WarnSrc.车载终端, jT809_0x9400_0x9401.WarnSrc);
Assert.Equal(JT809WarnType.疲劳驾驶报警, jT809_0x9400_0x9401.WarnType);
Assert.Equal(DateTime.Parse("2018-09-27 10:24:00"), jT809_0x9400_0x9401.WarnTime);
@@ -97,7 +97,7 @@ namespace JT809.Protocol.Test.JT809Packages
VehicleNo = "粤A12345",
VehicleColor = JT809Enums.JT809VehicleColorType.黄色,
SubBusinessType = JT809Enums.JT809SubBusinessType.报警督办请求,
JT809SubBodies = new JT809_0x9400_0x9401
SubBodies = new JT809_0x9400_0x9401
{
WarnSrc = JT809WarnSrc.车载终端,
WarnType = JT809WarnType.疲劳驾驶报警,


+ 1
- 1
src/JT809.Protocol/JT809.Protocol.csproj 查看文件

@@ -14,7 +14,7 @@
<PackageProjectUrl>https://github.com/SmallChi/JT809</PackageProjectUrl>
<PackageLicenseUrl>https://github.com/SmallChi/JT809/blob/master/LICENSE</PackageLicenseUrl>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
<Version>1.0.2</Version>
<Version>1.0.3</Version>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">


+ 1
- 20
src/JT809.Protocol/JT809Bodies.cs 查看文件

@@ -9,25 +9,6 @@ namespace JT809.Protocol
{
public abstract class JT809Bodies
{
/// <summary>
/// 车牌号
/// </summary>
public string VehicleNo { get; set; }
/// <summary>
/// 车辆颜色
/// </summary>
public JT809VehicleColorType VehicleColor { get; set; } = JT809VehicleColorType.其他;
/// <summary>
/// 子业务类型标识
/// </summary>
public JT809SubBusinessType SubBusinessType { get; set; } = JT809SubBusinessType.None;
/// <summary>
/// 后续数据长度
/// </summary>
public uint DataLength { get; set; }
/// <summary>
/// 子业务数据体
/// </summary>
public JT809SubBodies JT809SubBodies { get; set; }

}
}

+ 36
- 0
src/JT809.Protocol/JT809ExchangeMessageBodies.cs 查看文件

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

namespace JT809.Protocol
{
/// <summary>
/// 交换信息体
/// </summary>
public abstract class JT809ExchangeMessageBodies: JT809Bodies
{
/// <summary>
/// 车牌号
/// </summary>
public string VehicleNo { get; set; }
/// <summary>
/// 车辆颜色
/// </summary>
public JT809VehicleColorType VehicleColor { get; set; } = JT809VehicleColorType.其他;
/// <summary>
/// 子业务类型标识
/// </summary>
public JT809SubBusinessType SubBusinessType { get; set; } = JT809SubBusinessType.None;
/// <summary>
/// 后续数据长度
/// </summary>
public uint DataLength { get; set; }
/// <summary>
/// 子业务数据体
/// </summary>
public JT809SubBodies SubBodies { get; set; }
}
}

+ 1
- 12
src/JT809.Protocol/JT809Extensions/JT809PackageExtensions.cs 查看文件

@@ -7,13 +7,6 @@ namespace JT809.Protocol.JT809Extensions
{
public static class JT809PackageExtensions
{
/// <summary>
/// 创建JT809Package对应的数据体
/// </summary>
/// <typeparam name="TJT809Bodies"></typeparam>
/// <param name="msgID"></param>
/// <param name="jT809Bodies"></param>
/// <returns></returns>
public static JT809Package Create<TJT809Bodies>(this JT809BusinessType jT809BusinessType, TJT809Bodies jT809Bodies)
where TJT809Bodies: JT809Bodies
{
@@ -30,11 +23,7 @@ namespace JT809.Protocol.JT809Extensions
};
return jT809Package;
}
/// <summary>
/// 创建JT809Package对应的数据体
/// </summary>
/// <param name="jt809BusinessType"></param>
/// <returns></returns>

public static JT809Package Create(this JT809BusinessType jT809BusinessType)
{
JT809Package jT809Package = new JT809Package();


+ 3
- 3
src/JT809.Protocol/JT809Formatters/JT809BodiesFormatter.cs 查看文件

@@ -10,7 +10,7 @@ using System.Text;
namespace JT809.Protocol.JT809Formatters
{
public class JT809BodiesFormatter<TJT809Bodies> : IJT809Formatter<TJT809Bodies>
where TJT809Bodies: JT809Bodies,new ()
where TJT809Bodies: JT809ExchangeMessageBodies, new ()
{
public TJT809Bodies Deserialize(ReadOnlySpan<byte> bytes, out int readSize)
{
@@ -28,7 +28,7 @@ namespace JT809.Protocol.JT809Formatters
}
try
{
jT809Bodies.JT809SubBodies = JT809FormatterResolverExtensions.JT809DynamicDeserialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), bytes.Slice(offset, (int)jT809Bodies.DataLength), out readSize);
jT809Bodies.SubBodies = JT809FormatterResolverExtensions.JT809DynamicDeserialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), bytes.Slice(offset, (int)jT809Bodies.DataLength), out readSize);
}
catch
{
@@ -53,7 +53,7 @@ namespace JT809.Protocol.JT809Formatters
{
// 先写入内容,然后在根据内容反写内容长度
offset = offset + 4;
int contentOffset = JT809FormatterResolverExtensions.JT809DynamicSerialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), memoryOwner, offset, value.JT809SubBodies);
int contentOffset = JT809FormatterResolverExtensions.JT809DynamicSerialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), memoryOwner, offset, value.SubBodies);
JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset - 4, (uint)(contentOffset- offset));
offset = contentOffset;
}


+ 2
- 2
src/JT809.Protocol/JT809Formatters/JT809MessageBodyFormatters/JT809_0x1300Formatter.cs 查看文件

@@ -26,7 +26,7 @@ namespace JT809.Protocol.JT809Formatters.JT809MessageBodyFormatters
}
try
{
jT809_0X1300.JT809SubBodies = JT809FormatterResolverExtensions.JT809DynamicDeserialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), bytes.Slice(offset, (int)jT809_0X1300.DataLength), out readSize);
jT809_0X1300.SubBodies = JT809FormatterResolverExtensions.JT809DynamicDeserialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), bytes.Slice(offset, (int)jT809_0X1300.DataLength), out readSize);
}
catch
{
@@ -50,7 +50,7 @@ namespace JT809.Protocol.JT809Formatters.JT809MessageBodyFormatters
{
// 先写入内容,然后在根据内容反写内容长度
offset = offset + 4;
int contentOffset = JT809FormatterResolverExtensions.JT809DynamicSerialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), memoryOwner, offset, value.JT809SubBodies);
int contentOffset = JT809FormatterResolverExtensions.JT809DynamicSerialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), memoryOwner, offset, value.SubBodies);
JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset - 4, (uint)(contentOffset - offset));
offset = contentOffset;
}


+ 2
- 2
src/JT809.Protocol/JT809Formatters/JT809MessageBodyFormatters/JT809_0x9300Formatter.cs 查看文件

@@ -26,7 +26,7 @@ namespace JT809.Protocol.JT809Formatters.JT809MessageBodyFormatters
}
try
{
jT809_0X9300.JT809SubBodies = JT809FormatterResolverExtensions.JT809DynamicDeserialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), bytes.Slice(offset, (int)jT809_0X9300.DataLength), out readSize);
jT809_0X9300.SubBodies = JT809FormatterResolverExtensions.JT809DynamicDeserialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), bytes.Slice(offset, (int)jT809_0X9300.DataLength), out readSize);
}
catch
{
@@ -50,7 +50,7 @@ namespace JT809.Protocol.JT809Formatters.JT809MessageBodyFormatters
{
// 先写入内容,然后在根据内容反写内容长度
offset = offset + 4;
int contentOffset = JT809FormatterResolverExtensions.JT809DynamicSerialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), memoryOwner, offset, value.JT809SubBodies);
int contentOffset = JT809FormatterResolverExtensions.JT809DynamicSerialize(JT809FormatterExtensions.GetFormatter(jT809SubBodiesTypeAttribute.JT809BodiesType), memoryOwner, offset, value.SubBodies);
JT809BinaryExtensions.WriteUInt32Little(memoryOwner, offset - 4, (uint)(contentOffset - offset));
offset = contentOffset;
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x1200.cs 查看文件

@@ -12,7 +12,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:下级平台向上级平台发送车辆动态信息交换业务数据包</para>
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_0x1200>))]
public class JT809_0x1200:JT809Bodies
public class JT809_0x1200: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x1300.cs 查看文件

@@ -12,7 +12,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:下级平台向上级平台发送平台间交互信息</para>
/// </summary>
[JT809Formatter(typeof(JT809_0x1300Formatter))]
public class JT809_0x1300:JT809Bodies
public class JT809_0x1300: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x1400.cs 查看文件

@@ -13,7 +13,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:下级平台向上级平台发送车辆报警信息业务</para>
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_0x1400>))]
public class JT809_0x1400:JT809Bodies
public class JT809_0x1400: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x1500.cs 查看文件

@@ -12,7 +12,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:下级平台向上级平台发送车辆监管业务</para>
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_0x1500>))]
public class JT809_0x1500:JT809Bodies
public class JT809_0x1500: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x1600.cs 查看文件

@@ -12,7 +12,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:下级平台向上级平台发送车辆睁态信息交换业务</para>
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_0x1600>))]
public class JT809_0x1600:JT809Bodies
public class JT809_0x1600: JT809ExchangeMessageBodies
{

}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x9200.cs 查看文件

@@ -12,7 +12,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:上级平台作为客户端向下级平台服务端发送车辆动态信息交换业务</para>
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_0x9200>))]
public class JT809_0x9200:JT809Bodies
public class JT809_0x9200: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x9300.cs 查看文件

@@ -12,7 +12,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:上级平台向下级平台发送平台问交互信息</para>
/// </summary>
[JT809Formatter(typeof(JT809_0x9300Formatter))]
public class JT809_0x9300:JT809Bodies
public class JT809_0x9300: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x9400.cs 查看文件

@@ -16,7 +16,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:上级平台向下级平台发送报瞥信息业务</para>
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_0x9400>))]
public class JT809_0x9400:JT809Bodies
public class JT809_0x9400: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x9500.cs 查看文件

@@ -12,7 +12,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:上级平台向下级平台发送车辆监监管业务</para>
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_0x9500>))]
public class JT809_0x9500:JT809Bodies
public class JT809_0x9500: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809MessageBody/JT809_0x9600.cs 查看文件

@@ -16,7 +16,7 @@ namespace JT809.Protocol.JT809MessageBody
/// <para>描述:上级平台向下级平台发送车辆静态信息交换业务</para>
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_0x9600>))]
public class JT809_0x9600:JT809Bodies
public class JT809_0x9600: JT809ExchangeMessageBodies
{
}


+ 1
- 1
src/JT809.Protocol/JT809Serializer.cs 查看文件

@@ -12,7 +12,7 @@ namespace JT809.Protocol
{
public static byte[] Serialize(JT809Package jT809Package, int minBufferSize = 4096)
{
return Serialize(jT809Package, minBufferSize);
return Serialize<JT809Package>(jT809Package, minBufferSize);
}

public static JT809Package Deserialize(ReadOnlySpan<byte> bytes)


Loading…
取消
儲存