FrmEquipBase.cs 4.4 KB
using log4net;
using OnlineStore.Common;
using OnlineStore.DeviceLibrary;
using OnlineStore.LoadCSVLibrary;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using UserFromControl;

namespace OnlineStore.AssemblyLine
{
    internal partial class FrmEquipBase : FrmBase
    {
        //internal static readonly ILog LOGGER = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
        internal FrmEquipBase()
        {
            InitializeComponent();
        }

        protected EquipBase equipBase = null;

        protected Dictionary<string, IOTextControl> DIControlList = new Dictionary<string, IOTextControl>();
        protected Dictionary<string, IOTextControl> DOControlList = new Dictionary<string, IOTextControl>();
        protected void ReadIOList()
        {
            foreach (string key in DIControlList.Keys)
            {
                IOTextControl control = DIControlList[key];
                int iov = (int)IOManager.IOValue(key, equipBase.DeviceID);
                if (iov != control.IOValue)
                {
                    control.IOValue = iov;
                    control.ShowData();
                }
            }
            foreach (string key in this.DOControlList.Keys)
            {
                IOTextControl control = DOControlList[key];
                int iov = (int)IOManager.DOValue(key, equipBase.DeviceID);
                if (iov != control.IOValue)
                {
                    control.IOValue = iov;
                    control.ShowData();
                }
            }

        }
        protected void BtnMove(Button btn, string defaultText, string targetText, string ioHighType)
        {
            LogUtil.info(equipBase.Name+"点击【" + btn.Text + "】 ");
            if (btn.Text.Equals(defaultText))
            {
                equipBase.IOMove(ioHighType, IO_VALUE.HIGH);
                btn.Text = targetText;
                btn.BackColor = Color.Aqua;
            }
            else
            {
                equipBase.IOMove(ioHighType, IO_VALUE.LOW);
                btn.Text = defaultText;
                btn.BackColor = Color.White;
            }
        }

        protected void BtnMove(Button btn, string defaultText, string targetText, string ioLowType, string ioHighType)
        {
            LogUtil.info(equipBase.Name + "点击【" + btn.Text + "】 ");
            if (btn.Text.Equals(defaultText))
            {
                equipBase.CylinderMove(null, ioLowType, ioHighType);
                btn.Text = targetText;
                btn.BackColor = Color.Aqua;
            }
            else
            {
                equipBase.CylinderMove(null, ioHighType, ioLowType);
                btn.Text = defaultText;
                btn.BackColor = Color.SkyBlue;
            }
        }
        protected void StartDebug()
        {
            if (equipBase.runStatus.Equals(LineRunStatus.Wait))
            {
                bool result = equipBase.StartRun(true);
                if (result)
                {
                    FormStatus(true);
                }
            }
            else
            {
                MessageBox.Show(equipBase.Name + "已启动,不能重复启动");
            }
        }
        protected void StopRun()
        {
            try
            {
                if (equipBase.runStatus <= LineRunStatus.Wait)
                {
                    MessageBox.Show(equipBase.Name + "请先启动设备");
                }
                else
                {
                    LogUtil.info(equipBase.Name + "点击:停止运行");
                    equipBase.StopRun();
                    FormStatus(false);
                   
                }
            }
            catch (Exception ex)
            {
                LogUtil.error("出错:" ,ex);
            }
        }
        protected void Reset()
        {
            if (equipBase.runStatus >= (LineRunStatus.HomeMoving))
            {
                LogUtil.info(equipBase.Name + "点击 :复位");
                equipBase.Reset();
            }
            else
            {
                MessageBox.Show(equipBase.Name + "请先启动设备");
            }
        }
        internal virtual   void FormStatus(bool status)
        {
        }
    }
}