UploadManager.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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace DeviceLibrary.manager
{
public class UploadManager
{
#region 上传到ITS
static object locupdate = new object();
/// <summary>
/// 上传AGV状态,每10秒上传一次
/// </summary>
public static void UploadAgvState()
{
if (Monitor.TryEnter(locupdate, 2000))
{
try
{
List<service.model.AgvState> agvStates = new List<service.model.AgvState>();
foreach (AgvInfo item in AGVManager.agvInfo)
{
service.model.AgvState agvState = new service.model.AgvState()
{
agvNum = item.Name,
workshop = item.Scope.Workshop,
battery = item.Battery,
position = item.Position,
/// <summary>
/// 当前状态:执行任务/归位中/充电中/故障中
/// </summary>
state = item.StateID.ToString(),
curTarget = item.Place.Name,
statusTxt = item.MissionText
};
if (item.CurJob != null && item.CurJob.JobParam != null && item.CurJob.JobParam.GetMissionInfo() != null)
{
agvState.missionId = item.CurJob.JobParam.GetMissionInfo().missionId;
agvState.remark = item.CurJob.JobParam.GetMissionInfo().Remark;
}
agvStates.Add(agvState);
}
string txt = Common.JsonHelper.SerializeObject(agvStates);
Common.LogUtil.debug(txt);
}
finally
{
Monitor.Exit(locupdate);
}
}
}
/// <summary>
/// 运输状态上报
/// </summary>
/// <param name="transportStatus"></param>
public static void UploadPosition(service.model.TransportStatus transportStatus)
{
try
{
string txt = Common.JsonHelper.SerializeObject(transportStatus);
Common.LogUtil.info(txt);
}
catch { }
}
#endregion
}
}