101 lines
4.2 KiB
C#
101 lines
4.2 KiB
C#
using Caliburn.Micro;
|
|
using MECF.Framework.Common.DataCenter;
|
|
using MECF.Framework.Common.OperationCenter;
|
|
using MECF.Framework.UI.Client.CenterViews.Editors.Recipe;
|
|
using MECF.Framework.UI.Client.CenterViews.Editors.Sequence;
|
|
using MECF.Framework.UI.Client.ClientBase;
|
|
using System;
|
|
using System.Collections.ObjectModel;
|
|
using MECF.Framework.UI.Client.CenterViews.Core;
|
|
using MECF.Framework.UI.Client.RecipeEditorLib.RecipeModel;
|
|
|
|
namespace SicUI.Models.RecipeEditors
|
|
{
|
|
public enum RoutineType
|
|
{
|
|
ATMIdle = 0,
|
|
VACIdle,
|
|
ProcessIdle,
|
|
Pump,
|
|
Vent,
|
|
Purge,
|
|
Clean,
|
|
ExchangeMOTCS,
|
|
ExchangeMOTMA,
|
|
Isolation,
|
|
LeakCheck,
|
|
Abort
|
|
}
|
|
|
|
public class RoutineConfigViewModel : SicModuleUIViewModelBase, ISupportMultipleSystem
|
|
{
|
|
public ObservableCollection<string> RoutineTypeList { get; set; }
|
|
|
|
protected override void OnInitialize()
|
|
{
|
|
base.OnInitialize();
|
|
|
|
RoutineTypeList = new ObservableCollection<string>();
|
|
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.ATMIdleFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.VACIdleFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.ProcessIdleFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.PumpFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.VentFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.PurgeFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.CleanFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.ExchangeMOTCSFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.ExchangeMOTMAFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.IsolationFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.LeakCheckFileName").ToString());
|
|
RoutineTypeList.Add(QueryDataClient.Instance.Service.GetConfig("PM.PM1.AbortFileName").ToString());
|
|
}
|
|
|
|
public void Select(string strRoutineType)
|
|
{
|
|
var dialog = new RecipeSelectDialogViewModel();
|
|
dialog.DisplayName = "Select Routine";
|
|
|
|
var recipeProvider = new RecipeProvider();
|
|
|
|
//这里只需要Routine,不需要Recipe
|
|
var processType = "Routine";
|
|
|
|
var ProcessTypeFileList = new ObservableCollection<ProcessTypeFileItem>();
|
|
string[] recipeProcessType = ((string)processType).Split(',');
|
|
|
|
for (int i = 0; i < recipeProcessType.Length; i++)
|
|
{
|
|
var type = new ProcessTypeFileItem();
|
|
type.ProcessType = recipeProcessType[i];
|
|
var prefix = $"Sic\\{recipeProcessType[i]}";
|
|
var recipes = recipeProvider.GetXmlRecipeList(prefix);
|
|
type.FileListByProcessType = RecipeSequenceTreeBuilder.BuildFileNode(prefix, "", false, recipes)[0].Files;
|
|
ProcessTypeFileList.Add(type);
|
|
}
|
|
|
|
dialog.ProcessTypeFileList = ProcessTypeFileList;
|
|
|
|
WindowManager wm = new WindowManager();
|
|
bool? bret = wm.ShowDialog(dialog);
|
|
if ((bool)bret)
|
|
{
|
|
int index = (int)(RoutineType)(Enum.Parse(typeof(RoutineType), strRoutineType));
|
|
|
|
RoutineTypeList[index] = dialog.DialogResult;
|
|
}
|
|
}
|
|
|
|
public void SaveRoutineConfig()
|
|
{
|
|
string RoutineName;
|
|
for (int i = 0; i < RoutineTypeList.Count; i++)
|
|
{
|
|
RoutineName = RoutineType.GetName(typeof(RoutineType), i);
|
|
RoutineName += "FileName";
|
|
InvokeClient.Instance.Service.DoOperation("System.SetConfig", $"PM.PM1.{RoutineName}", RoutineTypeList[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|