CrossDoorJob.cs
2.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
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;
}
}
}