2017-03-01 update 1 Change BaseMachine and AddressUnit Id.

This commit is contained in:
parallelbgls
2017-03-01 22:18:17 +08:00
parent 057ce04694
commit 4ff6e5fa80
10 changed files with 336 additions and 119 deletions

View File

@@ -1,26 +1,46 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
namespace Modbus.Net.Siemens
{
/// <summary>
/// 西门子设备
/// </summary>
public class SiemensMachine : BaseMachine
public class SiemensMachine<TKey, TUnitKey> : BaseMachine<TKey, TUnitKey> where TKey : IEquatable<TKey>
where TUnitKey : IEquatable<TUnitKey>
{
public SiemensMachine(SiemensType connectionType, string connectionString, SiemensMachineModel model,
IEnumerable<AddressUnit> getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress)
IEnumerable<AddressUnit<TUnitKey>> getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress)
: base(getAddresses, keepConnect, slaveAddress, masterAddress)
{
BaseUtility = new SiemensUtility(connectionType, connectionString, model, slaveAddress, masterAddress);
AddressFormater = new AddressFormaterSiemens();
AddressCombiner = new AddressCombinerContinus(AddressTranslator);
AddressCombinerSet = new AddressCombinerContinus(AddressTranslator);
AddressCombiner = new AddressCombinerContinus<TUnitKey>(AddressTranslator);
AddressCombinerSet = new AddressCombinerContinus<TUnitKey>(AddressTranslator);
}
public SiemensMachine(SiemensType connectionType, string connectionString, SiemensMachineModel model,
IEnumerable<AddressUnit> getAddresses, byte slaveAddress, byte masterAddress)
IEnumerable<AddressUnit<TUnitKey>> getAddresses, byte slaveAddress, byte masterAddress)
: this(connectionType, connectionString, model, getAddresses, false, slaveAddress, masterAddress)
{
}
}
/// <summary>
/// 西门子设备
/// </summary>
public class SiemensMachine : SiemensMachine<string, string>
{
public SiemensMachine(SiemensType connectionType, string connectionString, SiemensMachineModel model,
IEnumerable<AddressUnit<string>> getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress)
: base(connectionType, connectionString, model, getAddresses, keepConnect, slaveAddress, masterAddress)
{
}
public SiemensMachine(SiemensType connectionType, string connectionString, SiemensMachineModel model,
IEnumerable<AddressUnit<string>> getAddresses, byte slaveAddress, byte masterAddress)
: base(connectionType, connectionString, model, getAddresses, slaveAddress, masterAddress)
{
}
}
}