ManualMoveTask.cs
2.1 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
using CtuDeviceLib;
using Mushiny;
using OnlineStore.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DeviceLibrary.CtuService
{
/// <summary>
/// 充电任务
/// </summary>
public class ManualMoveTask : CtuTaskBase
{
public ManualMoveTask(CTU ctu, string dst) : base(ctu, dst)
{
Name = "手动移动任务";
}
public override void Excute()
{
//当前位置不是目的地,就重新规划路线
if (MoveInfo.MoveStep != RunStep.Wait && MoveInfo.MoveStep != RunStep.ManualMove_MoveToDst)
{
if (ctu.CurLandMark != destination)
{
MoveInfo.NextMoveStep(RunStep.Wait);
MoveInfo.Info($"当前点位不在目标点【{DstName}】【{destination}】,重新进入移动流程");
}
}
switch (MoveInfo.MoveStep)
{
case RunStep.Wait:
if (!CalcDst())
{
Msg.add($"规划去【{DstName}】失败,请检查", MsgLevel.warning);
return;
}
MoveInfo.NextMoveStep(RunStep.ManualMove_MoveToDst);
MoveInfo.Info($"去目标点【{DstName}】【{destination}】");
break;
case RunStep.ManualMove_MoveToDst:
if (IsFinished)
{
MoveInfo.NextMoveStep(RunStep.ManualMove_AtDst);
MoveInfo.Info($"已到目标点【{DstName}】【{destination}】");
}
else
{
Move();
}
break;
case RunStep.ManualMove_AtDst:
ctu.CtuTask = null;
break;
case RunStep.CtuTask_ProcessFinished:
break;
}
}
}
}