UploadManager.cs 2.5 KB
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
    }
}