MissionInfo.cs 2.5 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DeviceLibrary.Models
{
    /// <summary>
    /// 任务信息
    /// </summary>
    public class MissionInfo
    {
        /// <summary>
        /// 任务ID:呼叫时间
        /// </summary>
        public string ID { get; set; } = "";
        /// <summary>
        /// 任务名称
        /// </summary>
        public string Name { get; set; } = "";
        /// <summary>
        /// 产品ID
        /// </summary>
        public int ProductID { get; set; } = 0;
        /// <summary>
        /// 任务执行信息
        /// </summary>
        public ExecuteMissionInfo ExecuteMissionInfo { get; set; }
        /// <summary>
        /// 产品起始地
        /// </summary>
        public LocationInfo Source { get; set; }
        /// <summary>
        /// 产品目的地
        /// </summary>
        public LocationInfo Destination { get; set; }
        /// <summary>
        /// 任务状态
        /// </summary>
        public MissionState State { get; set; } = MissionState.Allocated;
        /// <summary>
        /// 是否空料架返回,默认为true
        /// </summary>
        public bool NeedEmptyShelfBack { get; set; } = true;
    }
    /// <summary>
    /// 任务状态
    /// </summary>
    public enum MissionState
    {
        /// <summary>
        /// 已分配任务,未执行
        /// </summary>
        Allocated,
        /// <summary>
        /// 正在执行
        /// </summary>
        Executing,
        /// <summary>
        /// 已呼叫,但还未开始执行
        /// </summary>
        Cancel,
        /// <summary>
        /// 任务已执行被中止
        /// </summary>
        Aborted,
        /// <summary>
        /// 任务完成
        /// </summary>
        Done
    }
    public class ExecuteMissionInfo
    {
        /// <summary>
        /// 任务开始时间
        /// </summary>
        public DateTime StartTime { get; set; }
        /// <summary>
        /// 执行任务的AGV
        /// </summary>
        public List<string> AGVs { get; set; }
        /// <summary>
        /// 任务结束时间
        /// </summary>
        public DateTime FinishTime { get; set; }
    }
    public class LocationInfo
    {
        public int Floor { get; set; }
        public List<string> Lines { get; set; }
        public LocationInfo(int floor,string[] lines)
        {
            Lines = new List<string>();
            Lines.AddRange(lines);
            Floor = floor;
        }
    }
}