using System;
using System.ComponentModel;

namespace WCS.Entity.Protocol.RGV
{
    /// <summary>
    ///  RGV指令类型
    /// </summary>
    public enum RGVCmdType : short
    {
        /// <summary>
        /// 取货
        /// </summary>
        [Description("取货")]
        PickGoods = 1,

        /// <summary>
        /// 放货
        /// </summary>
        [Description("放货")]
        PutGoods = 2,

        /// <summary>
        /// 移动
        /// </summary>
        [Description("移动")]
        Move = 3,

        /// <summary>
        ///  变更放货点
        /// </summary>
        [Description("变更放货点")]
        ChangePutGoods = 4,

        /// <summary>
        ///  变更取货点
        /// </summary>
        [Description("变更取货点")]
        ChangePickGoods = 5,

        /// <summary>
        ///  取放货
        /// </summary>
        [Description("取放货")]
        PickPutGoods = 6
    }

    /// <summary>
    ///  货叉式RGV状态
    /// </summary>
    public enum RGVSystemStatus : short
    {
        /// <summary>
        /// 空闲
        /// </summary>
        [Description("空闲")]
        空闲 = 0,

        /// <summary>
        /// 获取取货位
        /// </summary>
        [Description("获取取货位")]
        获取取货位 = 1,

        /// <summary>
        /// 取货移动
        /// </summary>
        [Description("取货移动")]
        取货移动 = 2,

        /// <summary>
        /// 到达取货位
        /// </summary>
        [Description("到达取货位")]
        到达取货位 = 4,

        /// <summary>
        /// 取货伸叉
        /// </summary>
        [Description("取货伸叉")]
        取货伸叉 = 5,

        /// <summary>
        /// 取货抬叉
        /// </summary>
        [Description("取货抬叉")]
        取货抬叉 = 6,

        /// <summary>
        /// 取货收叉
        /// </summary>
        [Description("取货收叉")]
        取货收叉 = 7,

        /// <summary>
        /// 取货完成
        /// </summary>
        [Description("取货完成")]
        取货完成 = 8,

        /// <summary>
        /// 获取放货位
        /// </summary>
        [Description("获取放货位")]
        获取放货位 = 9,

        /// <summary>
        /// 放货移动
        /// </summary>
        [Description("放货移动")]
        放货移动 = 10,

        /// <summary>
        /// 放货收叉
        /// </summary>
        [Description("放货收叉")]
        放货伸叉 = 11,

        /// <summary>
        /// 放货下降
        /// </summary>
        [Description("放货下降")]
        放货下降 = 12,

        /// <summary>
        /// 放货收叉
        /// </summary>
        [Description("取货抬叉")]
        放货收叉 = 13,

        /// <summary>
        /// 放货完成
        /// </summary>
        [Description("放货完成")]
        放货完成 = 14,
    }

    /// <summary>
    ///  RGV模式
    /// </summary>
    public enum RGVWorkMode : short
    {
        /// <summary>
        ///  自动
        /// </summary>
        [Description("自动")]
        Automatic = 1,

        /// <summary>
        ///  半自动
        /// </summary>
        [Description("半自动")]
        SemiAutomatic = 2,

        /// <summary>
        ///  手动
        /// </summary>
        [Description("手动")]
        Manual = 3,

        /// <summary>
        ///  保持维修
        /// </summary>
        [Description("保持维修")]
        KeepInRepair = 4
    }

    /// <summary>
    ///  RGV状态
    /// </summary>
    [Flags]
    public enum RGVStatus : ushort
    {
        /// <summary>
        ///  光电
        /// </summary>
        [Description("光电")]
        PH_Status = 1 << 0,

        /// <summary>
        ///  RGV到站
        /// </summary>
        [Description("RGV到站")]
        Arrival = 1 << 1,

        /// <summary>
        ///  任务完成
        /// </summary>
        [Description("任务完成")]
        Taskfinishi = 1 << 2,

        /// <summary>
        ///  载货
        /// </summary>
        [Description("载货")]
        Cargo = 1 << 3,

        /// <summary>
        ///  RGV输送线正转
        /// </summary>
        [Description("RGV输送线正转")]
        Forward = 1 << 4,

        /// <summary>
        ///  RGV输送线反转
        /// </summary>
        [Description("RGV输送线反转")]
        Reverse = 1 << 5,

        /// <summary>
        ///  在非安全区
        /// </summary>
        [Description("在非安全区")]
        RES1 = 1 << 6,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES2 = 1 << 7,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES3 = 1 << 8,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES4 = 1 << 9,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES5 = 1 << 10,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES6 = 1 << 11,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES7 = 1 << 12,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES9 = 1 << 13,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES10 = 1 << 14,

        /// <summary>
        ///  备用
        /// </summary>
        [Description("备用")]
        RES11 = 1 << 15,
    }
}
