MycronicControl.cs 5.1 KB
using DeviceLibrary;
using OnlineStore;
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.device.Other
{
    public partial class MycronicControl : UserControl
    {
        public MycronicControl()
        {
            InitializeComponent();
        }

        private void MycronicControl_Load(object sender, EventArgs e)
        {
            uc_boxdebug1.Init(RobotManage.MI1Postion);
            uc_boxdebug2.Init(RobotManage.MI2Postion);
            uc_boxdebug3.Init(RobotManage.CIPostion);

            ucurRobot1.Init(RobotManage.Robot_MI1);
            ucurRobot2.Init(RobotManage.Robot_MI2);
            ucurRobot3.Init(RobotManage.Robot_CI);

            #region 状态信息listview初始化
            stateView.View = View.Details;
            ColumnHeader c1 = new ColumnHeader();
            c1.Text = "";
            c1.Width = 0;
            ColumnHeader c2 = new ColumnHeader();
            c2.Text = "Tower ID";
            c2.Width = 120;
            ColumnHeader c3 = new ColumnHeader();
            c3.Text = "Status";
            c3.Width = 120;
            ColumnHeader c4 = new ColumnHeader();
            c4.Text = crc.GetString("Form1_tabc_tabP1_Text", "信息");
            c4.Width = 470;

            stateView.Columns.Add(c1);
            stateView.Columns.Add(c2);
            stateView.Columns.Add(c3);
            stateView.Columns.Add(c4);
            #endregion
            crc.LanguageChangeEvent += Crc_LanguageChangeEvent; ;


            // 假设 TowerInfo 列表已经存在并被填充了
            List<TowerInfo> towerList = TowerList.List.Values.ToList();

            // 创建一个 checkbox 的列表控件
            List<CheckBox> checkBoxList = new List<CheckBox>();

            // 遍历 TowerInfo 列表,并生成一个带有 checkbox 的列表
            foreach (var tower in towerList)
            {
                // 创建一个新的 checkbox 控件
                CheckBox checkBox = new CheckBox();
                checkBox.Text = tower.TowerName;
                checkBox.Checked = tower.Enable;
                checkBox.Width = 150;
                // 添加一个 Tag 属性,用于保存对应的 TowerInfo 对象
                checkBox.Tag = tower;

                // 将 checkbox 控件添加到列表中
                checkBoxList.Add(checkBox);

                // 将 checkbox 的 CheckedChanged 事件与一个方法绑定,用于修改对应的 TowerInfo 对象的 enable 属性
                checkBox.CheckedChanged += CheckBox_CheckedChanged;
            }

            // 将 checkbox 列表添加到窗体中的一个容器控件中
            foreach (var checkBox in checkBoxList)
            {
                flowLayoutPanel2.Controls.Add(checkBox);
            }


        }
        // CheckBox 的 CheckedChanged 事件的处理方法
        private void CheckBox_CheckedChanged(object sender, EventArgs e)
        {
            // 获取当前 checkbox 控件和对应的 TowerInfo 对象
            CheckBox checkBox = (CheckBox)sender;
            TowerInfo tower = (TowerInfo)checkBox.Tag;

            // 更新 TowerInfo 对象的 enable 属性
            tower.Enable = checkBox.Checked;
        }
        private void Crc_LanguageChangeEvent(object sender, EventArgs e)
        {
            stateView.Columns[1].Text = "Tower ID";
            stateView.Columns[2].Text = "Status";
            stateView.Columns[3].Text = crc.GetString("Form1_tabc_tabP1_Text", "信息");
        }

        private void tabPage4_Click(object sender, EventArgs e)
        {

        }

        private void btn_manualout_Click(object sender, EventArgs e)
        {
            VStoreCollection.VStoreList.Values.First().VLog.Info("手动出库:"+ txt_reelid.Text);
            VStoreCollection.VStoreList.Values.First().ServerCM.BeginOutStore(new JobInfo(txt_reelid.Text, "", 0, 0), RobotManage.VStoreCollection.VLog);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            stateView.Items.Clear();
            foreach (var store in VStoreCollection.VStoreList.Values.ToList()) {
                
                ListViewItem lvi = new ListViewItem(new string[] { "", TowerList.List[store.CID].PosID+"-"+store.CID, store.RTStoreStatus.ToString(), store.GetStateStr() });
                stateView.Items.Add(lvi);
            }
        }

        private void btn_ResetRobot_Click(object sender, EventArgs e)
        {
            if (RobotManage.isRunning)
            {
                MessageBox.Show(crc.GetString("Res0072","请先停止系统运行"));
                return;
            }

            MI.DeviceList["AMH-MI1"].Reset();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (RobotManage.isRunning)
            {
                MessageBox.Show(crc.GetString("Res0072", "请先停止系统运行"));
                return;
            }

            MI.DeviceList["AMH-MI2"].Reset();
        }
    }
}