StandyJob.cs
2.2 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
using Common;
using DeviceLibrary.bean;
namespace DeviceLibrary
{
/// <summary>
/// 待机任务
/// </summary>
public class StandyJob : Job
{
/// <summary>
/// 待机任务
/// </summary>
/// <param name="agvPlae">小车当前位置,空表示在待机位</param>
public StandyJob(JobParam jobParam) : base(jobParam)
{
JobName = "待机任务";
}
public StandyJob():base()
{
JobName = "待机任务";
}
int BatteryMid = ChargePileManager.GetChargePiles().BatteryMiddle;
/// <summary>
/// 待机任务
/// </summary>
/// <param name="agv"></param>
public override Job Run(AgvInfo agv)
{
agv.SetJobContext(new bean.agv.JobContext()
{
});
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))
{
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;
}
}
}