using Aitex.Core.Util; using FurnaceUI.Models; using MECF.Framework.Common.DataCenter; using MECF.Framework.Common.OperationCenter; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Controls; namespace FurnaceUI.Views.Maintenances { public class BufferRobotViewModel : FurnaceUIViewModelBase { #region Buffer Data [Subscription("PM1.BufferServo.CurrentPosition")] public float BufferCurrentPosition { get; set; } [Subscription("PM1.BufferServo.CurrentSpeed")] public float BufferCurrentSpeed { get; set; } [Subscription("PM1.BufferServo.IsServoOn")] public bool BufferIsServoOn { get; set; } [Subscription("PM1.BufferServo.IsReady")] public bool BufferIsReady { get; set; } [Subscription("PM1.BufferServo.Status")] public string BufferStatus { get; set; } [Subscription("PM1.BufferServo.IsMotorRun")] public bool BufferIsMotorRun { get; set; } #endregion [Subscription("Rt.Status")] public string RtStatus { get; set; } public bool IsSystemStaus => (RtStatus != "AutoRunning"); //public bool IsPermission { get => this.Permission >= 3 && ClientApp.Instance.UserContext.RoleName == "Service"; } public bool IsPermission { get => this.Permission >= 3; } private List _targetPosition = new List(); public List TargetPosition { get => _targetPosition; set { _targetPosition = value; NotifyOfPropertyChange(nameof(TargetPosition)); } } private string _selectedTargetPosition; public string SelectedTargetPosition { get => _selectedTargetPosition; set { _selectedTargetPosition = value; NotifyOfPropertyChange(nameof(SelectedTargetPosition)); } } private Dictionary _targetPositionDic = new Dictionary() { { "1-A", "1" }, { "1-B", "2" }, { "1-C", "3" }, { "1-D", "4" }, { "2-A", "5" }, { "2-B", "6" }, { "2-C", "7" }, { "2-D", "8" }, { "3-A", "9" }, { "3-B", "10" }, { "3-C", "11" }, { "3-D", "12" }, { "4-A", "13" }, { "4-B", "14" }, { "4-C", "15" }, { "4-D", "16" }, }; public BufferRobotViewModel() { foreach(var target in _targetPositionDic.Keys) { _targetPosition.Add(target); } } public void SetValue() { var target = _targetPositionDic.ContainsKey(SelectedTargetPosition) ? _targetPositionDic[SelectedTargetPosition] : SelectedTargetPosition; InvokeClient.Instance.Service.DoOperation($"PM1.BufferServo.ServoTargetPosition", target); } public void MoveTo() { InvokeClient.Instance.Service.DoOperation($"PM1.BufferServo.ServoMoveTo", ""); } public void SetServoOn(object target, object isOn) { InvokeClient.Instance.Service.DoOperation($"{target}", $"{isOn}"); } public void Stop(object target) { InvokeClient.Instance.Service.DoOperation($"{target}.ServoStop"); } public void Reset(object target) { InvokeClient.Instance.Service.DoOperation($"{target}.ServoResetAlarm"); } } }