using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Venus_Themes.CustomControls;
namespace Venus_MainPages.Views
{
    /// 
    /// TMView.xaml 的交互逻辑
    /// 
    public partial class TMView : UserControl
    {
        BlockingCollection blockingCollection = new BlockingCollection();
        public TMView()
        {
            InitializeComponent();
     
            //消费
            Task.Run(() =>
            {
                while (true)
                {
                    if (blockingCollection.Count > 0)
                    {
                        this.Dispatcher.Invoke(new Action(() => 
                        {
                            WaferRobotTAction waferRobotTAction=blockingCollection.Take();
                            robot.RobotTAction = waferRobotTAction;
                        }));
                    }  
                   System.Threading.Thread.Sleep(1000);
                }
            });
        }
        private void XCWButton_Click(object sender, RoutedEventArgs e)
        {
            robot.RobotXAction = WaferRobotXAction.Extend;
        }
        private void XCCWButton_Click(object sender, RoutedEventArgs e)
        {
            robot.RobotXAction = WaferRobotXAction.Retract;
        }
        private void TCWButton_Click(object sender, RoutedEventArgs e)
        {
            robot.RobotTAction = WaferRobotTAction.PMA;
        }
        private void TCCWButton_Click(object sender, RoutedEventArgs e)
        {
            robot.RobotTAction = WaferRobotTAction.PMB;
        }
        private async void AutoButton_Click(object sender, RoutedEventArgs e)
        {
            robot.RobotTAction = WaferRobotTAction.LLA;
            await Task.Delay(1000);
            robot.RobotXAction = WaferRobotXAction.Extend;
            await Task.Delay(2000);
            //robot.Wafer = 1;
            await Task.Delay(200);
            robot.RobotXAction = WaferRobotXAction.Retract;
            await Task.Delay(2000);
            robot.RobotTAction = WaferRobotTAction.PMC;
            await Task.Delay(1000);
            robot.RobotXAction = WaferRobotXAction.Extend;
            await Task.Delay(2000);
            //robot.Wafer = 0;
            await Task.Delay(200);
            robot.RobotXAction = WaferRobotXAction.Retract;
            await Task.Delay(2000);
            robot.RobotTAction = WaferRobotTAction.T_Origin;
            //blockingCollection.Add(WaferRobotTAction.PMA);
            //blockingCollection.Add(WaferRobotTAction.PMB);
            //blockingCollection.Add(WaferRobotTAction.PMC);
            //blockingCollection.Add(WaferRobotTAction.PMD);
            //blockingCollection.Add(WaferRobotTAction.PMC);
            //blockingCollection.Add(WaferRobotTAction.PMB);
            //blockingCollection.Add(WaferRobotTAction.PMA);
            //blockingCollection.Add(WaferRobotTAction.PMB);
            //blockingCollection.Add(WaferRobotTAction.PMC);
            //blockingCollection.Add(WaferRobotTAction.PMD);
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            robot.RobotTAction = WaferRobotTAction.PMC;
        }
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            robot.RobotTAction = WaferRobotTAction.PMD;
        }
        private void Button_Click_2(object sender, RoutedEventArgs e)
        {
            robot.RobotTAction = WaferRobotTAction.LLA;
        }
        private void Button_Click_3(object sender, RoutedEventArgs e)
        {
            robot.RobotTAction = WaferRobotTAction.LLB;
        }
        private void Original_Click(object sender, RoutedEventArgs e)
        {
            robot.RobotTAction = WaferRobotTAction.T_Origin;
            //await Task.Delay(1000);
            robot.RobotXAction = WaferRobotXAction.Retract;
        }
        private void Button_Click_4(object sender, RoutedEventArgs e)
        {
            PMA.DoorIsOpen = !PMA.DoorIsOpen;
        }
    }
}