using BPASmartClient.Device;
using BPASmartClient.DRCoffee;
using BPASmartClient.GSIceCream;
using BPASmartClient.LebaiRobot;
using BPASmartClient.Model.冰淇淋.Enum;
using Robotc;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BPASmartClient.MorkT
{
    public class GLV_MorkT:IStatus
    {
        /// <summary>
        /// 咖啡订单队列
        /// </summary>
        public ConcurrentQueue<OrderLocInfo> morkOrderPushesCoffee = new ConcurrentQueue<OrderLocInfo>();

        /// <summary>
        /// 冰淇淋订单队列
        /// </summary>
        public ConcurrentQueue<OrderLocInfo> morkOrderPushesIceCream = new ConcurrentQueue<OrderLocInfo>();
        /// <summary>
        /// 等待取餐订单
        /// </summary>
        public OrderLocInfo waitMorkOrder = null;
        /// <summary>
        /// 物料存放位置
        /// </summary>
        public Dictionary<string, PolymerBatching> batchings = new Dictionary<string, PolymerBatching>();

        /// <summary>
        /// 当前正在制作咖啡
        /// </summary>
        public OrderLocInfo MakeCoffeeOrder = new OrderLocInfo();



        /// <summary>
        /// 咖啡机位置是否有咖啡在制作中
        /// </summary>
        public bool IsCoffeeMake = false;
        /// <summary>
        /// 冰淇淋机器出料口传感器检测
        /// </summary>
        public bool IceIsOK = true;
        /// <summary>
        /// 去咖啡杯成功
        /// </summary>
        public bool GetCoffeeCup;
        /// <summary>
        /// 取冰淇淋杯成功
        /// </summary>
        public bool GetIceCreamCup;

        #region

        [VariableMonitor("机器人连接状态")]
        public bool RobotIsConnected { get; set; }

        [VariableMonitor("机器人状态")]
        public ELebaiRModel RobotMode { get; set; }

        [VariableMonitor("冰淇淋连接状态")]
        public bool IceCreamIsConnected { get; set; }

        [VariableMonitor("冰淇淋机器预冷温度")]
        public short YLWD { get; set; }

        [VariableMonitor("冰淇淋机器回气温度")]
        public short HQWD { get; set; }

        [VariableMonitor("冰淇淋机器环境温度")]
        public short HJWD { get; set; }

        [VariableMonitor("冰淇淋机器电流")]
        public short DL { get; set; }

        [VariableMonitor("冰淇淋机器电压")]
        public short DY { get; set; }

        [VariableMonitor("冰淇淋机器成型比")]
        public byte CBX { get; set; }

        [VariableMonitor("冰淇淋机器模式")]
        public MORKI_MODE IceCreamMode { get; set; }

        [VariableMonitor("冰淇淋机器故障")]
        public MORKI_FAULT IceCreamFault { get; set; }

        [VariableMonitor("冰淇淋机器打料完成")]
        public bool DLCompleted { get; set; }

        [VariableMonitor("咖啡机连接状态")]
        public bool CoffeeIsConnected { get; set; }

        [VariableMonitor("咖啡机状态")]
        public DrCoffeeStatus DrCoffeeStatus { get; set; }

        [VariableMonitor("咖啡机应用状态")]
        public DrCoffeeAppStatus CoffeeAppStatus { get; set; }

        [VariableMonitor("咖啡机告警")]
        public DrCoffeeWarning CoffeeWarning { get; set; }

        [VariableMonitor("咖啡机故障")]
        public DrCoffeeFault CaffeeFault { get; set; }

        [VariableMonitor("单片机连接状态")]
        public bool SCChipIsConnect { get; set; }

        #endregion
    }
}
