MarkingMonitor.xaml.cs 8.62 KB
using HHECS.BLL.EquipmentExcute.Marking;
using HHECS.Model.Entities;
using HHECS.Model.Enums.Machine;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace HHECS.WinCommon.Controls
{
    /// <summary>
    /// MarkingMonitor.xaml 的交互逻辑
    /// </summary>
    public partial class MarkingMonitor : UserControl
    {
        public MarkingMonitor(string LineCode)
        {
            InitializeComponent();
            Init(LineCode);
        }

        public MarkingMonitor(List<string> lines)
        {

            InitializeComponent();
            //Init(lines);

        }
        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 "line3":
                    stp_line01.Visibility = Visibility.Visible;
                    stp_freeline01.Visibility = Visibility.Visible;
                    stp_line02.Visibility = Visibility.Visible;
                    stp_freeline02.Visibility = Visibility.Visible;
                    break;
                case "MaxPipeLine":
                    stp_line02.Visibility = Visibility.Visible;
                    stp_freeline02.Visibility = Visibility.Visible;
                    break;
                case "Line3":
                    stp_line03.Visibility = Visibility.Visible;
                    stp_freeline03.Visibility = Visibility.Visible;
                    break;
                case "Line4":
                    stp_line04.Visibility = Visibility.Visible;
                    stp_freeline04.Visibility = Visibility.Visible;
                    break;
                default:
                    stp_line01.Visibility = Visibility.Visible;
                    stp_line02.Visibility = Visibility.Visible;
                    stp_line03.Visibility = Visibility.Visible;
                    stp_line04.Visibility = Visibility.Visible;

                    stp_freeline01.Visibility = Visibility.Visible;
                    stp_freeline02.Visibility = Visibility.Visible;
                    stp_freeline03.Visibility = Visibility.Visible;
                    stp_freeline04.Visibility = Visibility.Visible;
                    break;
            }

        }

        /// <summary>
        /// key :线体code ,value:ip 地址
        /// </summary>
        /// <param name="dicMarking"></param>
        public void SetMarkingStatus(Dictionary<int, (string Code,string Value)> dicMarking)
        {

            foreach (var item in dicMarking)
            {
                if (item.Value.Code == "line3" && item.Key == 10)
                {
                    this.bor_line01.Background = SendDataToMarking.tcpClient.Connected ? Brushes.Green : Brushes.Gray;
                   // this.bor_line01.Background = SendDataToMarking.CheckTCPOnLine(item.Value.Code, item.Value.Value) ? Brushes.Green : Brushes.Gray;
                    switch (SendDataToMarking.markingFlag)
                    {
                        case MarkingFlagTocx.空闲:
                            this.bor_freeline01.Background = Brushes.Green;
                            break;
                        case MarkingFlagTocx.打标中:
                            this.bor_freeline01.Background = Brushes.Red;
                            break;
                        case MarkingFlagTocx.打标完成:
                            this.bor_freeline01.Background = Brushes.Yellow;
                            break;
                        default:
                            this.bor_freeline01.Background = Brushes.Gray;
                            break;
                    }
                }
                if (item.Value.Code == "line3" && item.Key == 11)
                {
                    this.bor_line02.Background = SendDataTo.tcpClient.Connected ? Brushes.Green : Brushes.Gray;
                    //this.bor_line01.Background = SendDataTo.CheckTCPOnLine(item.Value.Code, item.Value.Value) ? Brushes.Green : Brushes.Gray;
                    switch (SendDataTo.markingFlag)
                    {
                        case MarkingFlag.空闲:
                            this.bor_freeline02.Background = Brushes.Green;
                            break;
                        case MarkingFlag.打标中:
                            this.bor_freeline02.Background = Brushes.Red;
                            break;
                        case MarkingFlag.打标完成:
                            this.bor_freeline02.Background = Brushes.Yellow;
                            break;
                        default:
                            this.bor_freeline02.Background = Brushes.Gray;
                            break;
                    }
                }

                if (item.Value.Code == "A_MixnPipeLine")
                {
                    this.bor_line02.Background = SendDataToMarking.tcpClient.Connected? Brushes.Green : Brushes.Gray;
                    //this.bor_line02.Background = SendDataToMarking.CheckOnLine(item.Key, item.Value) ? Brushes.Green : Brushes.Gray;
                    switch (SendDataToMarking.markingFlag)
                    {
                        case MarkingFlagTocx.空闲:
                            this.bor_freeline02.Background = Brushes.Green;
                            break;
                        case MarkingFlagTocx.打标中:
                            this.bor_freeline02.Background = Brushes.Red;
                            break;
                        case MarkingFlagTocx.打标完成:
                            this.bor_freeline02.Background = Brushes.Yellow;
                            break;
                        default:
                            this.bor_freeline02.Background = Brushes.Gray;
                            break;
                    }
                }

                if (item.Value.Code == "A_MixnPipeLine")
                {
                    this.bor_line03.Background = SendDataToMarking.CheckOnLine(item.Value.Code, item.Value.Value) ? Brushes.Green : Brushes.Gray;
                    switch (SendDataToMarking.markingFlag)
                    {
                        case MarkingFlagTocx.空闲:
                            this.bor_freeline03.Background = Brushes.Green;
                            break;
                        case MarkingFlagTocx.打标中:
                            this.bor_freeline03.Background = Brushes.Red;
                            break;
                        case MarkingFlagTocx.打标完成:
                            this.bor_freeline03.Background = Brushes.Yellow;
                            break;
                        default:
                            this.bor_freeline03.Background = Brushes.Gray;
                            break;
                    }
                }

                if (item.Value.Code == "A_MixnPipeLine")
                {
                    this.bor_line04.Background = SendDataToMarking.CheckOnLine(item.Value.Code, item.Value.Value) ? Brushes.Green : Brushes.Gray;
                    switch (SendDataToMarking.markingFlag)
                    {
                        case MarkingFlagTocx.空闲:
                            this.bor_freeline04.Background = Brushes.Green;
                            break;
                        case MarkingFlagTocx.打标中:
                            this.bor_freeline04.Background = Brushes.Red;
                            break;
                        case MarkingFlagTocx.打标完成:
                            this.bor_freeline04.Background = Brushes.Yellow;
                            break;
                        default:
                            this.bor_freeline04.Background = Brushes.Gray;
                            break;
                    }
                }
            }




        }

    }
}