修复 s7 通过.n的方式读取字节中布尔量时,如果变量地址带有分号时出现的分包错误
This commit is contained in:
@@ -37,7 +37,7 @@ public class PackHelper
|
||||
IThingsGatewayBitConverter transformParameter = ByteTransUtil.GetTransByAddress(ref address, byteConverter);
|
||||
item.ThingsGatewayBitConverter = transformParameter;
|
||||
//item.RegisterAddress = address;
|
||||
item.Index = device.GetBitOffset(item.RegisterAddress);
|
||||
item.Index = device.GetBitOffset(address);
|
||||
}
|
||||
var deviceVariableRunTimeGroups = deviceVariables.GroupBy(it => it.IntervalTime ?? defaultIntervalTime);
|
||||
foreach (var group in deviceVariableRunTimeGroups)
|
||||
|
@@ -33,7 +33,7 @@ internal static class PackHelper
|
||||
IThingsGatewayBitConverter transformParameter = ByteTransUtil.GetTransByAddress(ref address, byteConverter);
|
||||
item.ThingsGatewayBitConverter = transformParameter;
|
||||
//item.Address = address;//需要使用过滤后的地址
|
||||
item.Index = device.GetBitOffset(item.RegisterAddress);
|
||||
item.Index = device.GetBitOffset(address);
|
||||
}
|
||||
//按读取间隔分组
|
||||
var tags = deviceVariables.GroupBy(it => it.IntervalTime ?? defaultIntervalTime);
|
||||
|
@@ -90,7 +90,8 @@ public partial class SiemensS7Master : ProtocolBase
|
||||
{
|
||||
if (address.IndexOf('.') > 0)
|
||||
{
|
||||
string[] addressSplits = address.SplitStringByDelimiter();
|
||||
var addressSplits1 = address.SplitStringBySemicolon().Where(a => !a.Contains("=")).FirstOrDefault();
|
||||
string[] addressSplits = addressSplits1.SplitStringByDelimiter();
|
||||
try
|
||||
{
|
||||
int bitIndex = 0;
|
||||
|
Reference in New Issue
Block a user