@@ -1,6 +1,6 @@ | |||||
language: csharp | language: csharp | ||||
solution: JTActiveSafety.sln | solution: JTActiveSafety.sln | ||||
dotnet: 2.2.101 | |||||
dotnet: 3.1.100 | |||||
os: linux | os: linux | ||||
mono: none | mono: none | ||||
dist: trusty2 | dist: trusty2 | ||||
@@ -9,10 +9,12 @@ JTActiveSafety协议、道路运输车辆主动安全智能防控系统-主动 | |||||
## 基于JT808扩展的JTActiveSafety消息协议 | ## 基于JT808扩展的JTActiveSafety消息协议 | ||||
### JT808扩展协议消息对照表 | |||||
## NuGet安装 | |||||
| 序号 | 消息ID | 完成情况 | 测试情况 | 消息体名称 | | |||||
| :---: | :---: | :---: | :---: | :---:| | |||||
| Package Name | Version | Downloads | | |||||
| --------------------- | -------------------------------------------------- | --------------------------------------------------- | | |||||
| Install-Package JT808 |  |  | | |||||
| Install-Package JT808.Protocol.Extensions.JTActiveSafety|  |  | | |||||
### 使用方法 | ### 使用方法 | ||||
@@ -21,3 +23,8 @@ IServiceCollection serviceDescriptors1 = new ServiceCollection(); | |||||
serviceDescriptors1.AddJT808Configure() | serviceDescriptors1.AddJT808Configure() | ||||
.AddJTActiveSafetyConfigure(); | .AddJTActiveSafetyConfigure(); | ||||
``` | ``` | ||||
### JT808扩展协议消息对照表 | |||||
| 序号 | 消息ID | 完成情况 | 测试情况 | 消息体名称 | | |||||
| :---: | :---: | :---: | :---: | :---:| |
@@ -1,59 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x0200_0x64_Formatter : IJT808MessagePackFormatter<JT808_0x0200_0x64> | |||||
{ | |||||
public JT808_0x0200_0x64 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x0200_0x64 jT808_0X0200_0X64 = new JT808_0x0200_0x64(); | |||||
jT808_0X0200_0X64.AttachInfoId = reader.ReadByte(); | |||||
jT808_0X0200_0X64.AttachInfoLength = reader.ReadByte(); | |||||
jT808_0X0200_0X64.AlarmId = reader.ReadUInt32(); | |||||
jT808_0X0200_0X64.FlagState = reader.ReadByte(); | |||||
jT808_0X0200_0X64.AlarmOrEventType = reader.ReadByte(); | |||||
jT808_0X0200_0X64.AlarmLevel = reader.ReadByte(); | |||||
jT808_0X0200_0X64.VehicleSpeed = reader.ReadByte(); | |||||
jT808_0X0200_0X64.CarOrPedestrianDistanceAhead = reader.ReadByte(); | |||||
jT808_0X0200_0X64.DeviateType = reader.ReadByte(); | |||||
jT808_0X0200_0X64.RoadSignIdentificationType = reader.ReadByte(); | |||||
jT808_0X0200_0X64.RoadSignIdentificationData = reader.ReadByte(); | |||||
jT808_0X0200_0X64.Speed = reader.ReadByte(); | |||||
jT808_0X0200_0X64.Altitude = reader.ReadUInt16(); | |||||
jT808_0X0200_0X64.Latitude = (int)reader.ReadUInt32(); | |||||
jT808_0X0200_0X64.Longitude = (int)reader.ReadUInt32(); | |||||
jT808_0X0200_0X64.AlarmTime = reader.ReadDateTime6(); | |||||
jT808_0X0200_0X64.VehicleState = reader.ReadUInt16(); | |||||
jT808_0X0200_0X64.AlarmIdentification = JT808_AlarmIdentificationProperty_Formatter.Instance.Deserialize(ref reader, config); | |||||
return jT808_0X0200_0X64; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x64 value, IJT808Config config) | |||||
{ | |||||
writer.WriteByte(value.AttachInfoId); | |||||
writer.WriteByte(value.AttachInfoLength); | |||||
writer.WriteUInt32(value.AlarmId); | |||||
writer.WriteByte(value.FlagState); | |||||
writer.WriteByte(value.AlarmOrEventType); | |||||
writer.WriteByte(value.AlarmLevel); | |||||
writer.WriteByte(value.VehicleSpeed); | |||||
writer.WriteByte(value.CarOrPedestrianDistanceAhead); | |||||
writer.WriteByte(value.DeviateType); | |||||
writer.WriteByte(value.RoadSignIdentificationType); | |||||
writer.WriteByte(value.RoadSignIdentificationData); | |||||
writer.WriteByte(value.Speed); | |||||
writer.WriteUInt16(value.Altitude); | |||||
writer.WriteUInt32((uint)value.Latitude); | |||||
writer.WriteUInt32((uint)value.Longitude); | |||||
writer.WriteDateTime6(value.AlarmTime); | |||||
writer.WriteUInt16(value.VehicleState); | |||||
JT808_AlarmIdentificationProperty_Formatter.Instance.Serialize(ref writer, value.AlarmIdentification, config); | |||||
} | |||||
} | |||||
} |
@@ -1,57 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x0200_0x65_Formatter : IJT808MessagePackFormatter<JT808_0x0200_0x65> | |||||
{ | |||||
public JT808_0x0200_0x65 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x0200_0x65 jT808_0X0200_0X65 = new JT808_0x0200_0x65(); | |||||
jT808_0X0200_0X65.AttachInfoId = reader.ReadByte(); | |||||
jT808_0X0200_0X65.AttachInfoLength = reader.ReadByte(); | |||||
jT808_0X0200_0X65.AlarmId = reader.ReadUInt32(); | |||||
jT808_0X0200_0X65.FlagState = reader.ReadByte(); | |||||
jT808_0X0200_0X65.AlarmOrEventType = reader.ReadByte(); | |||||
jT808_0X0200_0X65.AlarmLevel = reader.ReadByte(); | |||||
jT808_0X0200_0X65.Fatigue = reader.ReadByte(); | |||||
jT808_0X0200_0X65.Retain = reader.ReadArray(4).ToArray(); | |||||
jT808_0X0200_0X65.Speed = reader.ReadByte(); | |||||
jT808_0X0200_0X65.Altitude = reader.ReadUInt16(); | |||||
jT808_0X0200_0X65.Latitude = (int)reader.ReadUInt32(); | |||||
jT808_0X0200_0X65.Longitude = (int)reader.ReadUInt32(); | |||||
jT808_0X0200_0X65.AlarmTime = reader.ReadDateTime6(); | |||||
jT808_0X0200_0X65.VehicleState = reader.ReadUInt16(); | |||||
jT808_0X0200_0X65.AlarmIdentification = JT808_AlarmIdentificationProperty_Formatter.Instance.Deserialize(ref reader, config); | |||||
return jT808_0X0200_0X65; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x65 value, IJT808Config config) | |||||
{ | |||||
writer.WriteByte(value.AttachInfoId); | |||||
writer.WriteByte(value.AttachInfoLength); | |||||
writer.WriteUInt32(value.AlarmId); | |||||
writer.WriteByte(value.FlagState); | |||||
writer.WriteByte(value.AlarmOrEventType); | |||||
writer.WriteByte(value.AlarmLevel); | |||||
writer.WriteByte(value.Fatigue); | |||||
if (value.Retain.Length != 4) | |||||
{ | |||||
throw new ArgumentOutOfRangeException($"{nameof(JT808_0x0200_0x65.Retain)} length==4"); | |||||
} | |||||
writer.WriteArray(value.Retain); | |||||
writer.WriteByte(value.Speed); | |||||
writer.WriteUInt16(value.Altitude); | |||||
writer.WriteUInt32((uint)value.Latitude); | |||||
writer.WriteUInt32((uint)value.Longitude); | |||||
writer.WriteDateTime6(value.AlarmTime); | |||||
writer.WriteUInt16(value.VehicleState); | |||||
JT808_AlarmIdentificationProperty_Formatter.Instance.Serialize(ref writer, value.AlarmIdentification, config); | |||||
} | |||||
} | |||||
} |
@@ -1,73 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x0200_0x66_Formatter : IJT808MessagePackFormatter<JT808_0x0200_0x66> | |||||
{ | |||||
public JT808_0x0200_0x66 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x0200_0x66 jT808_0X0200_0X66 = new JT808_0x0200_0x66(); | |||||
jT808_0X0200_0X66.AttachInfoId = reader.ReadByte(); | |||||
jT808_0X0200_0X66.AttachInfoLength = reader.ReadByte(); | |||||
jT808_0X0200_0X66.AlarmId = reader.ReadUInt32(); | |||||
jT808_0X0200_0X66.FlagState = reader.ReadByte(); | |||||
jT808_0X0200_0X66.Speed = reader.ReadByte(); | |||||
jT808_0X0200_0X66.Altitude = reader.ReadUInt16(); | |||||
jT808_0X0200_0X66.Latitude = (int)reader.ReadUInt32(); | |||||
jT808_0X0200_0X66.Longitude = (int)reader.ReadUInt32(); | |||||
jT808_0X0200_0X66.AlarmTime = reader.ReadDateTime6(); | |||||
jT808_0X0200_0X66.VehicleState = reader.ReadUInt16(); | |||||
jT808_0X0200_0X66.AlarmIdentification = JT808_AlarmIdentificationProperty_Formatter.Instance.Deserialize(ref reader, config); | |||||
jT808_0X0200_0X66.AlarmOrEventCount = reader.ReadByte(); | |||||
if (jT808_0X0200_0X66.AlarmOrEventCount > 0) | |||||
{ | |||||
jT808_0X0200_0X66.AlarmOrEvents = new List<AlarmOrEventProperty>(); | |||||
for(int i=0;i< jT808_0X0200_0X66.AlarmOrEventCount; i++) | |||||
{ | |||||
AlarmOrEventProperty alarmOrEventProperty = new AlarmOrEventProperty(); | |||||
alarmOrEventProperty.TirePressureAlarmPosition = reader.ReadByte(); | |||||
alarmOrEventProperty.AlarmOrEventType = reader.ReadUInt16(); | |||||
alarmOrEventProperty.TirePressure = reader.ReadUInt16(); | |||||
alarmOrEventProperty.TireTemperature = reader.ReadUInt16(); | |||||
alarmOrEventProperty.BatteryLevel = reader.ReadUInt16(); | |||||
jT808_0X0200_0X66.AlarmOrEvents.Add(alarmOrEventProperty); | |||||
} | |||||
} | |||||
return jT808_0X0200_0X66; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x66 value, IJT808Config config) | |||||
{ | |||||
writer.WriteByte(value.AttachInfoId); | |||||
writer.Skip(1, out int AttachInfoLengthPosition); | |||||
writer.WriteUInt32(value.AlarmId); | |||||
writer.WriteByte(value.FlagState); | |||||
writer.WriteByte(value.Speed); | |||||
writer.WriteUInt16(value.Altitude); | |||||
writer.WriteUInt32((uint)value.Latitude); | |||||
writer.WriteUInt32((uint)value.Longitude); | |||||
writer.WriteDateTime6(value.AlarmTime); | |||||
writer.WriteUInt16(value.VehicleState); | |||||
JT808_AlarmIdentificationProperty_Formatter.Instance.Serialize(ref writer, value.AlarmIdentification, config); | |||||
if (value.AlarmOrEvents.Count > 0) | |||||
{ | |||||
writer.WriteByte((byte)value.AlarmOrEvents.Count); | |||||
foreach(var item in value.AlarmOrEvents) | |||||
{ | |||||
writer.WriteByte(item.TirePressureAlarmPosition); | |||||
writer.WriteUInt16(item.AlarmOrEventType); | |||||
writer.WriteUInt16(item.TirePressure); | |||||
writer.WriteUInt16(item.TireTemperature); | |||||
writer.WriteUInt16(item.BatteryLevel); | |||||
} | |||||
} | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - AttachInfoLengthPosition - 1), AttachInfoLengthPosition); | |||||
} | |||||
} | |||||
} |
@@ -1,49 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x0200_0x67_Formatter : IJT808MessagePackFormatter<JT808_0x0200_0x67> | |||||
{ | |||||
public JT808_0x0200_0x67 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x0200_0x67 jT808_0X0200_0X67 = new JT808_0x0200_0x67(); | |||||
jT808_0X0200_0X67.AttachInfoId = reader.ReadByte(); | |||||
jT808_0X0200_0X67.AttachInfoLength = reader.ReadByte(); | |||||
jT808_0X0200_0X67.AlarmId = reader.ReadUInt32(); | |||||
jT808_0X0200_0X67.FlagState = reader.ReadByte(); | |||||
jT808_0X0200_0X67.AlarmOrEventType = reader.ReadByte(); | |||||
jT808_0X0200_0X67.AlarmLevel = reader.ReadByte(); | |||||
jT808_0X0200_0X67.Speed = reader.ReadByte(); | |||||
jT808_0X0200_0X67.Altitude = reader.ReadUInt16(); | |||||
jT808_0X0200_0X67.Latitude = (int)reader.ReadUInt32(); | |||||
jT808_0X0200_0X67.Longitude = (int)reader.ReadUInt32(); | |||||
jT808_0X0200_0X67.AlarmTime = reader.ReadDateTime6(); | |||||
jT808_0X0200_0X67.VehicleState = reader.ReadUInt16(); | |||||
jT808_0X0200_0X67.AlarmIdentification = JT808_AlarmIdentificationProperty_Formatter.Instance.Deserialize(ref reader, config); | |||||
return jT808_0X0200_0X67; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x0200_0x67 value, IJT808Config config) | |||||
{ | |||||
writer.WriteByte(value.AttachInfoId); | |||||
writer.WriteByte(value.AttachInfoLength); | |||||
writer.WriteUInt32(value.AlarmId); | |||||
writer.WriteByte(value.FlagState); | |||||
writer.WriteByte(value.AlarmOrEventType); | |||||
writer.WriteByte(value.AlarmLevel); | |||||
writer.WriteByte(value.Speed); | |||||
writer.WriteUInt16(value.Altitude); | |||||
writer.WriteUInt32((uint)value.Latitude); | |||||
writer.WriteUInt32((uint)value.Longitude); | |||||
writer.WriteDateTime6(value.AlarmTime); | |||||
writer.WriteUInt16(value.VehicleState); | |||||
JT808_AlarmIdentificationProperty_Formatter.Instance.Serialize(ref writer, value.AlarmIdentification, config); | |||||
} | |||||
} | |||||
} |
@@ -1,58 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x1210_Formatter : IJT808MessagePackFormatter<JT808_0x1210> | |||||
{ | |||||
public JT808_0x1210 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x1210 jT808_0X1210 = new JT808_0x1210(); | |||||
jT808_0X1210.TerminalID = reader.ReadString(7); | |||||
jT808_0X1210.AlarmIdentification = JT808_AlarmIdentificationProperty_Formatter.Instance.Deserialize(ref reader, config); | |||||
jT808_0X1210.AlarmId = reader.ReadString(32); | |||||
jT808_0X1210.InfoType = reader.ReadByte(); | |||||
jT808_0X1210.AttachCount = reader.ReadByte(); | |||||
if (jT808_0X1210.AttachCount > 0) | |||||
{ | |||||
jT808_0X1210.AttachInfos = new List<AttachProperty>(); | |||||
for(int i=0;i< jT808_0X1210.AttachCount; i++) | |||||
{ | |||||
AttachProperty attachProperty = new AttachProperty(); | |||||
attachProperty.FileNameLength= reader.ReadByte(); | |||||
attachProperty.FileName= reader.ReadString(attachProperty.FileNameLength); | |||||
attachProperty.FileSize= reader.ReadUInt32(); | |||||
jT808_0X1210.AttachInfos.Add(attachProperty); | |||||
} | |||||
} | |||||
return jT808_0X1210; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1210 value, IJT808Config config) | |||||
{ | |||||
writer.WriteString(value.TerminalID.PadRight(7,'0')); | |||||
JT808_AlarmIdentificationProperty_Formatter.Instance.Serialize(ref writer, value.AlarmIdentification, config); | |||||
writer.WriteString(value.AlarmId); | |||||
writer.WriteByte(value.InfoType); | |||||
if(value.AttachInfos!=null && value.AttachInfos.Count > 0) | |||||
{ | |||||
foreach(var item in value.AttachInfos) | |||||
{ | |||||
writer.Skip(1, out int FileNameLengthPosition); | |||||
writer.WriteString(item.FileName); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - FileNameLengthPosition - 1), FileNameLengthPosition); | |||||
writer.WriteUInt32(item.FileSize); | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
writer.WriteByte(0); | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -1,32 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x1211_Formatter : IJT808MessagePackFormatter<JT808_0x1211> | |||||
{ | |||||
public JT808_0x1211 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x1211 jT808_0X1211 = new JT808_0x1211(); | |||||
jT808_0X1211.FileNameLength= reader.ReadByte(); | |||||
jT808_0X1211.FileName= reader.ReadString(jT808_0X1211.FileNameLength); | |||||
jT808_0X1211.FileType = reader.ReadByte(); | |||||
jT808_0X1211.FileSize= reader.ReadUInt32(); | |||||
return jT808_0X1211; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1211 value, IJT808Config config) | |||||
{ | |||||
writer.Skip(1, out int FileNameLengthPosition); | |||||
writer.WriteString(value.FileName); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - FileNameLengthPosition - 1), FileNameLengthPosition); | |||||
writer.WriteByte(value.FileType); | |||||
writer.WriteUInt32(value.FileSize); | |||||
} | |||||
} | |||||
} |
@@ -1,32 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x1212_Formatter : IJT808MessagePackFormatter<JT808_0x1212> | |||||
{ | |||||
public JT808_0x1212 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x1212 jT808_0X1212 = new JT808_0x1212(); | |||||
jT808_0X1212.FileNameLength= reader.ReadByte(); | |||||
jT808_0X1212.FileName= reader.ReadString(jT808_0X1212.FileNameLength); | |||||
jT808_0X1212.FileType = reader.ReadByte(); | |||||
jT808_0X1212.FileSize= reader.ReadUInt32(); | |||||
return jT808_0X1212; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x1212 value, IJT808Config config) | |||||
{ | |||||
writer.Skip(1, out int FileNameLengthPosition); | |||||
writer.WriteString(value.FileName); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - FileNameLengthPosition - 1), FileNameLengthPosition); | |||||
writer.WriteByte(value.FileType); | |||||
writer.WriteUInt32(value.FileSize); | |||||
} | |||||
} | |||||
} |
@@ -1,117 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x8103_0xF364_Formatter : IJT808MessagePackFormatter<JT808_0x8103_0xF364> | |||||
{ | |||||
public JT808_0x8103_0xF364 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x8103_0xF364 jT808_0X8103_0XF364 = new JT808_0x8103_0xF364(); | |||||
jT808_0X8103_0XF364.ParamId = reader.ReadUInt32(); | |||||
jT808_0X8103_0XF364.ParamLength = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.AlarmJudgeSpeedThreshold= reader.ReadByte(); | |||||
jT808_0X8103_0XF364.WarningVolume = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.ActivePhotographyStrategy = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.ActivelyTimePhotoInterval = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF364.ActiveDistancePhotographyDistanceInterval = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF364.SingleInitiativePhotos = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.SingleInitiativePhotosInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.PhotoResolution = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VideoRecordingResolution = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.AlarmEnable = reader.ReadUInt32(); | |||||
jT808_0X8103_0XF364.EventEnable = reader.ReadUInt32(); | |||||
jT808_0X8103_0XF364.Placeholder1 = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.DistanceThresholdObstacleAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.HierarchicalSpeedThresholdObstacleAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterObstacleAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.BarrierAlarmPhotographs = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.ObstacleAlarmInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.FrequentChannelChangeAlarmJudgmentTimePeriod = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.FrequentAlarmJudgmentNumberChannelChange = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.HierarchicalSpeedThresholdFrequentChannelChangeAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.FrequentChannelChangeAlarmPhotos = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.FrequentLaneChangeAlarmInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.GradedSpeedThresholdLaneDeviationAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.LaneDepartureAlarmPhoto = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.LaneDepartureAlarmPhotoInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.ForwardCollisionWarningTimeThreshold = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.HierarchicalSpeedThresholdForwardCollisionWarning = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.ForwardCollisionAlarmPhotographs = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.ForwardCollisionAlarmInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.PedestrianCollisionAlarmTimeThreshold = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.PedestrianCollisionAlarmEnablingSpeedThreshold = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.PedestrianCollisionAlarmPhotos = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.PedestrianCollisionAlarmInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VehicleDistanceMonitoringAlarmDistanceThreshold = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.AlarmPhotoVehicleCloseDistance = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.AlarmPhotoVehicleCloseDistanceInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.RoadSignRecognitionPhotographs = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.RoadSignRecognitionPhotographsInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF364.Placeholder2 = reader.ReadArray(4).ToArray(); | |||||
return jT808_0X8103_0XF364; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF364 value, IJT808Config config) | |||||
{ | |||||
writer.WriteUInt32(value.ParamId); | |||||
writer.Skip(1,out int ParamLengthPosition); | |||||
writer.WriteByte(value.AlarmJudgeSpeedThreshold); | |||||
writer.WriteByte(value.WarningVolume); | |||||
writer.WriteByte(value.ActivePhotographyStrategy); | |||||
writer.WriteUInt16(value.ActivelyTimePhotoInterval); | |||||
writer.WriteUInt16(value.ActiveDistancePhotographyDistanceInterval); | |||||
writer.WriteByte(value.SingleInitiativePhotos); | |||||
writer.WriteByte(value.SingleInitiativePhotosInterval); | |||||
writer.WriteByte(value.PhotoResolution); | |||||
writer.WriteByte(value.VideoRecordingResolution); | |||||
writer.WriteUInt32(value.AlarmEnable); | |||||
writer.WriteUInt32(value.EventEnable); | |||||
writer.WriteByte(value.Placeholder1); | |||||
writer.WriteByte(value.DistanceThresholdObstacleAlarm); | |||||
writer.WriteByte(value.HierarchicalSpeedThresholdObstacleAlarm); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterObstacleAlarm); | |||||
writer.WriteByte(value.BarrierAlarmPhotographs); | |||||
writer.WriteByte(value.ObstacleAlarmInterval); | |||||
writer.WriteByte(value.FrequentChannelChangeAlarmJudgmentTimePeriod); | |||||
writer.WriteByte(value.FrequentAlarmJudgmentNumberChannelChange); | |||||
writer.WriteByte(value.HierarchicalSpeedThresholdFrequentChannelChangeAlarm); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterFrequentLaneChangeAlarm); | |||||
writer.WriteByte(value.FrequentChannelChangeAlarmPhotos); | |||||
writer.WriteByte(value.FrequentLaneChangeAlarmInterval); | |||||
writer.WriteByte(value.GradedSpeedThresholdLaneDeviationAlarm); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterLaneDepartureAlarm); | |||||
writer.WriteByte(value.LaneDepartureAlarmPhoto); | |||||
writer.WriteByte(value.LaneDepartureAlarmPhotoInterval); | |||||
writer.WriteByte(value.ForwardCollisionWarningTimeThreshold); | |||||
writer.WriteByte(value.HierarchicalSpeedThresholdForwardCollisionWarning); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterForwardCollisionAlarm); | |||||
writer.WriteByte(value.ForwardCollisionAlarmPhotographs); | |||||
writer.WriteByte(value.ForwardCollisionAlarmInterval); | |||||
writer.WriteByte(value.PedestrianCollisionAlarmTimeThreshold); | |||||
writer.WriteByte(value.PedestrianCollisionAlarmEnablingSpeedThreshold); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterPedestrianCollisionAlarm); | |||||
writer.WriteByte(value.PedestrianCollisionAlarmPhotos); | |||||
writer.WriteByte(value.PedestrianCollisionAlarmInterval); | |||||
writer.WriteByte(value.VehicleDistanceMonitoringAlarmDistanceThreshold); | |||||
writer.WriteByte(value.VehicleDistanceMonitoringAndAlarmClassificationSpeedThreshold); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterAlarmVehicleProximity); | |||||
writer.WriteByte(value.AlarmPhotoVehicleCloseDistance); | |||||
writer.WriteByte(value.AlarmPhotoVehicleCloseDistanceInterval); | |||||
writer.WriteByte(value.RoadSignRecognitionPhotographs); | |||||
writer.WriteByte(value.RoadSignRecognitionPhotographsInterval); | |||||
writer.WriteArray(value.Placeholder2); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - ParamLengthPosition - 1), ParamLengthPosition); | |||||
} | |||||
} | |||||
} |
@@ -1,95 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x8103_0xF365_Formatter : IJT808MessagePackFormatter<JT808_0x8103_0xF365> | |||||
{ | |||||
public JT808_0x8103_0xF365 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x8103_0xF365 jT808_0X8103_0XF365 = new JT808_0x8103_0xF365(); | |||||
jT808_0X8103_0XF365.ParamId = reader.ReadUInt32(); | |||||
jT808_0X8103_0XF365.ParamLength = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.AlarmJudgeSpeedThreshold = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.WarningVolume = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.ActivePhotographyStrategy = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.ActivelyTimePhotoInterval = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF365.ActiveDistancePhotographyDistanceInterval = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF365.SingleInitiativePhotos = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.SingleInitiativePhotosInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.PhotoResolution = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.VideoRecordingResolution = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.AlarmEnable = reader.ReadUInt32(); | |||||
jT808_0X8103_0XF365.EventEnable = reader.ReadUInt32(); | |||||
jT808_0X8103_0XF365.TimeIntervalSmokingAlarmJudgment = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF365.CallAlarmDetermineTimeInterval = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF365.Reserve = reader.ReadArray(3).ToArray(); | |||||
jT808_0X8103_0XF365.GradedSpeedThresholdFatigueDrivingAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.FatigueDrivingAlarmPhotograph = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.FatigueDrivingAlarmPhotographInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.ClassifiedSpeedThresholdCallAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterCallAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.CallAlarmTakePicturesDriverFacialFeatures = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.CallAlarmTakePicturesDriverFacialFeaturesInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.ClassifiedSpeedThresholdSmokingAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.VideoRecordingTimeBeforeAndAfterSmokingAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.SmokingAlarmPhotographsDriverFaceCharacteristics = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.ClassifiedSpeedThresholdDistractedDrivingAlarm = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.DistractedDrivingAlarmPhotography = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.DistractedDrivingAlarmPhotographyInterval = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.VideoRecordingTimeAbnormalDrivingBehavior = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.PhotographsAbnormalDrivingBehavior = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.PictureIntervalAbnormalDrivingBehavior = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.DriverIdentificationTrigger = reader.ReadByte(); | |||||
jT808_0X8103_0XF365.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); | |||||
return jT808_0X8103_0XF365; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF365 value, IJT808Config config) | |||||
{ | |||||
writer.WriteUInt32(value.ParamId); | |||||
writer.Skip(1, out int ParamLengthPosition); | |||||
writer.WriteByte(value.AlarmJudgeSpeedThreshold); | |||||
writer.WriteByte(value.WarningVolume); | |||||
writer.WriteByte(value.ActivePhotographyStrategy); | |||||
writer.WriteUInt16(value.ActivelyTimePhotoInterval); | |||||
writer.WriteUInt16(value.ActiveDistancePhotographyDistanceInterval); | |||||
writer.WriteByte(value.SingleInitiativePhotos); | |||||
writer.WriteByte(value.SingleInitiativePhotosInterval); | |||||
writer.WriteByte(value.PhotoResolution); | |||||
writer.WriteByte(value.VideoRecordingResolution); | |||||
writer.WriteUInt32(value.AlarmEnable); | |||||
writer.WriteUInt32(value.EventEnable); | |||||
writer.WriteUInt16(value.TimeIntervalSmokingAlarmJudgment); | |||||
writer.WriteUInt16(value.CallAlarmDetermineTimeInterval); | |||||
writer.WriteArray(value.Reserve); | |||||
writer.WriteByte(value.GradedSpeedThresholdFatigueDrivingAlarm); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterFatigueDrivingAlarm); | |||||
writer.WriteByte(value.FatigueDrivingAlarmPhotograph); | |||||
writer.WriteByte(value.FatigueDrivingAlarmPhotographInterval); | |||||
writer.WriteByte(value.ClassifiedSpeedThresholdCallAlarm); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterCallAlarm); | |||||
writer.WriteByte(value.CallAlarmTakePicturesDriverFacialFeatures); | |||||
writer.WriteByte(value.CallAlarmTakePicturesDriverFacialFeaturesInterval); | |||||
writer.WriteByte(value.ClassifiedSpeedThresholdSmokingAlarm); | |||||
writer.WriteByte(value.VideoRecordingTimeBeforeAndAfterSmokingAlarm); | |||||
writer.WriteByte(value.SmokingAlarmPhotographsDriverFaceCharacteristics); | |||||
writer.WriteByte(value.SmokingAlarmPhotographsDriverFaceCharacteristicsInterval); | |||||
writer.WriteByte(value.ClassifiedSpeedThresholdDistractedDrivingAlarm); | |||||
writer.WriteByte(value.DistractedDrivingAlarmPhotography); | |||||
writer.WriteByte(value.DistractedDrivingAlarmPhotographyInterval); | |||||
writer.WriteByte(value.VideoRecordingTimeAbnormalDrivingBehavior); | |||||
writer.WriteByte(value.PhotographsAbnormalDrivingBehavior); | |||||
writer.WriteByte(value.PictureIntervalAbnormalDrivingBehavior); | |||||
writer.WriteByte(value.DriverIdentificationTrigger); | |||||
writer.WriteArray(value.Retain); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - ParamLengthPosition - 1), ParamLengthPosition); | |||||
} | |||||
} | |||||
} |
@@ -1,49 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x8103_0xF366_Formatter : IJT808MessagePackFormatter<JT808_0x8103_0xF366> | |||||
{ | |||||
public JT808_0x8103_0xF366 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x8103_0xF366 jT808_0X8103_0XF366 = new JT808_0x8103_0xF366(); | |||||
jT808_0X8103_0XF366.ParamId = reader.ReadUInt32(); | |||||
jT808_0X8103_0XF366.ParamLength = reader.ReadByte(); | |||||
jT808_0X8103_0XF366.TyreSpecificationType= reader.ReadString(12); | |||||
jT808_0X8103_0XF366.TyrePressureUnit = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.NormalFetalPressure = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.ThresholdUnbalancedTirePressure = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.SlowLeakageThreshold = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.LowVoltageThreshold = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.HighVoltageThreshold = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.HighTemperatureThreshold = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.VoltageThreshold = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.TimedReportingInterval = reader.ReadUInt16(); | |||||
jT808_0X8103_0XF366.Retain = reader.ReadArray(reader.ReadCurrentRemainContentLength()).ToArray(); | |||||
return jT808_0X8103_0XF366; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF366 value, IJT808Config config) | |||||
{ | |||||
writer.WriteUInt32(value.ParamId); | |||||
writer.Skip(1, out int ParamLengthPosition); | |||||
writer.WriteString(value.TyreSpecificationType); | |||||
writer.WriteUInt16(value.TyrePressureUnit); | |||||
writer.WriteUInt16(value.NormalFetalPressure); | |||||
writer.WriteUInt16(value.ThresholdUnbalancedTirePressure); | |||||
writer.WriteUInt16(value.SlowLeakageThreshold); | |||||
writer.WriteUInt16(value.LowVoltageThreshold); | |||||
writer.WriteUInt16(value.HighVoltageThreshold); | |||||
writer.WriteUInt16(value.HighTemperatureThreshold); | |||||
writer.WriteUInt16(value.VoltageThreshold); | |||||
writer.WriteUInt16(value.TimedReportingInterval); | |||||
writer.WriteArray(value.Retain); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - ParamLengthPosition - 1), ParamLengthPosition); | |||||
} | |||||
} | |||||
} |
@@ -1,30 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x8103_0xF367_Formatter : IJT808MessagePackFormatter<JT808_0x8103_0xF367> | |||||
{ | |||||
public JT808_0x8103_0xF367 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x8103_0xF367 jT808_0X8103_0XF367 = new JT808_0x8103_0xF367(); | |||||
jT808_0X8103_0XF367.ParamId = reader.ReadUInt32(); | |||||
jT808_0X8103_0XF367.ParamLength = reader.ReadByte(); | |||||
jT808_0X8103_0XF367.RearApproachAlarmTimeThreshold = reader.ReadByte(); | |||||
jT808_0X8103_0XF367.LateralRearApproachAlarmTimeThreshold = reader.ReadByte(); | |||||
return jT808_0X8103_0XF367; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x8103_0xF367 value, IJT808Config config) | |||||
{ | |||||
writer.WriteUInt32(value.ParamId); | |||||
writer.WriteByte(2); | |||||
writer.WriteByte(value.RearApproachAlarmTimeThreshold); | |||||
writer.WriteByte(value.LateralRearApproachAlarmTimeThreshold); | |||||
} | |||||
} | |||||
} |
@@ -1,38 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x9208_Formatter : IJT808MessagePackFormatter<JT808_0x9208> | |||||
{ | |||||
public JT808_0x9208 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x9208 jT808_0X9208 = new JT808_0x9208(); | |||||
jT808_0X9208.AttachmentServerIPLength = reader.ReadByte(); | |||||
jT808_0X9208.AttachmentServerIP = reader.ReadString(jT808_0X9208.AttachmentServerIPLength); | |||||
jT808_0X9208.AttachmentServerIPTcpPort = reader.ReadUInt16(); | |||||
jT808_0X9208.AttachmentServerIPUdpPort = reader.ReadUInt16(); | |||||
jT808_0X9208.AlarmIdentification = JT808_AlarmIdentificationProperty_Formatter.Instance.Deserialize(ref reader, config); | |||||
jT808_0X9208.AlarmId = reader.ReadString(32); | |||||
jT808_0X9208.Retain = reader.ReadArray(16).ToArray(); | |||||
return jT808_0X9208; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9208 value, IJT808Config config) | |||||
{ | |||||
writer.Skip(1, out int AttachmentServerIPLengthPosition); | |||||
writer.WriteString(value.AttachmentServerIP); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition()- AttachmentServerIPLengthPosition-1), AttachmentServerIPLengthPosition); | |||||
writer.WriteUInt16(value.AttachmentServerIPTcpPort); | |||||
writer.WriteUInt16(value.AttachmentServerIPUdpPort); | |||||
JT808_AlarmIdentificationProperty_Formatter.Instance.Serialize(ref writer, value.AlarmIdentification, config); | |||||
writer.WriteString(value.AlarmId); | |||||
writer.WriteArray(value.Retain); | |||||
} | |||||
} | |||||
} |
@@ -1,57 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_0x9212_Formatter : IJT808MessagePackFormatter<JT808_0x9212> | |||||
{ | |||||
public JT808_0x9212 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_0x9212 jT808_0X9212 = new JT808_0x9212(); | |||||
jT808_0X9212.FileNameLength = reader.ReadByte(); | |||||
jT808_0X9212.FileName = reader.ReadString(jT808_0X9212.FileNameLength); | |||||
jT808_0X9212.FileType = reader.ReadByte(); | |||||
jT808_0X9212.UploadResult = reader.ReadByte(); | |||||
jT808_0X9212.DataPackageCount= reader.ReadByte(); | |||||
if (jT808_0X9212.DataPackageCount > 0) | |||||
{ | |||||
jT808_0X9212.DataPackages = new List<DataPackageProperty>(); | |||||
for(int i=0;i< jT808_0X9212.DataPackageCount; i++) | |||||
{ | |||||
DataPackageProperty dataPackageProperty = new DataPackageProperty(); | |||||
dataPackageProperty.Offset = reader.ReadUInt32(); | |||||
dataPackageProperty.Length = reader.ReadUInt32(); | |||||
jT808_0X9212.DataPackages.Add(dataPackageProperty); | |||||
} | |||||
} | |||||
return jT808_0X9212; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_0x9212 value, IJT808Config config) | |||||
{ | |||||
writer.Skip(1, out int FileNameLengthPosition); | |||||
writer.WriteString(value.FileName); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - FileNameLengthPosition - 1), FileNameLengthPosition); | |||||
writer.WriteByte(value.FileType); | |||||
writer.WriteByte(value.UploadResult); | |||||
if(value.DataPackages!=null && value.DataPackages.Count > 0) | |||||
{ | |||||
writer.WriteByte((byte)value.DataPackages.Count); | |||||
foreach (var item in value.DataPackages) | |||||
{ | |||||
writer.WriteUInt32(item.Offset); | |||||
writer.WriteUInt32(item.Length); | |||||
} | |||||
} | |||||
else | |||||
{ | |||||
writer.WriteByte(0); | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -1,37 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Metadata; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_AlarmIdentificationProperty_Formatter : IJT808MessagePackFormatter<AlarmIdentificationProperty> | |||||
{ | |||||
public readonly static JT808_AlarmIdentificationProperty_Formatter Instance = new JT808_AlarmIdentificationProperty_Formatter(); | |||||
public AlarmIdentificationProperty Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
AlarmIdentificationProperty alarmIdentification = new AlarmIdentificationProperty(); | |||||
alarmIdentification.TerminalID = reader.ReadString(7); | |||||
alarmIdentification.Time = reader.ReadDateTime6(); | |||||
alarmIdentification.SN = reader.ReadByte(); | |||||
alarmIdentification.AttachCount = reader.ReadByte(); | |||||
alarmIdentification.Retain = reader.ReadByte(); | |||||
return alarmIdentification; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, AlarmIdentificationProperty value, IJT808Config config) | |||||
{ | |||||
if (value == null) | |||||
{ | |||||
throw new NullReferenceException($"{nameof(AlarmIdentificationProperty)}不为空"); | |||||
} | |||||
writer.WriteString(value.TerminalID); | |||||
writer.WriteDateTime6(value.Time); | |||||
writer.WriteByte(value.SN); | |||||
writer.WriteByte(value.AttachCount); | |||||
writer.WriteByte(value.Retain); | |||||
} | |||||
} | |||||
} |
@@ -1,56 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.Enums; | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_JTActiveSafety_0x0900_Formatter : IJT808MessagePackFormatter<JT808_JTActiveSafety_0x0900> | |||||
{ | |||||
public JT808_JTActiveSafety_0x0900 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_JTActiveSafety_0x0900 jT808_JTActiveSafety_0X0900 = new JT808_JTActiveSafety_0x0900(); | |||||
jT808_JTActiveSafety_0X0900.USBMessageCount = reader.ReadByte(); | |||||
if (jT808_JTActiveSafety_0X0900.USBMessageCount > 0) | |||||
{ | |||||
jT808_JTActiveSafety_0X0900.USBMessages = new List<JT808_JTActiveSafety_0x0900_USBMessage>(); | |||||
for (int i = 0; i < jT808_JTActiveSafety_0X0900.USBMessageCount; i++) | |||||
{ | |||||
JT808_JTActiveSafety_0x0900_USBMessage jT808_JTActiveSafety_0X0900_USBMessage = new JT808_JTActiveSafety_0x0900_USBMessage(); | |||||
jT808_JTActiveSafety_0X0900_USBMessage.USBID= reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USBMessage.MessageLength = reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USBMessage.MessageContent = reader.ReadArray(jT808_JTActiveSafety_0X0900_USBMessage.MessageLength).ToArray(); | |||||
jT808_JTActiveSafety_0X0900.USBMessages.Add(jT808_JTActiveSafety_0X0900_USBMessage); | |||||
} | |||||
} | |||||
return jT808_JTActiveSafety_0X0900; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_JTActiveSafety_0x0900 value, IJT808Config config) | |||||
{ | |||||
if(value.USBMessages!=null && value.USBMessages.Count>0) | |||||
{ | |||||
writer.WriteByte((byte)value.USBMessages.Count); | |||||
foreach(var item in value.USBMessages) | |||||
{ | |||||
writer.WriteByte(item.USBID); | |||||
if(item.MessageContent!=null&& item.MessageContent.Length > 0) | |||||
{ | |||||
writer.WriteByte((byte)item.MessageContent.Length); | |||||
writer.WriteArray(item.MessageContent); | |||||
} | |||||
else if (item.MessageContentObejct != null) | |||||
{ | |||||
writer.Skip(1,out int MessageContentLengthPosition); | |||||
object obj = config.GetMessagePackFormatterByType(item.MessageContentObejct.GetType()); | |||||
JT808MessagePackFormatterResolverExtensions.JT808DynamicSerialize(obj, ref writer, item.MessageContentObejct, config); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - MessageContentLengthPosition - 1), MessageContentLengthPosition); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -1,27 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_JTActiveSafety_0x0900_USB_0xF7_Formatter : IJT808MessagePackFormatter<JT808_JTActiveSafety_0x0900_USB_0xF7> | |||||
{ | |||||
public readonly static JT808_JTActiveSafety_0x0900_USB_0xF7_Formatter Instance = new JT808_JTActiveSafety_0x0900_USB_0xF7_Formatter(); | |||||
public JT808_JTActiveSafety_0x0900_USB_0xF7 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_JTActiveSafety_0x0900_USB_0xF7 jT808_JTActiveSafety_0X0900_USB_0XF7 = new JT808_JTActiveSafety_0x0900_USB_0xF7(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF7.WorkingCondition = reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF7.AlarmStatus = reader.ReadUInt32(); | |||||
return jT808_JTActiveSafety_0X0900_USB_0XF7; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_JTActiveSafety_0x0900_USB_0xF7 value, IJT808Config config) | |||||
{ | |||||
writer.WriteByte(value.WorkingCondition); | |||||
writer.WriteUInt32(value.AlarmStatus); | |||||
} | |||||
} | |||||
} |
@@ -1,58 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_JTActiveSafety_0x0900_USB_0xF8_Formatter : IJT808MessagePackFormatter<JT808_JTActiveSafety_0x0900_USB_0xF8> | |||||
{ | |||||
public readonly static JT808_JTActiveSafety_0x0900_USB_0xF8_Formatter Instance = new JT808_JTActiveSafety_0x0900_USB_0xF8_Formatter(); | |||||
public JT808_JTActiveSafety_0x0900_USB_0xF8 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_JTActiveSafety_0x0900_USB_0xF8 jT808_JTActiveSafety_0X0900_USB_0XF8 = new JT808_JTActiveSafety_0x0900_USB_0xF8(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.CompantNameLength = reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.CompantName = reader.ReadString(jT808_JTActiveSafety_0X0900_USB_0XF8.CompantNameLength); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.ProductModelLength = reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.ProductModel = reader.ReadString(jT808_JTActiveSafety_0X0900_USB_0XF8.ProductModelLength); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.HardwareVersionNumberLength = reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.HardwareVersionNumber = reader.ReadString(jT808_JTActiveSafety_0X0900_USB_0XF8.HardwareVersionNumberLength); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.SoftwareVersionNumberLength = reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.SoftwareVersionNumber = reader.ReadString(jT808_JTActiveSafety_0X0900_USB_0XF8.SoftwareVersionNumberLength); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.DevicesIDLength = reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.DevicesID = reader.ReadString(jT808_JTActiveSafety_0X0900_USB_0XF8.DevicesIDLength); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.CustomerCodeLength = reader.ReadByte(); | |||||
jT808_JTActiveSafety_0X0900_USB_0XF8.CustomerCode = reader.ReadString(jT808_JTActiveSafety_0X0900_USB_0XF8.CustomerCodeLength); | |||||
return jT808_JTActiveSafety_0X0900_USB_0XF8; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_JTActiveSafety_0x0900_USB_0xF8 value, IJT808Config config) | |||||
{ | |||||
writer.Skip(1, out int CompantNameLengthPosition); | |||||
writer.WriteString(value.CompantName); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - CompantNameLengthPosition - 1), CompantNameLengthPosition); | |||||
writer.Skip(1, out int ProductModelLengthPosition); | |||||
writer.WriteString(value.ProductModel); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - ProductModelLengthPosition - 1), ProductModelLengthPosition); | |||||
writer.Skip(1, out int HardwareVersionNumberLengthPosition); | |||||
writer.WriteString(value.HardwareVersionNumber); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - HardwareVersionNumberLengthPosition - 1), HardwareVersionNumberLengthPosition); | |||||
writer.Skip(1, out int SoftwareVersionNumberLengthPosition); | |||||
writer.WriteString(value.SoftwareVersionNumber); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - SoftwareVersionNumberLengthPosition - 1), SoftwareVersionNumberLengthPosition); | |||||
writer.Skip(1, out int DevicesIDLengthPosition); | |||||
writer.WriteString(value.DevicesID); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - DevicesIDLengthPosition - 1), DevicesIDLengthPosition); | |||||
writer.Skip(1, out int CustomerCodeLengthPosition); | |||||
writer.WriteString(value.CustomerCode); | |||||
writer.WriteByteReturn((byte)(writer.GetCurrentPosition() - CustomerCodeLengthPosition - 1), CustomerCodeLengthPosition); | |||||
} | |||||
} | |||||
} |
@@ -1,39 +0,0 @@ | |||||
using JT808.Protocol.Extensions.JTActiveSafety.MessageBody; | |||||
using JT808.Protocol.Formatters; | |||||
using JT808.Protocol.MessagePack; | |||||
using System; | |||||
using System.Collections.Generic; | |||||
using System.Text; | |||||
namespace JT808.Protocol.Extensions.JTActiveSafety.Formatters | |||||
{ | |||||
public class JT808_JTActiveSafety_0x8900_Formatter : IJT808MessagePackFormatter<JT808_JTActiveSafety_0x8900> | |||||
{ | |||||
public JT808_JTActiveSafety_0x8900 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | |||||
{ | |||||
JT808_JTActiveSafety_0x8900 jT808_JTActiveSafety_0X8900 = new JT808_JTActiveSafety_0x8900(); | |||||
jT808_JTActiveSafety_0X8900.USBCount=reader.ReadByte(); | |||||
if (jT808_JTActiveSafety_0X8900.USBCount > 0) | |||||
{ | |||||
jT808_JTActiveSafety_0X8900.MultipleUSB = new List<byte>(); | |||||
for(int i=0;i < jT808_JTActiveSafety_0X8900.USBCount; i++) | |||||
{ | |||||
jT808_JTActiveSafety_0X8900.MultipleUSB.Add(reader.ReadByte()); | |||||
} | |||||
} | |||||
return jT808_JTActiveSafety_0X8900; | |||||
} | |||||
public void Serialize(ref JT808MessagePackWriter writer, JT808_JTActiveSafety_0x8900 value, IJT808Config config) | |||||
{ | |||||
if(value.MultipleUSB!=null && value.MultipleUSB.Count > 0) | |||||
{ | |||||
writer.WriteByte((byte)value.MultipleUSB.Count); | |||||
foreach(var item in value.MultipleUSB) | |||||
{ | |||||
writer.WriteByte(item); | |||||
} | |||||
} | |||||
} | |||||
} | |||||
} |
@@ -2,44 +2,23 @@ | |||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFrameworks>netstandard2.0;netstandard2.1;</TargetFrameworks> | <TargetFrameworks>netstandard2.0;netstandard2.1;</TargetFrameworks> | ||||
<LangVersion>7.3</LangVersion> | |||||
<LangVersion>8.0</LangVersion> | |||||
<Copyright>Copyright 2019.</Copyright> | <Copyright>Copyright 2019.</Copyright> | ||||
<Authors>SmallChi(Koike)</Authors> | <Authors>SmallChi(Koike)</Authors> | ||||
<PackageId>JT808.Protocol.Extensions.JTActiveSafety</PackageId> | <PackageId>JT808.Protocol.Extensions.JTActiveSafety</PackageId> | ||||
<Product>JT808.Protocol.Extensions.JTActiveSafety</Product> | <Product>JT808.Protocol.Extensions.JTActiveSafety</Product> | ||||
<Description>基于JT808协议、GB808协议扩展的主动安全消息协议</Description> | |||||
<PackageReleaseNotes>基于JT808协议、GB808协议扩展的主动安全消息协议</PackageReleaseNotes> | |||||
<Description>基于JT808协议、GB808协议扩展的主动安全消息协议(苏标)</Description> | |||||
<PackageReleaseNotes>基于JT808协议、GB808协议扩展的主动安全消息协议(苏标)</PackageReleaseNotes> | |||||
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance> | ||||
<RepositoryUrl>https://github.com/SmallChi/JTActiveSafety</RepositoryUrl> | <RepositoryUrl>https://github.com/SmallChi/JTActiveSafety</RepositoryUrl> | ||||
<PackageProjectUrl>https://github.com/SmallChi/JTActiveSafety</PackageProjectUrl> | <PackageProjectUrl>https://github.com/SmallChi/JTActiveSafety</PackageProjectUrl> | ||||
<licenseUrl>https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE</licenseUrl> | <licenseUrl>https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE</licenseUrl> | ||||
<license>https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE</license> | <license>https://github.com/SmallChi/JTActiveSafety/blob/master/LICENSE</license> | ||||
<GeneratePackageOnBuild>false</GeneratePackageOnBuild> | <GeneratePackageOnBuild>false</GeneratePackageOnBuild> | ||||
<Version>2.2.2</Version> | |||||
<Version>1.0.0</Version> | |||||
<PackageLicenseFile>LICENSE</PackageLicenseFile> | <PackageLicenseFile>LICENSE</PackageLicenseFile> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | |||||
<Compile Remove="Formatters\JT808_0x0200_0x64_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x0200_0x65_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x0200_0x66_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x0200_0x67_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x1210_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x1211_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x1212_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x8103_0xF364_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x8103_0xF365_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x8103_0xF366_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x8103_0xF367_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x9208_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_0x9212_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_AlarmIdentificationProperty_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_JTActiveSafety_0x0900_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_JTActiveSafety_0x0900_USB_0xF7_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_JTActiveSafety_0x0900_USB_0xF8_Formatter.cs" /> | |||||
<Compile Remove="Formatters\JT808_JTActiveSafety_0x8900_Formatter.cs" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | <ItemGroup> | ||||
<None Include="..\..\LICENSE"> | <None Include="..\..\LICENSE"> | ||||
<Pack>True</Pack> | <Pack>True</Pack> | ||||
@@ -48,11 +27,7 @@ | |||||
</ItemGroup> | </ItemGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<Folder Include="Formatters\" /> | |||||
</ItemGroup> | |||||
<ItemGroup> | |||||
<PackageReference Include="JT808" Version="2.2.2" /> | |||||
<PackageReference Include="JT808" Version="2.2.5" /> | |||||
</ItemGroup> | </ItemGroup> | ||||
@@ -43,6 +43,8 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody | |||||
public override ushort MsgId => 0x1210; | public override ushort MsgId => 0x1210; | ||||
public override string Description => "报警附件信息消息"; | |||||
public JT808_0x1210 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | public JT808_0x1210 Deserialize(ref JT808MessagePackReader reader, IJT808Config config) | ||||
{ | { | ||||
JT808_0x1210 jT808_0X1210 = new JT808_0x1210(); | JT808_0x1210 jT808_0X1210 = new JT808_0x1210(); | ||||
@@ -8,6 +8,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody | |||||
/// </summary> | /// </summary> | ||||
public class JT808_0x1211 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x1211> | public class JT808_0x1211 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x1211> | ||||
{ | { | ||||
public override string Description => "文件信息上传"; | |||||
/// <summary> | /// <summary> | ||||
/// 文件名称长度 | /// 文件名称长度 | ||||
/// </summary> | /// </summary> | ||||
@@ -8,6 +8,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody | |||||
/// </summary> | /// </summary> | ||||
public class JT808_0x1212 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x1212> | public class JT808_0x1212 : JT808Bodies, IJT808MessagePackFormatter<JT808_0x1212> | ||||
{ | { | ||||
public override string Description => "文件上传完成消息"; | |||||
/// <summary> | /// <summary> | ||||
/// 文件名称长度 | /// 文件名称长度 | ||||
/// </summary> | /// </summary> | ||||
@@ -10,6 +10,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody | |||||
/// </summary> | /// </summary> | ||||
public class JT808_0x9208:JT808Bodies, IJT808MessagePackFormatter<JT808_0x9208> | public class JT808_0x9208:JT808Bodies, IJT808MessagePackFormatter<JT808_0x9208> | ||||
{ | { | ||||
public override string Description => "报警附件上传指令"; | |||||
public byte AttachmentServerIPLength { get; set; } | public byte AttachmentServerIPLength { get; set; } | ||||
public string AttachmentServerIP { get; set; } | public string AttachmentServerIP { get; set; } | ||||
public ushort AttachmentServerIPTcpPort { get; set; } | public ushort AttachmentServerIPTcpPort { get; set; } | ||||
@@ -10,6 +10,7 @@ namespace JT808.Protocol.Extensions.JTActiveSafety.MessageBody | |||||
/// </summary> | /// </summary> | ||||
public class JT808_0x9212:JT808Bodies, IJT808MessagePackFormatter<JT808_0x9212> | public class JT808_0x9212:JT808Bodies, IJT808MessagePackFormatter<JT808_0x9212> | ||||
{ | { | ||||
public override string Description => "文件上传完成消息应答"; | |||||
/// <summary> | /// <summary> | ||||
/// 文件名称长度 | /// 文件名称长度 | ||||
/// </summary> | /// </summary> | ||||
@@ -1,15 +1,18 @@ | |||||
<Project Sdk="Microsoft.NET.Sdk"> | <Project Sdk="Microsoft.NET.Sdk"> | ||||
<PropertyGroup> | <PropertyGroup> | ||||
<TargetFramework>netcoreapp2.2</TargetFramework> | |||||
<TargetFramework>netcoreapp3.1</TargetFramework> | |||||
<IsPackable>false</IsPackable> | <IsPackable>false</IsPackable> | ||||
</PropertyGroup> | </PropertyGroup> | ||||
<ItemGroup> | <ItemGroup> | ||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.0.1" /> | |||||
<PackageReference Include="xunit" Version="2.4.0" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" /> | |||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> | |||||
<PackageReference Include="xunit" Version="2.4.1" /> | |||||
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1"> | |||||
<PrivateAssets>all</PrivateAssets> | |||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> | |||||
</PackageReference> | |||||
</ItemGroup> | </ItemGroup> | ||||
</Project> | </Project> |