using Caliburn.Micro; using Caliburn.Micro.Core; using Aitex.Core.Common.DeviceData; using Aitex.Core.UI.ControlDataContext; using Aitex.Core.Util; using MECF.Framework.Common.DataCenter; using MECF.Framework.Common.OperationCenter; using FurnaceUI.Models; using FurnaceUI.Views.Editors; using System.Collections.ObjectModel; using System.Collections.Generic; using System.Threading.Tasks; using System.Reflection; using System; using Aitex.Core.RT.Log; using System.Linq; using System.Windows; using System.Windows.Controls; namespace FurnaceUI.Views.Maintenances { public class APCConfigViewModel : FurnaceUIViewModelBase { public bool IsManagerPermission { get => this.Permission == 3; } [Subscription("PM1.APC.ValveStatusThreshold")] public float ValveStatusThreshold { get; set; } [Subscription("PM1.APC.SlowVacuumModeSetting")] public float SlowVacuumModeSetting { get; set; } [Subscription("PM1.APC.Interlock1")] public float Interlock1 { get; set; } [Subscription("PM1.APC.Interlock2")] public float Interlock2 { get; set; } [Subscription("PM1.APC.Interlock3")] public float Interlock3 { get; set; } [Subscription("PM1.APC.InterlockConstantOfInterlock3")] public float InterlockConstantOfInterlock3 { get; set; } [Subscription("PM1.APC.P1SensorOffsetSetting")] public float P1SensorOffsetSetting { get; set; } [Subscription("PM1.APC.PosMonOffsetSetting")] public float PosMonOffsetSetting { get; set; } public float ValveStausThresholdSet { get; set; } public float SlowVacuumModeSettingSet { get; set; } public float Interlock1Set { get; set; } public float Interlock2Set { get; set; } public float Interlock3Set { get; set; } public float InterlockConstantOfInterlock3Set { get; set; } public float P1SensorOffsetSettingSet { get; set; } public float PosMonOffsetSettingSet { get; set; } public APCConfigViewModel() { } protected override void OnActivate() { ValveStausThresholdSet = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.ValveStatusThreshold"); SlowVacuumModeSettingSet = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.SlowVacuumModeSetting"); Interlock1Set = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.Interlock1"); Interlock2Set = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.Interlock2"); Interlock3Set = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.Interlock3"); InterlockConstantOfInterlock3Set = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.InterlockConstantOfInterlock3"); P1SensorOffsetSettingSet = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.P1SensorOffsetSetting"); PosMonOffsetSettingSet = (float)(double)QueryDataClient.Instance.Service.GetConfig($"PM1.APC.PosMonOffsetSetting"); base.OnActivate(); } public void SetAlarmReset(object target) { InvokeClient.Instance.Service.DoOperation($"{target?.ToString().Split('.').ToList().LastOrDefault()}.Reset"); } public void SetConfig(object tbValveStausThreshold, object tbSlowVacuumModeSetting, object tbInterlock1, object tbInterlock2, object tbInterlock3, object tbInterlockConstantOfInterlock3, object tbP1SensorOffsetSetting, object tbPosMonOffsetSetting) { InvokeClient.Instance.Service.DoOperation($"PM1.APC.SetConfig", (tbValveStausThreshold as TextBox)?.Text, (tbSlowVacuumModeSetting as TextBox)?.Text, (tbInterlock1 as TextBox)?.Text, (tbInterlock2 as TextBox)?.Text, (tbInterlock3 as TextBox)?.Text, (tbInterlockConstantOfInterlock3 as TextBox)?.Text, (tbP1SensorOffsetSetting as TextBox)?.Text, (tbPosMonOffsetSetting as TextBox)?.Text); } public void SetUpload() { InvokeClient.Instance.Service.DoOperation($"PM1.APC.SetUpload"); } public void SetDownload(object tbValveStausThreshold, object tbSlowVacuumModeSetting, object tbInterlock1, object tbInterlock2, object tbInterlock3, object tbInterlockConstantOfInterlock3, object tbP1SensorOffsetSetting, object tbPosMonOffsetSetting) { InvokeClient.Instance.Service.DoOperation($"PM1.APC.SetDownload", (tbValveStausThreshold as TextBox)?.Text, (tbSlowVacuumModeSetting as TextBox)?.Text, (tbInterlock1 as TextBox)?.Text, (tbInterlock2 as TextBox)?.Text, (tbInterlock3 as TextBox)?.Text, (tbInterlockConstantOfInterlock3 as TextBox)?.Text, (tbP1SensorOffsetSetting as TextBox)?.Text, (tbPosMonOffsetSetting as TextBox)?.Text); } public void CloseCmd() { ((Window)GetView()).Close(); } } }