using System;
using Aitex.Core.RT.SCCore;
using Aitex.Core.UI.MVVM;
using MECF.Framework.Common.CommonData;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Net.Configuration;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using Aitex.Core.RT.Log;
using Aitex.Core.Util;
using DocumentFormat.OpenXml.Presentation;
using MECF.Framework.Common.Equipment;
using FurnaceRT.Equipments.PMs;
using FurnaceRT.Equipments.Systems;
namespace FurnaceRT.Backends
{
///
/// BackendPressureTuneView.xaml 的交互逻辑
///
public partial class BackendPressureTuneView : UserControl
{
public BackendPressureTuneView()
{
InitializeComponent();
this.Loaded += SCConfigView_Loaded;
this.IsVisibleChanged += BackendSCConfigView_IsVisibleChanged;
}
private void BackendSCConfigView_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
if (this.DataContext == null)
{
DataContext = new BackendPressureTuneViewModel();
}
(this.DataContext as BackendPressureTuneViewModel).Reload("");
}
private void SCConfigView_Loaded(object sender, RoutedEventArgs e)
{
if (this.DataContext == null)
{
DataContext = new BackendPressureTuneViewModel();
}
}
}
public class BackendPressureTuneViewModel : ViewModelBase
{
public ICommand SaveCommand { get; set; }
public ICommand ReloadCommand { get; set; }
public bool IsEnable1
{
get;
set;
}
public bool IsEnable2
{
get;
set;
}
public string Tuning1
{
get;
set;
}
public string Tuning2
{
get;
set;
}
public BackendPressureTuneViewModel()
{
Init();
SaveCommand = new DelegateCommand(PerformSave);
ReloadCommand = new DelegateCommand(Reload);
}
private void PerformSave(string obj)
{
try
{
SC.SetItemValue($"PM.PM1.LeakCheck.EnableTuning", IsEnable1);
SC.SetItemValue($"PM.PM2.LeakCheck.EnableTuning", IsEnable2);
SC.SetItemValue($"PM.PM1.LeakCheck.TuningPercent", double.Parse(Tuning1));
SC.SetItemValue($"PM.PM2.LeakCheck.TuningPercent", double.Parse(Tuning2));
MessageBox.Show("Tune setting Saved");
}
catch (Exception ex)
{
MessageBox.Show("value not valid, failed save setting");
LOG.Write(ex);
}
}
public void Reload( string obj)
{
Init();
}
void Init()
{
IsEnable1 = SC.GetValue($"PM.PM1.LeakCheck.EnableTuning");
Tuning1 = SC.GetValue($"PM.PM1.LeakCheck.TuningPercent").ToString("F2");
IsEnable2 = SC.GetValue($"PM.PM2.LeakCheck.EnableTuning");
Tuning2 = SC.GetValue($"PM.PM2.LeakCheck.TuningPercent").ToString("F2");
InvokeAllPropertyChanged();
}
}
}