215 lines
5.6 KiB
C#
215 lines
5.6 KiB
C#
using Aitex.Core.Util;
|
|
using SicUI.Models;
|
|
using Aitex.Core.Common.DeviceData;
|
|
using MECF.Framework.UI.Client.ClientBase;
|
|
using System.Threading.Tasks;
|
|
using System;
|
|
using Aitex.Core.RT.Device.PmDevices;
|
|
|
|
namespace SicUI
|
|
{
|
|
public class ProcessMonitorViewModel : SicModuleUIViewModelBase
|
|
{
|
|
|
|
public ProcessMonitorViewModel()
|
|
{
|
|
Pm1Monitor = new MonitorModel() { SystemName = "PM1" };
|
|
Pm2Monitor = new MonitorModel() { SystemName = "PM2" };
|
|
|
|
|
|
}
|
|
|
|
public MonitorModel Pm1Monitor { get; set; }
|
|
public MonitorModel Pm2Monitor { get; }
|
|
|
|
|
|
protected override void OnInitialize()
|
|
{
|
|
base.OnInitialize();
|
|
|
|
Pm1Monitor.SubscribeKeys();
|
|
Pm2Monitor.SubscribeKeys();
|
|
}
|
|
|
|
protected override void OnActivate()
|
|
{
|
|
base.OnActivate();
|
|
|
|
Pm1Monitor.EnableTimer(true);
|
|
Pm2Monitor.EnableTimer(true);
|
|
}
|
|
|
|
protected override void OnDeactivate(bool close)
|
|
{
|
|
base.OnDeactivate(close);
|
|
|
|
Pm1Monitor.EnableTimer(false);
|
|
Pm2Monitor.EnableTimer(false);
|
|
}
|
|
}
|
|
public class MonitorModel : SicModuleUIViewModelBase, ISupportMultipleSystem
|
|
{
|
|
public string TargetModule { get; set; }
|
|
|
|
|
|
[Subscription("SelectedRecipeName")]
|
|
public string RecipeName { get; set; }
|
|
|
|
[Subscription("RecipeStepNumber")]
|
|
public int RecipeStepNumber { get; set; }
|
|
|
|
[Subscription("RecipeStepName")]
|
|
public string RecipeStepName { get; set; }
|
|
|
|
[Subscription("RecipeStepElapseTime")]
|
|
public int RecipeStepElapseTime { get; set; }
|
|
|
|
[Subscription("RecipeStepTime")]
|
|
public int RecipeStepTime { get; set; }
|
|
|
|
[Subscription("RecipeTotalElapseTime")]
|
|
public int RecipeTotalElapseTime { get; set; }
|
|
|
|
[Subscription("RecipeTotalTime")]
|
|
public int RecipeTotalTime { get; set; }
|
|
|
|
[Subscription("TC1.HeaterModeSetPoint")]
|
|
public float TC1HeaterMode { get; set; }
|
|
|
|
[Subscription("TC2.HeaterModeSetPoint")]
|
|
public float TC2HeaterMode { get; set; }
|
|
|
|
[Subscription("SCR1.PowerFeedBack")]
|
|
public float SCR1Power { get; set; }
|
|
|
|
[Subscription("SCR2.PowerFeedBack")]
|
|
public float SCR2Power { get; set; }
|
|
|
|
[Subscription("SCR3.PowerFeedBack")]
|
|
public float SCR3Power { get; set; }
|
|
|
|
[Subscription("PSU1.OutputPowerFeedBack")]
|
|
public float PSU1Power { get; set; }
|
|
|
|
[Subscription("PSU2.OutputPowerFeedBack")]
|
|
public float PSU2Power { get; set; }
|
|
|
|
[Subscription("PSU3.OutputPowerFeedBack")]
|
|
public float PSU3Power { get; set; }
|
|
|
|
[Subscription("TC1.L2InputTempSetPoint")]
|
|
public float L2InputTemp { get; set; }
|
|
|
|
[Subscription("TC1.L3InputTempSetPoint")]
|
|
public float L3InputTemp { get; set; }
|
|
|
|
[Subscription("TC2.L3InputTempSetPoint")]
|
|
public float SCRL3InputTemp { get; set; }
|
|
|
|
[Subscription("PMServo.ActualSpeedFeedback")]
|
|
public float ActualSpeedFeedback { get; set; }
|
|
|
|
[Subscription("PT1.DeviceData")]
|
|
public AITPressureMeterData ChamPress { get; set; }
|
|
|
|
[Subscription("TC1.TempCtrlTCIN")]
|
|
public float PM1Temprature { get; set; }
|
|
|
|
[Subscription("Status")]
|
|
public string Status { get; set; }
|
|
|
|
public bool IsPMProcess => Status == "Process" || Status == "PostProcess" || Status == "Paused" ||
|
|
Status == "PMMacroPause" || Status == "PMMacro" || Status == "PostPMMacro";
|
|
|
|
public bool IsPreProcess => Status == "PreProcess" || Status == "PrePMMacro";
|
|
|
|
public string StepNumber
|
|
{
|
|
get
|
|
{
|
|
if (IsPMProcess)
|
|
{
|
|
return $"{RecipeStepNumber}";
|
|
}
|
|
else if (IsPreProcess)
|
|
{
|
|
return "0";
|
|
}
|
|
return "--";
|
|
|
|
}
|
|
set
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
public string StepName
|
|
{
|
|
get
|
|
{
|
|
if (IsPMProcess)
|
|
{
|
|
return $"{RecipeStepName}";
|
|
}
|
|
else if (IsPreProcess)
|
|
{
|
|
return "0";
|
|
}
|
|
return "--";
|
|
}
|
|
}
|
|
|
|
public string StepTime
|
|
{
|
|
get
|
|
{
|
|
if (IsPMProcess)
|
|
{
|
|
return $"{RecipeStepElapseTime}/{RecipeStepTime}";
|
|
}
|
|
else if (IsPreProcess)
|
|
{
|
|
return "0";
|
|
}
|
|
return "--";
|
|
|
|
}
|
|
}
|
|
|
|
public string RecipeTime
|
|
{
|
|
get
|
|
{
|
|
if (IsPMProcess)
|
|
{
|
|
return $"{RecipeTotalElapseTime}/{RecipeTotalTime}";
|
|
}
|
|
else if (IsPreProcess)
|
|
{
|
|
return "0";
|
|
}
|
|
return "--";
|
|
}
|
|
}
|
|
|
|
public string PsuMode
|
|
{
|
|
get
|
|
{
|
|
return Enum.GetName(typeof(DicMode.HeaterControlMode), Convert.ToInt32(TC1HeaterMode));
|
|
}
|
|
}
|
|
|
|
public string ScrMode
|
|
{
|
|
get
|
|
{
|
|
return Enum.GetName(typeof(DicMode.HeaterControlMode), Convert.ToInt32(TC2HeaterMode));
|
|
}
|
|
}
|
|
|
|
public string ChamberPressureFeedback => ChamPress?.FeedBack.ToString(ChamPress?.FormatString);
|
|
}
|
|
}
|