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) { } } }