ManualConfirmJob.cs
3.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
78
79
80
81
82
83
84
85
86
87
88
using DeviceLib.Model.AGV;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DeviceLib.BLL
{
internal class ManualConfirmJob : ImpJob
{
public ManualConfirmJob(JobParam jobParam) : base(jobParam)
{
JobName = $"手动确认任务";
}
public override Job Run(Robot robot)
{
Job job = this;
switch (JobRunStep.CurStep)
{
case RunStep.None:
ToNextStep(RunStep.ManualConfirm_01_ReadyToConfirm, "开始手动确认流程");
//播放音乐
PlaySound(robot);
break;
case RunStep.ManualConfirm_01_ReadyToConfirm:
ToNextStep(RunStep.ManualConfirm_02_WaitConfirm, "等待手动确认");
break;
case RunStep.ManualConfirm_02_WaitConfirm:
if (IsConfirmed(robot))
{
ToNextStep(RunStep.ManualConfirm_04_ConfirmSuccess, "手动确认完成");
StopSound(robot);
}
else if (JobRunStep.IsTimeOut(60))
{
ToNextStep(RunStep.ManualConfirm_03_ConfirmTimeOut, "等待手动确认超时");
}
break;
case RunStep.ManualConfirm_03_ConfirmTimeOut:
if (IsConfirmed(robot))
{
ToNextStep(RunStep.ManualConfirm_04_ConfirmSuccess, "手动确认完成");
StopSound(robot);
}
break;
case RunStep.ManualConfirm_04_ConfirmSuccess:
job = GetCallBackJob();
job.ToNextStep(GetCallBackStep(), "手动确认流程结束");
//ToNextStep(RunStep.ManualConfirm_05_CheckAction, "查询下一步动作");
break;
//case RunStep.ManualConfirm_05_CheckAction:
// checkNextAction();
// break;
//case RunStep.ManualConfirm_06_NoAction:
// job = new DeliverShelfJob(JobParam);
// job.ToNextStep(RunStep.DeliveryShelf_15_ActionSuccess, "线体确认完成");
// break;
//case RunStep.ManualConfirm_07_PickAction:
// job = new PickShelfJob(JobParam);
// break;
//case RunStep.ManualConfirm_08_PutAction:
// job = new PutShelfJob(JobParam);
// break;
}
return job;
}
void checkNextAction()
{
switch (JobParam?.CurAction?.SubActionType ?? ActionType.None)
{
case ActionType.None:
ToNextStep(RunStep.ManualConfirm_06_NoAction, "无动作");
break;
case ActionType.PickShelf:
ToNextStep(RunStep.ManualConfirm_07_PickAction, "拾取料架任务");
break;
case ActionType.PutShelf:
ToNextStep(RunStep.ManualConfirm_08_PutAction, "放下料架任务");
break;
}
}
}
}