using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DBFactory;
using System.Net.Sockets;
using System.Threading;
using System.Linq;
using Microsoft.VisualBasic;
using System.IO.Ports;
using System.Resources;
using System.Drawing.Drawing2D;

namespace wcfControlMonitorClient
{

    /// <summary>
    /// Creator:Richard.liu
    /// µ÷¶È³ÌÐòÖ÷´°¿Ú
    /// </summary>

    public partial class FrmControlMonitor : WeifenLuo.WinFormsUI.Docking.DockContent
    {

        StringBuilder sql = new StringBuilder();
        Model.MDevice devinfo;
        FrmDeviceStatus _deviceStatus = new FrmDeviceStatus();
        DBFactory.DBOperator dbo = CStaticClass.dbo;
        DBFactory.DBOperator dbo1 = new DBFactory.DBOperator();

        private static FrmControlMonitor _formInstance;
        public static FrmControlMonitor FormInstance
        {
            get
            {
                if (_formInstance == null)
                {
                    _formInstance = new FrmControlMonitor();

                }
                return _formInstance;
            }
            set { _formInstance = value; }
        }

        public FrmControlMonitor()
        {

            InitializeComponent();
            //this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;         
            ////É趨×ÖÌå´óСΪ12px                
            //this.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel, ((byte)(134)));

            _formInstance = this;


        }
        #region ·½·¨
        public void FlashPanit(string obj, bool visible)
        {
            this.Controls[obj].Visible = visible;
        }
        public void FlashPanit(string obj, Image backgroundImage)
        {
            this.Controls[obj].BackgroundImage = backgroundImage;
        }
        public void FlashPanit(string obj, ImageLayout backgroundImageLayout)
        {
            this.Controls[obj].BackgroundImageLayout = backgroundImageLayout;
        }

        public void FlashPanit(string obj, int top, int left)
        {
            this.Controls[obj].Top = top;
            this.Controls[obj].Left = left;
        }

        public void FlashPanit(string obj, string text, bool append)
        {
            if (append == true)
            {
                this.Controls[obj].Text += text;
            }
            else
            {
                this.Controls[obj].Text = text;
            }
        }
        public string GetObjectText(string obj)
        {
            return this.Controls[obj].Text;
        }
        public void MonitorRefresh(object dataSource)
        {
            #region Added by DingXiaoxu for Dock TaskList on 20101219
            FrmTaskList.FormInstance.MonitorRefresh(dataSource);
            #endregion

            //this.dgvMonitor.DataSource = dataSource;
            ////20100108
            //dataSource = null;
        }
        public void ManagerRefresh(object dataSource)
        {
            #region Added by DingXiaoxu for Dock TaskList on 20101219
            FrmTaskList.FormInstance.ManagerRefresh(dataSource);
            #endregion

            //this.dgvManager.DataSource = dataSource;
            ////20100108
            //dataSource = null;
        }
        #endregion
        protected override CreateParams CreateParams
        {

            get
            {

                CreateParams cp = base.CreateParams;

                cp.ExStyle |= 0x02000000;//WS_CLIPCHILDREN   Á½¸ö´°Ìåµþ¼Óʱ£¬Öصþ²¿·Ö²»ÖØ»æ
                return cp;

            }

        }
        private void timerFlash_Tick(object sender, EventArgs e)
        {
            string[] DS; char[] dd = new char[1] { '.' };
            Model.MDevice device;
            TimeSpan ts = DateTime.Now.TimeOfDay;
            DataView dv; DataView dvJY;
            this.SuspendLayout(); //richard.liu20140806
            try
            {
                //if (CStaticClass.WCFOK == true)
                {
                    sql.Remove(0, sql.Length);//richard.liu20140806
                    sql.Append("SELECT F_DeviceIndex FROM T_Base_Device WHERE (F_LockedState = - 1) ");
                    dvJY = dbo.ExceSQL(sql.ToString()).Tables[0].DefaultView;//richard.liu20140806
                    dvJY.Sort = "F_DeviceIndex";

                    Button stack1 = bt1_stacker1;
                    Button stack2 = bt1_stacker2;
                    Button stack3 = bt1_stacker3;

                    TextBox tw1n = tb1_stacker1_Near;             
                    TextBox tw2n = tb1_stacker2_Near;
                    TextBox tw3n = tb1_stacker3_Near;

                    Panel pp = plAccessorial1;

                    if (this.tabControl1.SelectedTab.Name == "tabPage1")
                    {
                        //pp = plAccessorial1;

                        //stack1 = bt1_23034;
                        //stack2 = bt1_stacker1;

                        //tw1n = tb1_23034_Near;
                       // tw1f = tb1_11001_Far;

                        //tw2n = tb1_stacker1_Near;
                       // tw2f = tb1_11002_Far;

                        //tw3n = tb1_11003_Near;
                       // tw3f = tb1_11003_Far;

                        //stackInitX = 91;
                        //StackInitXX = 9.8;


                    }
                    else if (this.tabControl1.SelectedTab.Name == "tabPage2")
                    {
                       // pp = panelWareHouse;
                       //  tw31005_1 = tb_31005_1_1;
                       //  tw31005_2 = tb_31005_1_2;
                       //  tw31006_1 = tb_31006_1_1;
                       //  tw31006_2 = tb_31006_1_2;


                       //bigstack5 = bt_31005;
                       //bigstack6 = bt_31006;
                        //smallbarcode=6000;
                        //bigbarcode=46000;



                        //startadd2 = 705;//µÚÒ»ÁÐͼÉÏ×ø±ê

                        //k2 = (double)(560 + 50) / (double)21385;//ͼÉÏ»õ¼Ü³¤¶È/»õ¼Üʵ¼Ê³¤¶È£¨29944-8559£©

                        //startcode2 = 8559;//µÚÒ»ÁжÔÓ¦µÄʵ¼Ê×ø±ê



                        //startadd2 = 785;//µÚÒ»ÁÐͼÉÏ×ø±ê

                        //k2 = (double)(781) / (double)29834;//ͼÉÏ»õ¼Ü³¤¶È/»õ¼Üʵ¼Ê³¤¶È£¨38393-8559£©

                        //startcode2 = 8559;//µÚÒ»ÁжÔÓ¦µÄʵ¼Ê×ø±ê
                    }
                    else if (this.tabControl1.SelectedTab.Name == "tabPage3")
                    {
                        //pp = InOutAreaPanel;
                        //tw31005_1 = tb_31005_2_1;
                        //tw31005_2 = tb_31005_2_2;
                        //tw31006_1 = tb_31006_2_1;
                        //tw31006_2 = tb_31006_2_2;

                        //bigstack5 = bt_31005_2;
                        //bigstack6 = bt_31006_2;

                        //smallbarcode = 0;
                        //bigbarcode = 10000000;
                        //startadd2 = 701;//µÚÒ»ÁÐͼÉÏ×ø±ê
                        ////startadd2 = 822;//µÚÒ»ÁÐͼÉÏ×ø±ê
                        //k2 = (double)(691 + 8) / (double)28237;//ͼÉÏ»õ¼Ü³¤¶È/»õ¼Üʵ¼Ê³¤¶È    79006-50769

                        ////k2 = (double)(820) / (double)42087;//ͼÉÏ»õ¼Ü³¤¶È/»õ¼Üʵ¼Ê³¤¶È    79006-36919

                        //startcode2 = 50769;//µÚÒ»ÁжÔÓ¦µÄʵ¼Ê×ø±ê
                        ////startcode2 = 36919;//µÚÒ»ÁжÔÓ¦µÄʵ¼Ê×ø±ê
                    }

                    #region ÿ²ãÂ¥¼àÊÓ»­Ãæ

                    foreach (Button ctrl in pp.Controls.OfType<Button>())
                    {
                        if (ctrl.Enabled == false) continue;
                        device = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(ctrl.Tag));
                        if (device == null)
                        {//20100108
                            if (tsStatus.Text.IndexOf(ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!") < 0)
                            {
                                tsStatus.ForeColor = Color.Red;
                                this.tsStatus.Text += ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!";
                            }
                            continue;
                        }
                         #region ¶¯»­
                        if (device.DeviceKind == 1)
                        {//¶Ñ¶â»ú
                            #region ÍÐÅ̶Ѷâ»ú
                            if (device.DeviceIndex >= 11001 && device.DeviceIndex <= 11003)
                            {
                                switch (device.DeviceIndex)
                                {
                                    case 11001: 
                                        //1ÁÐ×ø±ê+£¨»õ¼Ü³¤¶È/ÁÐÊý£©*£¨X×ø±ê-1£©
                                        stack1.Location = new Point((int)(342 + (780 / 27) * (device.XCoor)), 188);// 
                                        tw1n.Location = new Point(stack1.Location.X + 9, stack1.Location.Y +6);
                                        break;
                                    case 11002:
                                        stack2.Location = new Point((int)(342 + (780 / 27) * (device.XCoor)), 353);//
                                        tw2n.Location = new Point(stack2.Location.X + 9, stack2.Location.Y + 6);
                                        break;
                                    case 11003:
                                        stack3.Location = new Point((int)(440 + (726 / 11) * (device.XCoor)), 519);//
                                        tw3n.Location = new Point(stack3.Location.X + 9, stack3.Location.Y + 6);
                                        break;
                                }
                            }
                            #endregion
                        }
                       
                        else if (device.DeviceKind == 2)
                        {
                            #region ̨³µ
                            if (device.DeviceIndex >= 13001 && device.DeviceIndex <= 13007)
                            {
                                int nearY = 314;
                                int farY = 337;
                                if (device.SplitByte_1 == 1)//Í£¿¿ÔÚ½üλÖÃ
                                {
                                    if (ctrl.Location.Y != nearY)
                                    {
                                        ctrl.Location = new Point(ctrl.Location.X, nearY);

                                    }
                                }
                                else
                                    if (device.SplitByte_2 == 1)//Í£¿¿ÔÚԶλÖÃ
                                    {
                                        if (ctrl.Location.Y != farY)
                                        {
                                            ctrl.Location = new Point(ctrl.Location.X, farY);
                                        }
                                    }




                            }
                            #endregion
                        }
                        #endregion

                        #region ÉèÖÃÉ豸״̬
                        switch (device.RunState)
                        {
                            //¿ÕÏÐ
                            case 0:
                                if (device.DeviceKind == 1)
                                {
                                    if (device.ControlMode > 0)
                                    {
                                        ctrl.BackColor = Color.DarkViolet;

                                    }
                                    else
                                    {
                                        ctrl.BackColor = Color.Orange;
                                    }
                                }
                                else
                                {  
                                 ctrl.BackColor = Color.LightSkyBlue;
                                }

                                break;
                            //ÔËÐÐ
                            case 1:
                                ctrl.BackColor = Color.Lime;
                                break;
                            //¹ÊÕÏ
                            case 2:
                                ctrl.BackColor = Color.Red;
                               
                                break;
                            //ÀëÏß
                            case 3:
                                ctrl.BackColor = Color.LightYellow;
                                break;
                            //Í£ÓÃ
                            case 4:
                                ctrl.BackColor = Color.Maroon;

                                break;
                            //20090920¶¯×÷Íê³É
                            case 5:
                                ctrl.BackColor = Color.SeaGreen;//MediumOrchid;

                                break;
                        }
                        #endregion

                        #region É豸±»½ûÓÃ
                        //richar.liu20140806
                        int index = dvJY.Find(device.DeviceIndex);
                        if (index >= 0)
                        {
                            ctrl.BackColor = Color.Maroon;

                        }
                 
                        else
                        {
                            ctrl.Visible = true;
                        }
                        #endregion


                    }

                    #region »õÎï̽²â
                    foreach (TextBox ctrl in pp.Controls.OfType<TextBox>())
                    {

                        if (ctrl.Tag.ToString()=="")
                        {
                            continue;
                        }
                        DS = ctrl.Tag.ToString().Split(dd);
                        int devicebyte = 0; int devbit = 0;
                        int.TryParse(DS[0], out devicebyte);
                        int.TryParse(DS[1], out devbit);
                        device = Model.CGetInfo.GetDeviceInfo(devicebyte);
                        if (device == null)
                        {//20100108
                            if (tsStatus.Text.IndexOf(ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!") < 0)
                            {
                                tsStatus.ForeColor = Color.Red;
                                this.tsStatus.Text += ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!";
                            }
                            continue;
                        }
                     
                        int index = dvJY.Find(device.DeviceIndex);
                        switch (devbit)
                        {
                            case 0:
                                ctrl.Visible = device.SplitByte_0 == 1 ? true : false;
                                
                                break;
                            case 1:
                             
                                ctrl.Visible = device.SplitByte_1 == 1 ? true : false;
                                
                                break;
                            case 2:
                                ctrl.Visible = device.SplitByte_2 == 1 ? true : false;
                                break;
                            case 3:
                                ctrl.Visible = device.SplitByte_3 == 1 ? true : false;
                                break;
                            case 4:
                                ctrl.Visible = device.SplitByte_4 == 1 ? true : false;
                                break;
                            case 5:
                                ctrl.Visible = device.SplitByte_5 == 1 ? true : false;
                                break;
                            case 6:
                                ctrl.Visible = device.SplitByte_6 == 1 ? true : false;
                                ctrl.BackColor = Color.Goldenrod;
                                break;
                            case 7:
                                ctrl.Visible = device.SplitByte_7 == 1 ? true : false;
                                break;
                        }
                    }
                    #endregion


                    #region ¸ßλ¿ª¹ØÌ½²â
                    //foreach (Label ctrl in pp.Controls.OfType<Label>())
                    //{
                    //    if (ctrl.Tag != null && ctrl.ForeColor != Color.Red)
                    //    {
                    //        DS = ctrl.Tag.ToString().Split(dd);
                    //        int devicebyte = 0; int devbit = 0;
                    //        int.TryParse(DS[0], out devicebyte);
                    //        int.TryParse(DS[1], out devbit);
                    //        device = Model.CGetInfo.GetDeviceInfo(devicebyte);
                    //        if (device == null)
                    //        {//20100108
                    //            if (tsStatus.Text.IndexOf(ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!") < 0)
                    //            {
                    //                tsStatus.ForeColor = Color.Red;
                    //                this.tsStatus.Text += ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!";
                    //            }
                    //            continue;
                    //        }
                        
                    //        if (devbit < 8)
                    //        {
                    //            switch (devbit)
                    //            {
                    //                case 0:
                    //                    ctrl.Visible = device.SplitByte_0 == 1 ? true : false;
                    //                    break;
                    //                case 1:
                    //                    ctrl.Visible = device.SplitByte_1 == 1 ? true : false;
                    //                    break;
                    //                case 2:
                    //                    ctrl.Visible = device.SplitByte_2 == 1 ? true : false;
                    //                    break;
                    //                case 3:
                    //                    ctrl.Visible = device.SplitByte_3 == 1 ? true : false;
                    //                    break;
                    //                case 4:
                    //                    ctrl.Visible = device.SplitByte_4 == 1 ? true : false;
                    //                    break;
                    //                case 5:
                    //                    ctrl.Visible = device.SplitByte_5 == 1 ? true : false;
                    //                    break;
                    //                case 6:
                    //                    ctrl.Visible = device.SplitByte_6 == 1 ? true : false;
                    //                    ctrl.BackColor = Color.Goldenrod;
                    //                    break;
                    //                case 7:
                    //                    ctrl.Visible = device.SplitByte_7 == 1 ? true : false;
                    //                    break;

                    //            }
                    //        }
                    //        else
                    //        {
                    //            devbit = devbit % 8;

                    //            switch (devbit)
                    //            {
                    //                case 0:
                    //                    ctrl.Visible = (device.SplitByte_5 & 1) == 1 ? true : false;
                    //                    break;
                    //                case 1:
                    //                    ctrl.Visible = (device.SplitByte_5 & 2) == 2 ? true : false;
                    //                    break;
                    //                case 2:
                    //                    ctrl.Visible = (device.SplitByte_5 & 4) == 4 ? true : false;
                    //                    break;
                    //                case 3:
                    //                    ctrl.Visible = (device.SplitByte_5 & 8) == 8 ? true : false;
                    //                    break;
                    //                case 4:
                    //                    ctrl.Visible = (device.SplitByte_5 & 16) == 16 ? true : false;
                    //                    break;
                    //                case 5:
                    //                    ctrl.Visible = (device.SplitByte_5 & 32) == 32 ? true : false;
                    //                    break;
                    //                case 6:
                    //                    ctrl.Visible = (device.SplitByte_5 & 64) == 64 ? true : false;
                    //                    break;
                    //                case 7:
                    //                    ctrl.Visible = (device.SplitByte_5 & 128) == 128 ? true : false;
                    //                    break;
                    //            }
                    //        }
                    //    }
                    //}
                    #endregion

                    #region Âß¼­ÓÐÎïÏÔʾ


                    foreach (RadioButton ctrl in pp.Controls.OfType<RadioButton>())
                    {
                        //20100108DataView dvh;
                        dv = dbo.ExceSQL("SELECT F_DeviceIndex FROM T_Base_Device WHERE (F_DeviceIndex = " + ctrl.Tag + ") AND (F_HaveGoods >0)").Tables[0].DefaultView;
                        if (dv.Count > 0)
                        {
                            ctrl.Visible = true;
                            ctrl.BackColor = Color.Blue;
                        }
                        else
                        {
                            ctrl.Visible = false;
                        }

                    }



                    #endregion

                    #region ¹ÊÕϵã
                    foreach (PictureBox ctrl in pp.Controls.OfType<PictureBox>())
                    {
                        if ( ctrl.Tag.ToString()!="")
                        {
                            //Èç¹ûÊǽô¼±Í£³µ°´Å¥µÄʱºò
                            if (!ctrl.Tag.ToString().Contains(".")) 
                            {
                                device = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(ctrl.Name.ToString().Substring(ctrl.Name.Length - 4, 4)));
                                if (device.DeviceKind == 40) 
                                {
                                    //È¡¶Ñ¶â»ú״̬À´ÏÔʾÑÕÉ«
                                    device = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(ctrl.Tag));
                                    if (device == null)
                                    {//20100108
                                        if (tsStatus.Text.IndexOf(ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Name.ToString().Substring(ctrl.Name.Length - 4, 4) + "ÔÚÊý¾Ý¿âûÓмǼ!") < 0)
                                        {
                                            tsStatus.ForeColor = Color.Red;
                                            this.tsStatus.Text += ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Name.ToString().Substring(ctrl.Name.Length - 4, 4) + "ÔÚÊý¾Ý¿âûÓмǼ!";
                                        }
                                        continue;
                                    }
                                    DataView dwRunDevice = dbo.ExceSQL("select F_DeviceIndex from T_Base_Device where F_DeviceKindIndex=1 or F_DeviceKindIndex=4").Tables[0].DefaultView;
                                    for (int i = 0; i < dwRunDevice.Count; i++) 
                                    {
                                        if (ctrl.Tag.ToString() == dwRunDevice[i]["F_DeviceIndex"].ToString()) 
                                        {
                                            Model.MDevice deviceRun = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(ctrl.Tag.ToString()));
                                            if (deviceRun.SplitByte_6 == 0) //-δÁª»úÍ£³µ
                                            {
                                                ctrl.Image = wcfControlMonitorClient.Properties.Resources.stop0;
                                            }
                                            if (deviceRun.SplitByte_6 == 1)//-Áª»úÍ£³µ
                                            {
                                                ctrl.Image = wcfControlMonitorClient.Properties.Resources.stop1;
                                            }
                                        }
                                    }
                                }
                            }
                            DS = ctrl.Tag.ToString().Split(dd);
                            if(DS.Length>1)
                            {
                            int devicebyte = 0; int devbit = 0;
                            int.TryParse(DS[0], out devicebyte);
                            int.TryParse(DS[1], out devbit);
                            device = Model.CGetInfo.GetDeviceInfo(devicebyte);
                            if (device == null)
                            {//20100108
                                if (tsStatus.Text.IndexOf(ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!") < 0)
                                {
                                    tsStatus.ForeColor = Color.Red;
                                    this.tsStatus.Text += ctrl.Name + "¿Ø¼þ¶ÔÓ¦µÄÉ豸Ë÷Òý£º" + ctrl.Tag + "ÔÚÊý¾Ý¿âûÓмǼ!";
                                }
                                continue;
                            }

                            switch (devbit)
                            {
                                case 0:
                                    ctrl.Visible = device.SplitByte_0 == 1 ? true : false;
                                    break;
                                case 1:
                                    ctrl.Visible = device.SplitByte_1 == 1 ? true : false;
                                    break;
                                case 2:
                                    ctrl.Visible = device.SplitByte_2 == 1 ? true : false;
                                    break;
                                case 3:
                                    ctrl.Visible = device.SplitByte_3 == 1 ? true : false;
                                    break;
                                case 4:
                                    ctrl.Visible = device.SplitByte_4 == 1 ? true : false;
                                    break;
                                case 5:
                                    ctrl.Visible = device.SplitByte_5 == 1 ? true : false;
                                    break;
                                case 6:
                                    ctrl.Visible = device.SplitByte_6 == 0 ? false : true;//0´ú±í°²È«ÃŹرÕ
                                    break;
                                case 7:
                                    ctrl.Visible = device.SplitByte_7 == 1 ? true : false;
                                    break;

                            }
                            }
                        }
                    }
                    #endregion
                    #endregion

                }
            }
            catch (Exception ex)
            {//20100108
                if (tsStatus.Text.IndexOf("ˢнçÃæ¶¯»­Ê±£º" + ex.Message) < 0)
                {
                    tsStatus.ForeColor = Color.Red;
                    this.tsStatus.Text += "ˢнçÃæ¶¯»­Ê±£º" + ex.Message;
                }
            }
            finally
            {//20100108
                TimeSpan ts1 = DateTime.Now.TimeOfDay;
                device = null;
                this.ResumeLayout();//richard.liu20140806
            }
        }
        private void ctrl_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
            _deviceStatus.DeviceIndex = Convert.ToInt32(btn.Tag);
            _deviceStatus.ShowDialog();
        }

        private void ctrl_Click_1(object sender, EventArgs e)
        {
            
            try
            {
                PictureBox px = (PictureBox)sender;
                int DeviceIndexForRunButton = Convert.ToInt32(px.Name.ToString().Substring(px.Name.Length - 4, 4));

                Model.MDevice deviceRun = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(px.Tag.ToString()));
                int iValue = 0;
                iValue = deviceRun.SplitByte_6 == 1 ? 0 : 1;
                CStaticClass.WcfControl.BeginSendDeviceReset(DeviceIndexForRunButton, iValue, new AsyncCallback(SendDeviceResetCallback), iValue);


            }
            catch (Exception ex)
            {

            }
        }

        void SendDeviceResetCallback(IAsyncResult ar) 
        {
            string errtext = string.Empty;

            if (CStaticClass.WcfControl.EndSendDeviceReset(out errtext, ar) == false) 
            {
                MessageBox.Show(errtext, "²Ù×÷Ìáʾ", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        /// <summary>
        /// ÓÃÓÚ½ô¼±Í£³µ°´Å¥Êó±ê·ÅÉÏÈ¥ÏÔʾÉ豸ÐÅÏ¢
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Btn_MouseEnter_Stop(object sender, EventArgs e) 
        {
            string deviceindex = (sender as Control).Tag.ToString();
            devinfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(deviceindex));
            if (devinfo != null) 
            {
                if(devinfo.SplitByte_6 == 0)//δͣ³µ
                {
                    deviceindex = string.Format("{0}-δÁª»úÍ£³µ", devinfo.DeviceIndex);
                }
                if (devinfo.SplitByte_6 == 1)//Í£³µ
                {
                    deviceindex = string.Format("{0}-Áª»úÍ£³µÖÐ", devinfo.DeviceIndex);
                }
            }
            toolTip_DeviceIndex.SetToolTip(sender as Control, deviceindex);
        }

        private void Btn_MouseEnter(object sender, EventArgs e)
        {
            int deviceindex;
            string[] DS; char[] dd = new char[1] { '.' };
            string msg = (sender as Control).Tag.ToString();
            string name = (sender as Control).Name.ToString();

            DS = msg.Split(dd);
            if (DS.Length > 0)
            {
                if (int.TryParse(DS[0], out deviceindex))
                {
                    devinfo = Model.CGetInfo.GetDeviceInfo(deviceindex);

                    if (devinfo != null)
                    {
                        //msg = string.Format("{0},λÖÃX,Y:({1},{2})", devinfo.DeviceName, (sender as Control).Location.X,(sender as Control).Location.Y+83);



                        msg = string.Format("{0}", devinfo.DeviceName);
                        if (DS.Length > 1)
                        {
                            if (DS[1] == "5")
                            {
                                msg = "°²È«ÃÅ´ò¿ª";
                            }
                        }
                        //msg = string.Format("{0}", devinfo.DeviceName);
                    }

                }

            }
            if(name.IndexOf("lift")>0)
            {
                msg = "ÇëÁ¢¼´°áÀëÍÐÅÌ!";
            }

            toolTip_DeviceIndex.SetToolTip(sender as Control, msg);
        }
        private void ctrl_ClickLabel(object sender, EventArgs e)
        {
            Label label = (Label)sender;
            _deviceStatus.DeviceIndex = Convert.ToInt32(label.Tag);
            _deviceStatus.ShowDialog();
        }
        /// <summary>
        /// ¹ö¶¯·½·¨
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void FormSample_MouseWheel(object sender, MouseEventArgs e)
        {
            ////»ñÈ¡¹â±êλÖÃ
            //Point mousePoint = new Point(e.X, e.Y);
            ////»»Ëã³ÉÏà¶Ô±¾´°ÌåµÄλÖÃ
            //mousePoint.Offset(this.Location.X, this.Location.Y);
            ////ÅжÏÊÇ·ñÔÚpanelÄÚ
            //if (panelWareHouse.RectangleToScreen(panelWareHouse.DisplayRectangle).Contains(mousePoint))
            //{
            //    //¹ö¶¯
            //    panelWareHouse.AutoScrollPosition = new Point(0, panelWareHouse.VerticalScroll.Value - e.Delta);
            //}
        }
        private void FrmControlMonitor_Load(object sender, EventArgs e)
        {
            try
            {
                //this.panelWareHouse.MouseWheel += new MouseEventHandler(FormSample_MouseWheel);
                //this.panelWareHouse.Focus();
                #region Ìí¼ÓÊäËÍ»ú¡¢´©Ë󳵺ͶѶâ»úµÄµ¥»÷ʼþ


                //foreach (Control ctrl in this.plAccessorial1.Controls)
                //{

                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.Button") && (ctrl.Tag != null))
                //    {
                //        ctrl.Click += new EventHandler(ctrl_Click);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }
                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.ForeColor == Color.Red))
                //    {
                //        ctrl.Click += new EventHandler(ctrl_ClickLabel);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }
                //    //if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.BackColor == Color.LightSteelBlue))
                //    //{
                //    //    ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    //}
                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox") && (ctrl.Tag != null) && (ctrl.Enabled == true))
                //    {
                //        //ctrl.Click += new EventHandler(ctrl_ClickPic);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }

                //}
                //foreach (Control ctrl in this.panelWareHouse.Controls)
                //{

                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.Button") && (ctrl.Tag != null))
                //    {
                //        ctrl.Click += new EventHandler(ctrl_Click);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }
                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.ForeColor == Color.Red))
                //    {
                //        ctrl.Click += new EventHandler(ctrl_ClickLabel);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }
                //    //if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.ForeColor == Color.Blue))
                //    //{
                //    //    ctrl.Visible = true;
                //    //    ctrl.Visible = false;
                //    //}
                //    //if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.BackColor == Color.LightSteelBlue))
                //    //{
                //    //    ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    //}
                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox") && (ctrl.Tag != null) && (ctrl.Enabled == true))
                //    {
                //        //ctrl.Click += new EventHandler(ctrl_ClickPic);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }

                //}
                //foreach (Control ctrl in this.InOutAreaPanel.Controls)
                //{

                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.Button") && (ctrl.Tag != null))
                //    {
                //        ctrl.Click += new EventHandler(ctrl_Click);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }
                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.ForeColor == Color.Red))
                //    {
                //        ctrl.Click += new EventHandler(ctrl_ClickLabel);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }
                //    //if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.ForeColor == Color.Blue))
                //    //{
                //    //    ctrl.Visible = true;
                //    //    ctrl.Visible = false;
                //    //}
                //    //if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.BackColor == Color.LightSteelBlue))
                //    //{
                //    //    ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    //}
                //    if ((ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox") && (ctrl.Tag != null) && (ctrl.Enabled == true))
                //    {
                //        //ctrl.Click += new EventHandler(ctrl_ClickPic);
                //        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                //    }

                //}
                #endregion

                foreach (TabPage tabPage in tabControl1.TabPages)
                {
                    if (tabPage.Tag.ToString() == CStaticClass.UserArea || CStaticClass.UserArea == "")
                    {
                        foreach (Control ctrls in tabPage.Controls)
                        {
                            if (ctrls.GetType().ToString() == "System.Windows.Forms.Panel")
                            {
                                foreach (Control ctrl in ctrls.Controls)
                                {

                                    if ((ctrl.GetType().ToString() == "System.Windows.Forms.Button") && (ctrl.Tag != null))
                                    {
                                        ctrl.Click += new EventHandler(ctrl_Click);
                                        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                                    }
                                    if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.ForeColor == Color.Red))
                                    {
                                        ctrl.Click += new EventHandler(ctrl_ClickLabel);
                                        ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                                    }
                                    //if ((ctrl.GetType().ToString() == "System.Windows.Forms.Label") && (ctrl.Tag != null) && (ctrl.BackColor == Color.LightSteelBlue))
                                    //{
                                    //    ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                                    //}
                                    if ((ctrl.GetType().ToString() == "System.Windows.Forms.PictureBox") && (ctrl.Tag != null) && (ctrl.Enabled == true))
                                    {
                                        //ctrl.Click += new EventHandler(ctrl_ClickPic);
                                        if (!ctrl.Tag.ToString().Contains("."))
                                        {
                                            ctrl.Click += new EventHandler(ctrl_Click_1);
                                            ctrl.MouseEnter += new EventHandler(Btn_MouseEnter_Stop);
                                        }
                                        else 
                                        {
                                            ctrl.MouseEnter += new EventHandler(Btn_MouseEnter);
                                        }
                                    }
                                }
                            }

                        }
                    }
                    else
                    {
                        tabPage.Parent = null;
                    }

                 

                }
                


            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }

        private void tsStatus_ForeColorChanged(object sender, EventArgs e)
        {
            FrmErrorMessage.FormInstance.NewForeColor((sender as TextBox).ForeColor);
        }

        private void tsStatus_TextChanged(object sender, EventArgs e)
        {
            //throw new System.Exception("The method or operation is not implemented.");
            string msg = (sender as TextBox).Text;
            if (msg != "")
            {
                //msg = string.Format("{0}\r\n", msg);
                //msg=msg+"\r\n";
                CommonClassLib.CCarryConvert.WriteDarkCasket("Error", msg, "", "", "");
                FrmErrorMessage.FormInstance.NewMessage(msg);
            }

        }

        private void tabPage1_Click(object sender, EventArgs e)
        {

        }

        private void button6_Click(object sender, EventArgs e)
        {
            //string enddevices, startsdevices, strinfo = string.Empty;//²ð¶âÈÎÎñÖÕµã
            //string sqlstr = string.Empty;
            //DataView dvdv = new DataView();
            //int EndDevice =12018;
            //sqlstr = string.Format("select * from T_Base_TaskCount where F_DeviceIndex={0}", EndDevice);//²éÕÒÖÕµãÉ豸¶ÔÓ¦µÄ³ö¿âÈÎÎñ»ñÈ¡ÊýÁ¿ºÍÖ´ÐÐÊýÁ¿

            //dvdv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;
            //if (dvdv.Count > 0)
            //{
            //    int getcount, execount;
            //    getcount = Convert.ToInt32(dvdv[0]["F_MAXCOUNT"]);
            //    execount = Convert.ToInt32(dvdv[0]["F_EXECOUNT"]);
            //    //checkdevice = Convert.ToInt32(dvdv[0]["F_CHECKDEVICE"]);// 
            //    enddevices = Convert.ToString(dvdv[0]["F_CHECKENDDEVICE"]);//ÒªÅжÁÊÇ·ñ´æÔÚ¸ÃÖÕµãµÄÉ豸
            //    startsdevices = Convert.ToString(dvdv[0]["F_CHECKSTARTDEVICE"]);//ÒªÅжÏÊÇ·ñ´æÔÚ¸ÃÆðµãµÄÉ豸


            //    if (startsdevices != "0" || enddevices != "0")//±íʾͬʱִÐÐʱ
            //    {
            //        sqlstr = string.Format("SELECT FID,F_ManageTaskKindIndex FROM T_Manage_Task WHERE (FSTARTDEVICE in({0})) OR (FENDDEVICE in({1}))", startsdevices, enddevices);

            //        dvdv = dbo.ExceSQL(sqlstr).Tables[0].DefaultView;

            //        if (dvdv.Count > 0)//´æÔÚÏ໥¸ÉÈŵijöÈë¿âÈÎÎñʱ£¬°´³ö¿âÊýÁ¿ÏÞÖÆ
            //        {
            //            // outcount = execount;
            //        }
            //        else//Ö»´æÔÚµ±Ç°ÖÕµãµÄÈÎÎñʱ£¬°´»ñÈ¡ÊýÁ¿ÏÞÖÆ£¬Ò»°ãÇé¿ö »ñÈ¡ÊýÁ¿Òª´óÓÚÖ´ÐÐÊýÁ¿
            //        {
            //            //outcount = getcount;
            //        }
            //    }
            //}
        }

        private void button6_Click_1(object sender, EventArgs e)
        {

            //bool a = GetTransDeviceIfFull("11003;11004;11005");
        }
        public bool GetTransDeviceIfFull(string Devices)
        {
            try
            {
                char[] cc = new char[1] { ';' };
                string[] sp;
                sp = Devices.Split(cc);
                int count = sp.Length;//É豸ÊýÁ¿
                int goodscount = 0;//»õÎïÊýÁ¿
                for (int i = 0; i < count; i++)
                {
                    int deviceindex = Convert.ToInt32(sp[i]);
                    devinfo = Model.CGetInfo.GetDeviceInfo(deviceindex);
                    if (devinfo != null)
                    {
                        goodscount += devinfo.SplitByte_0;
                        goodscount += devinfo.SplitByte_1;

                    }

                }

                if (goodscount >= count)
                {

                    return true;
                }
                else
                {
                    return false;
                }

            }
            catch (Exception ex)
            {
                return false;
            }


        }

        //private void tabControl1_TabIndexChanged(object sender, EventArgs e)
        //{

        //}

        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = ((TabControl)sender).SelectedIndex;
            if (index == 1)
            {
                //button242.Focus();
            }
        }

        private void button134_Click(object sender, EventArgs e)
        {
            //textBox85.Visible = true;
        }

        private void button161_Click(object sender, EventArgs e)
        {

        }

        private void button20_Click(object sender, EventArgs e)
        {
            //textBox44.Visible = !textBox44.Visible;
        }

        private void button24_Click(object sender, EventArgs e)
        {
            
        }

        private void label30_Click(object sender, EventArgs e)
        {

        }

        private void tb1_stacker1_Near_TextChanged(object sender, EventArgs e)
        {

        }

        private void label1_Click(object sender, EventArgs e)
        {

        }

        private void label22_Click(object sender, EventArgs e)
        {

        }

        private void plAccessorial1_Paint(object sender, PaintEventArgs e)
        {

        }

        private void label15_Click(object sender, EventArgs e)
        {

        }

        private void label24_Click(object sender, EventArgs e)
        {

        }

        private void label12_Click(object sender, EventArgs e)
        {

        }

        private void textBox18_TextChanged(object sender, EventArgs e)
        {

        }

        private void toolTip_DeviceIndex_Popup(object sender, PopupEventArgs e)
        {

        }


    }
}