private void Param_Update_From_Textbox() { //Target Target.double_X = Convert.ToDouble(textBox_target_X.Text); Target.double_Y = Convert.ToDouble(textBox_target_Y.Text); Target.double_Lv = Convert.ToDouble(textBox_target_Lv.Text); Target.String_Update_From_Double(); //Measure Measure.double_X = Convert.ToDouble(textBox_Measured_X.Text); Measure.double_Y = Convert.ToDouble(textBox_Measured_Y.Text); Measure.double_Lv = Convert.ToDouble(textBox_Measured_Lv.Text); Measure.String_Update_From_Double(); //Difference(Diff = Measure(F) - Target(T)) Diff = Measure - Target; //Limit Limit.double_X = Convert.ToDouble(this.textBox_Limit_X.Text); Limit.double_Y = Convert.ToDouble(this.textBox_Limit_Y.Text); Limit.double_Lv = Convert.ToDouble(this.textBox_Limit_Lv.Text); Limit.String_Update_From_Double(); //Gamma (Int Value) Gamma.int_R = Convert.ToInt16(textBox_Gamma_R.Text); Gamma.int_G = Convert.ToInt16(textBox_Gamma_G.Text); Gamma.int_B = Convert.ToInt16(textBox_Gamma_B.Text); Prev_Gamma.int_R = Gamma.int_R; Prev_Gamma.int_G = Gamma.int_G; Prev_Gamma.int_B = Gamma.int_B; }
public bool Is_Mode2_OC_Skip_Within_UVL() { XYLv Mode1_Measured = dp150_dual_mornitoring().Get_OCMode1_Measure(gray); XYLv Mode2_Measured = dp150_dual_mornitoring().Get_OCMode2_Measure(gray); f1().GB_Status_AppendText_Nextline("OC_Mode1_Measured B" + band.ToString() + "/" + gray.ToString() + " X/Y/LV : " + Mode1_Measured.double_X + "/" + Mode1_Measured.double_Y + "/" + Mode1_Measured.double_Lv, Color.Blue); f1().GB_Status_AppendText_Nextline("OC_Mode2_Measured B" + band.ToString() + "/" + gray.ToString() + " X/Y/LV : " + Mode2_Measured.double_X + "/" + Mode2_Measured.double_Y + "/" + Mode2_Measured.double_Lv, Color.Blue); return(Is_Two_Measured_Are_Within_UVL_Spec(Mode1_Measured, Mode2_Measured)); }
public XYLv Equal_Value(XYLv A) { //This = A this.double_X = A.double_X; this.double_Y = A.double_Y; this.double_Lv = A.double_Lv; //Update String this.String_Update_From_Double(); return(this); }
//Diff_Gamma = Next_Gamma - Prev_Gamma private void Test_Gamma_RGB_Measurement_Changed(RGB Diff_Gamma, ref XYLv Measure) { // R 처리 if (Diff_Gamma.int_R >= 1) { Measure.double_X = Measure.double_X + 0.002 * Diff_Gamma.int_R; Measure.double_Y = Measure.double_Y + 0.001 * Diff_Gamma.int_R; Measure.double_Lv = Measure.double_Lv + 1 * Diff_Gamma.int_R; } else if (Diff_Gamma.int_R <= -1) { Measure.double_X = Measure.double_X - 0.002 * Math.Abs(Diff_Gamma.int_R); Measure.double_Y = Measure.double_Y - 0.001 * Math.Abs(Diff_Gamma.int_R); Measure.double_Lv = Measure.double_Lv - 1 * Math.Abs(Diff_Gamma.int_R); } // G 처리 if (Diff_Gamma.int_G >= 1) { Measure.double_X = Measure.double_X + 0.001 * Diff_Gamma.int_G; Measure.double_Y = Measure.double_Y + 0.002 * Diff_Gamma.int_G; Measure.double_Lv = Measure.double_Lv + 1.5 * Diff_Gamma.int_G; } else if (Diff_Gamma.int_G <= -1) { Measure.double_X = Measure.double_X - 0.001 * Math.Abs(Diff_Gamma.int_G); Measure.double_Y = Measure.double_Y - 0.002 * Math.Abs(Diff_Gamma.int_G); Measure.double_Lv = Measure.double_Lv - 1.5 * Math.Abs(Diff_Gamma.int_G); } // B 처리 if (Diff_Gamma.int_B >= 1) { Measure.double_X = Measure.double_X - 0.001 * Diff_Gamma.int_B; Measure.double_Y = Measure.double_Y - 0.001 * Diff_Gamma.int_B; Measure.double_Lv = Measure.double_Lv + 0.5 * Diff_Gamma.int_B; } else if (Diff_Gamma.int_B <= -1) { Measure.double_X = Measure.double_X + 0.001 * Math.Abs(Diff_Gamma.int_B); Measure.double_Y = Measure.double_Y + 0.001 * Math.Abs(Diff_Gamma.int_B); Measure.double_Lv = Measure.double_Lv - 0.5 * Math.Abs(Diff_Gamma.int_B); } Measure_Textbox_update(); //Diff Value/Textbox Update Diff = Measure - Target; DIff_Textbox_update(); }
public static XYLv operator *(XYLv A, double ratio) { XYLv C = new XYLv(); // C = A - B C.double_X = A.double_X * ratio; C.double_Y = A.double_Y * ratio; C.double_Lv = A.double_Lv * ratio; //Update String C.String_Update_From_Double(); return(C); }
public static XYLv operator -(XYLv A, XYLv B) { XYLv C = new XYLv(); // C = A - B C.double_X = A.double_X - B.double_X; C.double_Y = A.double_Y - B.double_Y; C.double_Lv = A.double_Lv - B.double_Lv; //Update String C.String_Update_From_Double(); return(C); }
private bool Is_Two_Measured_Are_Within_UVL_Spec(XYLv Mode1_Measured, XYLv Mode2_or_Mode3_Measured) { double Diff_Delta_L_Spec = dp150_form().OC_Mode2_Diff_Delta_L_Spec[band, gray]; double UV_Distance_Limit = dp150_form().OC_Mode2_Diff_Delta_UV_Spec[band, gray]; bool Delta_L_Spec_In = Compare_Delta_L(Mode1_Measured, Mode2_or_Mode3_Measured, Diff_Delta_L_Spec); bool Delta_UV_Spec_In = Compare_Delta_UV(Mode1_Measured, Mode2_or_Mode3_Measured, UV_Distance_Limit); if (Delta_L_Spec_In && Delta_UV_Spec_In) { return(true); } else { return(false); } }
private bool Compare_Delta_UV(XYLv Mode1_Measured, XYLv Mode2_or_Mode3_Measured, double UV_Distance_Limit) { double UV_Distance = Color_Coordinate.Get_UV_Distance_From_XY(Mode1_Measured.double_X, Mode1_Measured.double_Y, Mode2_or_Mode3_Measured.double_X, Mode2_or_Mode3_Measured.double_Y); bool UV_Spec_In; if (UV_Distance < UV_Distance_Limit) { UV_Spec_In = true; f1().GB_Status_AppendText_Nextline("UV_Distance(" + UV_Distance.ToString() + ") < UV_Distance_Limit(" + UV_Distance_Limit.ToString() + "), UV_Spec_In = true)", Color.Green); } else { UV_Spec_In = false; f1().GB_Status_AppendText_Nextline("UV_Distance(" + UV_Distance.ToString() + ") >= UV_Distance_Limit(" + UV_Distance_Limit.ToString() + "), UV_Spec_In = false)", Color.Red); } return(UV_Spec_In); }
private bool Compare_Delta_L(XYLv Mode1_Measured, XYLv Mode2_or_Mode3_Measured, double Diff_Delta_L_Spec) { Form1 f1 = (Form1)Application.OpenForms["Form1"]; double Diff_Measured_Lv = Mode1_Measured.double_Lv - Mode2_or_Mode3_Measured.double_Lv; double Delta_L = Math.Abs(Diff_Measured_Lv / (Mode1_Measured.double_Lv)); bool Delta_L_Spec_In; if (Delta_L < Diff_Delta_L_Spec) { Delta_L_Spec_In = true; f1.GB_Status_AppendText_Nextline("Delta_L(" + Delta_L.ToString() + ") < Diff_Delta_L_Spec(" + Diff_Delta_L_Spec.ToString() + "), Delta_L_Spec_In = true)", Color.Green); } else { Delta_L_Spec_In = false; f1.GB_Status_AppendText_Nextline("Delta_L(" + Delta_L.ToString() + ") >= Diff_Delta_L_Spec(" + Diff_Delta_L_Spec.ToString() + "), Delta_L_Spec_In = false)", Color.Red); } return(Delta_L_Spec_In); }
public EA9155(OC_Mode mode) { DP213_Model_Option_Form model_option_form = (DP213_Model_Option_Form)Application.OpenForms["DP213_Model_Option_Form"]; All_band_gray_Gamma = new RGB[14, 8]; //14ea Bands , 8ea Gray-points band = 0; gray = 0; loop_count = 0; Vreg1_loop_count = 0; this.loop_count_max = model_option_form.Get_Max_Loop_Count(); total_average_loop_count = 0; Initial_Vreg1 = 0; this.Skip_Lv = model_option_form.Get_Skip_Lv(); Prev_Band_Gray255_Gamma = new RGB(); Update_SET1_HBM_AM0_Hex(); Update_SET1_HBM_AM1_Hex(); //Onlt For Single Mode Gamma_Init = new RGB(); Cal_Gamma_Init = new RGB(); //----they were global variables before--- //Compensation related(RGB) Gamma = new RGB(); Measure = new XYLv(); Target = new XYLv(); Limit = new XYLv(); Extension = new XYLv(); Prev_Gamma = new RGB(); //Vreg1 related Vreg1_Need_To_Be_Updated = false; Vreg1 = 0; Diff_Vreg1 = 0; Prev_Vreg1 = 0; Vreg1_First_Gamma_Red = 0; Vreg1_First_Gamma_Blue = 0; G255_First_Gamma_Red = 0; G255_First_Gamma_Green = 0; G255_First_Gamma_Blue = 0; //RGB Infinite_Loop_Detect Infinite = false; Infinite_Count = 0; Temp_Gamma = new RGB[6]; //A0,A1,A2,A3,A4,A5 Diif_Gamma = new RGB[5]; //(A1-A0),(A2-A1),(A3-A2),(A4-A3),(A5-A4) Temp = new RGB(); //RB Vreg1_Infinite_Loop_Detect Vreg1_Infinite = false; Vreg1_Infinite_Count = 0; Vreg1_Value = new int[3]; Vreg1_Value_Temp = 0; Vreg1_Temp_Gamma = new RGB[4]; //A0,A1,A2,A3 Vreg1_Diif_Gamma = new RGB[3]; //(A1-A0),(A2-A1),(A3-A2) Vreg1_Temp = new RGB(); //dll-related variables Gamma_Out_Of_Register_Limit = false; Within_Spec_Limit = false; Gamma_Register_Limit = 511; Vreg1_Register_Limit = 2047; oc_mode = mode; }