using System;
using System.Collections.Generic;
namespace Modbus.Net.Modbus
{
///
/// Modbus设备
///
public class ModbusMachine : BaseMachine where TKey : IEquatable
where TUnitKey : IEquatable
{
///
/// 构造函数
///
/// 设备的ID号
/// 连接类型
/// 连接地址
/// 读写的地址
/// 是否保持连接
/// 从站号
/// 主站号
/// 端格式
public ModbusMachine(TKey id, ModbusType connectionType, string connectionString,
IEnumerable> getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress,
Endian endian = Endian.BigEndianLsb)
: base(id, getAddresses, keepConnect, slaveAddress, masterAddress)
{
BaseUtility = new ModbusUtility(connectionType, connectionString, slaveAddress, masterAddress, endian);
AddressFormater = new AddressFormaterModbus();
AddressCombiner = new AddressCombinerContinus(AddressTranslator, 100);
AddressCombinerSet = new AddressCombinerContinus(AddressTranslator, 100);
}
///
/// 构造函数
///
/// 设备的ID号
/// 连接类型
/// 连接地址
/// 读写的地址
/// 从站号
/// 主站号
/// 端格式
public ModbusMachine(TKey id, ModbusType connectionType, string connectionString,
IEnumerable> getAddresses, byte slaveAddress, byte masterAddress,
Endian endian = Endian.BigEndianLsb)
: this(id, connectionType, connectionString, getAddresses, true, slaveAddress, masterAddress, endian)
{
}
}
///
/// Modbus设备
///
public class ModbusMachine : BaseMachine
{
///
/// 构造函数
///
/// 设备的ID号
/// 连接类型
/// 连接地址
/// 读写的地址
/// 是否保持连接
/// 从站号
/// 主站号
/// 端格式
public ModbusMachine(string id, ModbusType connectionType, string connectionString,
IEnumerable getAddresses, bool keepConnect, byte slaveAddress, byte masterAddress,
Endian endian = Endian.BigEndianLsb)
: base(id, getAddresses, keepConnect, slaveAddress, masterAddress)
{
BaseUtility = new ModbusUtility(connectionType, connectionString, slaveAddress, masterAddress, endian);
AddressFormater = new AddressFormaterModbus();
AddressCombiner = new AddressCombinerContinus(AddressTranslator, 100);
AddressCombinerSet = new AddressCombinerContinus(AddressTranslator, 100);
}
///
/// 构造函数
///
/// 设备的ID号
/// 连接类型
/// 连接地址
/// 读写的地址
/// 从站号
/// 主站号
/// 端格式
public ModbusMachine(string id, ModbusType connectionType, string connectionString,
IEnumerable getAddresses, byte slaveAddress, byte masterAddress,
Endian endian = Endian.BigEndianLsb)
: this(id, connectionType, connectionString, getAddresses, true, slaveAddress, masterAddress, endian)
{
}
}
}