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.

62 lines
1.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

namespace HybirdFrameworkDriver.ModbusTcpMaster;
public class ModbusProperty<T> : IModbusProperty
{
/// <summary>
/// 寄存器编号
/// </summary>
public int RegisterNo { get; set; }
/// <summary>
/// 数据起始地址
/// </summary>
public int Start { get; set; }
/// <summary>
/// 数据域长度
/// </summary>
public int Length { get; set; }
/// <summary>
/// 数据类型
/// </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; }
/// <summary>
///
/// </summary>
/// <param name="registerNo">寄存器编号</param>
/// <param name="start">根据类型Register为第几个寄存器</param>
/// <param name="length">根据类型Register 为 几个寄存器</param>
/// <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,
double scale = 1,int round = 0, double offset = 0)
{
this.RegisterNo = registerNo;
this.Start = start;
this.Length = length;
this.Type = type;
this.Scale = scale;
this.Round = round;
this.Offset = offset;
}
public int GetRegisterNo()
{
return RegisterNo;
}
}
public enum ModbusDataType
{
Bit,
Register
}