using System;
using System.Collections.Generic;
using System.Text;

namespace Model
{
    
        /// <summary>
        /// 手工任务结构体
        /// </summary>
        public struct HandTask
        {
            /// <summary>
            /// 设备索引
            /// </summary>
            public int _deviceIndex;
            /// <summary>
            /// 起始设备索引
            /// </summary>
            public int _begindeviceIndex;
            /// <summary>
            /// 设备指令
            /// </summary>
            public int _deviceOrder;
            /// <summary>
            /// 位置:“立库货位”,或者输送机的目标位置
            /// </summary>
            public string _arrowLocation;
            /// <summary>
            /// 起始货位编码
            /// </summary>
            public string _cellcodeBegin;
            /// <summary>
            /// 终止货位编码
            /// </summary>
            public string _cellcodeEnd;
            /// <summary>
            /// 多货叉序号:0,1,2,3,4,5.。。。。距离控制柜由近及远;单叉为0
            /// </summary>
            public int _forkNo;
            /// <summary>
            /// 携带的关联任务货叉组,单叉或者不携带任务为""举例:1叉携带“2,3”,【规则:只能携带_forkNo值大于自己的货叉】
            /// </summary>
            public string _correlTaskForks;
            public HandTask(int deviceIndex, int deviceOrder, int beginDeviceIndex, string arrowLocation, string cellcodeBegin, string cellcodeEnd, int forkNo, string correlTaskForks)
            {
                _begindeviceIndex = beginDeviceIndex;
                _deviceIndex = deviceIndex;
                _deviceOrder = deviceOrder;
                _arrowLocation = arrowLocation;
                _cellcodeBegin = cellcodeBegin;
                _cellcodeEnd = cellcodeEnd;
                _forkNo = forkNo;
                _correlTaskForks = correlTaskForks;
            }
        }
        /// <summary>
        /// 管理下达的自动任务
        /// </summary>
        public struct AutoTask
        {
            /// <summary>
            /// 控制任务类型:1入库,2出库,3倒库
            /// </summary>
            public int _controlType;
            /// <summary>
            /// 托盘或者周转箱条码
            /// </summary>
            public string _palletBarcode;
            /// <summary>
            /// 起始位置
            /// </summary>
            public string _startDevice;
            /// <summary>
            /// 起始货位
            /// </summary>
            public string _startCell;
            /// <summary>
            /// 终止位置
            /// </summary>
            public string _endDevice;
            /// <summary>
            /// 终止货位
            /// </summary>
            public string _endCell;
            public bool _enableStartCell, _enableEndCell;
            public int _inWorkbench;
            public AutoTask(int controlType, string palletBarcode, string startDevice, string startCell, string endDevice, string endCell,bool enableStartCell,bool enableEndCell,int inWorkbench)
            {
                _controlType = controlType;
                _palletBarcode = palletBarcode;
                _startDevice = startDevice;
                _startCell = startCell;
                _endDevice = endDevice;
                _endCell = endCell;
                _enableStartCell = enableStartCell;
                _enableEndCell = enableEndCell;
                _inWorkbench = inWorkbench;
            }
        }
    /// <summary>
    /// 20130817richard
    /// </summary>
    
    public struct MonitorInfo
        {
            public bool Obtaintask;
            public bool Orderturnon;
            public Dictionary<string, int> S7connectOnline;
            public Dictionary<string, bool> FloorError;
            public MonitorInfo(bool obtaintask, bool orderturnon, Dictionary<string, int> s7connectOnline, Dictionary<string, bool> floorError)
            {
                Obtaintask = obtaintask;
                Orderturnon = orderturnon;
                S7connectOnline = s7connectOnline;
                FloorError = floorError;

            }
        }
}