EquipControl.cs 10.5 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using OnlineStore.DeviceLibrary;

namespace OnlineStore.AssemblyLine
{
    public partial class EquipControl : UserControl
    { 
        public string TrayNum
        {
            get { return lblTrayNum.Text; }
            set { lblTrayNum.Text = value;  }
        }
        public string EquipName
        {
            get { return lblName.Text; }
            set { lblName.Text = value; }
        }
        public string WorkStatus
        {
            get { return lblStatus.Text; }
            set { lblStatus.Text = value; }
        }
        public string MoveInfo
        {
            get { return lblMoveInfo.Text; }
            set { lblMoveInfo.Text = value; }
        }

        public Color ColorStatus
        {
            get { return this.BackColor; } 
            set
            {
                this.BackColor = value;
            }
        } 
        public void SelectStyle()
        { 
            panName.BackColor = Color.DeepSkyBlue;
        }
        public void UnSelectStyle()
        { 
            panName.BackColor = Color.Transparent;
        }
        public void InitData(EquipBase equip)
        {
            if (equip is MoveEquip)
            {
                //panName.BackColor = Color.DeepSkyBlue;
                lblBox.Visible = true;
                lblBox.Text = "";
            }
            else if (equip is FeedingEquip)
            {
                //panName.BackColor = Color.Lime;
                //panName.BackColor = Color.MediumSpringGreen;
                lblBox.Visible = false ;
                lblBox.Text = "";
            }
            else
            {
                //panName.BackColor = Color.Aqua;
                //panName.BackColor = Color.DarkTurquoise;
                lblBox.Visible = false ;
                lblBox.Text = "";
            }
            DeviceId = equip.DeviceID;
            lblName.Text = equip.Name;
        }

        public  int DeviceId = 0;
        public void ShowData(EquipBase equip)
        {          
            lblTrayNum.Text ="托盘:"+equip.currTrayNum;
            lblStatus.Text = equip.GetRunStr(); 
            toolTip1.ToolTipTitle = ""+equip.Name+":双击进入"; 
            lblDebug.Text = "启用" + (equip.IsDebug ? "✘" : "✔");
            lblWarn.Text = equip.WarnMsg;
            lblUseServo.Visible = false;
            if (String.IsNullOrEmpty(equip.RFIDIP))
            {
                lblTrayNum.Visible = false;
            }
            else
            {
                lblTrayNum.Visible = true;
            }
            if (equip.DeviceID < 100)
            {
                lblUseServo.Visible = equip.UseAxis;
                if (equip.MoveInfo.MoveType.Equals(LineMoveType.InStore))
                {
                    if (equip.OnlyProOutTray)
                    {
                        if (equip.MoveInfo.MoveParam.IsNG)
                        {
                            lblMoveInfo.Text = "NG料移栽:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                        }
                        else if (equip.MoveInfo.MoveParam.urgentReel)
                        {
                            lblMoveInfo.Text = "紧急料移栽:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                        }
                        else if (equip.MoveInfo.MoveParam.cutReel)
                        {
                            lblMoveInfo.Text = "分盘料移栽:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                        }
                        else
                        {
                            lblMoveInfo.Text = "工单料移栽:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                        }
                    }
                    else
                    {
                        lblMoveInfo.Text = "入库中:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                    }
                }
                else if (equip.MoveInfo.MoveType.Equals(LineMoveType.OutStore))
                {
                    lblMoveInfo.Text = "出库中:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                }
                else if (equip.SecondMoveInfo.MoveType.Equals(LineMoveType.Fixture))
                {
                    lblMoveInfo.Text = "托盘[" + equip.currTrayNum + "]处理中";
                }
                else
                {
                    lblMoveInfo.Text = "暂无出入库";
                }

                BoxInfo box = LineServer.GetBoxInfo(equip.DeviceID);
                string online = "✘";
                string str = "BOX";
                if (equip.DeviceID.Equals(7))
                {
                    str = "出料机构";
                }
                if (box != null)
                { 
                    if ((DateTime.Now - box.LastMsgTime).TotalSeconds < LineServer.ClientKeepSecond)
                    {
                        online = "✔";
                        if (box.SAlarmType.Equals(LineAlarmType.None))
                        {
                          
                            lblBox.Text = str+"[" + box.CId.ToString() + "]:" + online + " " + box.ToShowStr();
                            if (box.SRunStatus.Equals((int)LineRunStatus.Busy))
                            {
                                lblBox.BackColor = Color.LightGreen;
                            }
                            else
                            {
                                lblBox.BackColor = Color.LightBlue;
                            }
                        }
                        else
                        {
                            lblBox.Text = str + "[" + box.CId.ToString() + "]:" + online + " "+box.SAlarmType+" " + box.ToShowStr();
                            lblBox.BackColor = Color.Red;
                        }
                    }
                    else
                    {
                        lblBox.Text = str + "[" + box.CId.ToString() + "]:" + online + " " + box.ToShowStr();
                        lblBox.BackColor = Color.Gray;
                    }

                }
                else
                {
                    lblBox.Text = str + "状态:" + online;
                    lblBox.BackColor = Color.Gray;
                }


            }
            else if (equip.DeviceID < 200)
            {
                if (equip.MoveInfo.MoveType.Equals(LineMoveType.InStore))
                {
                    lblMoveInfo.Text = "料架" + equip.CurrShelfId + ",入库:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                }
                else if (equip.MoveInfo.MoveType.Equals(LineMoveType.OutStore))
                {
                    lblMoveInfo.Text = "料架"+equip.CurrShelfId+",出库:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                }
                else if (equip.SecondMoveInfo.MoveType.Equals(LineMoveType.Fixture))
                {
                    lblMoveInfo.Text = "托盘[" + equip.currTrayNum + "]处理中";
                }
                else
                {
                    lblMoveInfo.Text = "暂无出入库";
                }
            }
            else
            {
                if (equip.MoveInfo.MoveType.Equals(LineMoveType.OutStore))
                {
                    lblMoveInfo.Text = "托盘[" + equip.currTrayNum + "]送料:" + equip.MoveInfo.MoveParam.PosId + "_" + equip.MoveInfo.MoveParam.WareCode;
                }
                else if (equip.MoveInfo.MoveType.Equals(LineMoveType.Fixture))
                {
                    lblMoveInfo.Text = "托盘[" + equip.currTrayNum + "]处理中";
                }
                else if (equip.SecondMoveInfo.MoveType.Equals(LineMoveType.Fixture))
                {
                    lblMoveInfo.Text = "托盘[" + equip.currTrayNum + "]处理中";
                }
                else
                {
                    lblMoveInfo.Text = "暂无托盘处理";
                }
            }
            this.BackColor = equip.GetShowColor(); 
        }
        public EquipControl()
        {
            InitializeComponent();
        } 
        private void EquipControl_Load(object sender, EventArgs e)
        { 
        }

        public static EquipControl NewControl(EquipBase equip)
        {
            EquipControl control = new EquipControl();
            control.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
             | System.Windows.Forms.AnchorStyles.Left)
             | System.Windows.Forms.AnchorStyles.Right)));
            control.BackColor = System.Drawing.SystemColors.Control;
            control.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
            control.ColorStatus = System.Drawing.SystemColors.Control;
            control.EquipName = "";
            control.Location = new System.Drawing.Point(3, 3);
            control.MoveInfo = "";
            control.Name = "EquipControl" + equip.DeviceID;
            control.Size = new System.Drawing.Size(270, 91);
            control.TabIndex = 0;
            control.TrayNum = "";
            control.WorkStatus = "";
            control.EquipName = equip.Name; 
            control.DeviceId = equip.DeviceID;
            control.InitData(equip);
            control.ShowData(equip); 
            return control;
        }

        private void lblName_DoubleClick(object sender, EventArgs e)
        {
            this.OnDoubleClick(e);
        }

        private void lblName_MouseEnter(object sender, EventArgs e)
        {
            this.OnMouseEnter(e);
        }

        private void panName_MouseEnter(object sender, EventArgs e)
        { 
            this.OnMouseEnter(e);
        }

        private void panName_DoubleClick(object sender, EventArgs e)
        {
            this.OnDoubleClick(e);
        }

        private void lblStatus_DoubleClick(object sender, EventArgs e)
        {
            this.OnDoubleClick(e);
        }

        private void lblStatus_MouseEnter(object sender, EventArgs e)
        {
            this.OnMouseEnter(e);
        }

        private void lblBox_MouseEnter(object sender, EventArgs e)
        {
            this.OnMouseEnter(e);
        }
    }
}