You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.7 KiB

7 months ago
namespace HybirdFrameworkDriver.ModbusTcpMaster;
/// <summary>
6 months ago
///
/// </summary>
/// <typeparam name="T"></typeparam>
7 months ago
public class ModbusProperty<T> : IModbusProperty
{
/// <summary>
7 months ago
/// </summary>
/// <param name="registerNo">寄存器编号</param>
/// <param name="start">根据类型Register为第几个寄存器</param>
/// <param name="length">根据类型Register 为 几个寄存器(2byte)</param>
7 months ago
/// <param name="type">Register/Bit</param>
/// <param name="scale">精度</param>
/// <param name="round">保留几位小数</param>
/// <param name="offset">偏移量</param>
public ModbusProperty(int registerNo, int start = 0, int length = 1, ModbusDataType type = ModbusDataType.Register,
6 months ago
double scale = 1, int round = 0, double offset = 0, T value=default)
7 months ago
{
RegisterNo = registerNo;
Start = start;
Length = length;
Type = type;
Scale = scale;
Round = round;
Offset = offset;
6 months ago
Value = value;
7 months ago
}
/// <summary>
/// 寄存器编号
7 months ago
/// </summary>
public int RegisterNo { get; set; }
/// <summary>
7 months ago
/// 数据起始地址
7 months ago
/// </summary>
public int Start { get; set; }
/// <summary>
7 months ago
/// 数据域长度
7 months ago
/// </summary>
public int Length { get; set; }
/// <summary>
7 months ago
/// 数据类型
7 months ago
/// </summary>
public ModbusDataType Type { get; set; }
public double Scale { get; set; }
public int Round { get; set; }
public double Offset { get; set; }
public T Value { get; set; }
public int GetRegisterNo()
{
return RegisterNo;
}
}
public enum ModbusDataType
{
Bit,
Register
6 months ago
}