This repository has been archived on 2023-03-29. You can view files and clone it, but cannot push or open issues or pull requests.
Sic02/FrameworkLocal/UIClient/Ctrlib/UnitControls/TVSettingDialogViewModel.cs

159 lines
4.1 KiB
C#

using System;
using System.ComponentModel;
using System.Windows.Input;
using Aitex.Core.Common.DeviceData;
using MECF.Framework.Common.OperationCenter;
using OpenSEMI.ClientBase;
namespace MECF.Framework.UI.Client.Ctrlib.UnitControls
{
public class TVSettingDialogViewModel : DialogViewModel<string>, INotifyPropertyChanged
{
private AITThrottleValveData _data;
public AITThrottleValveData DeviceData
{
get
{
return _data;
}
set
{
_data = value;
NotifyOfPropertyChange(nameof(DeviceData));
NotifyOfPropertyChange(nameof(IsPositionMode));
NotifyOfPropertyChange(nameof(IsPressureMode));
}
}
private string _setPointPosition;
public string InputSetPointPosition
{
get { return _setPointPosition; }
set
{
_setPointPosition = value;
NotifyOfPropertyChange(nameof(InputSetPointPosition));
}
}
private string _setPointPressure;
public string InputSetPointPressure
{
get { return _setPointPressure; }
set
{
_setPointPressure = value;
NotifyOfPropertyChange(nameof(InputSetPointPressure));
}
}
public bool IsPositionMode
{
get
{
return DeviceData != null && DeviceData.Mode == (int)PressureCtrlMode.TVPositionCtrl;
}
set
{
}
}
private bool _isPressureMode;
public bool IsPressureMode
{
get
{
//return _isPressureMode;
return DeviceData != null && DeviceData.Mode == (int)PressureCtrlMode.TVPressureCtrl;
}
set
{
if (value != _isPressureMode)
{
}
_isPressureMode = value;
}
}
private bool _enableOk;
public bool IsEnableOk
{
get
{
return _enableOk;
}
set
{
_enableOk = value;
NotifyOfPropertyChange(nameof(IsEnableOk));
}
}
public ICommand PositionCommand { get; set; }
public TVSettingDialogViewModel(string dialogName = "")
{
this.DisplayName = dialogName;
}
public void Cancel()
{
IsCancel = true;
TryClose(false);
}
protected override void OnViewLoaded(object view)
{
base.OnViewLoaded(view);
}
public void SetPosition()
{
if (IsPositionMode)
return;
InvokeClient.Instance.Service.DoOperation($"{DeviceData.Module}.{DeviceData.DeviceName}.{AITThrottleValveOperation.SetMode}", PressureCtrlMode.TVPositionCtrl.ToString());
}
public void SetPressure()
{
if (IsPressureMode)
return;
InvokeClient.Instance.Service.DoOperation($"{DeviceData.Module}.{DeviceData.DeviceName}.{AITThrottleValveOperation.SetMode}", PressureCtrlMode.TVPressureCtrl.ToString());
}
public void Set()
{
if (IsPressureMode)
SetPressureExecute(Convert.ToDouble(InputSetPointPressure));
else if (IsPositionMode)
SetPositionExecute(Convert.ToDouble(InputSetPointPosition));
}
private void SetPressureExecute(double value)
{
InvokeClient.Instance.Service.DoOperation($"{DeviceData.Module}.{DeviceData.DeviceName}.{AITThrottleValveOperation.SetPressure}", (float)value);
}
private void SetPositionExecute(double value)
{
InvokeClient.Instance.Service.DoOperation($"{DeviceData.Module}.{DeviceData.DeviceName}.{AITThrottleValveOperation.SetPosition}", (float)value);
}
}
}