From e17766c5fae6ce827857f67f6a9eecb0949d6cef Mon Sep 17 00:00:00 2001 From: waterliu99 Date: Wed, 16 Sep 2020 11:26:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=8A=A5=E8=AD=A6=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=88=86=E6=9E=90=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JT809_0x1400_0x1402Test.cs | 7 +++++++ src/JT809.Protocol/JT809.Protocol.xml | 19 +++++++++++++++---- .../SubMessageBody/JT809_0x1400_0x1402.cs | 2 +- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1402Test.cs b/src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1402Test.cs index 717f9ae..8a10ee3 100644 --- a/src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1402Test.cs +++ b/src/JT809.Protocol.Test/JT809SubMessageBody/JT809_0x1400_0x1402Test.cs @@ -80,5 +80,12 @@ namespace JT809.Protocol.Test.JT809SubMessageBody Assert.Equal(JT809VehicleColorType.蓝色, jT809_0x1400_0x1402.VehicleColor); Assert.Equal("12345678900", jT809_0x1400_0x1402.DestinationPlatformId); } + [Fact] + public void Test_2019_3() + { + //传说中花钱买的数据 + var bytes = "5B0000007E00000002140001FEC19001020F0000000000000000005F616C491402000000564A43323032305054303838A001000000005F5F7B3E000000005F5F7B3E000000005F5F7B3EB2E2413933323238000000000000000000000000000200000000000000000000000000000000000008B3ACCAB1CDA3B3B5F77E5D".ToHexBytes(); + var jT809Package = JT809_2019_Serializer.Analyze(bytes); + } } } diff --git a/src/JT809.Protocol/JT809.Protocol.xml b/src/JT809.Protocol/JT809.Protocol.xml index c21b965..516bcea 100644 --- a/src/JT809.Protocol/JT809.Protocol.xml +++ b/src/JT809.Protocol/JT809.Protocol.xml @@ -2527,15 +2527,26 @@ 描述:下级平台在接收消息时,如发现消息报文序列号不连续,则立即发送消息补传请求。上级平台收到消息补传请求后,根据请求的消息报文序列号或起始时间(当仅填写一项时。另一项全为0),重传相应的消息 - + 对应需要重传消息地子业务类型标识 - + - 需要重传消息的起始报文序列号和结束的报文序列号。如只请求重传一个消息,则起始消息报文序列号和结束消息报文序列号相同 - 8位 + 重传消息总数 + + + + + 需要重传消息的起始报文序列号 + 如只请求重传一个消息,则起始消息报文序列号和结束消息报文序列号相同 + + + + + 需要重传消息的结束的报文序列号 + 如只请求重传一个消息,则起始消息报文序列号和结束消息报文序列号相同 diff --git a/src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1402.cs b/src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1402.cs index 8094d34..0015f75 100644 --- a/src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1402.cs +++ b/src/JT809.Protocol/SubMessageBody/JT809_0x1400_0x1402.cs @@ -88,7 +88,7 @@ namespace JT809.Protocol.SubMessageBody writer.WriteString($"[{virtualHex.ToArray().ToHexString()}]发起报警平台唯一编码", value.SourcePlatformId); } value.WarnType = (JT809WarnType)reader.ReadUInt16(); - writer.WriteString($"[{value.WarnType.ToByteValue()}]报警类型", value.WarnType.ToString()); + writer.WriteString($"[{value.WarnType.ToUInt16Value()}]报警类型", value.WarnType.ToString()); var hex = reader.ReadVirtualArray(8); value.WarnTime = reader.ReadUTCDateTime(); writer.WriteString($"[{hex.ToArray().ToHexString()}]报警时间", value.WarnTime);