This commit is contained in:
parallelbgls
2017-05-18 21:17:03 +08:00
parent e481b8e7b3
commit a4fac24003
2 changed files with 9 additions and 12 deletions

View File

@@ -670,7 +670,7 @@ namespace Modbus.Net
{
public bool Equals(IMachineProperty<TKey> x, IMachineProperty<TKey> y)
{
return x.Id.Equals(y.Id) || x.ConnectionToken == y.ConnectionToken;
return x.Id.Equals(y.Id);
}
public int GetHashCode(IMachineProperty<TKey> obj)

View File

@@ -846,13 +846,10 @@ namespace Modbus.Net
/// <param name="machines">设备的列表</param>
public void AddMachines<TUnitKey>(IEnumerable<BaseMachine<TMachineKey, TUnitKey>> machines)
where TUnitKey : IEquatable<TUnitKey>
{
lock (_machines)
{
foreach (var machine in machines)
AddMachine(machine);
}
}
/// <summary>
/// 通过Id获取设备
@@ -868,13 +865,13 @@ namespace Modbus.Net
TaskMachine<TMachineKey> machine;
lock (_machines)
{
machine = _machines.FirstOrDefault(p => p.Machine.Id.Equals(id));
machine = _machines.SingleOrDefault(p => p.Machine.Id.Equals(id));
}
return machine as BaseMachine<TMachineKey, TUnitKey>;
return machine?.Machine as BaseMachine<TMachineKey, TUnitKey>;
}
catch (Exception e)
{
Log.Error(e, $"Device {id} return error");
Log.Error(e, $"Device {id} get error, maybe duplicated in taskmanager");
return null;
}
}
@@ -893,13 +890,13 @@ namespace Modbus.Net
TaskMachine<TMachineKey> machine;
lock (_machines)
{
machine = _machines.FirstOrDefault(p => p.Machine.ConnectionToken == connectionToken);
machine = _machines.SingleOrDefault(p => p.Machine.ConnectionToken == connectionToken && p.Machine.IsConnected);
}
return machine as BaseMachine<TMachineKey, TUnitKey>;
return machine?.Machine as BaseMachine<TMachineKey, TUnitKey>;
}
catch (Exception e)
{
Log.Error(e, $"Device {connectionToken} return error");
Log.Error(e, $"Device {connectionToken} get error, maybe duplicated in taskmanager");
return null;
}
}