SHARP_CLAS_UI/500.Equipment/700.Unit/400.Unloader/ULD_Handler_1.cs
@@ -2291,49 +2291,63 @@
                        {
                            if (aoistage.Stage1.IsExist && info1.WidthMeasurement_Ack == false)
                            {
                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Left_Result))
                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Left_Ack))
                                {
                                    info1.WidthMeasurement_Ack = true;
                                    info1.WidthMeasurement_Result = true;
                                    if (equipment.sm.Get_Bit(Vision_Address.Measurement_Left_Result))
                                    {
                                        info1.WidthMeasurement_Ack = true;
                                        info1.WidthMeasurement_Result = true;
                                    info1.End_Time = DateTime.Now;
                                        info1.End_Time = DateTime.Now;
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_1_Point_1, out value);
                                    info1.Mark1Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_2_Point_1, out value);
                                    info1.Mark2Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_3_Point_1, out value);
                                    info1.Mark3Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_4_Point_1, out value);
                                    info1.Mark4Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_1_Point_1, out value);
                                        info1.Mark1Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_2_Point_1, out value);
                                        info1.Mark2Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_3_Point_1, out value);
                                        info1.Mark3Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_4_Point_1, out value);
                                        info1.Mark4Width = double.Parse(value.ToString());
                                    aoistage.Panel1 = info1;
                                        aoistage.Panel1 = info1;
                                    isAoiPanel1WidthMeasurementAck = aoiStage.Stage1.IsExist == false || aoiStage.Panel1.WidthMeasurement_Ack;
                                        isAoiPanel1WidthMeasurementAck = aoiStage.Stage1.IsExist == false || aoiStage.Panel1.WidthMeasurement_Ack;
                                    }
                                }
                                else
                                {
                                    return;
                                }
                            }
                            if (aoistage.Stage2.IsExist && info2.WidthMeasurement_Ack == false)
                            {
                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Result))
                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Ack))
                                {
                                    info2.WidthMeasurement_Ack = true;
                                    info2.WidthMeasurement_Result = true;
                                    if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Result))
                                    {
                                        info2.WidthMeasurement_Ack = true;
                                        info2.WidthMeasurement_Result = true;
                                    info2.End_Time = DateTime.Now;
                                        info2.End_Time = DateTime.Now;
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_1_Point_1, out value);
                                    info2.Mark1Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_2_Point_1, out value);
                                    info2.Mark2Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_3_Point_1, out value);
                                    info2.Mark3Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_4_Point_1, out value);
                                    info2.Mark4Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_1_Point_1, out value);
                                        info2.Mark1Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_2_Point_1, out value);
                                        info2.Mark2Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_3_Point_1, out value);
                                        info2.Mark3Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_4_Point_1, out value);
                                        info2.Mark4Width = double.Parse(value.ToString());
                                    aoistage.Panel2 = info2;
                                        aoistage.Panel2 = info2;
                                    isAoiPanel2WidthMeasurementAck = aoiStage.Stage2.IsExist == false || aoiStage.Panel2.WidthMeasurement_Ack;
                                        isAoiPanel2WidthMeasurementAck = aoiStage.Stage2.IsExist == false || aoiStage.Panel2.WidthMeasurement_Ack;
                                    }
                                }
                                else
                                {
                                    return;
                                }
                            }
@@ -2417,12 +2431,12 @@
                        if (aoistage.Stage1.IsExist && info1.WidthMeasurement_Ack == false)
                        {
                            Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0886_MEASUREMENT_LEFT_ERROR);
                            Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0888_MEASUREMENT_WIDTH_ERROR);
                        }
                        if (aoistage.Stage2.IsExist && info2.WidthMeasurement_Ack == false)
                        {
                            Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0887_MEASUREMENT_RIGHT_ERROR);
                            Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0888_MEASUREMENT_WIDTH_ERROR);
                        }
                        measurement_user_command = new Form_User_Command_Set("Width Measurement");
@@ -2926,25 +2940,28 @@
                        {
                            if (aoistage.Stage1.IsExist && info1.WidthMeasurement_Ack == false)
                            {
                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Left_Result))
                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Left_Ack))
                                {
                                    info1.WidthMeasurement_Ack = true;
                                    info1.WidthMeasurement_Result = true;
                                    if (equipment.sm.Get_Bit(Vision_Address.Measurement_Left_Result))
                                    {
                                        info1.WidthMeasurement_Ack = true;
                                        info1.WidthMeasurement_Result = true;
                                    info1.End_Time = DateTime.Now;
                                        info1.End_Time = DateTime.Now;
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_1_Point_1, out value);
                                    info1.Mark5Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_2_Point_1, out value);
                                    info1.Mark6Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_3_Point_1, out value);
                                    info1.Mark7Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_4_Point_1, out value);
                                    info1.Mark8Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_1_Point_1, out value);
                                        info1.Mark5Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_2_Point_1, out value);
                                        info1.Mark6Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_3_Point_1, out value);
                                        info1.Mark7Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Left_Mark_4_Point_1, out value);
                                        info1.Mark8Width = double.Parse(value.ToString());
                                    aoistage.Panel1 = info1;
                                        aoistage.Panel1 = info1;
                                    isAoiPanel1WidthMeasurementAck = aoiStage.Stage1.IsExist == false || aoiStage.Panel1.WidthMeasurement_Result;
                                        isAoiPanel1WidthMeasurementAck = aoiStage.Stage1.IsExist == false || aoiStage.Panel1.WidthMeasurement_Result;
                                    }
                                }
                                else
                                {
@@ -2954,25 +2971,28 @@
                            if (aoistage.Stage2.IsExist && info2.WidthMeasurement_Ack == false)
                            {
                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Result))
                                if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Ack))
                                {
                                    info2.WidthMeasurement_Ack = true;
                                    info2.WidthMeasurement_Result = true;
                                    if (equipment.sm.Get_Bit(Vision_Address.Measurement_Right_Result))
                                    {
                                        info2.WidthMeasurement_Ack = true;
                                        info2.WidthMeasurement_Result = true;
                                    info2.End_Time = DateTime.Now;
                                        info2.End_Time = DateTime.Now;
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_1_Point_1, out value);
                                    info2.Mark5Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_2_Point_1, out value);
                                    info2.Mark6Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_3_Point_1, out value);
                                    info2.Mark7Width = double.Parse(value.ToString());
                                    equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_4_Point_1, out value);
                                    info2.Mark8Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_1_Point_1, out value);
                                        info2.Mark5Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_2_Point_1, out value);
                                        info2.Mark6Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_3_Point_1, out value);
                                        info2.Mark7Width = double.Parse(value.ToString());
                                        equipment.sm.Get_Value(Vision_Address.Measurement_Right_Mark_4_Point_1, out value);
                                        info2.Mark8Width = double.Parse(value.ToString());
                                    aoistage.Panel2 = info2;
                                        aoistage.Panel2 = info2;
                                    isAoiPanel2WidthMeasurementAck = aoiStage.Stage2.IsExist == false || aoiStage.Panel2.WidthMeasurement_Result;
                                        isAoiPanel2WidthMeasurementAck = aoiStage.Stage2.IsExist == false || aoiStage.Panel2.WidthMeasurement_Result;
                                    }
                                }
                                else
                                {
@@ -3045,12 +3065,12 @@
                        if (aoistage.Stage1.IsExist && info1.WidthMeasurement_Ack == false)
                        {
                            Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0886_MEASUREMENT_LEFT_ERROR);
                            Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0888_MEASUREMENT_WIDTH_ERROR);
                        }
                        if (aoistage.Stage2.IsExist && info2.WidthMeasurement_Ack == false)
                        {
                            Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0887_MEASUREMENT_RIGHT_ERROR);
                            Alarm_Manager.Instance.Occurred(En_Alarm_List.AL_0888_MEASUREMENT_WIDTH_ERROR);
                        }
                        measurement_user_command = new Form_User_Command_Set("Width Measurement");