Compare commits

..

3 Commits

Author SHA1 Message Date
2248356998 qq.com
4e6be23aac 10.11.17 2025-08-28 17:15:08 +08:00
2248356998 qq.com
2fabbd236b 10.11.16 2025-08-28 17:05:00 +08:00
2248356998 qq.com
163a66530e fix: dlt645校验和 2025-08-28 17:04:27 +08:00
4 changed files with 6 additions and 6 deletions

View File

@@ -1,9 +1,9 @@
<Project>
<PropertyGroup>
<PluginVersion>10.11.15</PluginVersion>
<ProPluginVersion>10.11.15</ProPluginVersion>
<DefaultVersion>10.11.15</DefaultVersion>
<PluginVersion>10.11.17</PluginVersion>
<ProPluginVersion>10.11.17</ProPluginVersion>
<DefaultVersion>10.11.17</DefaultVersion>
<AuthenticationVersion>10.11.2</AuthenticationVersion>
<SourceGeneratorVersion>10.11.2</SourceGeneratorVersion>
<NET8Version>8.0.19</NET8Version>

View File

@@ -101,7 +101,7 @@ public class DtuPlugin : PluginBase, ITcpReceivingPlugin
if (len > 0)
{
if (HeartbeatByte.Span.SequenceEqual(e.Reader.TotalSequence.Slice(0, len).First.Span))
if (HeartbeatByte.Span.SequenceEqual(e.Reader.TotalSequence.Slice(0, (int)Math.Min(len, e.Reader.BytesRemaining + e.Reader.BytesRead)).First.Span))
{
if (DateTimeOffset.Now - socket.LastSentTime < TimeSpan.FromMilliseconds(200))
{

View File

@@ -181,7 +181,7 @@ internal sealed class HeartbeatAndReceivePlugin : PluginBase, ITcpConnectedPlugi
var len = HeartbeatByte.Length;
if (len > 0)
{
if (HeartbeatByte.Span.SequenceEqual(e.Reader.TotalSequence.Slice(0, len).First.Span))
if (HeartbeatByte.Span.SequenceEqual(e.Reader.TotalSequence.Slice(0, (int)Math.Min(len, e.Reader.BytesRemaining + e.Reader.BytesRead)).First.Span))
{
e.Reader.Advance((int)Math.Min(len, e.Reader.BytesRemaining));
e.Handled = true;

View File

@@ -189,7 +189,7 @@ public class Dlt645_2007Send : ISendMessage
lenSpan.WriteValue<byte>((byte)(length - 1));//数据域长度
int num = 0;
for (int index = 0; index < byteBlock.WrittenCount; ++index)
for (int index = 0; index < byteBlock.WrittenCount - SendHeadCodeIndex; ++index)
num += span[index];
WriterExtension.WriteValue(ref byteBlock, (byte)num);//校验码,总加和
WriterExtension.WriteValue(ref byteBlock, (byte)0x16);//结束符