EquipControl.cs 5.8 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 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;
                lblBox.Visible = false ;
                lblBox.Text = "";
            }
            else
            {
                panName.BackColor = Color.Aqua;
                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 ? "✘" : "✔");
            if (equip.DeviceID < 200)
            {
                if (equip.MoveInfo.MoveType.Equals(LineMoveType.InStore))
                {
                    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
                {
                    lblMoveInfo.Text = "暂无出入库";
                }
                if (equip.DeviceID < 100)
                {
                    BoxInfo box = LineServer.GetBoxInfo(equip.DeviceID);
                    string online = "✘";
                    if (box != null)
                    { 
                        //lvi.SubItems.Add(box.CId.ToString());
                        //lvi.SubItems.Add(online);
                        //lvi.SubItems.Add(box.SAlarmType.ToString());
                        //lvi.SubItems.Add(box.ToShowStr());

                        if ((DateTime.Now - box.LastMsgTime).TotalSeconds < LineServer.ClientKeepSecond)
                        {
                            online = "✔";
                        }
                        if (box.SAlarmType.Equals(LineAlarm.None))
                        {
                            lblBox.Text = "BOX[" + box.CId.ToString() + "]:" + online +" "+ box.ToShowStr();
                            lblBox.BackColor = Color.Green;
                        }
                        else
                        {
                            lblBox.Text = "BOX[" + box.CId.ToString() + "]:" + online + " " + box.ToShowStr();
                            lblBox.BackColor = Color.Red;
                        }
                    }
                    else
                    {
                        lblBox.Text = "BOX状态:" + online; 
                        lblBox.BackColor = Color.Gray;
                    }
                }

            }
            else
            {
                lblMoveInfo.Text = "暂无托盘横移";
            }
            this.BackColor = equip.GetShowColor();
            //SetItemColor(equip.runStatus, equip.alarmType); 
        }
        public EquipControl()
        {
            InitializeComponent();
        } 
        private void EquipControl_Load(object sender, EventArgs e)
        {
            //lblName.Text = "";
            //lblTrayNum.Text = "";
            //lblStatus.Text =  "";
            //lblMoveInfo.Text = "";
        }

        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;
        }
         
    }
}