修复上个版本 modbus驱动打包变量 代码错误
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user