JobType.cs 2.0 KB
using Common;
using DeviceLibrary.lift;
using DeviceLibrary.manager;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;

namespace DeviceLibrary
{
    public class JobType
    {
        public JobType()
        {
        }
        public virtual Job GetNewJob(AgvInfo agv)
        {
            return null;
        }
        /// <summary>
        /// 目标点是否有小车
        /// </summary>
        /// <param name="agv"></param>
        /// <param name="targetName"></param>
        /// <returns></returns>
        protected bool TargetIsOccupied(AgvInfo agv, string targetName)
        {
            try
            {
                return LiftContext.OtherAGVIsInLift(agv, targetName);
            }
            catch (Exception ex)
            {
                LogUtil.error($"TargetIsOccupied:{agv.Name},{JsonHelper.SerializeObject(AGVManager.agvInfo)}", ex);
                return false;
            }
        }
        /// <summary>
        /// 只有去电梯取料料架使用
        /// </summary>
        /// <param name="agv"></param>
        /// <param name="targetName"></param>
        /// <returns></returns>
        protected bool AgvAtPlace(AgvInfo agv, string targetName)
        {
            try
            {
                if (LiftContext.OtherAGVIsInLift(agv, targetName))
                {
                    return true;
                }
                return false;
            }
            catch (Exception ex)
            {
                LogUtil.error($"AgvAtPlace:{agv.Name},{JsonHelper.SerializeObject(AGVManager.agvInfo)}", ex);
                return false;
            }
        }
        protected bool AUOUsingD2(string liftName)
        {
            if (SettingString.LIFT_C1.Equals(liftName)) return false;
            return SettingString.LIFT_D2.Equals(liftName) && MissionManager.AUOIsUsingD2();
        }
    }
}