using Aitex.Core.RT.ConfigCenter; using Aitex.Core.Util; using MECF.Framework.Common.CommonData.PowerSupplier; using MECF.Framework.Common.DataCenter; using MECF.Framework.Common.Device.LinMot; using MECF.Framework.Common.Device.PowerSupplier; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.Utilities; using Prism.Mvvm; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Threading; namespace CyberX8_MainPages.ViewModels { public class PowerSupplierViewModel : BindableBase { #region 常量 private const string POWERSUPPLIER_DATA = "PowerSupplierData"; private const string CONNECTED = "Connected"; #endregion #region 内部变量 /// /// 模块名称 /// private string _module; /// /// 查询后台数据集合 /// private List _rtDataKeys = new List(); /// /// 查询后台的数据 /// private Dictionary _rtDataValues; /// /// 定时器 /// private DispatcherTimer _timer; #region SideA /// /// SideA PowerSupplier /// private string _sideAPowerSupplier; /// /// SideA PowerSupplier数据 /// private PowerSupplierData _sideAPowerSupplierData; /// /// SideA PowerSupplier连接状态 /// private bool _sideAPowerSupplierConnected; /// /// SideA 步阶1数据 /// private PowerSupplierStepPeriodData _sideAStep1Data = new PowerSupplierStepPeriodData(); /// /// SideA 步阶2数据 /// private PowerSupplierStepPeriodData _sideAStep2Data = new PowerSupplierStepPeriodData(); /// /// SideA 步阶3数据 /// private PowerSupplierStepPeriodData _sideAStep3Data = new PowerSupplierStepPeriodData(); #endregion #region SideB /// /// SideA PowerSupplier /// private string _sideBPowerSupplier; /// /// SideB PowerSupplier数据 /// private PowerSupplierData _sideBPowerSupplierData; /// /// SideB PowerSupplier连接状态 /// private bool _sideBPowerSupplierConnected; /// /// SideB 步阶1数据 /// private PowerSupplierStepPeriodData _sideBStep1Data = new PowerSupplierStepPeriodData(); /// /// SideB 步阶2数据 /// private PowerSupplierStepPeriodData _sideBStep2Data = new PowerSupplierStepPeriodData(); /// /// SideB 步阶3数据 /// private PowerSupplierStepPeriodData _sideBStep3Data = new PowerSupplierStepPeriodData(); #endregion #endregion #region 属性 /// /// 模块名称 /// public string Module { get { return _module; } set { SetProperty(ref _module, value); } } #region SideA /// /// SideA PowerSupplier /// public string SideAPowerSupplier { get { return _sideAPowerSupplier; } set { SetProperty(ref _sideAPowerSupplier, value); } } /// /// SideA PowerSupplier 数据 /// public PowerSupplierData SideAPowerSupplierData { get { return _sideAPowerSupplierData; } set { SetProperty(ref _sideAPowerSupplierData, value);} } /// /// SideA PowerSupplier连接状态 /// public bool SideAPowerSupplierConnected { get { return _sideAPowerSupplierConnected; } set { SetProperty(ref _sideAPowerSupplierConnected, value); } } /// /// SideA 步阶1数据 /// public PowerSupplierStepPeriodData SideAStep1Data { get { return _sideAStep1Data; } set { SetProperty(ref _sideAStep1Data, value); } } /// /// SideA 步阶2数据 /// public PowerSupplierStepPeriodData SideAStep2Data { get { return _sideAStep2Data; } set { SetProperty(ref _sideAStep2Data, value); } } /// /// SideA 步阶3数据 /// public PowerSupplierStepPeriodData SideAStep3Data { get { return _sideAStep3Data; } set { SetProperty(ref _sideAStep3Data, value); } } #endregion #region SideB /// /// SideB PowerSupplier /// public string SideBPowerSupplier { get { return _sideBPowerSupplier; } set { SetProperty(ref _sideBPowerSupplier, value); } } /// /// SideB PowerSupplier 数据 /// public PowerSupplierData SideBPowerSupplierData { get { return _sideBPowerSupplierData; } set { SetProperty(ref _sideBPowerSupplierData, value); } } /// /// SideB PowerSupplier连接状态 /// public bool SideBPowerSupplierConnected { get { return _sideBPowerSupplierConnected; } set { SetProperty(ref _sideBPowerSupplierConnected, value); } } /// /// SideB 步阶1数据 /// public PowerSupplierStepPeriodData SideBStep1Data { get { return _sideBStep1Data; } set { SetProperty(ref _sideBStep1Data, value); } } /// /// SideA 步阶2数据 /// public PowerSupplierStepPeriodData SideBStep2Data { get { return _sideBStep2Data; } set { SetProperty(ref _sideBStep2Data, value); } } /// /// SideA 步阶3数据 /// public PowerSupplierStepPeriodData SideBStep3Data { get { return _sideBStep3Data; } set { SetProperty(ref _sideBStep3Data, value); } } #endregion #endregion /// /// 构造函数 /// public PowerSupplierViewModel() { } /// /// 加载数据 /// public void LoadData(string systemName) { Module = systemName; List lst = new List(); lst.Add($"{Module}.SideA.PowerSupplier"); lst.Add($"{Module}.SideB.PowerSupplier"); _rtDataValues = QueryDataClient.Instance.Service.PollData(lst); if (_rtDataValues != null) { SideAPowerSupplier = CommonFunction.GetValue(_rtDataValues, $"{Module}.SideA.PowerSupplier"); SideBPowerSupplier = CommonFunction.GetValue(_rtDataValues, $"{Module}.SideB.PowerSupplier"); } InitiRtDataKeys(); if(_timer==null) { _timer = new DispatcherTimer(); _timer.Interval = TimeSpan.FromMilliseconds(500); _timer.Tick += Timer_Tick; } _timer.Start(); } /// /// 定时器执行 /// /// /// private void Timer_Tick(object sender, EventArgs e) { if (_rtDataKeys.Count != 0) { _rtDataValues = QueryDataClient.Instance.Service.PollData(_rtDataKeys); if (_rtDataValues != null) { SideAPowerSupplierData = CommonFunction.GetValue(_rtDataValues, $"{_sideAPowerSupplier}.{POWERSUPPLIER_DATA}"); SideBPowerSupplierData = CommonFunction.GetValue(_rtDataValues, $"{_sideBPowerSupplier}.{POWERSUPPLIER_DATA}"); SideAPowerSupplierConnected = CommonFunction.GetValue(_rtDataValues, $"{_sideAPowerSupplier}.{CONNECTED}"); SideBPowerSupplierConnected = CommonFunction.GetValue(_rtDataValues, $"{_sideBPowerSupplier}.{CONNECTED}"); } } } /// /// 隐藏 /// public void Hide() { if (_timer != null) { _timer.Stop(); } } /// /// 初始化查询Key /// private void InitiRtDataKeys() { _rtDataKeys.Clear(); if(SideAPowerSupplier!=null) { _rtDataKeys.Add($"{_sideAPowerSupplier}.{POWERSUPPLIER_DATA}"); _rtDataKeys.Add($"{_sideAPowerSupplier}.{CONNECTED}"); } if (SideBPowerSupplier != null) { _rtDataKeys.Add($"{_sideBPowerSupplier}.{POWERSUPPLIER_DATA}"); _rtDataKeys.Add($"{_sideBPowerSupplier}.{CONNECTED}"); } } } }