Client.cs 3.3 KB
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Model
{
    /// <summary>
    /// 客户端的动作
    /// </summary>
    public enum ClientAction : byte
    {
        /// <summary>
        /// 没有动作
        /// </summary>
        None = 0,
        /// <summary>
        /// 包装料仓关门
        /// </summary>
        CloseDoor = 1,
        /// <summary>
        /// 可以进入料架,Arrive事件使用,让小车开始对接
        /// </summary>
        MayEnter = 2,
        /// <summary>
        /// 可以出去料架,Arrive事件使用,让小车开始对接
        /// </summary>
        MayLeave = 3,
        /// <summary>
        /// 需要进入料架
        /// </summary>
        NeedEnter = 4,
        /// <summary>
        /// 需要出去料架
        /// </summary>
        NeedLeave = 5,
        /// <summary>
        /// 完成进入料架
        /// </summary>
        FinishEnter = 6,
        /// <summary>
        /// 完成出去料架
        /// </summary>
        FinishLeave = 7,
        /// <summary>
        /// 小车到达,到达包装料仓门口,等待开门
        /// </summary>
        Arrive = 8,
        /// <summary>
        /// 小车已准备,已对接上流水线
        /// </summary>
        Ready = 9,
        /// <summary>
        /// 包装料仓只能入料不能出料
        /// </summary>
        EnterShelf = 10,
        /// <summary>
        /// 不允许
        /// </summary>
        MayNot = 11
    }

    /// <summary>
    /// 客户端的优先级
    /// </summary>
    public enum ClientLevel : byte
    {
        /// <summary>
        /// 低
        /// </summary>
        Low = 0,
        /// <summary>
        /// 中等
        /// </summary>
        Middle = 1,
        /// <summary>
        /// 高
        /// </summary>
        High = 2
    }

    public class ClientNode
    {
        /// <summary>
        /// 节点名称
        /// </summary>
        public string Name { set; get; }
        /// <summary>
        /// 标记,用于包装料仓
        /// </summary>
        public string Mark { set; get; }
        /// <summary>
        /// 当前架子的RFID
        /// </summary>
        public string RFID { set; get; }
        /// <summary>
        /// 动作
        /// </summary>
        public ClientAction Action { set; get; }
        /// <summary>
        /// 优先级
        /// </summary>
        public ClientLevel Level { set; get; }

        public ClientNode()
        {
        }

        public ClientNode(string name, string mark, string rfid, ClientAction action, ClientLevel level)
        {
            Name = name;
            Mark = mark;
            RFID = rfid;
            Action = action;
            Level = level;
        }

        /// <summary>
        /// 所有属性的文本形式
        /// </summary>
        /// <returns></returns>
        public string ToText()
        {
            string s = string.Format("Name={0}, Action={1}, Level={2}, Mark={3}, RFID={4}", Name, Action, Level, Mark, RFID);
            return s;
        }

        public ClientNode ToCopy()
        {
            ClientNode node = new ClientNode(Name, Mark, RFID, Action, Level);
            return node;
        }
    }

}