CrossDoorJob.cs 2.3 KB
using Common;
using DeviceLibrary.bean;

namespace DeviceLibrary
{
    /// <summary>
    /// 过门任务
    /// </summary>
    public class CrossDoorJob : Job
    {
        /// <summary>
        /// 待机任务
        /// </summary>
        /// <param name="agvPlae"></param>
        public CrossDoorJob(JobParam jobParam) : base(jobParam)
        {
            JobName = "过门任务";
        }
        public CrossDoorJob():base()
        {
            JobName = "过门任务";
        }
        /// <summary>
        /// 过门任务
        /// </summary>
        /// <param name="agv"></param>
        public override Job Run(AgvInfo agv)
        {
            agv.SetJobContext(new bean.agv.JobContext()
            {
                AgvTask = agv.TaskRunState.Task,
                JobFullName = this.ToString(),
                JobStep = JobRunStep.PreStep(),
                Name = agv.Name,
                JobParam=JobParam
            });
            if (JobRunStep.IsStep(RunStep.NONE))
            {
                {

                    {
                        JobRunStep.ToNextStep(RunStep.STANDBY_WAIT_REACH_STANDBY);
                        runInfo = "从" + JobParam.SrcNode + "回到待机位";
                        JobRunStep.Msg = runInfo;
                        ToStandby(agv);
                    }
                }

            }
            else if (JobRunStep.IsStep(RunStep.STANDBY_WAIT_REACH_STANDBY))
            {
                if (agv.TaskRunState.CheckTaskFinished(agv.Name))
                {
                    JobRunStep.ToNextStep(RunStep.END);
                    // runInfo = "到达待机位";
                    //JobRunStep.Msg = runInfo;
                }
            }
            else if (JobRunStep.IsStep(RunStep.END))
            {
                //Job job = AGVManager.control.GetJob(agv);
                //if (job != null && !(job is StandyJob))
                //{
                //    if (job is ChargeJob && agv.Battery > BatteryMid)
                //        return this;
                //    runInfo = "在待机位检测到任务,执行任务";
                //    JobRunStep.Msg = runInfo;
                //    JobRunStep.EndJob();
                //    return job;
                //}
            }

            return this;
        }
    }

}