Task.cs
2.5 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
89
90
91
92
93
94
95
96
97
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace DeviceLibrary
{
/// <summary>
/// AGV任务
/// </summary>
public class AgvTask
{
/// <summary>
/// 任务ID
/// </summary>
public int Id { get; set; } = -1;
/// <summary>
/// 任务名称
/// </summary>
public string Name { set; get; }
/// <summary>
/// 任务别名
/// </summary>
public string AliceName { set; get; }
/// <summary>
/// 任务guid
/// </summary>
public string Guid { set; get; }
/// <summary>
/// 任务类型
/// </summary>
public TaskType Type { get; set; }
/// <summary>
/// 任务
/// </summary>
/// <param name="name">任务名称</param>
/// <param name="aliceName">任务别名</param>
/// <param name="targetName">目的地名</param>
/// <param name="targetAliceName">目的地别名</param>
/// <param name="guid">任务guid</param>
public AgvTask(string name,string aliceName,string guid,TaskType type= TaskType.Move)
{
Name = name;
AliceName = aliceName;
Guid = guid;
Type = type;
}
public AgvTask() { }
public TaskType GetTaskType()
{
return Type;
}
public override bool Equals(object obj)
{
AgvTask task = obj as AgvTask;
if(task !=null)
{
return this.Guid.Equals(task.Guid);
}
return false;
}
public AgvTask ToCopy()
{
AgvTask task = new AgvTask();
PropertyInfo[] info1 = this.GetType().GetProperties();
PropertyInfo[] info2 = task.GetType().GetProperties();
for (int i = 0; i < info1.Length; i++)
{
if (info1[i].Name.Equals("Id"))
continue;
info2[i].SetValue(task, info1[i].GetValue(this));
}
return task;
}
}
/// <summary>
/// AGV任务类型
/// </summary>
public enum TaskType
{
None,
/// <summary>
/// 移动
/// </summary>
Move,
/// <summary>
/// 停靠
/// </summary>
Dock,
/// <summary>
/// 进出料
/// </summary>
InOut
}
}