From 4e9d80734d2582ee182dc3ccb555a267766fe259 Mon Sep 17 00:00:00 2001 From: yedajiang44 <602830483@qq.com> Date: Thu, 20 Apr 2023 23:18:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E6=B3=A8=E9=87=8A=E5=8F=8A?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + src/JT808.Protocol.Test/JT808SerializerTest.cs | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/README.md b/README.md index 14a8259..f662262 100644 --- a/README.md +++ b/README.md @@ -386,6 +386,7 @@ JT808Serializer DT2JT808Serializer = new JT808Serializer(DT2JT808Config); 注意事项: - 默认缓存超时时间为5分钟 +- 如果合并且反序列化成功则[JT808Package](src/JT808.Protocol//JT808Package.cs)的`Bodies`不为空,反之亦然 - 超时计时为收到指定终端的指定消息id第一包开始,期间如果收到所有分包数据,在收到最后一个分包时自动反序列化,如果期间未收到所有分包数据,则后续将无法合并出完整的数据并反序列化 - 如有特殊需求请重写[默认实现](src/JT808.Protocol/Internal/DefaultMerger.cs)或自行实现[接口](src/JT808.Protocol/Interfaces/IMerger.cs)并手动设置[全局配置](src/JT808.Protocol/Interfaces/GlobalConfigBase.cs#L130)的`Jt808PackageMerger`属性 diff --git a/src/JT808.Protocol.Test/JT808SerializerTest.cs b/src/JT808.Protocol.Test/JT808SerializerTest.cs index 57e6421..5425e51 100644 --- a/src/JT808.Protocol.Test/JT808SerializerTest.cs +++ b/src/JT808.Protocol.Test/JT808SerializerTest.cs @@ -68,6 +68,11 @@ namespace JT808.Protocol.Test if (i == array.Length) { Assert.NotNull(package.Bodies); + //分包合并成功并获取消息体进行处理 + if (package.Bodies is JT808_0x0104 _0x0104 && _0x0104.AnswerParamsCount > 0) + { + Assert.NotEmpty(_0x0104.ParamList); + } } else { @@ -82,6 +87,11 @@ namespace JT808.Protocol.Test if (i == 0) { Assert.NotNull(package.Bodies); + //分包合并成功并获取消息体进行处理 + if (package.Bodies is JT808_0x0104 _0x0104 && _0x0104.AnswerParamsCount > 0) + { + Assert.NotEmpty(_0x0104.ParamList); + } } else { @@ -97,6 +107,7 @@ namespace JT808.Protocol.Test { Thread.Sleep(TimeSpan.FromSeconds(config.AutoMergeTimeoutSecond + 1)); } + //由于超时导致合并分包失败,且package.Bodies为null Assert.Null(package.Bodies); } }