LoadingLocationInfo.xaml.cs 5.87 KB
using HHECS.BLL.EquipmentExcute;
using HHECS.Executor.EquipmentHandler;
using HHECS.Model.Entities;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;

namespace HHECS.WinCommon.Controls
{
    /// <summary>
    /// MarkingMonitor.xaml 的交互逻辑
    /// </summary>
    public partial class LoadingLocationInfo : UserControl
    {
        public Equipment Self { get; set; }
        public string ControlName
        {
            get { return (string)GetValue(ControlNameProperty); }
            set { SetValue(ControlNameProperty, value); }
        }

        public static readonly DependencyProperty ControlNameProperty =
            DependencyProperty.Register("ControlName", typeof(string), typeof(LoadingLocationInfo), new PropertyMetadata(""));
        public LoadingLocationInfo(string LineCode)
        {
            InitializeComponent();
            this.txt_LoadingLocationName.SetBinding(TextBlock.TextProperty, new Binding("ControlName") { Source = this });
        }

        void Init(List<string> lines)
        {
            //foreach (var line in lines)
            //{
            //    DockPanel panel = new DockPanel();
            //    Label label = new Label();
            //    Border border = new Border();
            //    panel.Margin = new Thickness(15);
            //    label.Content = $"{line}状态:";
            //    border.Width = border.Height = 10;
            //    border.Background = Brushes.Red;
            //    border.CornerRadius = new CornerRadius(5);
            //    panel.Children.Add(label);
            //    panel.Children.Add(border);
            //    Marking_Panel.Children.Add(panel);
            //}

        }
        void Init(string LineCode)
        {
            switch (LineCode)
            {
                case "Line1":
                    stp_location01.Visibility = Visibility.Visible;
                    break;
                case "Line2":
                    stp_location02.Visibility = Visibility.Visible;
                    break;
                case "Line3":
                    stp_location03.Visibility = Visibility.Visible;
                    break;
                case "Line4":
                    stp_location04.Visibility = Visibility.Visible;
                    break;
                default:
                    stp_location01.Visibility = Visibility.Visible;
                    stp_location02.Visibility = Visibility.Visible;
                    stp_location03.Visibility = Visibility.Visible;
                    stp_location04.Visibility = Visibility.Visible;

                    break;
            }

        }

        /// <summary>
        /// key :线体code ,value:ip 地址
        /// </summary>
        /// <param name="dicMarking"></param>
        public void SetLocationStatus(Equipment Weld)
        {
            Self = Weld;

            var LocationStatus1 = Self[StationProps.LocationStatus1.ToString()];
            if (LocationStatus1 != null)
            {
                if (int.TryParse(LocationStatus1.Value, out int locationStatus1))
                {
                    if (locationStatus1 == 1)
                    {
                        this.bor_location01.Background = Brushes.Red;
                    }
                    else if (locationStatus1 == 2)
                    {
                        this.bor_location01.Background = Brushes.Green;
                    }
                    else if (locationStatus1 == 0)
                    {
                        this.bor_location01.Background = Brushes.Gray;
                    }
                }
            }

            var LocationStatus2 = Self[StationProps.LocationStatus2.ToString()];
            if (LocationStatus2 != null)
            {
                if (int.TryParse(LocationStatus2.Value, out int locationStatus2))
                {
                    if (locationStatus2 == 1)
                    {
                        this.bor_location02.Background = Brushes.Red;
                    }
                    else if (locationStatus2 == 2)
                    {
                        this.bor_location02.Background = Brushes.Green;
                    }
                    else if (locationStatus2 == 0)
                    {
                        this.bor_location02.Background = Brushes.Gray;
                    }
                }
            }

            var LocationStatus3 = Self[StationProps.LocationStatus3.ToString()];
            if (LocationStatus3 != null)
            {
                if (int.TryParse(LocationStatus3.Value, out int locationStatus3))
                {
                    if (locationStatus3 == 1)
                    {
                        this.bor_location03.Background = Brushes.Red;
                    }
                    else if (locationStatus3 == 2)
                    {
                        this.bor_location03.Background = Brushes.Green;
                    }
                    else if (locationStatus3 == 0)
                    {
                        this.bor_location03.Background = Brushes.Gray;
                    }
                }
            }

            var LocationStatus4 = Self[StationProps.LocationStatus4.ToString()];
            if (LocationStatus1 != null)
            {
                if (int.TryParse(LocationStatus4.Value, out int locationStatus4))
                {
                    if (locationStatus4 == 1)
                    {
                        bor_location04.Background = Brushes.Red;
                    }
                    else if (locationStatus4 == 2)
                    {
                        this.bor_location04.Background = Brushes.Green;
                    }
                    else if (locationStatus4 == 0)
                    {
                        this.bor_location04.Background = Brushes.Gray;
                    }
                }
            }
        }

    }
}