@@ -5,8 +5,8 @@ | |||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <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" Version="2.4.1" /> | ||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | <PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | ||||
<PrivateAssets>all</PrivateAssets> | <PrivateAssets>all</PrivateAssets> | ||||
@@ -12,47 +12,8 @@ namespace JT809.Protocol.Extensions.JT1078 | |||||
public static IJT809Builder AddJT1078Configure(this IJT809Builder iJT809Builder) | public static IJT809Builder AddJT1078Configure(this IJT809Builder iJT809Builder) | ||||
{ | { | ||||
iJT809Builder.Config.Register(Assembly.GetExecutingAssembly()); | 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; | return iJT809Builder; | ||||
} | } | ||||
} | } | ||||
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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(); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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(); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -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); | |||||
} | |||||
} | |||||
} |
@@ -19,6 +19,14 @@ | |||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
</PropertyGroup> | </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> | <ItemGroup> | ||||
<None Include="..\..\LICENSE"> | <None Include="..\..\LICENSE"> | ||||
<Pack>True</Pack> | <Pack>True</Pack> | ||||
@@ -27,7 +35,7 @@ | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="JT809" Version="2.1.3" /> | |||||
<PackageReference Include="JT809" Version="2.1.4-preview1" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
</Project> | </Project> |
@@ -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> |
@@ -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.Formatters; | ||||
using JT809.Protocol.MessagePack; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,9 +12,68 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 主链路时效口令交互消息 | /// 主链路时效口令交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 时效口令上报消息 | /// 时效口令上报消息 | ||||
/// </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> | /// <summary> | ||||
/// 企业视频监控平台唯一编码,平台所属企业行政区域代码+平台公共编号 | /// 企业视频监控平台唯一编码,平台所属企业行政区域代码+平台公共编号 | ||||
@@ -24,5 +24,25 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 跨域地区政府平台使用的时效口令 | /// 跨域地区政府平台使用的时效口令 | ||||
/// </summary> | /// </summary> | ||||
public byte[] AuthorizeCode2 { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -1,5 +1,4 @@ | |||||
using JT809.Protocol.Attributes; | |||||
using JT809.Protocol.Extensions.JT1078.Formatters; | |||||
using JT809.Protocol.Extensions.JT1078.Enums; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,9 +8,12 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 时效口令请求消息 | /// 时效口令请求消息 | ||||
/// </summary> | /// </summary> | ||||
[JT809Formatter(typeof(JT809_JT1078_0x1700_0x1702_Formatter))] | |||||
public class JT809_JT1078_0x1700_0x1702 : JT809SubBodies | 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; | |||||
} | } | ||||
} | } |
@@ -1,5 +1,7 @@ | |||||
using JT809.Protocol.Attributes; | |||||
using JT809.Protocol.Enums; | |||||
using JT809.Protocol.Exceptions; | |||||
using JT809.Protocol.Formatters; | using JT809.Protocol.Formatters; | ||||
using JT809.Protocol.MessagePack; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,9 +11,68 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 主链路实时音视频交互消息 | /// 主链路实时音视频交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 实时音视频请求应答消息 | /// 实时音视频请求应答消息 | ||||
/// </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> | /// <summary> | ||||
/// 应答结果 | /// 应答结果 | ||||
@@ -25,5 +25,25 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 企业视频服务器端口号 | /// 企业视频服务器端口号 | ||||
/// </summary> | /// </summary> | ||||
public ushort ServerPort { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,12 +10,27 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 主动请求停止实时音视频传输应答消息 | /// 主动请求停止实时音视频传输应答消息 | ||||
/// </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> | ||||
/// 应答结果 | /// 应答结果 | ||||
/// </summary> | /// </summary> | ||||
public byte Result { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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.Formatters; | ||||
using JT809.Protocol.MessagePack; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,9 +12,68 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 主链路远程录像检索交互消息 | /// 主链路远程录像检索交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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.Collections.Generic; | ||||
using System.Text; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 主动上传音视频资源目录信息消息 | /// 主动上传音视频资源目录信息消息 | ||||
/// </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> | /// <summary> | ||||
/// 资源目录项数目 | /// 资源目录项数目 | ||||
@@ -20,5 +18,40 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 资源目录项列表 | /// 资源目录项列表 | ||||
/// </summary> | /// </summary> | ||||
public List<JT809_JT1078_0x1900_Record> ItemList { get; set; } | 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); | |||||
} | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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.Collections.Generic; | ||||
using System.Text; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 查询音视频资源目录应答消息 | /// 查询音视频资源目录应答消息 | ||||
/// </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> | /// <summary> | ||||
/// 应答结果 | /// 应答结果 | ||||
@@ -25,5 +23,42 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 与JT808_JT1078_0x1900_0x1901共用同一个子类 | /// 与JT808_JT1078_0x1900_0x1901共用同一个子类 | ||||
/// </summary> | /// </summary> | ||||
public List<JT809_JT1078_0x1900_Record> ItemList { get; set; } | 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); | |||||
} | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,8 +9,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 上传音视频资源目录项 | /// 上传音视频资源目录项 | ||||
/// </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> | /// <summary> | ||||
/// 逻辑通道号 | /// 逻辑通道号 | ||||
@@ -27,7 +26,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 报警标志物 | /// 报警标志物 | ||||
/// </summary> | /// </summary> | ||||
public UInt64 AlarmType { get; set; } | |||||
public ulong AlarmType { get; set; } | |||||
/// <summary> | /// <summary> | ||||
/// 音视频类型 | /// 音视频类型 | ||||
/// </summary> | /// </summary> | ||||
@@ -44,5 +43,30 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 文件大小 | /// 文件大小 | ||||
/// </summary> | /// </summary> | ||||
public uint FileSize { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 JT809.Protocol.Formatters; | ||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using JT809.Protocol.MessagePack; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 主链路远程录像回放交互消息 | /// 主链路远程录像回放交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 远程录像回放请求应答消息 | /// 远程录像回放请求应答消息 | ||||
/// </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> | /// <summary> | ||||
/// 企业视频服务器ip地址 | /// 企业视频服务器ip地址 | ||||
@@ -25,5 +25,25 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 应答结果 | /// 应答结果 | ||||
/// </summary> | /// </summary> | ||||
public byte Result { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 远程录像回放控制应答消息 | /// 远程录像回放控制应答消息 | ||||
/// </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> | ||||
/// 应答结果 | /// 应答结果 | ||||
/// </summary> | /// </summary> | ||||
public byte Result { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 JT809.Protocol.Formatters; | ||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using JT809.Protocol.MessagePack; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 主链路远程录像下载交互消息 | /// 主链路远程录像下载交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 远程录像下载请求应答消息 | /// 远程录像下载请求应答消息 | ||||
/// </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> | /// <summary> | ||||
/// 应答结果 | /// 应答结果 | ||||
@@ -20,5 +20,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 对应平台文件上传消息的流水号 | /// 对应平台文件上传消息的流水号 | ||||
/// </summary> | /// </summary> | ||||
public ushort SessionId { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 远程录像下载通知消息 | /// 远程录像下载通知消息 | ||||
/// </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> | /// <summary> | ||||
/// 应答结果 | /// 应答结果 | ||||
@@ -43,5 +40,33 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 200 | /// 200 | ||||
/// </summary> | /// </summary> | ||||
public string FilePath { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 远程录像下载控制应答消息 | /// 远程录像下载控制应答消息 | ||||
/// </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> | ||||
/// 应答结果 | /// 应答结果 | ||||
/// </summary> | /// </summary> | ||||
public byte Result { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 JT809.Protocol.Formatters; | ||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using JT809.Protocol.MessagePack; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 从链路时效口令交互消息 | /// 从链路时效口令交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 时效口令请求应答消息 | /// 时效口令请求应答消息 | ||||
/// </summary> | /// </summary> | ||||
[JT809Formatter(typeof(JT809_JT1078_0x9700_0x9702_Formatter))] | |||||
public class JT809_JT1078_0x9700_0x9702 : JT809SubBodies | 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; | |||||
} | } | ||||
} | } |
@@ -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 JT809.Protocol.Formatters; | ||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using JT809.Protocol.MessagePack; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 从链路实时音视频交互信息 | /// 从链路实时音视频交互信息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 实时音视频请求消息 | /// 实时音视频请求消息 | ||||
/// </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> | /// <summary> | ||||
/// 逻辑通道号 | /// 逻辑通道号 | ||||
@@ -28,5 +25,27 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 车辆进入跨域地区后5min之内的任何位置,仅跨域访问请求时使用此字段 | /// 车辆进入跨域地区后5min之内的任何位置,仅跨域访问请求时使用此字段 | ||||
/// </summary> | /// </summary> | ||||
public byte[] GnssData { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 主动请求停止实时音视频传输消息 | /// 主动请求停止实时音视频传输消息 | ||||
/// </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> | /// <summary> | ||||
/// 逻辑通道号 | /// 逻辑通道号 | ||||
@@ -20,5 +17,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 音视频类型 | /// 音视频类型 | ||||
/// </summary> | /// </summary> | ||||
public byte AVitemType { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 JT809.Protocol.Formatters; | ||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using JT809.Protocol.MessagePack; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 从链路远程录像检索交互消息 | /// 从链路远程录像检索交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 主动上传音视频资源目录信息应答消息 | /// 主动上传音视频资源目录信息应答消息 | ||||
/// </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> | /// <summary> | ||||
/// 应答结果 | /// 应答结果 | ||||
@@ -20,5 +17,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 资源目录总数 | /// 资源目录总数 | ||||
/// </summary> | /// </summary> | ||||
public byte ItemNumber { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 查询音视频资源目录请求消息 | /// 查询音视频资源目录请求消息 | ||||
/// </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> | /// <summary> | ||||
/// 逻辑通道号 | /// 逻辑通道号 | ||||
@@ -27,7 +25,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 报警类型 | /// 报警类型 | ||||
/// </summary> | /// </summary> | ||||
public UInt64 AlarmType { get; set; } | |||||
public ulong AlarmType { get; set; } | |||||
/// <summary> | /// <summary> | ||||
/// 音视频类型 | /// 音视频类型 | ||||
/// </summary> | /// </summary> | ||||
@@ -50,5 +48,38 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 36 | /// 36 | ||||
/// </summary> | /// </summary> | ||||
public byte[] GnssData { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 JT809.Protocol.Formatters; | ||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
using JT809.Protocol.MessagePack; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 从链路远程录像回放交互消息 | /// 从链路远程录像回放交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 远程录像回放请求消息 | /// 远程录像回放请求消息 | ||||
/// </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> | /// <summary> | ||||
/// 逻辑通道号 | /// 逻辑通道号 | ||||
@@ -46,5 +44,35 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 36 | /// 36 | ||||
/// </summary> | /// </summary> | ||||
public byte[] GnssData { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT809.Protocol.Extensions.JT1078.MessageBody | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 远程录像回放控制消息 | /// 远程录像回放控制消息 | ||||
/// </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> | /// <summary> | ||||
/// 控制类型 | /// 控制类型 | ||||
@@ -24,5 +22,24 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 拖动位置 | /// 拖动位置 | ||||
/// </summary> | /// </summary> | ||||
public DateTime DateTime { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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.Formatters; | ||||
using JT809.Protocol.MessagePack; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,9 +12,68 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 从链路远程录像下载交互消息 | /// 从链路远程录像下载交互消息 | ||||
/// </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()}"); | |||||
} | |||||
} | |||||
} | } | ||||
} | } |
@@ -1,5 +1,8 @@ | |||||
using JT809.Protocol.Attributes; | using JT809.Protocol.Attributes; | ||||
using JT809.Protocol.Extensions.JT1078.Enums; | |||||
using JT809.Protocol.Extensions.JT1078.Formatters; | using JT809.Protocol.Extensions.JT1078.Formatters; | ||||
using JT809.Protocol.Formatters; | |||||
using JT809.Protocol.MessagePack; | |||||
using System; | using System; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,8 +12,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 远程录像下载请求消息 | /// 远程录像下载请求消息 | ||||
/// </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> | /// <summary> | ||||
/// 逻辑通道号 | /// 逻辑通道号 | ||||
@@ -27,7 +29,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 报警类型 | /// 报警类型 | ||||
/// </summary> | /// </summary> | ||||
public UInt64 AlarmType { get; set; } | |||||
public ulong AlarmType { get; set; } | |||||
/// <summary> | /// <summary> | ||||
/// 音视频类型 | /// 音视频类型 | ||||
/// </summary> | /// </summary> | ||||
@@ -54,5 +56,38 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 36 | /// 36 | ||||
/// </summary> | /// </summary> | ||||
public byte[] GnssData { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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 | namespace JT809.Protocol.Extensions.JT1078.MessageBody | ||||
{ | { | ||||
/// <summary> | /// <summary> | ||||
/// 远程录像下载完成通知应答消息 | /// 远程录像下载完成通知应答消息 | ||||
/// </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> | /// <summary> | ||||
/// 应答结果 | /// 应答结果 | ||||
@@ -20,5 +17,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 对应平台文件上传消息的流水号 | /// 对应平台文件上传消息的流水号 | ||||
/// </summary> | /// </summary> | ||||
public ushort SessionId { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |
@@ -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; | ||||
using System.Collections.Generic; | using System.Collections.Generic; | ||||
using System.Text; | using System.Text; | ||||
@@ -9,8 +10,7 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// <summary> | /// <summary> | ||||
/// 远程录像下载控制消息 | /// 远程录像下载控制消息 | ||||
/// </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> | /// <summary> | ||||
/// 对应平台文件上传消息的流水号 | /// 对应平台文件上传消息的流水号 | ||||
@@ -20,5 +20,23 @@ namespace JT809.Protocol.Extensions.JT1078.MessageBody | |||||
/// 控制类型 | /// 控制类型 | ||||
/// </summary> | /// </summary> | ||||
public byte Type { get; set; } | 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); | |||||
} | |||||
} | } | ||||
} | } |