CtuFindTask.cs 1.7 KB
using CtuDeviceLib;
using Mushiny;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security;
using System.Text;
using System.Threading.Tasks;

namespace DeviceLibrary.CtuService
{
    public class CtuFindTask
    {
        /// <summary>
        /// 待机点寻找任务
        /// 背篓不为空
        /// </summary>
        /// <param name="newTask"></param>
        /// <returns></returns>
        public static bool GetTaskAtStand(out CtuTaskBase newTask)
        {
            newTask = null;
            return false;
        }


        public static CtuTaskBase CheckAllTask(CTU ctu)
        {
            if (!ctu.Enabled) return null;
            if (!CTUManager.InletGroup.IsFull)
            {
                CTUManager.InletGroup.AddCtu(ctu.Name);
            }
            if (CTUManager.InletGroup.IsInGroup(ctu.Name))
            {
                return new SearchInJobTask(ctu);
            }
            else
            {
                return new SearchOutJobTask(ctu, eSearchOutJob.None);
            }
        }
        /// <summary>
        /// 查找手动线任务
        /// </summary>
        /// <returns></returns>
        public static CtuTaskBase FindManualTask(CTU ctu)
        {
            var instore = TaskUtil.Manual_GetInStore();
            if (instore != null)
            {
                return new TakeEmptyBoxFromManualTask(ctu);
            }
            var outTasks = TaskUtil.Outlet_GetOutStores();
            if (outTasks != null && outTasks.Count > 0)
            {
                return new TakeFullBoxFromShelfTask(ctu, TaskManager.GenRobotTask(TaskUtil.GetNearOutTask(ctu.CurLandMark, outTasks)));
            }
            return null;
        }
    }
}