[英]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.