Browse Source

完善1078扩展809的协议

tags/v1.1.0
SmallChi(Koike) 5 years ago
parent
commit
03162eaa49
57 changed files with 1962 additions and 859 deletions
  1. +2
    -2
      src/JT809.Protocol.Extensions.JT1078.Test/JT809.Protocol.Extensions.JT1078.Test.csproj
  2. +2
    -41
      src/JT809.Protocol.Extensions.JT1078/DependencyInjectionExtensions.cs
  3. +0
    -28
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1700_0x1701_Formatter.cs
  4. +0
    -22
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1700_0x1702_Formatter.cs
  5. +0
    -28
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1800_0x1801_Formatter.cs
  6. +0
    -24
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1800_0x1802_Formatter.cs
  7. +0
    -43
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1900_0x1901_Formatter.cs
  8. +0
    -38
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1900_0x1901_Record_Formatter.cs
  9. +0
    -45
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1900_0x1902_Formatter.cs
  10. +0
    -28
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1A00_0x1A01_Formatter.cs
  11. +0
    -24
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1A00_0x1A02_Formatter.cs
  12. +0
    -26
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1B00_0x1B01_Formatter.cs
  13. +0
    -36
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1B00_0x1B02_Formatter.cs
  14. +0
    -24
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1B00_0x1B03_Formatter.cs
  15. +0
    -22
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9700_0x9702_Formatter.cs
  16. +0
    -30
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9800_0x9801_Formatter.cs
  17. +0
    -26
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9800_0x9802_Formatter.cs
  18. +0
    -26
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9900_0x9901_Formatter.cs
  19. +0
    -41
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9900_0x9902_Formatter.cs
  20. +0
    -38
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9A00_0x9A01_Formatter.cs
  21. +0
    -28
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9A00_0x9A02_Formatter.cs
  22. +0
    -42
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9B00_0x9B01_Formatter.cs
  23. +0
    -26
      src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9B00_0x9B02_Formatter.cs
  24. +9
    -1
      src/JT809.Protocol.Extensions.JT1078/JT809.Protocol.Extensions.JT1078.csproj
  25. +746
    -0
      src/JT809.Protocol.Extensions.JT1078/JT809.Protocol.Extensions.JT1078.xml
  26. +65
    -3
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1700.cs
  27. +24
    -4
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1700_0x1701.cs
  28. +6
    -4
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1700_0x1702.cs
  29. +64
    -3
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1800.cs
  30. +24
    -4
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1800_0x1801.cs
  31. +20
    -4
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1800_0x1802.cs
  32. +65
    -3
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1900.cs
  33. +39
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1900_0x1901.cs
  34. +41
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1900_0x1902.cs
  35. +29
    -5
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1900_Record.cs
  36. +65
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1A00.cs
  37. +24
    -4
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1A00_0x1A01.cs
  38. +20
    -7
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1A00_0x1A02.cs
  39. +66
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1B00.cs
  40. +22
    -4
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1B00_0x1B01.cs
  41. +32
    -7
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1B00_0x1B02.cs
  42. +20
    -7
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1B00_0x1B03.cs
  43. +65
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9700.cs
  44. +5
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9700_0x9702.cs
  45. +65
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9800.cs
  46. +26
    -7
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9800_0x9801.cs
  47. +22
    -7
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9800_0x9802.cs
  48. +65
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9900.cs
  49. +22
    -7
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9900_0x9901.cs
  50. +38
    -7
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9900_0x9902.cs
  51. +65
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9A00.cs
  52. +34
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9A00_0x9A01.cs
  53. +23
    -6
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9A00_0x9A02.cs
  54. +65
    -3
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9B00.cs
  55. +38
    -3
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9B00_0x9B01.cs
  56. +22
    -7
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9B00_0x9B02.cs
  57. +22
    -4
      src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9B00_0x9B03.cs

+ 2
- 2
src/JT809.Protocol.Extensions.JT1078.Test/JT809.Protocol.Extensions.JT1078.Test.csproj View File

@@ -5,8 +5,8 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="3.1.3" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.6.1" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1">
<PrivateAssets>all</PrivateAssets>


+ 2
- 41
src/JT809.Protocol.Extensions.JT1078/DependencyInjectionExtensions.cs View File

@@ -12,47 +12,8 @@ namespace JT809.Protocol.Extensions.JT1078
public static IJT809Builder AddJT1078Configure(this IJT809Builder iJT809Builder)
{
iJT809Builder.Config.Register(Assembly.GetExecutingAssembly());
#warning 不知道是不是jt1078协议的809结构有问题,先按交换的格式(少了数据交换的头部)
iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x1700>((ushort)JT809_JT1078_BusinessType.主链路时效口令业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1700_0x1701>((ushort)JT809_JT1078_SubBusinessType.时效口令上报消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1700_0x1702>((ushort)JT809_JT1078_SubBusinessType.时效口令请求消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x1800>((ushort)JT809_JT1078_BusinessType.主链路实时音视频业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1800_0x1801>((ushort)JT809_JT1078_SubBusinessType.实时音视频请求应答消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1800_0x1802>((ushort)JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输应答消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x1900>((ushort)JT809_JT1078_BusinessType.主链路远程录像检索业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1900_0x1901>((ushort)JT809_JT1078_SubBusinessType.主动上传音视频资源目录信息消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1900_0x1902>((ushort)JT809_JT1078_SubBusinessType.查询音视频资源目录应答消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x1A00>((ushort)JT809_JT1078_BusinessType.主链路远程录像回放业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1A00_0x1A01>((ushort)JT809_JT1078_SubBusinessType.远程录像回放请求应答消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1A00_0x1A02>((ushort)JT809_JT1078_SubBusinessType.远程录像回放控制应答消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x1B00>((ushort)JT809_JT1078_BusinessType.主链路远程录像下载业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1B00_0x1B01>((ushort)JT809_JT1078_SubBusinessType.远程录像下载请求应答消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1B00_0x1B02>((ushort)JT809_JT1078_SubBusinessType.远程录像下载通知消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x1B00_0x1B03>((ushort)JT809_JT1078_SubBusinessType.远程录像下载控制应答消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x9700>((ushort)JT809_JT1078_BusinessType.从链路时效口令业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9700_0x9702>((ushort)JT809_JT1078_SubBusinessType.时效口令请求应答消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x9800>((ushort)JT809_JT1078_BusinessType.从链路实时音视频业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9800_0x9801>((ushort)JT809_JT1078_SubBusinessType.实时音视频请求消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9800_0x9802>((ushort)JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x9900>((ushort)JT809_JT1078_BusinessType.从链路远程录像检索业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9900_0x9901>((ushort)JT809_JT1078_SubBusinessType.主动上传音视频资源目录信息应答消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9900_0x9902>((ushort)JT809_JT1078_SubBusinessType.查询音视频资源目录请求消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x9A00>((ushort)JT809_JT1078_BusinessType.从链路远程录像回放业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9A00_0x9A01>((ushort)JT809_JT1078_SubBusinessType.远程录像回放请求消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9A00_0x9A02>((ushort)JT809_JT1078_SubBusinessType.远程录像回放控制消息);

iJT809Builder.Config.BusinessTypeFactory.SetMap<JT809_JT1078_0x9B00>((ushort)JT809_JT1078_BusinessType.从链路远程录像下载业务类);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9B00_0x9B01>((ushort)JT809_JT1078_SubBusinessType.远程录像下载请求消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9B00_0x9B02>((ushort)JT809_JT1078_SubBusinessType.远程录像下载完成通知应答消息);
iJT809Builder.Config.SubBusinessTypeFactory.SetMap<JT809_JT1078_0x9B00_0x9B03>((ushort)JT809_JT1078_SubBusinessType.远程录像下载控制消息);
iJT809Builder.Config.BusinessTypeFactory.Register(Assembly.GetExecutingAssembly());
iJT809Builder.Config.SubBusinessTypeFactory.Register(Assembly.GetExecutingAssembly());
return iJT809Builder;
}
}


+ 0
- 28
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1700_0x1701_Formatter.cs View File

@@ -1,28 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1700_0x1701_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1700_0x1701>
{
public JT809_JT1078_0x1700_0x1701 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1700_0x1701 jT808_JT1078_0X1701 = new JT809_JT1078_0x1700_0x1701();
jT808_JT1078_0X1701.PlateFormId = reader.ReadArray(11).ToArray();
jT808_JT1078_0X1701.AuthorizeCode1 = reader.ReadArray(64).ToArray();
jT808_JT1078_0X1701.AuthorizeCode2 = reader.ReadArray(64).ToArray();
return jT808_JT1078_0X1701;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1700_0x1701 value, IJT809Config config)
{
writer.WriteArray(value.PlateFormId);
writer.WriteArray(value.AuthorizeCode1);
writer.WriteArray(value.AuthorizeCode2);
}
}
}

+ 0
- 22
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1700_0x1702_Formatter.cs View File

@@ -1,22 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1700_0x1702_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1700_0x1702>
{
public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1700_0x1702 value, IJT809Config config)
{
}

public JT809_JT1078_0x1700_0x1702 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
return new JT809_JT1078_0x1700_0x1702();
}
}
}

+ 0
- 28
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1800_0x1801_Formatter.cs View File

@@ -1,28 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1800_0x1801_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1800_0x1801>
{
public JT809_JT1078_0x1800_0x1801 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1800_0x1801 jT808_JT1078_0x1800_0x1801 = new JT809_JT1078_0x1800_0x1801();
jT808_JT1078_0x1800_0x1801.Result = reader.ReadByte();
jT808_JT1078_0x1800_0x1801.ServerIp = reader.ReadString(32);
jT808_JT1078_0x1800_0x1801.ServerPort = reader.ReadUInt16();
return jT808_JT1078_0x1800_0x1801;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1800_0x1801 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteStringPadLeft(value.ServerIp,32);
writer.WriteUInt16(value.ServerPort);
}
}
}

+ 0
- 24
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1800_0x1802_Formatter.cs View File

@@ -1,24 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1800_0x1802_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1800_0x1802>
{
public JT809_JT1078_0x1800_0x1802 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1800_0x1802 jT808_JT1078_0x1800_0x1802 = new JT809_JT1078_0x1800_0x1802();
jT808_JT1078_0x1800_0x1802.Result = reader.ReadByte();
return jT808_JT1078_0x1800_0x1802;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1800_0x1802 value, IJT809Config config)
{
writer.WriteByte(value.Result);
}
}
}

+ 0
- 43
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1900_0x1901_Formatter.cs View File

@@ -1,43 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1900_0x1901_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1900_0x1901>
{
public JT809_JT1078_0x1900_0x1901 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1900_0x1901 jT808_JT1078_0x1900_0x1901 = new JT809_JT1078_0x1900_0x1901();
jT808_JT1078_0x1900_0x1901.ItemNum=reader.ReadUInt32();
if (jT808_JT1078_0x1900_0x1901.ItemNum > 0)
{
List<JT809_JT1078_0x1900_Record> jT808_JT1078_0x1900_0x1901_RecordList = new List<JT809_JT1078_0x1900_Record>();
var formatter = config.GetMessagePackFormatter<JT809_JT1078_0x1900_Record>();
for (int i = 0; i < jT808_JT1078_0x1900_0x1901.ItemNum; i++)
{
var jT808_JT1078_0x1900_0x1901_Record = formatter.Deserialize(ref reader, config);
jT808_JT1078_0x1900_0x1901_RecordList.Add(jT808_JT1078_0x1900_0x1901_Record);
}
jT808_JT1078_0x1900_0x1901.ItemList = jT808_JT1078_0x1900_0x1901_RecordList;
}
return jT808_JT1078_0x1900_0x1901;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900_0x1901 value, IJT809Config config)
{
writer.WriteUInt32(value.ItemNum);
if (value.ItemList.Count > 0)
{
var formatter = config.GetMessagePackFormatter<JT809_JT1078_0x1900_Record>();
foreach (var item in value.ItemList)
{
formatter.Serialize(ref writer, item, config);
}
}
}
}
}

+ 0
- 38
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1900_0x1901_Record_Formatter.cs View File

@@ -1,38 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1900_0x1901_Record_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1900_Record>
{
public JT809_JT1078_0x1900_Record Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1900_Record jT808_JT1078_0x1900_0x1901_Record = new JT809_JT1078_0x1900_Record();
jT808_JT1078_0x1900_0x1901_Record.ChannelId = reader.ReadByte();
jT808_JT1078_0x1900_0x1901_Record.StartTime = reader.ReadUTCDateTime();
jT808_JT1078_0x1900_0x1901_Record.EndTime = reader.ReadUTCDateTime();
jT808_JT1078_0x1900_0x1901_Record.AlarmType = reader.ReadUInt64();
jT808_JT1078_0x1900_0x1901_Record.AVItemType = reader.ReadByte();
jT808_JT1078_0x1900_0x1901_Record.StreamType = reader.ReadByte();
jT808_JT1078_0x1900_0x1901_Record.MemType = reader.ReadByte();
jT808_JT1078_0x1900_0x1901_Record.FileSize = reader.ReadUInt32();
return jT808_JT1078_0x1900_0x1901_Record;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900_Record value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime);
writer.WriteUInt64(value.AlarmType);
writer.WriteByte(value.AVItemType);
writer.WriteByte(value.StreamType);
writer.WriteByte(value.MemType);
writer.WriteUInt32(value.FileSize);
}
}
}

+ 0
- 45
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1900_0x1902_Formatter.cs View File

@@ -1,45 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1900_0x1902_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1900_0x1902>
{
public JT809_JT1078_0x1900_0x1902 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1900_0x1902 jT808_JT1078_0x1900_0x1902 = new JT809_JT1078_0x1900_0x1902();
jT808_JT1078_0x1900_0x1902.Result = reader.ReadByte();
jT808_JT1078_0x1900_0x1902.ItemNum = reader.ReadUInt32();
if (jT808_JT1078_0x1900_0x1902.ItemNum > 0)
{
List<JT809_JT1078_0x1900_Record> jT808_JT1078_0x1900_0x1901_RecordList = new List<JT809_JT1078_0x1900_Record>();
var formatter = config.GetMessagePackFormatter<JT809_JT1078_0x1900_Record>();
for (int i = 0; i < jT808_JT1078_0x1900_0x1902.ItemNum; i++)
{
var jT808_JT1078_0x1900_0x1901_Record = formatter.Deserialize(ref reader, config);
jT808_JT1078_0x1900_0x1901_RecordList.Add(jT808_JT1078_0x1900_0x1901_Record);
}
jT808_JT1078_0x1900_0x1902.ItemList = jT808_JT1078_0x1900_0x1901_RecordList;
}
return jT808_JT1078_0x1900_0x1902;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900_0x1902 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteUInt32(value.ItemNum);
if (value.ItemList.Count > 0)
{
var formatter = config.GetMessagePackFormatter<JT809_JT1078_0x1900_Record>();
foreach (var item in value.ItemList)
{
formatter.Serialize(ref writer, item, config);
}
}
}
}
}

+ 0
- 28
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1A00_0x1A01_Formatter.cs View File

@@ -1,28 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1A00_0x1A01_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1A00_0x1A01>
{
public JT809_JT1078_0x1A00_0x1A01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1A00_0x1A01 jT808_JT1078_0x1A00_0x1A01 = new JT809_JT1078_0x1A00_0x1A01();
jT808_JT1078_0x1A00_0x1A01.ServerIp = reader.ReadString(32);
jT808_JT1078_0x1A00_0x1A01.ServerPort = reader.ReadUInt16();
jT808_JT1078_0x1A00_0x1A01.Result = reader.ReadByte();
return jT808_JT1078_0x1A00_0x1A01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1A00_0x1A01 value, IJT809Config config)
{
writer.WriteStringPadLeft(value.ServerIp, 32);
writer.WriteUInt16(value.ServerPort);
writer.WriteByte(value.Result);
}
}
}

+ 0
- 24
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1A00_0x1A02_Formatter.cs View File

@@ -1,24 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1A00_0x1A02_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1A00_0x1A02>
{
public JT809_JT1078_0x1A00_0x1A02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1A00_0x1A02 jT808_JT1078_0x1A00_0x1A02 = new JT809_JT1078_0x1A00_0x1A02();
jT808_JT1078_0x1A00_0x1A02.Result = reader.ReadByte();
return jT808_JT1078_0x1A00_0x1A02;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1A00_0x1A02 value, IJT809Config config)
{
writer.WriteByte(value.Result);
}
}
}

+ 0
- 26
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1B00_0x1B01_Formatter.cs View File

@@ -1,26 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1B00_0x1B01_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1B00_0x1B01>
{
public JT809_JT1078_0x1B00_0x1B01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1B00_0x1B01 jT808_JT1078_0x1B00_0x1B01 = new JT809_JT1078_0x1B00_0x1B01();
jT808_JT1078_0x1B00_0x1B01.Result = reader.ReadByte();
jT808_JT1078_0x1B00_0x1B01.SessionId = reader.ReadUInt16();
return jT808_JT1078_0x1B00_0x1B01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1B00_0x1B01 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteUInt16(value.SessionId);
}
}
}

+ 0
- 36
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1B00_0x1B02_Formatter.cs View File

@@ -1,36 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1B00_0x1B02_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1B00_0x1B02>
{
public JT809_JT1078_0x1B00_0x1B02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1B00_0x1B02 jT808_JT1078_0x1B00_0x1B02 = new JT809_JT1078_0x1B00_0x1B02();
jT808_JT1078_0x1B00_0x1B02.Result = reader.ReadByte();
jT808_JT1078_0x1B00_0x1B02.SessionId = reader.ReadUInt16();
jT808_JT1078_0x1B00_0x1B02.ServerIp = reader.ReadString(32);
jT808_JT1078_0x1B00_0x1B02.TcpPort = reader.ReadUInt16();
jT808_JT1078_0x1B00_0x1B02.UserName = reader.ReadString(49);
jT808_JT1078_0x1B00_0x1B02.Password = reader.ReadString(22);
jT808_JT1078_0x1B00_0x1B02.FilePath = reader.ReadString(200);
return jT808_JT1078_0x1B00_0x1B02;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1B00_0x1B02 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteUInt16(value.SessionId);
writer.WriteStringPadLeft(value.ServerIp, 32);
writer.WriteUInt16(value.TcpPort);
writer.WriteStringPadLeft(value.UserName, 49);
writer.WriteStringPadLeft(value.Password, 22);
writer.WriteStringPadLeft(value.FilePath, 200);
}
}
}

+ 0
- 24
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x1B00_0x1B03_Formatter.cs View File

@@ -1,24 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x1B00_0x1B03_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x1B00_0x1B03>
{
public JT809_JT1078_0x1B00_0x1B03 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1B00_0x1B03 jT808_JT1078_0x1B00_0x1B01 = new JT809_JT1078_0x1B00_0x1B03();
jT808_JT1078_0x1B00_0x1B01.Result = reader.ReadByte();
return jT808_JT1078_0x1B00_0x1B01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1B00_0x1B03 value, IJT809Config config)
{
writer.WriteByte(value.Result);
}
}
}

+ 0
- 22
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9700_0x9702_Formatter.cs View File

@@ -1,22 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9700_0x9702_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9700_0x9702>
{
public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9700_0x9702 value, IJT809Config config)
{
}

public JT809_JT1078_0x9700_0x9702 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
return new JT809_JT1078_0x9700_0x9702();
}
}
}

+ 0
- 30
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9800_0x9801_Formatter.cs View File

@@ -1,30 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9800_0x9801_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9800_0x9801>
{
public JT809_JT1078_0x9800_0x9801 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9800_0x9801 jT808_JT1078_0x9800_0x9801 = new JT809_JT1078_0x9800_0x9801();
jT808_JT1078_0x9800_0x9801.ChannelId = reader.ReadByte();
jT808_JT1078_0x9800_0x9801.AVitemType = reader.ReadByte();
jT808_JT1078_0x9800_0x9801.AuthorizeCode = reader.ReadArray(64).ToArray();
jT808_JT1078_0x9800_0x9801.GnssData = reader.ReadArray(36).ToArray();
return jT808_JT1078_0x9800_0x9801;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9800_0x9801 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteByte(value.AVitemType);
writer.WriteArray(value.AuthorizeCode);
writer.WriteArray(value.GnssData);
}
}
}

+ 0
- 26
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9800_0x9802_Formatter.cs View File

@@ -1,26 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9800_0x9802_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9800_0x9802>
{
public JT809_JT1078_0x9800_0x9802 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9800_0x9802 jT808_JT1078_0x9800_0x9802 = new JT809_JT1078_0x9800_0x9802();
jT808_JT1078_0x9800_0x9802.ChannelId = reader.ReadByte();
jT808_JT1078_0x9800_0x9802.AVitemType = reader.ReadByte();
return jT808_JT1078_0x9800_0x9802;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9800_0x9802 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteByte(value.AVitemType);
}
}
}

+ 0
- 26
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9900_0x9901_Formatter.cs View File

@@ -1,26 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9900_0x9901_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9900_0x9901>
{
public JT809_JT1078_0x9900_0x9901 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9900_0x9901 jT808_JT1078_0x9900_0x9901 = new JT809_JT1078_0x9900_0x9901();
jT808_JT1078_0x9900_0x9901.Result = reader.ReadByte();
jT808_JT1078_0x9900_0x9901.ItemNumber = reader.ReadByte();
return jT808_JT1078_0x9900_0x9901;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9900_0x9901 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteByte(value.ItemNumber);
}
}
}

+ 0
- 41
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9900_0x9902_Formatter.cs View File

@@ -1,41 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9900_0x9902_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9900_0x9902>
{
public JT809_JT1078_0x9900_0x9902 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9900_0x9902 jT808_JT1078_0x9900_0x9902 = new JT809_JT1078_0x9900_0x9902();
jT808_JT1078_0x9900_0x9902.ChannelId = reader.ReadByte();
#warning 此处时间8个字节,暂使用utc时间代替
jT808_JT1078_0x9900_0x9902.StartTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9900_0x9902.EndTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9900_0x9902.AlarmType = reader.ReadUInt64();
jT808_JT1078_0x9900_0x9902.AVItemType = reader.ReadByte();
jT808_JT1078_0x9900_0x9902.StreamType = reader.ReadByte();
jT808_JT1078_0x9900_0x9902.MemType = reader.ReadByte();
jT808_JT1078_0x9900_0x9902.AuthorizeCode = reader.ReadArray(64).ToArray();
jT808_JT1078_0x9900_0x9902.GnssData = reader.ReadArray(36).ToArray();
return jT808_JT1078_0x9900_0x9902;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9900_0x9902 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime);
writer.WriteUInt64(value.AlarmType);
writer.WriteByte(value.AVItemType);
writer.WriteByte(value.StreamType);
writer.WriteByte(value.MemType);
writer.WriteArray(value.AuthorizeCode);
writer.WriteArray(value.GnssData);
}
}
}

+ 0
- 38
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9A00_0x9A01_Formatter.cs View File

@@ -1,38 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9A00_0x9A01_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9A00_0x9A01>
{
public JT809_JT1078_0x9A00_0x9A01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9A00_0x9A01 jT808_JT1078_0x9A00_0x9A01 = new JT809_JT1078_0x9A00_0x9A01();
jT808_JT1078_0x9A00_0x9A01.ChannelId = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A01.AVItemType = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A01.StreamType = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A01.MemType = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A01.PlayBackStartTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9A00_0x9A01.PlayBackEndTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9A00_0x9A01.AuthorizeCode = reader.ReadArray(64).ToArray();
jT808_JT1078_0x9A00_0x9A01.GnssData = reader.ReadArray(36).ToArray();
return jT808_JT1078_0x9A00_0x9A01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9A00_0x9A01 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteByte(value.AVItemType);
writer.WriteByte(value.StreamType);
writer.WriteByte(value.MemType);
writer.WriteUTCDateTime(value.PlayBackStartTime);
writer.WriteUTCDateTime(value.PlayBackEndTime);
writer.WriteArray(value.AuthorizeCode);
writer.WriteArray(value.GnssData);
}
}
}

+ 0
- 28
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9A00_0x9A02_Formatter.cs View File

@@ -1,28 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9A00_0x9A02_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9A00_0x9A02>
{
public JT809_JT1078_0x9A00_0x9A02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9A00_0x9A02 jT808_JT1078_0x9A00_0x9A02 = new JT809_JT1078_0x9A00_0x9A02();
jT808_JT1078_0x9A00_0x9A02.ControlType = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A02.FastTime = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A02.DateTime = reader.ReadUTCDateTime();
return jT808_JT1078_0x9A00_0x9A02;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9A00_0x9A02 value, IJT809Config config)
{
writer.WriteByte(value.ControlType);
writer.WriteByte(value.FastTime);
writer.WriteUTCDateTime(value.DateTime);
}
}
}

+ 0
- 42
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9B00_0x9B01_Formatter.cs View File

@@ -1,42 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9B00_0x9B01_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9B00_0x9B01>
{
public JT809_JT1078_0x9B00_0x9B01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9B00_0x9B01 jT808_JT1078_0x9B00_0x9B01 = new JT809_JT1078_0x9B00_0x9B01();
jT808_JT1078_0x9B00_0x9B01.ChannelId = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B01.StartTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9B00_0x9B01.EndTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9B00_0x9B01.AlarmType = reader.ReadUInt64();
jT808_JT1078_0x9B00_0x9B01.AVItemType = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B01.StreamType = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B01.MemType = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B01.FileSize = reader.ReadUInt32();
jT808_JT1078_0x9B00_0x9B01.AuthorizeCode = reader.ReadArray(64).ToArray();
jT808_JT1078_0x9B00_0x9B01.GnssData = reader.ReadArray(36).ToArray();
return jT808_JT1078_0x9B00_0x9B01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9B00_0x9B01 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime);
writer.WriteUInt64(value.AlarmType);
writer.WriteByte(value.AVItemType);
writer.WriteByte(value.StreamType);
writer.WriteByte(value.MemType);
writer.WriteUInt32(value.FileSize);
writer.WriteArray(value.AuthorizeCode);
writer.WriteArray(value.GnssData);
}
}
}

+ 0
- 26
src/JT809.Protocol.Extensions.JT1078/Formatters/JT809_JT1078_0x9B00_0x9B02_Formatter.cs View File

@@ -1,26 +0,0 @@
using JT809.Protocol.Extensions.JT1078.MessageBody;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.Formatters
{
public class JT809_JT1078_0x9B00_0x9B02_Formatter : IJT809MessagePackFormatter<JT809_JT1078_0x9B00_0x9B02>
{
public JT809_JT1078_0x9B00_0x9B02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9B00_0x9B02 jT808_JT1078_0x9B00_0x9B02 = new JT809_JT1078_0x9B00_0x9B02();
jT808_JT1078_0x9B00_0x9B02.Result = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B02.SessionId = reader.ReadUInt16();
return jT808_JT1078_0x9B00_0x9B02;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9B00_0x9B02 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteUInt16(value.SessionId);
}
}
}

+ 9
- 1
src/JT809.Protocol.Extensions.JT1078/JT809.Protocol.Extensions.JT1078.csproj View File

@@ -19,6 +19,14 @@
<PackageLicenseFile>LICENSE</PackageLicenseFile>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|netstandard2.0|AnyCPU'">
<DocumentationFile>JT809.Protocol.Extensions.JT1078.xml</DocumentationFile>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|netstandard2.0|AnyCPU'">
<DocumentationFile>JT809.Protocol.Extensions.JT1078.xml</DocumentationFile>
</PropertyGroup>

<ItemGroup>
<None Include="..\..\LICENSE">
<Pack>True</Pack>
@@ -27,7 +35,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="JT809" Version="2.1.3" />
<PackageReference Include="JT809" Version="2.1.4-preview1" />
</ItemGroup>

</Project>

+ 746
- 0
src/JT809.Protocol.Extensions.JT1078/JT809.Protocol.Extensions.JT1078.xml View File

@@ -0,0 +1,746 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>JT809.Protocol.Extensions.JT1078</name>
</assembly>
<members>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.主链路时效口令业务类">
<summary>
主链路时效口令业务类
UP_AUTHORIZE_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.从链路时效口令业务类">
<summary>
从链路时效口令业务类
DOWN_AUTHORIZE_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.主链路实时音视频业务类">
<summary>
主链路实时音视频业务类
UP_REALVIDEO_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.从链路实时音视频业务类">
<summary>
从链路实时音视频业务类
DOWN_REALVIDEO_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.主链路远程录像检索业务类">
<summary>
主链路远程录像检索业务类
UP_SEARCH_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.从链路远程录像检索业务类">
<summary>
从链路远程录像检索业务类
DOWN_SEARCH_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.主链路远程录像回放业务类">
<summary>
主链路远程录像回放业务类
UP_PLAYBACK_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.从链路远程录像回放业务类">
<summary>
从链路远程录像回放业务类
DOWN_PLAYBACK_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.主链路远程录像下载业务类">
<summary>
主链路远程录像下载业务类
UP_DOWNLOAD_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_BusinessType.从链路远程录像下载业务类">
<summary>
从链路远程录像下载业务类
DOWN_DOWNLOAD_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.时效口令上报消息">
<summary>
时效口令上报消息
UP_AUTHRIZE_MSG_STARTUP
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.时效口令请求消息">
<summary>
时效口令请求消息
UP_AUTHRIZE_MSG_STARTUP_REQ
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.时效口令请求应答消息">
<summary>
时效口令请求应答消息
DOWN_AUTHRIZE_MSG_STARTUP_REQ_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.实时音视频请求应答消息">
<summary>
实时音视频请求应答消息
UP_REALVIDEO_MSG_STARTUP_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输应答消息">
<summary>
主动请求停止实时音视频传输应答消息
UP_REALVIDEO_MSG_END_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.实时音视频请求消息">
<summary>
实时音视频请求消息
DOWN_REALVIDEO_MSG_STARTUP
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输消息">
<summary>
主动请求停止实时音视频传输消息
DOWN_REALVIDEO_MSG_END
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.主动上传音视频资源目录信息消息">
<summary>
主动上传音视频资源目录信息消息
UP_FILELIST_MSG
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.查询音视频资源目录应答消息">
<summary>
查询音视频资源目录应答消息
UP_REALVIDEO_FILELIST_REQ_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.主动上传音视频资源目录信息应答消息">
<summary>
主动上传音视频资源目录信息应答消息
DOWN_FILELIST_MSG_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.查询音视频资源目录请求消息">
<summary>
查询音视频资源目录请求消息
DOWN_REALVIDEO_FILELIST_REQ
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像回放请求应答消息">
<summary>
远程录像回放请求应答消息
UP_PLAYBACK_MSG_STARTUP_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像回放控制应答消息">
<summary>
远程录像回放控制应答消息
UP_PLAYBACK_MSG_CONTROL_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像回放请求消息">
<summary>
远程录像回放请求消息
DOWN_PLAYBACK_MSG_STARTUP
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像回放控制消息">
<summary>
远程录像回放控制消息
DOWN_PLAYBACK_MSG_CONTROL
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像下载请求应答消息">
<summary>
远程录像下载请求应答消息
UP_DOWNLOAD_MSG_STARTUP_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像下载通知消息">
<summary>
远程录像下载通知消息
UP_DOWNLOAD_MSG_END_INFORM
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像下载控制应答消息">
<summary>
远程录像下载控制应答消息
UP_DOWNLOAD_MSG_CONTROL_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像下载请求消息">
<summary>
远程录像下载请求消息
DOWN_DOWNLOAD_MSG_STARTUP
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像下载完成通知应答消息">
<summary>
远程录像下载完成通知应答消息
UP_DWONLOAD_MSG_END_INFORM_ACK
</summary>
</member>
<member name="F:JT809.Protocol.Extensions.JT1078.Enums.JT809_JT1078_SubBusinessType.远程录像下载控制消息">
<summary>
远程录像下载控制消息
DWON_DOWNLOAD_MSG_CONTROL
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1700">
<summary>
主链路时效口令交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1700_0x1701">
<summary>
时效口令上报消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1700_0x1701.PlateFormId">
<summary>
企业视频监控平台唯一编码,平台所属企业行政区域代码+平台公共编号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1700_0x1701.AuthorizeCode1">
<summary>
归属地区政府平台使用的时效口令
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1700_0x1701.AuthorizeCode2">
<summary>
跨域地区政府平台使用的时效口令
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1700_0x1702">
<summary>
时效口令请求消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1800">
<summary>
主链路实时音视频交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1800_0x1801">
<summary>
实时音视频请求应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1800_0x1801.Result">
<summary>
应答结果
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1800_0x1801.ServerIp">
<summary>
企业视频服务器ip地址
32
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1800_0x1801.ServerPort">
<summary>
企业视频服务器端口号
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1800_0x1802">
<summary>
主动请求停止实时音视频传输应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1800_0x1802.Result">
<summary>
应答结果
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900">
<summary>
主链路远程录像检索交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_0x1901">
<summary>
主动上传音视频资源目录信息消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_0x1901.ItemNum">
<summary>
资源目录项数目
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_0x1901.ItemList">
<summary>
资源目录项列表
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_0x1902">
<summary>
查询音视频资源目录应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_0x1902.Result">
<summary>
应答结果
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_0x1902.ItemNum">
<summary>
资源目录项数目
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_0x1902.ItemList">
<summary>
资源目录项列表
与JT808_JT1078_0x1900_0x1901共用同一个子类
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record">
<summary>
上传音视频资源目录项
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record.ChannelId">
<summary>
逻辑通道号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record.StartTime">
<summary>
UTC时间 开始
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record.EndTime">
<summary>
UTC时间 结束
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record.AlarmType">
<summary>
报警标志物
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record.AVItemType">
<summary>
音视频类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record.StreamType">
<summary>
码流类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record.MemType">
<summary>
存储器类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1900_Record.FileSize">
<summary>
文件大小
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1A00">
<summary>
主链路远程录像回放交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1A00_0x1A01">
<summary>
远程录像回放请求应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1A00_0x1A01.ServerIp">
<summary>
企业视频服务器ip地址
32
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1A00_0x1A01.ServerPort">
<summary>
企业视频服务器端口号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1A00_0x1A01.Result">
<summary>
应答结果
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1A00_0x1A02">
<summary>
远程录像回放控制应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1A00_0x1A02.Result">
<summary>
应答结果
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00">
<summary>
主链路远程录像下载交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B01">
<summary>
远程录像下载请求应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B01.Result">
<summary>
应答结果
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B01.SessionId">
<summary>
对应平台文件上传消息的流水号
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B02">
<summary>
远程录像下载通知消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B02.Result">
<summary>
应答结果
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B02.SessionId">
<summary>
对应平台文件上传消息的流水号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B02.ServerIp">
<summary>
FTP服务器ip地址
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B02.TcpPort">
<summary>
FTP服务器端口
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B02.UserName">
<summary>
FTP用户名
49
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B02.Password">
<summary>
FTP密码
22
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B02.FilePath">
<summary>
文件存储路径
200
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B03">
<summary>
远程录像下载控制应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x1B00_0x1B03.Result">
<summary>
应答结果
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9700">
<summary>
从链路时效口令交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9700_0x9702">
<summary>
时效口令请求应答消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800">
<summary>
从链路实时音视频交互信息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800_0x9801">
<summary>
实时音视频请求消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800_0x9801.ChannelId">
<summary>
逻辑通道号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800_0x9801.AVitemType">
<summary>
音视频类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800_0x9801.AuthorizeCode">
<summary>
时效口令
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800_0x9801.GnssData">
<summary>
车辆进入跨域地区后5min之内的任何位置,仅跨域访问请求时使用此字段
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800_0x9802">
<summary>
主动请求停止实时音视频传输消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800_0x9802.ChannelId">
<summary>
逻辑通道号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9800_0x9802.AVitemType">
<summary>
音视频类型
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900">
<summary>
从链路远程录像检索交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9901">
<summary>
主动上传音视频资源目录信息应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9901.Result">
<summary>
应答结果
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9901.ItemNumber">
<summary>
资源目录总数
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902">
<summary>
查询音视频资源目录请求消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.ChannelId">
<summary>
逻辑通道号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.StartTime">
<summary>
起始时间
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.EndTime">
<summary>
终止时间
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.AlarmType">
<summary>
报警类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.AVItemType">
<summary>
音视频类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.StreamType">
<summary>
码流类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.MemType">
<summary>
存储器类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.AuthorizeCode">
<summary>
时效口令
64
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9900_0x9902.GnssData">
<summary>
车辆进入跨域地区后5min之内任一位置,仅跨域访问请求时,使用此字段
36
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00">
<summary>
从链路远程录像回放交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01">
<summary>
远程录像回放请求消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01.ChannelId">
<summary>
逻辑通道号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01.AVItemType">
<summary>
音视频类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01.StreamType">
<summary>
码流类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01.MemType">
<summary>
存储器类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01.PlayBackStartTime">
<summary>
回放起始时间
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01.PlayBackEndTime">
<summary>
回放结束时间
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01.AuthorizeCode">
<summary>
时效口令
64
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A01.GnssData">
<summary>
车辆进入跨域地区后5min之内任一位置,仅跨域访问请求时,使用此字段
36
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A02">
<summary>
远程录像回放控制消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A02.ControlType">
<summary>
控制类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A02.FastTime">
<summary>
快进或倒退倍数
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9A00_0x9A02.DateTime">
<summary>
拖动位置
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00">
<summary>
从链路远程录像下载交互消息
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01">
<summary>
远程录像下载请求消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.ChannelId">
<summary>
逻辑通道号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.StartTime">
<summary>
起始时间
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.EndTime">
<summary>
终止时间
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.AlarmType">
<summary>
报警类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.AVItemType">
<summary>
音视频类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.StreamType">
<summary>
码流类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.MemType">
<summary>
存储器类型
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.FileSize">
<summary>
文件大小 byte
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.AuthorizeCode">
<summary>
时效口令
64
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B01.GnssData">
<summary>
车辆进入跨域地区后5min之内任一位置,仅跨域访问请求时,使用此字段
36
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B02">
<summary>
远程录像下载完成通知应答消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B02.Result">
<summary>
应答结果
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B02.SessionId">
<summary>
对应平台文件上传消息的流水号
</summary>
</member>
<member name="T:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B03">
<summary>
远程录像下载控制消息
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B03.SessionId">
<summary>
对应平台文件上传消息的流水号
</summary>
</member>
<member name="P:JT809.Protocol.Extensions.JT1078.MessageBody.JT809_JT1078_0x9B00_0x9B03.Type">
<summary>
控制类型
</summary>
</member>
</members>
</doc>

+ 65
- 3
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1700.cs View File

@@ -1,5 +1,8 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,9 +12,68 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 主链路时效口令交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x1700>))]
public class JT809_JT1078_0x1700 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x1700 : JT809ExchangeMessageBodies,IJT809MessagePackFormatter<JT809_JT1078_0x1700>
{
public override ushort MsgId { get; }=JT809_JT1078_BusinessType.主链路时效口令业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.main;

public override string Description { get; }= "主链路时效口令交互消息";

public JT809_JT1078_0x1700 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1700 value = new JT809_JT1078_0x1700();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1700 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 24
- 4
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1700_0x1701.cs View File

@@ -1,5 +1,6 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 时效口令上报消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1700_0x1701_Formatter))]
public class JT809_JT1078_0x1700_0x1701 : JT809SubBodies
public class JT809_JT1078_0x1700_0x1701 : JT809SubBodies,IJT809MessagePackFormatter<JT809_JT1078_0x1700_0x1701>
{
/// <summary>
/// 企业视频监控平台唯一编码,平台所属企业行政区域代码+平台公共编号
@@ -24,5 +24,25 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 跨域地区政府平台使用的时效口令
/// </summary>
public byte[] AuthorizeCode2 { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.时效口令上报消息.ToUInt16Value();

public override string Description { get; }= "时效口令上报消息";

public JT809_JT1078_0x1700_0x1701 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1700_0x1701 jT808_JT1078_0X1701 = new JT809_JT1078_0x1700_0x1701();
jT808_JT1078_0X1701.PlateFormId = reader.ReadArray(11).ToArray();
jT808_JT1078_0X1701.AuthorizeCode1 = reader.ReadArray(64).ToArray();
jT808_JT1078_0X1701.AuthorizeCode2 = reader.ReadArray(64).ToArray();
return jT808_JT1078_0X1701;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1700_0x1701 value, IJT809Config config)
{
writer.WriteArray(value.PlateFormId);
writer.WriteArray(value.AuthorizeCode1);
writer.WriteArray(value.AuthorizeCode2);
}
}
}

+ 6
- 4
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1700_0x1702.cs View File

@@ -1,5 +1,4 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,9 +8,12 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 时效口令请求消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1700_0x1702_Formatter))]
public class JT809_JT1078_0x1700_0x1702 : JT809SubBodies
{
public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.时效口令请求消息.ToUInt16Value();

public override string Description => "时效口令请求消息";

public override bool SkipSerialization { get; set; } = true;
}
}

+ 64
- 3
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1800.cs View File

@@ -1,5 +1,7 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,9 +11,68 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 主链路实时音视频交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x1800>))]
public class JT809_JT1078_0x1800 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x1800 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1800>
{
public override ushort MsgId { get; }

public override JT809_LinkType LinkType { get; } = JT809_LinkType.main;

public override string Description { get; } = "主链路实时音视频交互消息";

public JT809_JT1078_0x1800 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1800 value = new JT809_JT1078_0x1800();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1800 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 24
- 4
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1800_0x1801.cs View File

@@ -1,5 +1,6 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 实时音视频请求应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1800_0x1801_Formatter))]
public class JT809_JT1078_0x1800_0x1801 : JT809SubBodies
public class JT809_JT1078_0x1800_0x1801 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1800_0x1801>
{
/// <summary>
/// 应答结果
@@ -25,5 +25,25 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 企业视频服务器端口号
/// </summary>
public ushort ServerPort { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.实时音视频请求应答消息.ToUInt16Value();

public override string Description { get; } = "实时音视频请求应答消息";

public JT809_JT1078_0x1800_0x1801 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1800_0x1801 jT808_JT1078_0x1800_0x1801 = new JT809_JT1078_0x1800_0x1801();
jT808_JT1078_0x1800_0x1801.Result = reader.ReadByte();
jT808_JT1078_0x1800_0x1801.ServerIp = reader.ReadString(32);
jT808_JT1078_0x1800_0x1801.ServerPort = reader.ReadUInt16();
return jT808_JT1078_0x1800_0x1801;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1800_0x1801 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteStringPadLeft(value.ServerIp, 32);
writer.WriteUInt16(value.ServerPort);
}
}
}

+ 20
- 4
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1800_0x1802.cs View File

@@ -1,5 +1,6 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,12 +10,27 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 主动请求停止实时音视频传输应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1800_0x1802_Formatter))]
public class JT809_JT1078_0x1800_0x1802 : JT809SubBodies
public class JT809_JT1078_0x1800_0x1802 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1800_0x1802>
{
/// <summary>
/// 应答结果
/// </summary>
public byte Result { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输应答消息.ToUInt16Value();

public override string Description { get; } = "主动请求停止实时音视频传输应答消息";

public JT809_JT1078_0x1800_0x1802 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1800_0x1802 jT808_JT1078_0x1800_0x1802 = new JT809_JT1078_0x1800_0x1802();
jT808_JT1078_0x1800_0x1802.Result = reader.ReadByte();
return jT808_JT1078_0x1800_0x1802;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1800_0x1802 value, IJT809Config config)
{
writer.WriteByte(value.Result);
}
}
}

+ 65
- 3
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1900.cs View File

@@ -1,5 +1,8 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,9 +12,68 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 主链路远程录像检索交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x1900>))]
public class JT809_JT1078_0x1900 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x1900 : JT809ExchangeMessageBodies,IJT809MessagePackFormatter<JT809_JT1078_0x1900>
{
public override ushort MsgId { get; } = JT809_JT1078_BusinessType.主链路远程录像检索业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.main;

public override string Description { get; } = "主链路远程录像检索交互消息";

public JT809_JT1078_0x1900 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1900 value = new JT809_JT1078_0x1900();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 39
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1900_0x1901.cs View File

@@ -1,16 +1,14 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 主动上传音视频资源目录信息消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1900_0x1901_Formatter))]
public class JT809_JT1078_0x1900_0x1901 : JT809SubBodies
public class JT809_JT1078_0x1900_0x1901 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1900_0x1901>
{
/// <summary>
/// 资源目录项数目
@@ -20,5 +18,40 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 资源目录项列表
/// </summary>
public List<JT809_JT1078_0x1900_Record> ItemList { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.主动上传音视频资源目录信息消息.ToUInt16Value();

public override string Description { get; } = "主动上传音视频资源目录信息消息";

public JT809_JT1078_0x1900_0x1901 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1900_0x1901 jT808_JT1078_0x1900_0x1901 = new JT809_JT1078_0x1900_0x1901();
jT808_JT1078_0x1900_0x1901.ItemNum = reader.ReadUInt32();
if (jT808_JT1078_0x1900_0x1901.ItemNum > 0)
{
List<JT809_JT1078_0x1900_Record> jT808_JT1078_0x1900_0x1901_RecordList = new List<JT809_JT1078_0x1900_Record>();
var formatter = config.GetMessagePackFormatter<JT809_JT1078_0x1900_Record>();
for (int i = 0; i < jT808_JT1078_0x1900_0x1901.ItemNum; i++)
{
var jT808_JT1078_0x1900_0x1901_Record = formatter.Deserialize(ref reader, config);
jT808_JT1078_0x1900_0x1901_RecordList.Add(jT808_JT1078_0x1900_0x1901_Record);
}
jT808_JT1078_0x1900_0x1901.ItemList = jT808_JT1078_0x1900_0x1901_RecordList;
}
return jT808_JT1078_0x1900_0x1901;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900_0x1901 value, IJT809Config config)
{
writer.WriteUInt32(value.ItemNum);
if (value.ItemList.Count > 0)
{
var formatter = config.GetMessagePackFormatter<JT809_JT1078_0x1900_Record>();
foreach (var item in value.ItemList)
{
formatter.Serialize(ref writer, item, config);
}
}
}
}
}

+ 41
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1900_0x1902.cs View File

@@ -1,16 +1,14 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 查询音视频资源目录应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1900_0x1902_Formatter))]
public class JT809_JT1078_0x1900_0x1902 : JT809SubBodies
public class JT809_JT1078_0x1900_0x1902 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1900_0x1902>
{
/// <summary>
/// 应答结果
@@ -25,5 +23,42 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 与JT808_JT1078_0x1900_0x1901共用同一个子类
/// </summary>
public List<JT809_JT1078_0x1900_Record> ItemList { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.查询音视频资源目录应答消息.ToUInt16Value();

public override string Description { get; } = "查询音视频资源目录应答消息";

public JT809_JT1078_0x1900_0x1902 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1900_0x1902 jT808_JT1078_0x1900_0x1902 = new JT809_JT1078_0x1900_0x1902();
jT808_JT1078_0x1900_0x1902.Result = reader.ReadByte();
jT808_JT1078_0x1900_0x1902.ItemNum = reader.ReadUInt32();
if (jT808_JT1078_0x1900_0x1902.ItemNum > 0)
{
List<JT809_JT1078_0x1900_Record> jT808_JT1078_0x1900_0x1901_RecordList = new List<JT809_JT1078_0x1900_Record>();
var formatter = config.GetMessagePackFormatter<JT809_JT1078_0x1900_Record>();
for (int i = 0; i < jT808_JT1078_0x1900_0x1902.ItemNum; i++)
{
var jT808_JT1078_0x1900_0x1901_Record = formatter.Deserialize(ref reader, config);
jT808_JT1078_0x1900_0x1901_RecordList.Add(jT808_JT1078_0x1900_0x1901_Record);
}
jT808_JT1078_0x1900_0x1902.ItemList = jT808_JT1078_0x1900_0x1901_RecordList;
}
return jT808_JT1078_0x1900_0x1902;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900_0x1902 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteUInt32(value.ItemNum);
if (value.ItemList.Count > 0)
{
var formatter = config.GetMessagePackFormatter<JT809_JT1078_0x1900_Record>();
foreach (var item in value.ItemList)
{
formatter.Serialize(ref writer, item, config);
}
}
}
}
}

+ 29
- 5
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1900_Record.cs View File

@@ -1,5 +1,5 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,8 +9,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 上传音视频资源目录项
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1900_0x1901_Record_Formatter))]
public class JT809_JT1078_0x1900_Record
public class JT809_JT1078_0x1900_Record : IJT809MessagePackFormatter<JT809_JT1078_0x1900_Record>
{
/// <summary>
/// 逻辑通道号
@@ -27,7 +26,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 报警标志物
/// </summary>
public UInt64 AlarmType { get; set; }
public ulong AlarmType { get; set; }
/// <summary>
/// 音视频类型
/// </summary>
@@ -44,5 +43,30 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 文件大小
/// </summary>
public uint FileSize { get; set; }
public JT809_JT1078_0x1900_Record Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1900_Record jT808_JT1078_0x1900_0x1901_Record = new JT809_JT1078_0x1900_Record();
jT808_JT1078_0x1900_0x1901_Record.ChannelId = reader.ReadByte();
jT808_JT1078_0x1900_0x1901_Record.StartTime = reader.ReadUTCDateTime();
jT808_JT1078_0x1900_0x1901_Record.EndTime = reader.ReadUTCDateTime();
jT808_JT1078_0x1900_0x1901_Record.AlarmType = reader.ReadUInt64();
jT808_JT1078_0x1900_0x1901_Record.AVItemType = reader.ReadByte();
jT808_JT1078_0x1900_0x1901_Record.StreamType = reader.ReadByte();
jT808_JT1078_0x1900_0x1901_Record.MemType = reader.ReadByte();
jT808_JT1078_0x1900_0x1901_Record.FileSize = reader.ReadUInt32();
return jT808_JT1078_0x1900_0x1901_Record;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1900_Record value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime);
writer.WriteUInt64(value.AlarmType);
writer.WriteByte(value.AVItemType);
writer.WriteByte(value.StreamType);
writer.WriteByte(value.MemType);
writer.WriteUInt32(value.FileSize);
}
}
}

+ 65
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1A00.cs View File

@@ -1,17 +1,76 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 主链路远程录像回放交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x1A00>))]
public class JT809_JT1078_0x1A00 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x1A00 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1A00>
{
public override ushort MsgId { get; } = JT809_JT1078_BusinessType.主链路远程录像回放业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.main;

public override string Description { get; } = "主链路远程录像回放交互消息";

public JT809_JT1078_0x1A00 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1A00 value = new JT809_JT1078_0x1A00();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1A00 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 24
- 4
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1A00_0x1A01.cs View File

@@ -1,5 +1,6 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 远程录像回放请求应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1A00_0x1A01_Formatter))]
public class JT809_JT1078_0x1A00_0x1A01 : JT809SubBodies
public class JT809_JT1078_0x1A00_0x1A01 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1A00_0x1A01>
{
/// <summary>
/// 企业视频服务器ip地址
@@ -25,5 +25,25 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 应答结果
/// </summary>
public byte Result { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像回放请求应答消息.ToUInt16Value();

public override string Description { get; } = "远程录像回放请求应答消息";

public JT809_JT1078_0x1A00_0x1A01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1A00_0x1A01 jT808_JT1078_0x1A00_0x1A01 = new JT809_JT1078_0x1A00_0x1A01();
jT808_JT1078_0x1A00_0x1A01.ServerIp = reader.ReadString(32);
jT808_JT1078_0x1A00_0x1A01.ServerPort = reader.ReadUInt16();
jT808_JT1078_0x1A00_0x1A01.Result = reader.ReadByte();
return jT808_JT1078_0x1A00_0x1A01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1A00_0x1A01 value, IJT809Config config)
{
writer.WriteStringPadLeft(value.ServerIp, 32);
writer.WriteUInt16(value.ServerPort);
writer.WriteByte(value.Result);
}
}
}

+ 20
- 7
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1A00_0x1A02.cs View File

@@ -1,20 +1,33 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 远程录像回放控制应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1A00_0x1A02_Formatter))]
public class JT809_JT1078_0x1A00_0x1A02 : JT809SubBodies
public class JT809_JT1078_0x1A00_0x1A02 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1A00_0x1A02>
{
/// <summary>
/// 应答结果
/// </summary>
public byte Result { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像回放控制应答消息.ToUInt16Value();

public override string Description { get; } = "远程录像回放控制应答消息";

public JT809_JT1078_0x1A00_0x1A02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1A00_0x1A02 jT808_JT1078_0x1A00_0x1A02 = new JT809_JT1078_0x1A00_0x1A02();
jT808_JT1078_0x1A00_0x1A02.Result = reader.ReadByte();
return jT808_JT1078_0x1A00_0x1A02;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1A00_0x1A02 value, IJT809Config config)
{
writer.WriteByte(value.Result);
}
}
}

+ 66
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1B00.cs View File

@@ -1,17 +1,77 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 主链路远程录像下载交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x1B00>))]
public class JT809_JT1078_0x1B00 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x1B00 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1B00>
{
public override ushort MsgId { get; } = JT809_JT1078_BusinessType.主链路远程录像下载业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.main;

public override string Description { get; } = "主链路远程录像下载交互消息";


public JT809_JT1078_0x1B00 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1B00 value = new JT809_JT1078_0x1B00();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1B00 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 22
- 4
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1B00_0x1B01.cs View File

@@ -1,5 +1,6 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 远程录像下载请求应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1B00_0x1B01_Formatter))]
public class JT809_JT1078_0x1B00_0x1B01 : JT809SubBodies
public class JT809_JT1078_0x1B00_0x1B01 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1B00_0x1B01>
{
/// <summary>
/// 应答结果
@@ -20,5 +20,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 对应平台文件上传消息的流水号
/// </summary>
public ushort SessionId { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像下载请求应答消息.ToUInt16Value();

public override string Description { get; } = "远程录像下载请求应答消息";

public JT809_JT1078_0x1B00_0x1B01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1B00_0x1B01 jT808_JT1078_0x1B00_0x1B01 = new JT809_JT1078_0x1B00_0x1B01();
jT808_JT1078_0x1B00_0x1B01.Result = reader.ReadByte();
jT808_JT1078_0x1B00_0x1B01.SessionId = reader.ReadUInt16();
return jT808_JT1078_0x1B00_0x1B01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1B00_0x1B01 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteUInt16(value.SessionId);
}
}
}

+ 32
- 7
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1B00_0x1B02.cs View File

@@ -1,16 +1,13 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 远程录像下载通知消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1B00_0x1B02_Formatter))]
public class JT809_JT1078_0x1B00_0x1B02 : JT809SubBodies
public class JT809_JT1078_0x1B00_0x1B02 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1B00_0x1B02>
{
/// <summary>
/// 应答结果
@@ -43,5 +40,33 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 200
/// </summary>
public string FilePath { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像下载通知消息.ToUInt16Value();

public override string Description { get; } = "远程录像下载通知消息";

public JT809_JT1078_0x1B00_0x1B02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1B00_0x1B02 jT808_JT1078_0x1B00_0x1B02 = new JT809_JT1078_0x1B00_0x1B02();
jT808_JT1078_0x1B00_0x1B02.Result = reader.ReadByte();
jT808_JT1078_0x1B00_0x1B02.SessionId = reader.ReadUInt16();
jT808_JT1078_0x1B00_0x1B02.ServerIp = reader.ReadString(32);
jT808_JT1078_0x1B00_0x1B02.TcpPort = reader.ReadUInt16();
jT808_JT1078_0x1B00_0x1B02.UserName = reader.ReadString(49);
jT808_JT1078_0x1B00_0x1B02.Password = reader.ReadString(22);
jT808_JT1078_0x1B00_0x1B02.FilePath = reader.ReadString(200);
return jT808_JT1078_0x1B00_0x1B02;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1B00_0x1B02 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteUInt16(value.SessionId);
writer.WriteStringPadLeft(value.ServerIp, 32);
writer.WriteUInt16(value.TcpPort);
writer.WriteStringPadLeft(value.UserName, 49);
writer.WriteStringPadLeft(value.Password, 22);
writer.WriteStringPadLeft(value.FilePath, 200);
}
}
}

+ 20
- 7
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x1B00_0x1B03.cs View File

@@ -1,20 +1,33 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 远程录像下载控制应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x1B00_0x1B03_Formatter))]
public class JT809_JT1078_0x1B00_0x1B03 : JT809SubBodies
public class JT809_JT1078_0x1B00_0x1B03 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x1B00_0x1B03>
{
/// <summary>
/// 应答结果
/// </summary>
public byte Result { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像下载控制应答消息.ToUInt16Value();

public override string Description { get; } = "远程录像下载控制应答消息";

public JT809_JT1078_0x1B00_0x1B03 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x1B00_0x1B03 jT808_JT1078_0x1B00_0x1B01 = new JT809_JT1078_0x1B00_0x1B03();
jT808_JT1078_0x1B00_0x1B01.Result = reader.ReadByte();
return jT808_JT1078_0x1B00_0x1B01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x1B00_0x1B03 value, IJT809Config config)
{
writer.WriteByte(value.Result);
}
}
}

+ 65
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9700.cs View File

@@ -1,17 +1,76 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 从链路时效口令交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x9700>))]
public class JT809_JT1078_0x9700 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x9700 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9700>
{
public override ushort MsgId { get; } = JT809_JT1078_BusinessType.从链路时效口令业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.subordinate;

public override string Description { get; } = "从链路时效口令交互消息";

public JT809_JT1078_0x9700 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9700 value = new JT809_JT1078_0x9700();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9700 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 5
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9700_0x9702.cs View File

@@ -1,17 +1,16 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.Extensions.JT1078.Enums;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 时效口令请求应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9700_0x9702_Formatter))]
public class JT809_JT1078_0x9700_0x9702 : JT809SubBodies
{
public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.时效口令请求应答消息.ToUInt16Value();

public override string Description { get; } = "时效口令请求应答消息";

public override bool SkipSerialization { get; set; } = true;
}
}

+ 65
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9800.cs View File

@@ -1,17 +1,76 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 从链路实时音视频交互信息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x9800>))]
public class JT809_JT1078_0x9800 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x9800 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9800>
{
public override ushort MsgId { get; } = JT809_JT1078_BusinessType.从链路实时音视频业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.subordinate;

public override string Description { get; } = "从链路实时音视频交互信息";

public JT809_JT1078_0x9800 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9800 value = new JT809_JT1078_0x9800();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9800 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 26
- 7
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9800_0x9801.cs View File

@@ -1,16 +1,13 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 实时音视频请求消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9800_0x9801_Formatter))]
public class JT809_JT1078_0x9800_0x9801 : JT809SubBodies
public class JT809_JT1078_0x9800_0x9801 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9800_0x9801>
{
/// <summary>
/// 逻辑通道号
@@ -28,5 +25,27 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 车辆进入跨域地区后5min之内的任何位置,仅跨域访问请求时使用此字段
/// </summary>
public byte[] GnssData { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.实时音视频请求消息.ToUInt16Value();

public override string Description { get; } = "实时音视频请求消息";

public JT809_JT1078_0x9800_0x9801 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9800_0x9801 jT808_JT1078_0x9800_0x9801 = new JT809_JT1078_0x9800_0x9801();
jT808_JT1078_0x9800_0x9801.ChannelId = reader.ReadByte();
jT808_JT1078_0x9800_0x9801.AVitemType = reader.ReadByte();
jT808_JT1078_0x9800_0x9801.AuthorizeCode = reader.ReadArray(64).ToArray();
jT808_JT1078_0x9800_0x9801.GnssData = reader.ReadArray(36).ToArray();
return jT808_JT1078_0x9800_0x9801;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9800_0x9801 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteByte(value.AVitemType);
writer.WriteArray(value.AuthorizeCode);
writer.WriteArray(value.GnssData);
}
}
}

+ 22
- 7
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9800_0x9802.cs View File

@@ -1,16 +1,13 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 主动请求停止实时音视频传输消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9800_0x9802_Formatter))]
public class JT809_JT1078_0x9800_0x9802 : JT809SubBodies
public class JT809_JT1078_0x9800_0x9802 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9800_0x9802>
{
/// <summary>
/// 逻辑通道号
@@ -20,5 +17,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 音视频类型
/// </summary>
public byte AVitemType { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.主动请求停止实时音视频传输消息.ToUInt16Value();

public override string Description { get; } = "主动请求停止实时音视频传输消息";

public JT809_JT1078_0x9800_0x9802 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9800_0x9802 jT808_JT1078_0x9800_0x9802 = new JT809_JT1078_0x9800_0x9802();
jT808_JT1078_0x9800_0x9802.ChannelId = reader.ReadByte();
jT808_JT1078_0x9800_0x9802.AVitemType = reader.ReadByte();
return jT808_JT1078_0x9800_0x9802;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9800_0x9802 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteByte(value.AVitemType);
}
}
}

+ 65
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9900.cs View File

@@ -1,17 +1,76 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 从链路远程录像检索交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x9900>))]
public class JT809_JT1078_0x9900 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x9900 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9900>
{
public override ushort MsgId { get; } = JT809_JT1078_BusinessType.从链路远程录像检索业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.subordinate;

public override string Description { get; } = "从链路远程录像检索交互消息";

public JT809_JT1078_0x9900 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9900 value = new JT809_JT1078_0x9900();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9900 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 22
- 7
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9900_0x9901.cs View File

@@ -1,16 +1,13 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 主动上传音视频资源目录信息应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9900_0x9901_Formatter))]
public class JT809_JT1078_0x9900_0x9901 : JT809SubBodies
public class JT809_JT1078_0x9900_0x9901 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9900_0x9901>
{
/// <summary>
/// 应答结果
@@ -20,5 +17,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 资源目录总数
/// </summary>
public byte ItemNumber { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.主动上传音视频资源目录信息应答消息.ToUInt16Value();

public override string Description { get; } = "主动上传音视频资源目录信息应答消息";

public JT809_JT1078_0x9900_0x9901 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9900_0x9901 jT808_JT1078_0x9900_0x9901 = new JT809_JT1078_0x9900_0x9901();
jT808_JT1078_0x9900_0x9901.Result = reader.ReadByte();
jT808_JT1078_0x9900_0x9901.ItemNumber = reader.ReadByte();
return jT808_JT1078_0x9900_0x9901;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9900_0x9901 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteByte(value.ItemNumber);
}
}
}

+ 38
- 7
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9900_0x9902.cs View File

@@ -1,16 +1,14 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 查询音视频资源目录请求消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9900_0x9902_Formatter))]
public class JT809_JT1078_0x9900_0x9902 : JT809SubBodies
public class JT809_JT1078_0x9900_0x9902 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9900_0x9902>
{
/// <summary>
/// 逻辑通道号
@@ -27,7 +25,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 报警类型
/// </summary>
public UInt64 AlarmType { get; set; }
public ulong AlarmType { get; set; }
/// <summary>
/// 音视频类型
/// </summary>
@@ -50,5 +48,38 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 36
/// </summary>
public byte[] GnssData { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.查询音视频资源目录请求消息.ToUInt16Value();

public override string Description { get; } = "查询音视频资源目录请求消息";

public JT809_JT1078_0x9900_0x9902 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9900_0x9902 jT808_JT1078_0x9900_0x9902 = new JT809_JT1078_0x9900_0x9902();
jT808_JT1078_0x9900_0x9902.ChannelId = reader.ReadByte();
#warning 此处时间8个字节,暂使用utc时间代替
jT808_JT1078_0x9900_0x9902.StartTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9900_0x9902.EndTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9900_0x9902.AlarmType = reader.ReadUInt64();
jT808_JT1078_0x9900_0x9902.AVItemType = reader.ReadByte();
jT808_JT1078_0x9900_0x9902.StreamType = reader.ReadByte();
jT808_JT1078_0x9900_0x9902.MemType = reader.ReadByte();
jT808_JT1078_0x9900_0x9902.AuthorizeCode = reader.ReadArray(64).ToArray();
jT808_JT1078_0x9900_0x9902.GnssData = reader.ReadArray(36).ToArray();
return jT808_JT1078_0x9900_0x9902;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9900_0x9902 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime);
writer.WriteUInt64(value.AlarmType);
writer.WriteByte(value.AVItemType);
writer.WriteByte(value.StreamType);
writer.WriteByte(value.MemType);
writer.WriteArray(value.AuthorizeCode);
writer.WriteArray(value.GnssData);
}
}
}

+ 65
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9A00.cs View File

@@ -1,17 +1,76 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 从链路远程录像回放交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x9A00>))]
public class JT809_JT1078_0x9A00 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x9A00 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9A00>
{
public override ushort MsgId { get; } = JT809_JT1078_BusinessType.从链路远程录像回放业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.subordinate;

public override string Description { get; } = "从链路远程录像回放交互消息";

public JT809_JT1078_0x9A00 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9A00 value = new JT809_JT1078_0x9A00();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9A00 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 34
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9A00_0x9A01.cs View File

@@ -1,16 +1,14 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 远程录像回放请求消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9A00_0x9A01_Formatter))]
public class JT809_JT1078_0x9A00_0x9A01 : JT809SubBodies
public class JT809_JT1078_0x9A00_0x9A01 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9A00_0x9A01>
{
/// <summary>
/// 逻辑通道号
@@ -46,5 +44,35 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 36
/// </summary>
public byte[] GnssData { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像回放请求消息.ToUInt16Value();

public override string Description { get; } = "远程录像回放请求消息";

public JT809_JT1078_0x9A00_0x9A01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9A00_0x9A01 jT808_JT1078_0x9A00_0x9A01 = new JT809_JT1078_0x9A00_0x9A01();
jT808_JT1078_0x9A00_0x9A01.ChannelId = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A01.AVItemType = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A01.StreamType = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A01.MemType = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A01.PlayBackStartTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9A00_0x9A01.PlayBackEndTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9A00_0x9A01.AuthorizeCode = reader.ReadArray(64).ToArray();
jT808_JT1078_0x9A00_0x9A01.GnssData = reader.ReadArray(36).ToArray();
return jT808_JT1078_0x9A00_0x9A01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9A00_0x9A01 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteByte(value.AVItemType);
writer.WriteByte(value.StreamType);
writer.WriteByte(value.MemType);
writer.WriteUTCDateTime(value.PlayBackStartTime);
writer.WriteUTCDateTime(value.PlayBackEndTime);
writer.WriteArray(value.AuthorizeCode);
writer.WriteArray(value.GnssData);
}
}
}

+ 23
- 6
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9A00_0x9A02.cs View File

@@ -1,16 +1,14 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 远程录像回放控制消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9A00_0x9A02_Formatter))]
public class JT809_JT1078_0x9A00_0x9A02 : JT809SubBodies
public class JT809_JT1078_0x9A00_0x9A02 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9A00_0x9A02>
{
/// <summary>
/// 控制类型
@@ -24,5 +22,24 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 拖动位置
/// </summary>
public DateTime DateTime { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像回放控制消息.ToUInt16Value();

public override string Description { get; } = "远程录像回放控制消息";
public JT809_JT1078_0x9A00_0x9A02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9A00_0x9A02 jT808_JT1078_0x9A00_0x9A02 = new JT809_JT1078_0x9A00_0x9A02();
jT808_JT1078_0x9A00_0x9A02.ControlType = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A02.FastTime = reader.ReadByte();
jT808_JT1078_0x9A00_0x9A02.DateTime = reader.ReadUTCDateTime();
return jT808_JT1078_0x9A00_0x9A02;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9A00_0x9A02 value, IJT809Config config)
{
writer.WriteByte(value.ControlType);
writer.WriteByte(value.FastTime);
writer.WriteUTCDateTime(value.DateTime);
}
}
}

+ 65
- 3
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9B00.cs View File

@@ -1,5 +1,8 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Enums;
using JT809.Protocol.Exceptions;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,9 +12,68 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 从链路远程录像下载交互消息
/// </summary>
[JT809Formatter(typeof(JT809BodiesFormatter<JT809_JT1078_0x9B00>))]
public class JT809_JT1078_0x9B00 : JT809ExchangeMessageBodies
public class JT809_JT1078_0x9B00 : JT809ExchangeMessageBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9B00>
{
public override ushort MsgId { get; } = JT809_JT1078_BusinessType.从链路远程录像下载业务类.ToUInt16Value();

public override JT809_LinkType LinkType { get; } = JT809_LinkType.subordinate;

public override string Description { get; } = "从链路远程录像下载交互消息";

public JT809_JT1078_0x9B00 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9B00 value = new JT809_JT1078_0x9B00();
value.VehicleNo = reader.ReadString(21);
value.VehicleColor = (JT809VehicleColorType)reader.ReadByte();
value.SubBusinessType = reader.ReadUInt16();
value.DataLength = reader.ReadUInt32();
try
{
if (config.SubBusinessTypeFactory.TryGetValue(value.SubBusinessType, out object instance))
{
if (instance is JT809SubBodies subBodies)
{
if (!subBodies.SkipSerialization)
{
value.SubBodies = JT809MessagePackFormatterResolverExtensions.JT809DynamicDeserialize(
instance,
ref reader, config);
}
}
}
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
return value;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9B00 value, IJT809Config config)
{
writer.WriteStringPadRight(value.VehicleNo, 21);
writer.WriteByte((byte)value.VehicleColor);
writer.WriteUInt16(value.SubBusinessType);
try
{
// 先写入内容,然后在根据内容反写内容长度
writer.Skip(4, out int subContentLengthPosition);
if (value.SubBodies != null)
{
if (!value.SubBodies.SkipSerialization)
{
JT809MessagePackFormatterResolverExtensions.JT809DynamicSerialize(
value.SubBodies,
ref writer, value.SubBodies,
config);
}
}
writer.WriteInt32Return(writer.GetCurrentPosition() - subContentLengthPosition - 4, subContentLengthPosition);
}
catch
{
throw new JT809Exception(JT809ErrorCode.SubBodiesParseError, $"SubBusinessType>{value.SubBusinessType.ToString()}");
}
}
}
}

+ 38
- 3
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9B00_0x9B01.cs View File

@@ -1,5 +1,8 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,8 +12,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 远程录像下载请求消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9B00_0x9B01_Formatter))]
public class JT809_JT1078_0x9B00_0x9B01 : JT809SubBodies
public class JT809_JT1078_0x9B00_0x9B01 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9B00_0x9B01>
{
/// <summary>
/// 逻辑通道号
@@ -27,7 +29,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 报警类型
/// </summary>
public UInt64 AlarmType { get; set; }
public ulong AlarmType { get; set; }
/// <summary>
/// 音视频类型
/// </summary>
@@ -54,5 +56,38 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 36
/// </summary>
public byte[] GnssData { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像下载请求消息.ToUInt16Value();

public override string Description { get; } = "远程录像下载请求消息";
public JT809_JT1078_0x9B00_0x9B01 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9B00_0x9B01 jT808_JT1078_0x9B00_0x9B01 = new JT809_JT1078_0x9B00_0x9B01();
jT808_JT1078_0x9B00_0x9B01.ChannelId = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B01.StartTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9B00_0x9B01.EndTime = reader.ReadUTCDateTime();
jT808_JT1078_0x9B00_0x9B01.AlarmType = reader.ReadUInt64();
jT808_JT1078_0x9B00_0x9B01.AVItemType = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B01.StreamType = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B01.MemType = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B01.FileSize = reader.ReadUInt32();
jT808_JT1078_0x9B00_0x9B01.AuthorizeCode = reader.ReadArray(64).ToArray();
jT808_JT1078_0x9B00_0x9B01.GnssData = reader.ReadArray(36).ToArray();
return jT808_JT1078_0x9B00_0x9B01;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9B00_0x9B01 value, IJT809Config config)
{
writer.WriteByte(value.ChannelId);
writer.WriteUTCDateTime(value.StartTime);
writer.WriteUTCDateTime(value.EndTime);
writer.WriteUInt64(value.AlarmType);
writer.WriteByte(value.AVItemType);
writer.WriteByte(value.StreamType);
writer.WriteByte(value.MemType);
writer.WriteUInt32(value.FileSize);
writer.WriteArray(value.AuthorizeCode);
writer.WriteArray(value.GnssData);
}
}
}

+ 22
- 7
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9B00_0x9B02.cs View File

@@ -1,16 +1,13 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using System;
using System.Collections.Generic;
using System.Text;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;

namespace JT809.Protocol.Extensions.JT1078.MessageBody
{
/// <summary>
/// 远程录像下载完成通知应答消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9B00_0x9B02_Formatter))]
public class JT809_JT1078_0x9B00_0x9B02 : JT809SubBodies
public class JT809_JT1078_0x9B00_0x9B02 : JT809SubBodies,IJT809MessagePackFormatter<JT809_JT1078_0x9B00_0x9B02>
{
/// <summary>
/// 应答结果
@@ -20,5 +17,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 对应平台文件上传消息的流水号
/// </summary>
public ushort SessionId { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像下载完成通知应答消息.ToUInt16Value();

public override string Description { get; } = "远程录像下载完成通知应答消息";

public JT809_JT1078_0x9B00_0x9B02 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9B00_0x9B02 jT808_JT1078_0x9B00_0x9B02 = new JT809_JT1078_0x9B00_0x9B02();
jT808_JT1078_0x9B00_0x9B02.Result = reader.ReadByte();
jT808_JT1078_0x9B00_0x9B02.SessionId = reader.ReadUInt16();
return jT808_JT1078_0x9B00_0x9B02;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9B00_0x9B02 value, IJT809Config config)
{
writer.WriteByte(value.Result);
writer.WriteUInt16(value.SessionId);
}
}
}

+ 22
- 4
src/JT809.Protocol.Extensions.JT1078/MessageBody/JT809_JT1078_0x9B00_0x9B03.cs View File

@@ -1,5 +1,6 @@
using JT809.Protocol.Attributes;
using JT809.Protocol.Extensions.JT1078.Formatters;
using JT809.Protocol.Extensions.JT1078.Enums;
using JT809.Protocol.Formatters;
using JT809.Protocol.MessagePack;
using System;
using System.Collections.Generic;
using System.Text;
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// <summary>
/// 远程录像下载控制消息
/// </summary>
[JT809Formatter(typeof(JT809_JT1078_0x9B00_0x9B03_Formatter))]
public class JT809_JT1078_0x9B00_0x9B03 : JT809SubBodies
public class JT809_JT1078_0x9B00_0x9B03 : JT809SubBodies, IJT809MessagePackFormatter<JT809_JT1078_0x9B00_0x9B03>
{
/// <summary>
/// 对应平台文件上传消息的流水号
@@ -20,5 +20,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody
/// 控制类型
/// </summary>
public byte Type { get; set; }

public override ushort SubMsgId { get; } = JT809_JT1078_SubBusinessType.远程录像下载控制消息.ToUInt16Value();

public override string Description { get; } = "远程录像下载控制消息";

public JT809_JT1078_0x9B00_0x9B03 Deserialize(ref JT809MessagePackReader reader, IJT809Config config)
{
JT809_JT1078_0x9B00_0x9B03 jT808_JT1078_0x9B00_0x9B03 = new JT809_JT1078_0x9B00_0x9B03();
jT808_JT1078_0x9B00_0x9B03.SessionId = reader.ReadUInt16();
jT808_JT1078_0x9B00_0x9B03.Type = reader.ReadByte();
return jT808_JT1078_0x9B00_0x9B03;
}

public void Serialize(ref JT809MessagePackWriter writer, JT809_JT1078_0x9B00_0x9B03 value, IJT809Config config)
{
writer.WriteUInt16(value.SessionId);
writer.WriteByte(value.Type);
}
}
}

Loading…
Cancel
Save