TrayManagerControl.cs 2.7 KB
using DeviceLibrary;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TheMachine
{
    public partial class TrayManagerControl : UserControl
    {
        Robot_Config _Config;
        public Robot_Config Config
        {
            get { return _Config; }
            set
            {
                _Config = value;
                Init();
            }
        }
        public TrayManagerControl()
        {
            InitializeComponent();
        }

        private void TrayManagerControl_Load(object sender, EventArgs e)
        {

        }
        void Init() {

            #region listview初始化
            var ColList = new string[] { "RFID", "上次地址", "更新时间", "托盘类型", "载荷","目的地" };
            listView1.View = View.Details;
            foreach (var coltxt in ColList)
            {
                ColumnHeader col1 = new ColumnHeader();
                col1.Text = coltxt;
                col1.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent); 
                listView1.Columns.Add(col1);
            }
            #endregion
            timer1.Start();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (!Visible)
                return;

            var traylist = TrayManager.Traylist.Values.ToList();
            foreach (var ti in traylist) {
                var timego = (DateTime.Now - ti.LastUpdateTime);
                var lasttime = timego.Seconds + "秒前";
                if (timego.Minutes > 0)
                    lasttime = timego.Minutes + "分 " + lasttime;
                if (timego.Hours > 0)
                    lasttime = timego.Hours + "时 " + lasttime;
                var traydesc = TrayManager.TrayTypeDesc[ti.TrayType];
                var loaddesc = TrayManager.LoadTypeDesc[ti.LoadType];
                var lastaddrdesc = TrayManager.AddrDesc[ti.LastAddr];
                var toaddrdesc = TrayManager.AddrDesc[ti.DestinationAddr];
                var items = new string[] { ti.RFID, lastaddrdesc.ToString(), lasttime, traydesc, loaddesc, toaddrdesc };
                var listviewitem = new ListViewItem();
                if (timego.TotalSeconds < 10)
                    listviewitem.BackColor = Color.DarkGreen;
                else if (timego.TotalSeconds > 30)
                    listviewitem.BackColor = Color.DarkGray;
                else
                    listviewitem.BackColor = Color.Black;
                listviewitem.UseItemStyleForSubItems = true;
                listviewitem.SubItems.AddRange(items);
            }

        }
    }
}