[英]Access methods and members of an Abstract class
我正在开发Windows窗体以用作Modbus主模拟器。 我正在使用NModbus库。 我试图在屏幕上进行读取或写入操作后显示从设备收到的响应。 例如,这是从NModbus库读取的线圈功能代码,
public class ModbusIpMaster : ModbusMaster
{
private ModbusIpMaster(ModbusTransport transport)
: base(transport)
{
}
/// Read from 1 to 2000 contiguous coils status.
/// </summary>
/// <param name="startAddress">Address to begin reading.</param>
/// <param name="numberOfPoints">Number of coils to read.</param>
/// <returns>Coils status</returns>
public bool[] ReadCoils(ushort startAddress, ushort numberOfPoints)
{
return base.ReadCoils(Modbus.DefaultIpSlaveUnitId, startAddress,
numberOfPoints);
}
}
ReadCoils方法可在基类ModbusMaster中找到,它是一个抽象类。
public abstract class ModbusMaster : ModbusDevice, IModbusMaster
{
internal ModbusMaster(ModbusTransport transport)
: base(transport)
{
}
public bool[] ReadCoils(byte slaveAddress, ushort startAddress, ushort
numberOfPoints)
{
ValidateNumberOfPoints("numberOfPoints", numberOfPoints, 2000);
return ReadDiscretes(Modbus.ReadCoils, slaveAddress, startAddress,
numberOfPoints);
}
internal bool[] ReadDiscretes(byte functionCode, byte slaveAddress,
ushort startAddress, ushort numberOfPoints)
{
ReadCoilsInputsRequest request = new
ReadCoilsInputsRequest(functionCode, slaveAddress,
startAddress, numberOfPoints);
ReadCoilsInputsResponse response =
Transport.UnicastMessage<ReadCoilsInputsResponse>(request);
return response.Data.Slice(0, request.NumberOfPoints).ToArray();
}
}
我想访问Read Discrete方法以使用ReadCoilsInputResponse来显示包含字节数,从站ID,数据等的响应。但是当我创建ModbusIPMaster类的实例并使用该实例访问Read Discrete方法时,我无法访问它。 谁能帮我解决这个问题? 还是有其他方法可以显示收到的完整回复? 以下是引用NModbus库的链接https://github.com/NModbus/NModbus
ReadDiscretes声明为内部。 您在同一集合中吗? 如果不是这样,也许您应该考虑宣布为公开?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.