181 lines
7.2 KiB
C#
181 lines
7.2 KiB
C#
using Common.Attributes;
|
|
using Model;
|
|
using System;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace DeviceCommand.Device
|
|
{
|
|
[BOBCommand]
|
|
public class Backfeed
|
|
{
|
|
private string CurrentDevice { get; set; }
|
|
private E36233A _E36233A { get; set; }
|
|
private IT6724CReverse _IT6724CReverse { get; set; }
|
|
public object CurrentInstance
|
|
{
|
|
get
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
return _E36233A;
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
return _IT6724CReverse;
|
|
else
|
|
throw new InvalidOperationException("还没初始化实例");
|
|
}
|
|
}
|
|
public Backfeed(ICommunicationConfig config)
|
|
{
|
|
if (config is TcpConfig tcpConfig)
|
|
{
|
|
_E36233A = new E36233A(tcpConfig.IPAddress, tcpConfig.Port, tcpConfig.WriteTimeout, tcpConfig.ReadTimeout);
|
|
CurrentDevice = "E36233A";
|
|
}
|
|
else if (config is SerialPortConfig serialPortConfig)
|
|
{
|
|
_IT6724CReverse = new IT6724CReverse(serialPortConfig.COMPort, serialPortConfig.BaudRate, serialPortConfig.DataBit, serialPortConfig.StopBit, serialPortConfig.ParityBit, serialPortConfig.ReadTimeout, serialPortConfig.WriteTimeout);
|
|
CurrentDevice = "IT6724CReverse";
|
|
}
|
|
}
|
|
|
|
#region 统一接口 - 设置命令
|
|
|
|
// 清除输出保护
|
|
public virtual async Task 清除输出保护(CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.清除输出保护(ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.清除输出保护(ct);
|
|
}
|
|
|
|
// 设置电源输出
|
|
public virtual async Task 设置电源输出(bool 开关, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置电源输出(开关, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置电源输出(开关, ct);
|
|
}
|
|
|
|
// 设置为远程模式
|
|
public virtual async Task 设置为远程模式(CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置为远程模式(ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置为远程模式(ct);
|
|
}
|
|
|
|
// 蜂鸣器测试
|
|
public virtual async Task 蜂鸣器测试(CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.蜂鸣器测试(ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.蜂鸣器测试(ct);
|
|
}
|
|
|
|
// 设置电流
|
|
public virtual async Task 设置电流(double 电流, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置电流(电流, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置电流(电流, ct);
|
|
}
|
|
|
|
// 设置电流保护OCP电流
|
|
public virtual async Task 设置电流保护OCP电流(double 电流, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置电流保护OCP电流(电流, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置电流保护OCP电流(电流, ct);
|
|
}
|
|
|
|
// 设置OCP开关
|
|
public virtual async Task 设置OCP开关(bool 开关, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置OCP开关(开关, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置OCP开关(开关, ct);
|
|
}
|
|
|
|
// 设置电压
|
|
public virtual async Task 设置电压(double 电压, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置电压(电压, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置电压(电压, ct);
|
|
}
|
|
|
|
// 设置电压保护OVP电压
|
|
public virtual async Task 设置电压保护OVP电压(double 电压, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置电压保护OVP电压(电压, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置电压保护OVP电压(电压, ct);
|
|
}
|
|
|
|
// 设置OVP开关
|
|
public virtual async Task 设置OVP开关(bool 开关, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置OVP开关(开关, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置OVP开关(开关, ct);
|
|
}
|
|
|
|
// 设置功率保护功率
|
|
public virtual async Task 设置功率保护功率(double 电压, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置功率保护功率(电压, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置功率保护功率(电压, ct);
|
|
}
|
|
|
|
// 设置功率保护开关
|
|
public virtual async Task 设置功率保护开关(bool 开关, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置功率保护开关(开关, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置功率保护开关(开关, ct);
|
|
}
|
|
|
|
// 设置电流斜率
|
|
public virtual async Task 设置电流斜率(double 上升斜率, double 下降斜率, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置电流斜率(上升斜率, 下降斜率, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置电流斜率(上升斜率, 下降斜率, ct);
|
|
}
|
|
|
|
// 设置电压斜率
|
|
public virtual async Task 设置电压斜率(double 上升斜率, double 下降斜率, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.设置电压斜率(上升斜率, 下降斜率, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.设置电压斜率(上升斜率, 下降斜率, ct);
|
|
}
|
|
|
|
// 发送自定义命令
|
|
public virtual async Task 发送自定义命令(string 指令, CancellationToken ct = default)
|
|
{
|
|
if (CurrentDevice == "E36233A")
|
|
await _E36233A.发送自定义命令(指令, ct);
|
|
else if (CurrentDevice == "IT6724CReverse")
|
|
await _IT6724CReverse.发送自定义命令(指令, ct);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|