JobStep.cs 1.9 KB
using System;

namespace Model
{
    /// <summary>
    /// 小车工作步骤
    /// </summary>
    /// <typeparam name="T"></typeparam>
    public class JobStep<T>
    {
        private T _step;
        private DateTime _time;
        private string _msg = "";

        /// <summary>
        /// 小车工作步骤
        /// </summary>
        /// <param name="step"></param>
        public JobStep(T step)
        {
            _step = step;
            _time = DateTime.Now;
        }

        /// <summary>
        /// 步骤是否相等
        /// </summary>
        /// <param name="step"></param>
        /// <returns></returns>
        public bool IsEqual(T step)
        {
            return _step.Equals(step);
        }

        /// <summary>
        /// 是否超时
        /// </summary>
        /// <param name="timeOutMilliseconds"></param>
        /// <returns></returns>
        public bool IsTimeOut(int timeOutMilliseconds)
        {
            TimeSpan span = DateTime.Now - _time;
            if (span.TotalMilliseconds > timeOutMilliseconds)
                return true;
            else
                return false;
        }

        /// <summary>
        /// 下一个步骤
        /// </summary>
        /// <param name="step"></param>
        public void NextStep(T step)
        {
            _step = step;
            _time = DateTime.Now;
        }

        /// <summary>
        /// 当前信息
        /// </summary>
        public string Msg
        {
            get
            {
                return _msg;
            }
            set
            {
                if (!string.IsNullOrEmpty(value))
                {
                    //与上一个消息不一样才打印
                    if (!value.Equals(_msg))
                    {
                       AGVControl_Steel.Common.log.Info(_step.ToString() + ":" + value);
                    }
                }
                _msg = value;
            }

        }
    }
}