modbus rtu 粘包优化

This commit is contained in:
2248356998 qq.com
2023-05-08 15:59:35 +08:00
parent 2b8bd5f2cc
commit fd16fd9ffe

View File

@@ -14,44 +14,6 @@
{
return ModbusHelper.GetModbusRtuData(send, response, Crc16CheckEnable);
}
/// <summary>
/// 解包获取实际数据包
/// </summary>
protected override FilterResult GetResponse(ByteBlock byteBlock, ModbusRtuMessage request, byte[] allBytes, byte[] bytes)
{
var unpackbytes = UnpackResponse(request.SendBytes, allBytes);
request.Message = unpackbytes.Message;
request.ResultCode = unpackbytes.ResultCode;
if (unpackbytes.IsSuccess)
{
request.Content = unpackbytes.Content;
request.ReceivedBytes = allBytes;
return FilterResult.Success;
}
else
{
byteBlock.Pos = byteBlock.Len;
request.ReceivedBytes = allBytes;
request.Message = unpackbytes.Message;
if (!(allBytes[1] <= 0x10))
{
return FilterResult.Success;
}
else
{
if ((allBytes.Length > allBytes[2] + 4))
{
return FilterResult.Success;
}
else
{
return FilterResult.Cache;
}
}
}
}
protected override ModbusRtuMessage GetInstance()
{