源适应性界面
This commit is contained in:
@@ -35,6 +35,7 @@ namespace DeviceCommand.Devices
|
||||
/// <param name="data">开关状态(true: 吸合/开启, false: 断开/关闭)</param>
|
||||
public async Task 写输出开关(byte 站号, ushort 开始地址, bool data)
|
||||
{
|
||||
确保已连接();
|
||||
await Modbus.WriteSingleCoilAsync(站号, 开始地址, data);
|
||||
}
|
||||
|
||||
@@ -47,6 +48,7 @@ namespace DeviceCommand.Devices
|
||||
/// <param name="datas">要写入的开关状态数组,按顺序从开始地址写入</param>
|
||||
public async Task 批量写输出开关(byte 站号, ushort 开始地址, bool[] datas)
|
||||
{
|
||||
确保已连接();
|
||||
var 批量写入 = await Modbus.ReadCoilsAsync(1, 0, 16);
|
||||
for (int i = 0; i < datas.Length; i++)
|
||||
{
|
||||
@@ -65,6 +67,7 @@ namespace DeviceCommand.Devices
|
||||
/// <param name="开始地址">线圈地址(0 起始)</param>
|
||||
public async Task 读输出开关(byte 站号, ushort 开始地址)
|
||||
{
|
||||
确保已连接();
|
||||
await Modbus.ReadCoilsAsync(站号, 开始地址, 1);
|
||||
}
|
||||
|
||||
@@ -77,7 +80,20 @@ namespace DeviceCommand.Devices
|
||||
/// <returns>线圈状态数组,true 表示吸合/开启</returns>
|
||||
public async Task<bool[]> 批量读输出开关(byte 站号, ushort 开始地址,ushort 数量)
|
||||
{
|
||||
确保已连接();
|
||||
return await Modbus.ReadCoilsAsync(站号, 开始地址, 数量);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 确认 Modbus 主站已建立(设备连接成功)。
|
||||
/// 未连接时抛出带明确提示的异常,替代对 null 主站的 NullReferenceException,
|
||||
/// 供上层(测试步骤 / 报警蜂鸣器)捕获并记录。
|
||||
/// </summary>
|
||||
/// <exception cref="InvalidOperationException">Modbus 主站尚未建立时抛出</exception>
|
||||
private void 确保已连接()
|
||||
{
|
||||
if (Modbus == null)
|
||||
throw new InvalidOperationException("IO 板卡尚未连接(Modbus 主站未建立),无法执行输出控制操作,请确认设备连接状态。");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user