源适应性界面

This commit is contained in:
“hsc”
2026-09-22 11:33:07 +08:00
parent ac26ab255c
commit 3275283263
15 changed files with 1219 additions and 29 deletions
+16
View File
@@ -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 主站未建立),无法执行输出控制操作,请确认设备连接状态。");
}
}
}