修复上个版本 modbus驱动打包变量 代码错误

This commit is contained in:
Kimdiego2098
2024-04-08 21:46:47 +08:00
parent 2963a9cdca
commit 82e30a326a

View File

@@ -81,14 +81,25 @@ public class PackHelper
var stationNumbers = modbusAddressSameFunList.Select(t => t.Station).Distinct(); var stationNumbers = modbusAddressSameFunList.Select(t => t.Station).Distinct();
foreach (var stationNumber in stationNumbers) foreach (var stationNumber in stationNumbers)
{ {
var modbusAddressSameStationList = modbusAddressList.Where(t => t.ReadFunction == stationNumber); var modbusAddressSameStationList = modbusAddressList.Where(t => t.Station == stationNumber);
var socketIds = modbusAddressSameStationList.Select(t => t.SocketId).Distinct(); var socketIds = modbusAddressSameStationList.Select(t => t.SocketId).Distinct();
if (socketIds.Any())
{
foreach (var socketId in socketIds)//DTU区分 foreach (var socketId in socketIds)//DTU区分
{ {
var addressList = modbusAddressSameFunList var addressList = modbusAddressSameFunList
.Where(t => t.Station == stationNumber) .Where(t => t.SocketId == socketId)
.ToDictionary(t => t, t => map[t]); .ToDictionary(t => t, t => map[t]);
var tempResult = LoadSourceRead<T>(addressList, functionCode, group.Key, maxPack);
deviceVariableSourceReads.AddRange(tempResult);
}
}
else
{
var addressList = modbusAddressSameStationList
.ToDictionary(t => t, t => map[t]);
var tempResult = LoadSourceRead<T>(addressList, functionCode, group.Key, maxPack); var tempResult = LoadSourceRead<T>(addressList, functionCode, group.Key, maxPack);
deviceVariableSourceReads.AddRange(tempResult); deviceVariableSourceReads.AddRange(tempResult);
} }