| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- using LiveCharts;
- using Prism.Mvvm;
- using System.Linq;
- using Prism.Events;
- using Prism.Commands;
- using System.Windows.Media;
- using System.Threading.Tasks;
- using SHJX.Service.Common.Event;
- using SHJX.Service.Model.EventArgs;
- using SHJX.Service.Model.CRUDModules;
- using SHJX.Service.Control.Interface;
- using SHJX.Service.Model.MethodArgs;
- namespace SHJX.Service.Shell.ViewModels.Manual
- {
- public class Titration2ManualWindowViewModel : BindableBase
- {
- #region Field
- private readonly IManualService _service;
- #endregion
- #region Properties
- public ChartValues<double> SeriesCollection2 { get; init; }
- private Titration2Value _titration2DefaultValue;
- private Camera2Value _camera2Value;
- public Titration2Value Titration2DefaultValue
- {
- get => _titration2DefaultValue;
- set => SetProperty(ref _titration2DefaultValue, value);
- }
- public Camera2Value camera2Value
- {
- get => _camera2Value;
- set => SetProperty(ref _camera2Value, value);
- }
- private LiquidAmount _liquidAmountValue;
- public LiquidAmount LiquidAmountValue
- {
- get => _liquidAmountValue;
- set => SetProperty(ref _liquidAmountValue, value);
- }
- /// <summary>
- /// 连接名
- /// </summary>
- private bool _titrationStatus2;
- public bool TitrationStatus2
- {
- get => _titrationStatus2;
- set => SetProperty(ref _titrationStatus2, value);
- }
- /// <summary>
- /// 端口连接状态
- /// </summary>
- private SolidColorBrush _titrationStatusFill2;
- public SolidColorBrush TitrationStatusFill2
- {
- get => _titrationStatusFill2;
- set
- {
- SetProperty(ref _titrationStatusFill2, value);
- _titrationStatusFill2.Freeze();
- }
- }
- /// <summary>
- /// 端口连接状态
- /// </summary>
- private Titration2ValueArgs _titrationValue;
- public Titration2ValueArgs Titration2Value
- {
- get => _titrationValue;
- set => SetProperty(ref _titrationValue, value);
- }
- /// <summary>
- /// 相机最大曝光值
- /// </summary>
- private int _maxCameraRange;
- public int MaxCameraRange
- {
- get => _maxCameraRange;
- set => SetProperty(ref _maxCameraRange, value);
- }
- private bool _optionTitration;
- public bool OptionTitration
- {
- get => _optionTitration;
- set => SetProperty(ref _optionTitration, value);
- }
- #endregion
- public Titration2ManualWindowViewModel(IEventAggregator ea, IManualService service)
- {
- _service = service;
- SeriesCollection2 = new ChartValues<double>();
- Titration2DefaultValue = _service.GetData<Titration2Value>().FirstOrDefault();
- camera2Value = _service.GetData<Camera2Value>().FirstOrDefault();
- LiquidAmountValue = _service.GetOnceDropLiquidAmount();
- TitrationStatus2 = true;
- TitrationStatusFill2 = Brushes.Red;
- MaxCameraRange = -1;
- OptionTitration = false;
- Titration2Value = new Titration2ValueArgs();
- ea.GetEvent<Graber2ValueEvent>().Subscribe((lists) =>
- {
- SeriesCollection2.Clear();
- SeriesCollection2.AddRange(lists);
- });
- ea.GetEvent<Titration2StatusEvent>().Subscribe((res) =>
- {
- TitrationStatus2 = !res;
- TitrationStatusFill2 = res ? Brushes.LightGreen : Brushes.Red;
- });
- ea.GetEvent<Titration2ValueEvent>().Subscribe((value) =>
- {
- Titration2Value = value;
- });
- }
- #region Command
- private DelegateCommand _manualTitrationCommand;
- public DelegateCommand ManualTitrationCommand => _manualTitrationCommand ??= new DelegateCommand(ExecuteManualTitrationCommand);
- private DelegateCommand _manualTitrationCommandStop;
- public DelegateCommand ManualTitrationCommandStop => _manualTitrationCommandStop ??= new DelegateCommand(ExecuteManualTitrationCommandStop);
- private DelegateCommand _manualExplosionCommand;
- public DelegateCommand ManualExplosionCommand => _manualExplosionCommand ??= new DelegateCommand(ExecuteManualExplosionCommand);
- private DelegateCommand _manualcheckParams;
- public DelegateCommand ManualcheckParams => _manualcheckParams ??= new DelegateCommand(ExecuteManualcheckParams);
- #endregion
- #region Execute
- private void ExecuteManualTitrationCommand()
- {
- Task.Factory.StartNew(() =>
- {
- Titration2Arg arg = new()
- {
- RangeValue = Titration2DefaultValue.RangeValue,
- BeforeWaitTime = Titration2DefaultValue.BeforeWaitTime,
- ArriveCheckCount = Titration2DefaultValue.ArriveCheckCount,
- IntervalTime = Titration2DefaultValue.IntervalTime,
- MaxDropVolume = Titration2DefaultValue.NormalMaxDropVolume,
- LiquidAmount = LiquidAmountValue.Amount,
- PumpCapacity = LiquidAmountValue.Capacity,
- LiquidConvertRatio = LiquidAmountValue.ConvertRatio,
- CameraRange = MaxCameraRange,
- WhetherQuicklyTitration = OptionTitration,
- QuicklyTitrationValue = Titration2DefaultValue.QuicklyTitrationValue,
- explosion=camera2Value
- };
- _service.ManualExecuteTitration2(arg);
- });
- }
- private void ExecuteManualTitrationCommandStop()
- {
- _service.ManualExecuteTitration2Stop();
- }
- private void ExecuteManualExplosionCommand()
- {
- _service.ManualExecuteExplosion2(MaxCameraRange);
- }
- private void ExecuteManualcheckParams()
- {
- _service.ManualcheckParams2();
- }
-
- #endregion
- }
- }
|