using System;
namespace WCS.Entity.Protocol
{
    /// 
    /// 输送机交互信号 读
    /// 
    public interface IStation521 : IProtocol
    {
        /// 
        ///  任务号
        /// 
        int Tasknum { get; set; }
        /// 
        /// 货物数条码 涂布入库扫码位是AGV任务号
        /// 
        int Goodscode { get; set; }
        /// 
        /// 货物数量(1.两个位置放1个货物,2.两个位置放2个货物)
        /// 
        short Goodsnum { get; set; }
        /// 
        /// 货物高度
        /// 
        short GoodsSize { get; set; }
        /// 
        /// 起始地址
        /// 
        short Goodsstart { get; set; }
        /// 
        /// 目标地址
        /// 
        short Goodsend { get; set; }
        /// 
        /// 请求
        /// 
        IstationRequest Request { get; set; }
        /// 
        /// 命令类型
        /// 
        IstationCmdType CmdType { get; set; }
        /// 
        /// 凭证号 每次累加
        /// 
        short VoucherNo { get; set; }
        /// 
        /// 输送机状态
        /// 
        IstationStatus Status { get; set; }
    }
    /// 
    /// 输送机请求
    /// 
    public enum IstationRequest : short
    {
        无 = 0,
        扫码入库 = 1,
        请求分配目标地址 = 2,
        月台出库口任务完成 = 3,
        堆垛机放货完成请求目标地址 = 4,
    }
    /// 
    /// 输送机确认
    /// 
    public enum IstationCmdType : short
    {
        无 = 0,
        扫码入库 = 1,
        分配目标地址 = 2,
        月台出库口任务完成 = 3,
        堆垛机放货完成请求目标地址 = 4,
    }
    /// 
    /// 输送机状态
    /// 
    [Flags]
    public enum IstationStatus : ushort
    {
        手动入库 = 1 << 0,
        备用2 = 1 << 1,
        RES3 = 1 << 2,
        上位机未分配任务 = 1 << 3,
        光电状态 = 1 << 4,
        外检扫码故障 = 1 << 5,
        前超长故障 = 1 << 6,
        后超长故障 = 1 << 7,
        左超宽故障 = 1 << 8,
        右超宽故障 = 1 << 9,
        超高故障 = 1 << 10,
        条码未读出 = 1 << 11,
        超重 = 1 << 12,
        AGV放货完成信号 = 1 << 13,
        AGV取货完成信号 = 1 << 14,
        RES7 = 1 << 15,
    }
}