Files
ACP/UIShare/UIViewModel/VisaConfigVM.cs
T

57 lines
1.8 KiB
C#

using Prism.Mvvm;
namespace UIShare.UIViewModel
{
/// <summary>
/// VISA 连接配置(与 DeviceCommand.Base.Visa 保持字段一致)。
/// <para>VISA 通过统一资源字符串寻址,无需区分 IP/端口,例如
/// TCPIP0::192.168.20.125::inst0::INSTR、USB0::0x0699::0x0408::C012345::INSTR。</para>
/// </summary>
public class VisaConfigVM : BindableBase
{
private string _resourceName = "TCPIP0::127.0.0.1::inst0::INSTR";
/// <summary>VISA 资源字符串(TCPIP / USB / GPIB / ASRL 等统一寻址)。</summary>
public string ResourceName
{
get => _resourceName;
set => SetProperty(ref _resourceName, value);
}
private int _openTimeout = 3000;
/// <summary>打开会话超时(毫秒)。</summary>
public int OpenTimeout
{
get => _openTimeout;
set => SetProperty(ref _openTimeout, value);
}
private int _ioTimeout = 3000;
/// <summary>读写 I/O 超时(毫秒)。</summary>
public int IOTimeout
{
get => _ioTimeout;
set => SetProperty(ref _ioTimeout, value);
}
public VisaConfigVM() { }
/// <summary>拷贝构造,用于对话框编辑副本。</summary>
public VisaConfigVM(VisaConfigVM? src)
{
if (src == null) return;
ResourceName = src.ResourceName;
OpenTimeout = src.OpenTimeout;
IOTimeout = src.IOTimeout;
}
/// <summary>把字段拷回目标对象(保存时用)。</summary>
public void CopyTo(VisaConfigVM? dst)
{
if (dst == null) return;
dst.ResourceName = ResourceName;
dst.OpenTimeout = OpenTimeout;
dst.IOTimeout = IOTimeout;
}
}
}