AgvBean.cs 1.5 KB
using Acc.Common;
using System;
using System.Collections.Generic;

namespace Acc.AgvManager
{
    public class AgvBean
    {
        public AgvStatus agvStatus;
        public AgvApi AgvApi;
        public Job job;

        public string Name;

        public bool IsIdle()
        {
            return false;
        }

        public bool NeedCharge()
        {
            return false;
        }

        public void ExecuteNewJob(Job newJob)
        {
            job = newJob;
        }

        public void JobContinue(AgvBean currentAgvBean, Dictionary<string, Node> nodeMap, Dictionary<string, AgvBean> agvBeanMap)
        {
            if (job != null)
            {
                if (!job.IsProcess)
                {
                    try
                    {
                        job.IsProcess = true;
                        job.Execute(currentAgvBean, nodeMap, agvBeanMap);
                    }catch(Exception e)
                    {
                        LogUtil.error("AGV["+Name+"]执行任务["+job.ToString()+"]出错",e);
                    }
                    finally
                    {
                        job.IsProcess = false;
                    }
                }
                
                if (job.IsEnd())
                {
                    //添加任务已经完成日志
                    job = null;
                }
            }
        }

        internal bool IsInCharge()
        {
            throw new NotImplementedException();
        }
    }
}