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

@@ -2,7 +2,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>Modbus.Net.Modbus</id>
<version>1.2.3</version>
<version>1.2.3.2</version>
<title>Modbus.Net.Modbus</title>
<authors>Chris L.(Luo Sheng)</authors>
<owners>Hangzhou Delian IoT Science Technology Co.,Ltd.</owners>
@@ -13,7 +13,7 @@
<copyright>Copyright 2017 Hangzhou Delian IoT Science Technology Co.,Ltd.</copyright>
<tags>hardware communicate protocal modbus Delian</tags>
<dependencies>
<dependency id="Modbus.Net" version="1.2.3" />
<dependency id="Modbus.Net" version="1.2.3.2" />
</dependencies>
</metadata>
<files>

View File

@@ -1,26 +1,50 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
namespace Modbus.Net.Modbus
{
/// <summary>
/// Modbus设备
/// </summary>
public class ModbusMachine : BaseMachine
public class ModbusMachine<TKey, TUnitKey> : BaseMachine<TKey, TUnitKey> where TKey : IEquatable<TKey>
where TUnitKey : IEquatable<TUnitKey>
{
public ModbusMachine(ModbusType connectionType, string connectionString,
IEnumerable<AddressUnit> getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress, Endian endian = Endian.BigEndianLsb)
IEnumerable<AddressUnit<TUnitKey>> getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress,
Endian endian = Endian.BigEndianLsb)
: base(getAddresses, keepConnect, slaveAddress, masterAddress)
{
BaseUtility = new ModbusUtility(connectionType, connectionString, slaveAddress, masterAddress, endian);
AddressFormater = new AddressFormaterModbus();
AddressCombiner = new AddressCombinerContinus(AddressTranslator);
AddressCombinerSet = new AddressCombinerContinus(AddressTranslator);
AddressCombiner = new AddressCombinerContinus<TUnitKey>(AddressTranslator);
AddressCombinerSet = new AddressCombinerContinus<TUnitKey>(AddressTranslator);
}
public ModbusMachine(ModbusType connectionType, string connectionString,
IEnumerable<AddressUnit> getAddresses, byte slaveAddress, byte masterAddress, Endian endian = Endian.BigEndianLsb)
IEnumerable<AddressUnit<TUnitKey>> getAddresses, byte slaveAddress, byte masterAddress,
Endian endian = Endian.BigEndianLsb)
: this(connectionType, connectionString, getAddresses, false, slaveAddress, masterAddress, endian)
{
}
}
/// <summary>
/// Modbus设备
/// </summary>
public class ModbusMachine : ModbusMachine<string, string>
{
public ModbusMachine(ModbusType connectionType, string connectionString,
IEnumerable<AddressUnit<string>> getAddresses,
bool keepConnect, byte slaveAddress, byte masterAddress, Endian endian = Endian.BigEndianLsb)
: base(connectionType, connectionString, getAddresses, keepConnect, slaveAddress, masterAddress, endian)
{
}
public ModbusMachine(ModbusType connectionType, string connectionString,
IEnumerable<AddressUnit<string>> getAddresses,
byte slaveAddress, byte masterAddress, Endian endian = Endian.BigEndianLsb)
: base(connectionType, connectionString, getAddresses, slaveAddress, masterAddress, endian)
{
}
}
}