예제 #1
0
        public static void UpdateAlignerStatus(string name, string status)
        {
            Form manual = Application.OpenForms["FormManual"];

            if (manual == null)
            {
                return;
            }

            if (manual.InvokeRequired)
            {
                UpdateAlignerStatus_D ph = new UpdateAlignerStatus_D(UpdateAlignerStatus);
                manual.BeginInvoke(ph, name, status);
            }
            else
            {
                StateUtil.Init();
                AlignerState aligner = StateUtil.GetDeviceState(name) != null ? (AlignerState)StateUtil.GetDeviceState(name) : null;
                if (aligner == null)
                {
                    return;
                }
                //update robot status
                switch (name)
                {
                case "Aligner01":
                    Control tbA1Status = manual.Controls.Find("tbA1Status", true).FirstOrDefault() as Control;
                    tbA1Status.Text = status;
                    switch (status)
                    {
                    case "RUN":
                        tbA1Status.BackColor = Color.Lime;
                        break;

                    case "IDLE":
                        tbA1Status.BackColor = Color.Yellow;
                        break;
                    }
                    break;

                case "Aligner02":
                    Control tbA2Status = manual.Controls.Find("tbA2Status", true).FirstOrDefault() as Control;
                    tbA2Status.Text = status;
                    switch (status)
                    {
                    case "RUN":
                        tbA2Status.BackColor = Color.Lime;
                        break;

                    case "IDLE":
                        tbA2Status.BackColor = Color.Yellow;
                        break;
                    }
                    break;
                }
            }
        }
예제 #2
0
        public static void UpdateStatus(string device)
        {
            Form manual = Application.OpenForms["FormManual"];

            if (manual == null)
            {
                return;
            }

            if (manual.InvokeRequired)
            {
                UpdateStatus_D ph = new UpdateStatus_D(UpdateStatus);
                manual.BeginInvoke(ph, device);
            }
            else
            {
                StateUtil.Init();
                AlignerState aligner = StateUtil.GetDeviceState(device) != null ? (AlignerState)StateUtil.GetDeviceState(device) : null;
                if (aligner == null)
                {
                    return;
                }

                Control       tbStatus      = null;
                Control       tbServo       = null;
                Control       tbWaferSensor = null;
                Control       tbVacSolenoid = null;
                NumericUpDown nudSpeed      = null;
                Control       tbError       = null;
                ComboBox      cbMode        = null;

                if (device.Equals("ALIGNER01"))
                {
                    tbStatus      = manual.Controls.Find("tbA1Status", true).FirstOrDefault() as Control;
                    tbServo       = manual.Controls.Find("tbA1Servo", true).FirstOrDefault() as Control;
                    tbWaferSensor = manual.Controls.Find("tbA1WaferSensor", true).FirstOrDefault() as Control;
                    tbVacSolenoid = manual.Controls.Find("tbA1VacSolenoid", true).FirstOrDefault() as Control;
                    nudSpeed      = manual.Controls.Find("nudA1Speed", true).FirstOrDefault() as NumericUpDown;
                    tbError       = manual.Controls.Find("tbA1Error", true).FirstOrDefault() as Control;
                    cbMode        = manual.Controls.Find("cbA1Mode", true).FirstOrDefault() as ComboBox;
                }
                else if (device.Equals("ALIGNER02"))
                {
                    tbStatus      = manual.Controls.Find("tbA2Status", true).FirstOrDefault() as Control;
                    tbServo       = manual.Controls.Find("tbA2Servo", true).FirstOrDefault() as Control;
                    tbWaferSensor = manual.Controls.Find("tbA2WaferSensor", true).FirstOrDefault() as Control;
                    tbVacSolenoid = manual.Controls.Find("tbA2VacSolenoid", true).FirstOrDefault() as Control;
                    nudSpeed      = manual.Controls.Find("nudA2Speed", true).FirstOrDefault() as NumericUpDown;
                    tbError       = manual.Controls.Find("tbA2Error", true).FirstOrDefault() as Control;
                    cbMode        = manual.Controls.Find("cbA2Mode", true).FirstOrDefault() as ComboBox;
                }


                if (tbServo != null)
                {
                    tbServo.Text = aligner.Servo;
                    Color color = new Color();
                    switch (tbServo.Text)
                    {
                    case "OFF":
                        color = Color.MintCream;
                        break;

                    case "ON":
                        color = Color.LightGreen;
                        break;

                    default:
                        color = Color.White;
                        break;
                    }
                    tbServo.BackColor = color;
                }
                if (tbWaferSensor != null)
                {
                    tbWaferSensor.Text = aligner.Present.Equals("1") ? "ON" : "OFF";
                    Color color = new Color();
                    switch (tbWaferSensor.Text)
                    {
                    case "OFF":
                        color = Color.MintCream;
                        break;

                    case "ON":
                        color = Color.LightGreen;
                        break;

                    default:
                        color = Color.White;
                        break;
                    }
                    tbWaferSensor.BackColor = color;
                }
                if (tbVacSolenoid != null)
                {
                    tbVacSolenoid.Text = aligner.Vacuum.Equals("1") ? "ON" : "OFF";
                    Color color = new Color();
                    switch (tbVacSolenoid.Text)
                    {
                    case "OFF":
                        color = Color.MintCream;
                        break;

                    case "ON":
                        color = Color.LightGreen;
                        break;

                    default:
                        color = Color.White;
                        break;
                    }
                    tbVacSolenoid.BackColor = color;
                }
                if (nudSpeed != null)
                {
                    try
                    {
                        nudSpeed.Text = aligner.Speed.Equals("00") ? "100" : Int32.Parse(aligner.Speed).ToString();
                    }
                    catch (Exception)
                    {
                        nudSpeed.Text = aligner.Speed;
                    }
                }
                if (tbError != null)
                {
                    tbError.Text = aligner.Error;
                }
                if (cbMode != null)
                {
                    switch (aligner.Mode.ToUpper())
                    {
                    case "REAL":
                        cbMode.SelectedIndex = 0;    //kawasaki
                        break;

                    case "SIMU":
                        cbMode.SelectedIndex = 1;    //kawasaki
                        break;

                    case "":
                        cbMode.SelectedIndex = -1;
                        break;

                    default:
                        cbMode.SelectedIndex = Int32.Parse(aligner.Mode);
                        break;
                    }
                }
            }
        }