From 639993de2e4118300812d9caa85566f09226962c Mon Sep 17 00:00:00 2001 From: waterliu99 Date: Thu, 16 Apr 2020 09:31:02 +0800 Subject: [PATCH] =?UTF-8?q?0x9504=E5=85=BC=E5=AE=B9=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JT809_0x9500_0x9504Test.cs | 2 +- .../SubMessageBody/JT809_0x9500_0x9504.cs | 75 +++++++++++++++++-- 2 files changed, 70 insertions(+), 7 deletions(-) diff --git a/src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9500_0x9504Test.cs b/src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9500_0x9504Test.cs index 43e277f..a0d6765 100644 --- a/src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9500_0x9504Test.cs +++ b/src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x9500_0x9504Test.cs @@ -22,7 +22,7 @@ namespace JT809.Protocol.Test.JT809SubMessageBody Command= JT809CommandType.采集记录仪事故疑点记录, StartTime=DateTime.Parse("2018-09-27 20:00:20"), EndTime=DateTime.Parse("2018-09-27 23:00:20"), - //Max=5556 + Max=5556 }; var hex = JT809Serializer.Serialize(jT809_0X9500_0X9504).ToHexString(); //"10 18 09 27 20 00 20 18 09 27 23 00 20 15 B4" diff --git a/src/JT809.Protocol/SubMessageBody/JT809_0x9500_0x9504.cs b/src/JT809.Protocol/SubMessageBody/JT809_0x9500_0x9504.cs index c12a805..baefd01 100644 --- a/src/JT809.Protocol/SubMessageBody/JT809_0x9500_0x9504.cs +++ b/src/JT809.Protocol/SubMessageBody/JT809_0x9500_0x9504.cs @@ -29,21 +29,84 @@ namespace JT809.Protocol.SubMessageBody /// 命令字ID /// public JT809CommandType Command { get; set; } + /// + /// 最大数据数 + /// + public ushort Max { get; set; } public JT809_0x9500_0x9504 Deserialize(ref JT809MessagePackReader reader, IJT809Config config) { var value = new JT809_0x9500_0x9504(); - value.StartTime = reader.ReadUTCDateTime(); - value.EndTime = reader.ReadUTCDateTime(); - value.Command = (JT809CommandType)reader.ReadByte(); + if(config.Version == JT809Version.JTT2019){ + value.StartTime = reader.ReadUTCDateTime(); + value.EndTime = reader.ReadUTCDateTime(); + value.Command = (JT809CommandType)reader.ReadByte(); + } + else { + value.Command = (JT809CommandType)reader.ReadByte(); + switch (value.Command) + { + case JT809CommandType.记录仪标准版本: + case JT809CommandType.当前驾驶人信息: + case JT809CommandType.记录仪时间: + case JT809CommandType.记录仪累计行驶里程: + case JT809CommandType.记录仪脉冲系数: + case JT809CommandType.车辆信息: + case JT809CommandType.记录仪状态信号配置信息: + case JT809CommandType.记录仪唯一性编号: + break; + case JT809CommandType.采集记录仪行驶记录: + case JT809CommandType.采集记录仪位置信息记录: + case JT809CommandType.采集记录仪事故疑点记录: + case JT809CommandType.采集记录仪超时驾驶记录: + case JT809CommandType.采集记录仪驾驶人身份记录: + case JT809CommandType.采集记录仪外部供电记录: + case JT809CommandType.采集记录仪参数修改记录: + case JT809CommandType.采集记录仪速度状态日志: + value.StartTime = reader.ReadDateTime6(); + value.EndTime = reader.ReadDateTime6(); + value.Max = reader.ReadUInt16(); + break; + } + } return value; } public void Serialize(ref JT809MessagePackWriter writer, JT809_0x9500_0x9504 value, IJT809Config config) { - writer.WriteUTCDateTime(value.StartTime); - writer.WriteUTCDateTime(value.EndTime); - writer.WriteByte((byte)value.Command); + if (config.Version == JT809Version.JTT2019) + { + writer.WriteUTCDateTime(value.StartTime); + writer.WriteUTCDateTime(value.EndTime); + writer.WriteByte((byte)value.Command); + } + else { + writer.WriteByte((byte)value.Command); + switch (value.Command) + { + case JT809CommandType.记录仪标准版本: + case JT809CommandType.当前驾驶人信息: + case JT809CommandType.记录仪时间: + case JT809CommandType.记录仪累计行驶里程: + case JT809CommandType.记录仪脉冲系数: + case JT809CommandType.车辆信息: + case JT809CommandType.记录仪状态信号配置信息: + case JT809CommandType.记录仪唯一性编号: + break; + case JT809CommandType.采集记录仪行驶记录: + case JT809CommandType.采集记录仪位置信息记录: + case JT809CommandType.采集记录仪事故疑点记录: + case JT809CommandType.采集记录仪超时驾驶记录: + case JT809CommandType.采集记录仪驾驶人身份记录: + case JT809CommandType.采集记录仪外部供电记录: + case JT809CommandType.采集记录仪参数修改记录: + case JT809CommandType.采集记录仪速度状态日志: + writer.WriteDateTime6(value.StartTime); + writer.WriteDateTime6(value.EndTime); + writer.WriteUInt16(value.Max); + break; + } + } } } }