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); } }