using System;
using System.ComponentModel;

namespace WCS.Entity.Protocol.Station
{
    /// <summary>
    /// 输送机模式
    /// </summary>
    public enum ModeEunm : short
    {
        /// <summary>
        /// 自动
        /// </summary>
        [Description("自动")]
        Automatic = 1,

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

        /// <summary>
        /// 维修
        /// </summary>
        [Description("维修")]
        Repair = 3,
    }

    /// <summary>
    /// 输送机警报
    /// </summary>
    [Flags]
    public enum AlarmEunm : ushort
    {
    }

    /// <summary>
    /// 输送机状态
    /// </summary>
    [Flags]
    public enum StatusEunm : UInt32
    {
        /// <summary>
        /// 自动
        /// </summary>
        Auto = 1 << 0,

        /// <summary>
        /// 选中状态位
        /// </summary>
        Choice_Bit = 1 << 1,

        /// <summary>
        /// 任务有货
        /// </summary>
        OT_Status = 1 << 2,

        /// <summary>
        /// 光电有货
        /// </summary>
        PH_Status = 1 << 3,

        /// <summary>
        /// 运行状态位
        /// </summary>
        Run = 1 << 4,

        /// <summary>
        /// 正转
        /// </summary>
        Fwd_1 = 1 << 5,

        /// <summary>
        /// 反转
        /// </summary>
        Rev_1 = 1 << 6,

        /// <summary>
        /// 上升/右转/伸出（顶升移栽升降、拆码盘机升降、提升机升降、拆码盘机拨叉伸出）
        /// </summary>
        Up_Right_Front_2 = 1 << 7,

        /// <summary>
        /// 下降/左转/缩回（顶升移栽升降、拆码盘机升降、提升机升降、拆码盘机拨叉缩回）
        /// </summary>
        Down_Left_Back_2 = 1 << 8,

        /// <summary>
        /// 高位（顶升移栽升降、拆码盘机升降、提升机升降）
        /// </summary>
        High_Station_2 = 1 << 9,

        /// <summary>
        /// 中位（拆码盘机升降）
        /// </summary>
        Mid_Station_2 = 1 << 10,

        /// <summary>
        /// 低位（顶升移栽升降、拆码盘机升降、提升机升降）
        /// </summary>
        Low_Station_2 = 1 << 11,

        /// <summary>
        /// 前位（拆码盘机拨叉伸出）
        /// </summary>
        Front_Station_2 = 1 << 12,

        /// <summary>
        /// 后位（拆码盘机拨叉缩回）
        /// </summary>
        Back_Station_2 = 1 << 13,

        /// <summary>
        /// 手动入库
        /// </summary>
        ManualStorage = 1 << 14,

        /// <summary>
        /// 上位机未分配任务
        /// </summary>
        UnassignedTask = 1 << 15,
    }

    /// <summary>
    /// 外形故障
    /// </summary>
    [Flags]
    public enum ShapeAlarmEunm : ushort
    {
        /// <summary>
        /// 外形/条码等货物故障
        /// </summary>
        Goods_Err = 1 >> 0,

        /// <summary>
        /// 前超长故障
        /// </summary>
        F_Outside = 1 >> 1,

        /// <summary>
        /// 后超长故障
        /// </summary>
        B_Outside = 1 >> 2,

        /// <summary>
        /// 左超宽故障
        /// </summary>
        L_Outside = 1 >> 3,

        /// <summary>
        /// 右超宽故障
        /// </summary>
        R_Outside = 1 >> 4,

        /// <summary>
        /// 超高故障
        /// </summary>
        H_Outside = 1 >> 5,

        /// <summary>
        /// 条码读取失败
        /// </summary>
        BCR_Noread = 1 >> 6,

        /// <summary>
        /// 超重
        /// </summary>
        Overload = 1 >> 7,

        /// <summary>
        /// 货物严重外检故障
        /// </summary>
        Goods_Err_1 = 1 >> 8,

        /// <summary>
        /// 二维条码未读出
        /// </summary>
        BCR_Noread_1 = 1 >> 9,

        /// <summary>
        /// 备用
        /// </summary>
        RES1 = 1 >> 10,

        /// <summary>
        /// 备用
        /// </summary>
        RES2 = 1 >> 11,

        /// <summary>
        /// 备用
        /// </summary>
        RES3 = 1 >> 12,

        /// <summary>
        /// 备用
        /// </summary>
        RES4 = 1 >> 13,

        /// <summary>
        /// 备用
        /// </summary>
        RES5 = 1 >> 14,

        /// <summary>
        /// 备用
        /// </summary>
        RES6 = 1 >> 15,
    }
}
