123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216 |
- using Aitex.Core.RT.Log;
- using MECF.Framework.UI.Client.ClientBase;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.Linq;
- using System.Windows;
- using System.Windows.Input;
- using Aitex.Core.RT.SCCore;
- using Aitex.Core.UI.MVVM;
- using Aitex.Core.Util;
- using DocumentFormat.OpenXml.Drawing.Charts;
- using MECF.Framework.Common.CommonData;
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.OperationCenter;
- using SciChart.Core.Extensions;
- namespace MECF.Framework.UI.Client.CenterViews.Maitenances.CalibrationTable
- {
- public interface ICalibrationTableViewModelParameter
- {
- List<CalibrationTableItem> Items { get; set; }
- }
- public class CalibrationTableItem
- {
- public string DisplayName { get; set; }
- public string ItemTableScName { get; set; }
- public string ItemEnableScName { get; set; }
- }
- public class CalibrationTableViewModel : UiViewModelBase, ISupportMultipleSystem
- {
- public ICalibrationTableViewModelParameter CustomParameter { get; set; }
- public string SystemName { get; set; }
- public class NotifiableCalibrationTableItem : NotifiableItem
- {
- public string DisplayName { get; set; }
- public float FeedbackValue { get; set; }
- public float CalibrationValue { get; set; }
- }
- public ObservableCollection<CalibrationTableItem> CalibrationItems { get; set; }
- public ObservableCollection<NotifiableCalibrationTableItem> TableData { get; set; }
- public string FeedbackValue { get; set; }
- public string CalibrationValue { get; set; }
- private CalibrationTableItem _currentSelection;
- public CalibrationTableItem CurrentSelection
- {
- get { return _currentSelection; }
- set
- {
- _currentSelection = value;
- ChangeSelection(_currentSelection);
- NotifyOfPropertyChange(nameof(CurrentSelection));
- }
- }
-
- public CalibrationTableViewModel()
- {
- DisplayName = "Calibration Table ";
-
- CalibrationItems = new ObservableCollection<CalibrationTableItem>();
- TableData = new ObservableCollection<NotifiableCalibrationTableItem>();
- }
- protected override void OnInitialize()
- {
- base.OnInitialize();
- }
- protected override void OnActivate()
- {
- base.OnActivate();
- if (CustomParameter != null && CustomParameter.Items != null && CalibrationItems.IsEmpty())
- {
- foreach (var item in CustomParameter.Items)
- {
- CalibrationItems.Add(new CalibrationTableItem()
- {
- DisplayName = item.DisplayName,
- ItemEnableScName = item.ItemEnableScName,
- ItemTableScName = item.ItemTableScName,
- });
- }
- }
- }
- protected void ChangeSelection(CalibrationTableItem item)
- {
- if (item == null)
- {
- TableData.Clear();
- return;
- }
- var tableValues = QueryDataClient.Instance.Service.GetConfig(item.ItemTableScName);
- if (tableValues == null)
- return;
- var scValue = (string) tableValues;
- string[] items = scValue.Split(';');
- var tableData = new ObservableCollection<NotifiableCalibrationTableItem>();
- for (int i = 0; i < items.Length; i++)
- {
- if (items.Length > i)
- {
- string itemValue = items[i];
- if (!string.IsNullOrEmpty(itemValue))
- {
- string[] pairValue = itemValue.Split('#');
- if (pairValue.Length == 2)
- {
- if (float.TryParse(pairValue[0], out float rangeItem1)
- && float.TryParse(pairValue[1], out float rangeItem2))
- {
- tableData.Add(new NotifiableCalibrationTableItem()
- {
- FeedbackValue = rangeItem1,
- CalibrationValue = rangeItem2,
- });
- }
- }
- }
- }
- }
- TableData = new ObservableCollection<NotifiableCalibrationTableItem>( tableData.OrderBy(x => x.FeedbackValue).ToList());
- NotifyOfPropertyChange(nameof(TableData));
- }
- public void Save()
- {
- if (CurrentSelection == null)
- return;
- string data = "";
- foreach (var item in TableData)
- {
- data += $"{item.FeedbackValue}#{item.CalibrationValue};";
- }
- InvokeClient.Instance.Service.DoOperation("System.SetConfig", CurrentSelection.ItemTableScName, data);
- Reload();
- }
- public void Cancel()
- {
- Reload();
- }
- private void Reload()
- {
- ChangeSelection(CurrentSelection);
- }
- public void Add()
- {
- if (string.IsNullOrEmpty(FeedbackValue) || string.IsNullOrEmpty(CalibrationValue))
- {
- MessageBox.Show("Input value is empty");
- return;
- }
- if (!float.TryParse(FeedbackValue, out float feedback) ||
- !float.TryParse(CalibrationValue, out float calibrationValue))
- {
- MessageBox.Show("Input value not valid");
- return;
- }
- FeedbackValue = "";
- CalibrationValue = "";
- NotifyOfPropertyChange(nameof(FeedbackValue));
- NotifyOfPropertyChange(nameof(CalibrationValue));
- TableData.Add(new NotifiableCalibrationTableItem()
- {
- DisplayName = CurrentSelection.DisplayName,
- FeedbackValue = feedback,
- CalibrationValue = calibrationValue,
- });
- }
- public void DeleteItem(NotifiableCalibrationTableItem item)
- {
- TableData.Remove(item);
- }
-
- }
- }
|