FrmTurnoverBox.cs 7.1 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.CompilerServices;
using System.Threading;
using System.IO;
using System.Runtime.InteropServices;
using OnlineStore.DeviceLibrary;
using log4net;
using System.Reflection;
using UserFromControl;
using OnlineStore.LoadCSVLibrary;
using OnlineStore.Common;

namespace OnlineStore.XLRStore
{
    internal partial class FrmTurnoverBox : FrmBase
    {
        private bool IsLoad = false;

        private TurnoverBox moveBean;
        internal FrmTurnoverBox(TurnoverBox moveEquip)
        {
            this.moveBean = moveEquip;
            Control.CheckForIllegalCrossThreadCalls = false;
            InitializeComponent();
            checkBox2.Visible = Common.ConfigAppSettings.GetBoolValue("AutoClearBoxBind", false);
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            try
            {
                if (!this.Visible)
                {
                    return;
                }
                lblWarnMsg.Text = moveBean.WarnMsg;
                lblCurrInfo.Text = moveBean.GetMoveStr();
                string text = $"AGV {moveBean.AgvNode?.name}[{moveBean.AgvNode?.id}] {moveBean.AgvNode?.status.ToString()}";// + " :" + AgvClient.GetAction(moveBean.Config.AgvName);
                if (StoreManager.XLRStore.inputEquip.runStatus > RunStatus.Wait)
                {
                    btnReset.Enabled = true;
                }
                else
                {
                    btnReset.Enabled = true;
                }

                text += "\r\n" + moveBean.MoveInfo.MoveType + "_" + moveBean.MoveInfo.MoveStep;
                lblAgvInfo.Text = text;
            }
            catch (Exception ex)
            {
                LogUtil.error(moveBean.Name + "界面定时器出错:", ex);
            }

        }

        private void FrmTest_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                if (this.timer1.Enabled)
                {
                    this.timer1.Enabled = false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace, "Exception(异常)", MessageBoxButtons.OK, MessageBoxIcon.Error);
                LogUtil.error("", ex);
            }
        }

        private void FrmStoreIOStatus_Load(object sender, EventArgs e)
        {
            lblWarnMsg.Text = moveBean.WarnMsg;
            lblCurrInfo.Text = moveBean.GetMoveStr();
            // lblAgvInfo.Text = "AGV " + moveBean.Config.AgvName + " :" + AgvClient.GetAction(moveBean.Config.AgvName);
            IsLoad = true;
        }



        private void FrmIOStatus_Shown(object sender, EventArgs e)
        {
            timer1.Start();
        }

        private void btnStart_Click(object sender, EventArgs e)
        {
            moveBean.StartReset();
            LogUtil.info(moveBean.Name + "点击:" + btnReset.Text);
        }

        private void btnShelfOut_Click(object sender, EventArgs e)
        {
            if (!IsLoad)
            {
                return;
            }
            moveBean.ReadBoxId();
            moveBean.NeedLeave(true);
            LogUtil.info(moveBean.Name + "用户点击:" + btnShelfOut.Text);
        }

        //private void btnScanTest_Click(object sender, EventArgs e)
        //{
        //    if (!IsLoad)
        //    {
        //        return;
        //    }
        //    string camera = moveBean.Config.CameraName;
        //    List<string> LastCodeList = CodeManager.CameraScan(camera, moveBean.Name.Trim() + "测试");
        //    string msg = CodeManager.ProcessCode(LastCodeList);
        //    LogUtil.info(moveBean.Name + "[" + camera + "]扫码测试结果:\r\n" + msg);
        //    MessageBox.Show(moveBean.Name + "[" + camera + "]扫码测试结果:" + msg);

        //}


        private void LineStart_A_Click(object sender, EventArgs e)
        {
            LogUtil.info(moveBean.Name + "点击:" + LineStart_A.Text);
            moveBean.LineRun();
        }

        private void LineBack_A_Click(object sender, EventArgs e)
        {
            LogUtil.info(moveBean.Name + "点击:" + LineBack_A.Text);
            moveBean.LineBackRun();
        }

        private void LineStop_A_Click(object sender, EventArgs e)
        {
            LogUtil.info(moveBean.Name + "点击:" + LineStop_A.Text);
            moveBean.LineStopRun();

        }

        //private void btnResetShelf_Click(object sender, EventArgs e)
        //{
        //    moveBean.ClearBoxInfo(true);
        //    LogUtil.info(moveBean.Name + "点击:" + btnResetShelf.Text + ";【" + moveBean.BoxId + "】");
        //}

        private void chbMoveStop_CheckedChanged(object sender, EventArgs e)
        {
            if (!IsLoad)
            {
                return;
            }

            // moveBean.MoveStop = chbMoveStop.Checked;
            //LogUtil.info(moveBean.Name + "用户切换是否暂停: " + moveBean.MoveStop);
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            groupBox1.Enabled = checkBox1.Checked;
        }

        private void button2_Click(object sender, EventArgs e)
        {
            moveBean.MayLeave();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            moveBean.FinishLeave();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            moveBean.MayEnter();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            moveBean.GetBoxTaskInfo();
        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.Checked)
            {
                if (!moveBean.AutoClearBoxBind)
                {
                    DialogResult result = MessageBox.Show("是否切换到自动清除料箱?", "是否确认切换", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                    if (result.Equals(DialogResult.Yes))
                    {
                        moveBean.AutoClearBoxBind = true;
                        LogUtil.info(moveBean.Name + "用户切换到自动清除料箱状态 ");
                    }
                }
            }
            else
            {
                if (moveBean.AutoClearBoxBind)
                {
                    DialogResult result = MessageBox.Show("是否切换到正常工作状态?", "是否确认切换", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                    if (result.Equals(DialogResult.Yes))
                    {
                        moveBean.AutoClearBoxBind = false;
                        LogUtil.info(moveBean.Name + "用户切换到正常工作状态 ");
                    }
                }
            }
        }

        private void button5_Click(object sender, EventArgs e)
        {
            moveBean.FinishEnter();
        }
    }

}