You need to sign in or sign up before continuing.
WdTempAreaSet.xaml.cs 4.66 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
using FLY.ControlLibrary;
using FLY.DownBlowing.Common;
using FLY.DownBlowing.IService;
using FLY.OBJComponents.Client;
using FObjBase;
using FObjBase.Reflect;
using System;
using System.Linq;
using System.Windows;

namespace FLY.DownBlowing.UI.Client.UiModule
{
    /// <summary>
    /// WdTempAreaSet.xaml 的交互逻辑
    /// </summary>
    public partial class WdTempAreaSet : WindowBigClose
    {
        #region MARKNO
        const int MARKNO_IsTempSetChanged = 1;
        const int MARKNO_IsAllTempSetChanged = 2;

        #endregion
        static string[] update_propertynames = new string[] {
            nameof(Common.TempArea.IsTempSetChanged1),
            nameof(Common.TempArea.IsTempSetChanged2),
            nameof(Common.TempArea.IsTempSetChanged3),
            nameof(Common.TempArea.IsTempSetChanged4),
            nameof(Common.TempArea.IsTempSetChanged5),
            nameof(Common.TempArea.IsTempSetChanged6),

31 32 33 34 35 36 37
            nameof(Common.TempArea.TempSVSet1),
            nameof(Common.TempArea.TempSVSet2),
            nameof(Common.TempArea.TempSVSet3),
            nameof(Common.TempArea.TempSVSet4),
            nameof(Common.TempArea.TempSVSet5),
            nameof(Common.TempArea.TempSVSet6),

38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
            nameof(Common.TempArea.AllTempSet),
            nameof(Common.TempArea.IsAllTempSame),
            nameof(Common.TempArea.IsAllTempSetChanged)
        };

        SetPLCUpdatePlan setPlan_item;
        IDownBlowingSystemService downBlowingSystemService;
        TempArea tempArea;
        public WdTempAreaSet()
        {
            InitializeComponent();
        }
        public void Init(IDownBlowingSystemService downBlowingSystemService, TempArea tempArea)
        {
            this.downBlowingSystemService = downBlowingSystemService;
            this.tempArea = tempArea;
            this.DataContext = tempArea;

潘栩锋's avatar
潘栩锋 committed
56 57 58
            int index = this.downBlowingSystemService.TAreas.IndexOf(tempArea);

            string objname = $"{nameof(IDownBlowingSystemService.TAreas)}[{index}]";
59 60
            setPlan_item = new SetPLCUpdatePlan(
                this.downBlowingSystemService.PLCos,
潘栩锋's avatar
潘栩锋 committed
61
                objname,
62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
                update_propertynames);

            tempArea.PropertyChanged += TempArea_PropertyChanged;
            for (int i = 0; i < tempArea.Temperatures.Count(); i++)
            {
                tempArea.Temperatures[i].PropertyChanged += WdTempAreaSet_PropertyChanged;
            }

        }

        private void WdTempAreaSet_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (downBlowingSystemService is Reflect_SeviceClient)
            {
                var client = downBlowingSystemService as Reflect_SeviceClient;
                if (client.IsInPushValue)
                {
                    return;
                }
            }

            var tempCell = sender as TempCell;
84
            if (e.PropertyName == nameof(Common.TempCell.TempSVSet))
85
            {
86
                //TODO
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
                //0.5s 后再set 1
                PollModule.Current.Poll_Config(PollModule.POLL_CONFIG.ADD, () =>
                {
                    tempCell.IsTempSetChanged = false;
                    tempCell.IsTempSetChanged = true;
                }, TimeSpan.FromSeconds(0.5), false, false, this, MARKNO_IsTempSetChanged, true);


            }
        }

        private void TempArea_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (downBlowingSystemService is Reflect_SeviceClient)
            {
                var client = downBlowingSystemService as Reflect_SeviceClient;
                if (client.IsInPushValue)
                {
                    return;
                }
            }

            if (e.PropertyName == nameof(Common.TempArea.AllTempSet))
            {
                //0.5s 后再set 1
                PollModule.Current.Poll_Config(PollModule.POLL_CONFIG.ADD, () =>
                {
                    tempArea.IsAllTempSetChanged = false;
                    tempArea.IsAllTempSetChanged = true;
                }, TimeSpan.FromSeconds(0.5), false, false, this, MARKNO_IsAllTempSetChanged, true);
            }
        }

        private void WindowBigClose_Unloaded(object sender, RoutedEventArgs e)
        {
122
            if (tempArea != null)
123
            {
124 125 126 127 128
                for (int i = 0; i < tempArea.Temperatures.Count(); i++)
                {
                    tempArea.Temperatures[i].PropertyChanged -= WdTempAreaSet_PropertyChanged;
                }
                tempArea.PropertyChanged -= TempArea_PropertyChanged;
129
            }
130 131
            if(setPlan_item!=null)
                setPlan_item.Dispose();
132 133 134
        }
    }
}