ManageWork.cs 4.1 KB
using System;
using System.Text;
using Model;

namespace BLL
{
    public static class ManageWork
    {
        public static LineWork line;
        public static ElevatorWork elevator;
        public static bool PauseFull;

        public static void Init()
        {
            PauseFull = false;
            line = new LineWork();
            elevator = new ElevatorWork();
        }

        public static void Start()
        {
            line.Open();
            elevator.Open();
        }

        public static void Stop()
        {
            line.Close();
            elevator.Close();
        }

        /// <summary>
        /// 获取产线或电梯任务
        /// </summary>
        /// <returns></returns>
        public static IJob GetJob()
        {
            IJob job = elevator.GetJob();
            if (job == null)
                job = line.GetJob();
            return job;
        }

        /// <summary>
        /// 查找产线呼叫
        /// </summary>
        /// <param name="key"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static bool FindLineWork(out string key, out string name)
        {
            int index = Common.lineInfos.FindIndex(s => s.Call && s.Exist);
            if (index == -1)
            {
                key = "";
                name = "";
                return false;
            }
            else
            {
                key = Common.lineInfos[index].Key;
                name = Common.lineInfos[index].Name;
                return true;
            }
        }

        /// <summary>
        /// 查找电梯回收呼叫
        /// </summary>
        /// <returns></returns>
        public static bool FindElevatorWork()
        {
            return elevator.GetRecycle();
        }

        /// <summary>
        /// 查找不带货架的产线
        /// </summary>
        /// <param name="key"></param>
        /// <param name="name"></param>
        /// <returns></returns>
        public static bool FindLineWithoutShelf(out string key, out string name)
        {
            int index = Common.lineInfos.FindIndex(s => s.Exist == false);
            if (index == -1)
            {
                key = "";
                name = "";
                return false;
            }
            else
            {
                key = Common.lineInfos[index].Key;
                name = Common.lineInfos[index].Name;
                return true;
            }
        }

        /// <summary>
        /// 小车从产线取走货架
        /// </summary>
        /// <param name="key"></param>
        public static void LineTakeAway(string key)
        {
            line.TakeAway(key);
        }

        /// <summary>
        /// 小车拉取货架送到产线
        /// </summary>
        /// <param name="key"></param>
        public static void LineSendTo(string key)
        {
            line.SendTo(key);
        }

        /// <summary>
        /// 发送电梯使用请求
        /// </summary>
        public static void SendElevatorUseAsk()
        {
            elevator.UseAsk();
        }

        /// <summary>
        /// 电梯使用应答
        /// </summary>
        /// <returns></returns>
        public static bool ElevatorUseAnswer()
        {
            return elevator.UseAnswer();
        }

        public static void ElevatorCall(bool sta)
        {
            elevator.CallElevator(sta);
        }

        public static bool ElevatorReady()
        {
            bool rtn1 = elevator.ArriveFloor();
            bool rtn2 = elevator.OpenDoor();
            return rtn1 && rtn2;
        }

        /// <summary>
        /// 电梯送满架子
        /// </summary>
        public static void ElevatorFullShelf()
        {
            elevator.FullShelf();
        }

        /// <summary>
        /// 电梯回收空架子
        /// </summary>
        public static void ElevatorEmptyShelf()
        {
            elevator.EmptyShelf();
        }

        /// <summary>
        /// 电梯任务结束,可以离开
        /// </summary>
        public static void ElevatorEnd()
        {
            elevator.EndTask();
        }


    }
}