Exemple #1
0
        public RGB AM1_Convert_Voltgae_to_Dec(Gamma_Set Set, int band, RGB_Double AM1_Voltage)
        {
            RGB AM1_Dec = new RGB();

            AM1_Dec.int_R = Imported_my_cpp_dll.DP213_Get_AM1_RGB_Dec(Get_Voltage_VREF4095(), Get_Normal_Voltage_Vreg1(Set, band), AM1_Voltage.double_R);
            AM1_Dec.int_G = Imported_my_cpp_dll.DP213_Get_AM1_RGB_Dec(Get_Voltage_VREF4095(), Get_Normal_Voltage_Vreg1(Set, band), AM1_Voltage.double_G);
            AM1_Dec.int_B = Imported_my_cpp_dll.DP213_Get_AM1_RGB_Dec(Get_Voltage_VREF4095(), Get_Normal_Voltage_Vreg1(Set, band), AM1_Voltage.double_B);

            if (AM1_Dec.int_R > DP213_Static.AM1_AM0_Max)
            {
                AM1_Dec.int_R = DP213_Static.AM1_AM0_Max;
            }
            if (AM1_Dec.int_G > DP213_Static.AM1_AM0_Max)
            {
                AM1_Dec.int_G = DP213_Static.AM1_AM0_Max;
            }
            if (AM1_Dec.int_B > DP213_Static.AM1_AM0_Max)
            {
                AM1_Dec.int_B = DP213_Static.AM1_AM0_Max;
            }
            if (AM1_Dec.int_R < 0)
            {
                AM1_Dec.int_R = 0;
            }
            if (AM1_Dec.int_G < 0)
            {
                AM1_Dec.int_G = 0;
            }
            if (AM1_Dec.int_B < 0)
            {
                AM1_Dec.int_B = 0;
            }

            return(AM1_Dec);
        }
Exemple #2
0
        protected bool Get_Initial_RVreg1B_Using_LUT_MCI(Gamma_Set Set, int band, OC_Mode Mode)
        {
            if ((band >= 1) && (band <= DP213_Static.Max_HBM_and_Normal_Band_Amount) && (vars.Target.double_Lv > Algorism_Lower_Skip_LV) && (vars.Target.double_Lv < Algorism_Upper_Skip_LV))
            {
                f1().GB_Status_AppendText_Nextline("Before) R/G/B/Vreg1 = " + vars.Gamma.int_R.ToString() + "/" + vars.Gamma.int_G.ToString().ToString() + "/" + vars.Gamma.int_B.ToString() + "/" + vars.Vreg1, Color.Blue);

                int        gray = 0;
                RGB_Double Gray = DP213_Main_OC_Flow.init_gray_lut.Get_LUT_RGB(band, gray, Mode);

                RGB_Double Gamma_Voltage = new RGB_Double();
                Gamma_Voltage.double_R = InterpolationFomulaFactory.GetPrevBand_Red_Volatge(Gray.double_R);
                Gamma_Voltage.double_G = InterpolationFomulaFactory.GetPrevBand_Green_Volatge(Gray.double_G);
                Gamma_Voltage.double_B = InterpolationFomulaFactory.GetPrevBand_Blue_Volatge(Gray.double_B);

                double Voltage_VREF0    = storage.Get_Voltage_VREF0();
                double Voltage_VREF4095 = storage.Get_Voltage_VREF4095();
                double Vreg1_voltage    = Voltage_VREF4095 + ((Gamma_Voltage.double_G - Voltage_VREF4095) * (900.0 / (storage.Get_All_band_gray_Gamma(Set, (band - 1), gray).int_G + 389.0))); //just use HBM_Gamma[0], because other normal band copy G255 R/G/B From HBM

                vars.Vreg1       = Imported_my_cpp_dll.DP213_Get_Vreg1_Dec(Voltage_VREF4095, Voltage_VREF0, Vreg1_voltage);
                vars.Gamma.int_R = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Dec(Voltage_VREF4095, Vreg1_voltage, Gamma_Voltage.double_R);
                vars.Gamma.int_B = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Dec(Voltage_VREF4095, Vreg1_voltage, Gamma_Voltage.double_B);

                f1().GB_Status_AppendText_Nextline("After C++) R/G/B/Vreg1 = " + vars.Gamma.int_R.ToString() + "/" + vars.Gamma.int_G.ToString().ToString() + "/" + vars.Gamma.int_B.ToString() + "/" + vars.Vreg1, Color.Red);
                init_algorithm_storage_cpp.Set_All_band_gray_Gamma(Set, band, gray, vars.Gamma);

                return(true);
            }
            else
            {
                f1().GB_Status_AppendText_Nextline("Skip)Get_Initial_RVreg1B_Using_LUT_MCI()", Color.DarkRed);
                return(false);
            }
        }
Exemple #3
0
        private void Update_HBM_Normal_Gamma_Voltage(Gamma_Set Set, int band, int gray, RGB New_Gamma)
        {
            if (gray == 0)
            {
                Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, gray].double_R = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(Get_Voltage_VREF4095(), Get_Normal_Voltage_Vreg1(Set, band), New_Gamma.int_R);
                Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, gray].double_G = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(Get_Voltage_VREF4095(), Get_Normal_Voltage_Vreg1(Set, band), New_Gamma.int_G);
                Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, gray].double_B = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(Get_Voltage_VREF4095(), Get_Normal_Voltage_Vreg1(Set, band), New_Gamma.int_B);
            }
            else
            {
                RGB_Double Prev_GR_Gamma_Voltage = new RGB_Double();
                if (gray == 1 || gray == 2 || gray == 3 || gray == 5 || gray == 7 || gray == 9 || gray == 10)
                {
                    Prev_GR_Gamma_Voltage.double_R = Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, (gray - 1)].double_R;
                    Prev_GR_Gamma_Voltage.double_G = Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, (gray - 1)].double_G;
                    Prev_GR_Gamma_Voltage.double_B = Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, (gray - 1)].double_B;
                }

                else if (gray == 4 || gray == 6 || gray == 8)
                {
                    Prev_GR_Gamma_Voltage.double_R = Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, (gray - 2)].double_R;
                    Prev_GR_Gamma_Voltage.double_G = Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, (gray - 2)].double_G;
                    Prev_GR_Gamma_Voltage.double_B = Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, (gray - 2)].double_B;
                }
                Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, gray].double_R = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Voltage(Get_Band_Set_Voltage_AM1(Set, band).double_R, Prev_GR_Gamma_Voltage.double_R, New_Gamma.int_R, gray);
                Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, gray].double_G = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Voltage(Get_Band_Set_Voltage_AM1(Set, band).double_G, Prev_GR_Gamma_Voltage.double_G, New_Gamma.int_G, gray);
                Voltage_All_band_gray_Gamma[Convert.ToInt16(Set), band, gray].double_B = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Voltage(Get_Band_Set_Voltage_AM1(Set, band).double_B, Prev_GR_Gamma_Voltage.double_B, New_Gamma.int_B, gray);
            }
        }
Exemple #4
0
 public RGB_Double[] Get_Band_Set_Gamma_Voltages(Gamma_Set Set, int band)
 {
     RGB_Double[] Band_Set_Gamma_Voltage = new RGB_Double[DP213_Static.Max_Gray_Amount];
     for (int gray = 0; gray < DP213_Static.Max_Gray_Amount; gray++)
     {
         Band_Set_Gamma_Voltage[gray] = Get_Voltage_All_band_gray_Gamma(Set, band, gray);
     }
     return(Band_Set_Gamma_Voltage);
 }
Exemple #5
0
        private RGB_Double Get_New_AM1_Voltage(RGB_Double HBM_GR1_Voltage, RGB_Double AM1_Margin)
        {
            RGB_Double New_AM1_Voltage = new RGB_Double();

            New_AM1_Voltage.double_R = (HBM_GR1_Voltage.double_R + AM1_Margin.double_R);
            New_AM1_Voltage.double_G = (HBM_GR1_Voltage.double_G + AM1_Margin.double_G);
            New_AM1_Voltage.double_B = (HBM_GR1_Voltage.double_B + AM1_Margin.double_B);

            return(New_AM1_Voltage);
        }
Exemple #6
0
        //Set_Read_RGB_Voltage
        void Set_Read_RGB_Voltage(OC_Mode Mode, int band, int gray, RGB_Double Vdata)
        {
            Vdata.Update_String_From_Double();

            int rows_index = (band * DP213_Static.Max_Gray_Amount) + (gray + 2);

            Set_OC_Params_For_Selected_OCMode(Mode, rows_index, 7, Vdata.R);
            Set_OC_Params_For_Selected_OCMode(Mode, rows_index, 8, Vdata.G);
            Set_OC_Params_For_Selected_OCMode(Mode, rows_index, 9, Vdata.B);
        }
Exemple #7
0
        protected bool Get_Initial_RGB_Using_LUT_MCI(Gamma_Set Set, int band, int gray, OC_Mode Mode)
        {
            if ((band >= 1) && (band <= DP213_Static.Max_HBM_and_Normal_Band_Amount) && (vars.Target.double_Lv > Algorism_Lower_Skip_LV) && (vars.Target.double_Lv < Algorism_Upper_Skip_LV))
            {
                RGB_Double Gray = DP213_Main_OC_Flow.init_gray_lut.Get_LUT_RGB(band, gray, Mode);

                RGB_Double Gamma_Voltage = new RGB_Double();
                Gamma_Voltage.double_R = InterpolationFomulaFactory.GetPrevBand_Red_Volatge(Gray.double_R);
                Gamma_Voltage.double_G = InterpolationFomulaFactory.GetPrevBand_Green_Volatge(Gray.double_G);
                Gamma_Voltage.double_B = InterpolationFomulaFactory.GetPrevBand_Blue_Volatge(Gray.double_B);


                f1().GB_Status_AppendText_Nextline("Before) R/G/B/Vreg1 = " + vars.Gamma.int_R.ToString() + "/" + vars.Gamma.int_G.ToString().ToString() + "/" + vars.Gamma.int_B.ToString() + "/" + vars.Vreg1, Color.Blue);

                if (gray == 0)
                {
                    double Voltage_VREF4095 = storage.Get_Voltage_VREF4095();
                    double Vreg1_Voltage    = storage.Get_Normal_Voltage_Vreg1(Set, band);

                    vars.Gamma.int_R = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Dec(Voltage_VREF4095, Vreg1_Voltage, Gamma_Voltage.double_R);
                    vars.Gamma.int_G = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Dec(Voltage_VREF4095, Vreg1_Voltage, Gamma_Voltage.double_G);
                    vars.Gamma.int_B = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Dec(Voltage_VREF4095, Vreg1_Voltage, Gamma_Voltage.double_B);
                }
                else
                {
                    RGB_Double AM1_Voltage = storage.Get_Band_Set_Voltage_AM1(Set, band);

                    RGB_Double Prvious_Gray_Gamma_Voltage;
                    if (gray == 4 || gray == 6 || gray == 8)
                    {
                        Prvious_Gray_Gamma_Voltage = storage.Get_Voltage_All_band_gray_Gamma(Set, band, (gray - 2));
                    }
                    else
                    {
                        Prvious_Gray_Gamma_Voltage = storage.Get_Voltage_All_band_gray_Gamma(Set, band, (gray - 1));
                    }

                    vars.Gamma.int_R = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Dec(AM1_Voltage.double_R, Prvious_Gray_Gamma_Voltage.double_R, Gamma_Voltage.double_R, gray);
                    vars.Gamma.int_G = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Dec(AM1_Voltage.double_G, Prvious_Gray_Gamma_Voltage.double_G, Gamma_Voltage.double_G, gray);
                    vars.Gamma.int_B = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Dec(AM1_Voltage.double_B, Prvious_Gray_Gamma_Voltage.double_B, Gamma_Voltage.double_B, gray);
                }

                f1().GB_Status_AppendText_Nextline("After C++) R/G/B/Vreg1 = " + vars.Gamma.int_R.ToString() + "/" + vars.Gamma.int_G.ToString().ToString() + "/" + vars.Gamma.int_B.ToString() + "/" + vars.Vreg1, Color.Red);
                init_algorithm_storage_cpp.Set_All_band_gray_Gamma(Set, band, gray, vars.Gamma);
                return(true);
            }
            else
            {
                f1().GB_Status_AppendText_Nextline("Skip)Get_Initial_RGB_Using_LUT_MCI()", Color.DarkRed);
                return(false);
            }
        }
Exemple #8
0
        public void Set_OC_Mode_AM0(RGB_Double AM0_Voltage, OC_Mode mode, int band)
        {
            if (band > DP213_Static.Max_HBM_and_Normal_Band_Amount)
            {
                throw new Exception("band should be less than " + DP213_Static.Max_HBM_and_Normal_Band_Amount);
            }

            RGB AM0 = new RGB();

            AM0.int_R = Imported_my_cpp_dll.DP213_Get_AM0_RGB_Dec(ref0ref4095.Get_Normal_REF4095_Voltage(), vreg1.Get_OC_Mode_Vreg1_Voltage(mode, band), AM0_Voltage.double_R);
            AM0.int_G = Imported_my_cpp_dll.DP213_Get_AM0_RGB_Dec(ref0ref4095.Get_Normal_REF4095_Voltage(), vreg1.Get_OC_Mode_Vreg1_Voltage(mode, band), AM0_Voltage.double_G);
            AM0.int_B = Imported_my_cpp_dll.DP213_Get_AM0_RGB_Dec(ref0ref4095.Get_Normal_REF4095_Voltage(), vreg1.Get_OC_Mode_Vreg1_Voltage(mode, band), AM0_Voltage.double_B);
            Set_OC_Mode_AM0(AM0, mode, band);
        }
Exemple #9
0
        private void Sub_DP213_Gray255_Get_Intial_R_Vreg1_B_Using_Previous_Band_Method(Gamma_Set Set, int band, OC_Mode Mode)
        {
            int    Previous_Band_Vreg1_Dec = storage.Get_Normal_Dec_Vreg1(Set, (band - 1));
            double Voltage_VREF4095        = storage.Get_Voltage_VREF4095();
            double Voltage_VREF0           = storage.Get_Voltage_VREF0();

            RGB Prev_Band_AM1 = storage.Get_Band_Set_AM1(Set, (band - 1));

            storage.Set_Band_Set_AM1(Set, band, Prev_Band_AM1);//update AM1 voltage
            RGB_Double Prev_Band_Voltage_AM1 = storage.Get_Band_Set_Voltage_AM1(Set, (band - 1));

            int[]    Previous_Band_Gamma_Red           = new int[DP213_Static.Max_Gray_Amount];
            int[]    Previous_Band_Gamma_Green         = new int[DP213_Static.Max_Gray_Amount];
            int[]    Previous_Band_Gamma_Blue          = new int[DP213_Static.Max_Gray_Amount];
            double[] Previous_Band_Finally_Measured_Lv = new double[DP213_Static.Max_Gray_Amount];


            for (int gray = 0; gray < DP213_Static.Max_Gray_Amount; gray++)
            {
                Previous_Band_Gamma_Red[gray]           = storage.Get_All_band_gray_Gamma(Set, (band - 1), gray).int_R;
                Previous_Band_Gamma_Green[gray]         = storage.Get_All_band_gray_Gamma(Set, (band - 1), gray).int_G;
                Previous_Band_Gamma_Blue[gray]          = storage.Get_All_band_gray_Gamma(Set, (band - 1), gray).int_B;
                Previous_Band_Finally_Measured_Lv[gray] = dp213_mornitoring().Get_Mode_Measured_Values((band - 1), gray, Mode).double_Lv;
            }

            f1().GB_Status_AppendText_Nextline("Before) R/G/B/Vreg1 = " + vars.Gamma.int_R.ToString() + "/" + vars.Gamma.int_G.ToString().ToString() + "/" + vars.Gamma.int_B.ToString() + "/" + vars.Vreg1, Color.Blue);


            Imported_my_cpp_dll.DP213_Gray255_Get_Intial_R_Vreg1_B_Using_Previous_Band_Method_Through_MCI
                (Prev_Band_Voltage_AM1.double_R,
                Prev_Band_Voltage_AM1.double_G,
                Prev_Band_Voltage_AM1.double_B,
                ref vars.Vreg1,
                ref vars.Gamma.int_R,
                ref vars.Gamma.int_B,
                Get_Is_Selected_Bands(Mode),
                Previous_Band_Gamma_Red,
                Previous_Band_Gamma_Green,
                Previous_Band_Gamma_Blue,
                band,
                vars.Target.double_Lv,
                Previous_Band_Vreg1_Dec,
                Previous_Band_Finally_Measured_Lv,
                Voltage_VREF4095,
                Voltage_VREF0);

            f1().GB_Status_AppendText_Nextline("After C++ Dll(MCI)) R/G/B/Vreg1 = " + vars.Gamma.int_R.ToString() + "/" + vars.Gamma.int_G.ToString().ToString() + "/" + vars.Gamma.int_B.ToString() + "/" + vars.Vreg1, Color.Red);
            init_algorithm_storage_cpp.Set_All_band_gray_Gamma(Set, band, 0, vars.Gamma);
        }
Exemple #10
0
        private double Get_Min_RGB_Voltage(RGB_Double HBM_RGB_AM2_Voltage)
        {
            double HBM_RGB_Min_AM2_Voltage = HBM_RGB_AM2_Voltage.double_R;

            if (HBM_RGB_Min_AM2_Voltage > HBM_RGB_AM2_Voltage.double_G)
            {
                HBM_RGB_Min_AM2_Voltage = HBM_RGB_AM2_Voltage.double_G;
            }
            if (HBM_RGB_Min_AM2_Voltage > HBM_RGB_AM2_Voltage.double_B)
            {
                HBM_RGB_Min_AM2_Voltage = HBM_RGB_AM2_Voltage.double_B;
            }

            return(HBM_RGB_Min_AM2_Voltage);
        }
Exemple #11
0
        bool Is_All_AM1_Voltages_Lower_Than_AM0_Voltages(RGB_Double AM1_Voltage, RGB_Double AM0_Voltage)
        {
            Show_AM1_AM0_Voltages(AM1_Voltage, AM0_Voltage);

            if ((AM1_Voltage.double_R < AM0_Voltage.double_R) &&
                (AM1_Voltage.double_G < AM0_Voltage.double_G) &&
                (AM1_Voltage.double_B < AM0_Voltage.double_B))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Exemple #12
0
        private RGB_Double Get_Prev_GR_Gamma_Voltage(RGB_Double[,] OCMode_RGB_Voltage, int band, int gray)
        {
            RGB_Double Prev_GR_Gamma_Voltage = new RGB_Double();

            if (gray == 1 || gray == 2 || gray == 3 || gray == 5 || gray == 7 || gray == 9 || gray == 10)
            {
                Prev_GR_Gamma_Voltage.double_R = OCMode_RGB_Voltage[band, (gray - 1)].double_R;
                Prev_GR_Gamma_Voltage.double_G = OCMode_RGB_Voltage[band, (gray - 1)].double_G;
                Prev_GR_Gamma_Voltage.double_B = OCMode_RGB_Voltage[band, (gray - 1)].double_B;
            }

            else if (gray == 4 || gray == 6 || gray == 8)
            {
                Prev_GR_Gamma_Voltage.double_R = OCMode_RGB_Voltage[band, (gray - 2)].double_R;
                Prev_GR_Gamma_Voltage.double_G = OCMode_RGB_Voltage[band, (gray - 2)].double_G;
                Prev_GR_Gamma_Voltage.double_B = OCMode_RGB_Voltage[band, (gray - 2)].double_B;
            }
            return(Prev_GR_Gamma_Voltage);
        }
Exemple #13
0
        private RGB_Double Update_HBM_Normal_Gamma_Voltage(OC_Mode mode, int band, int gray, RGB New_Gamma)
        {
            RGB_Double[,] OCMode_RGB_Voltage = Get_OC_Mode_RGB_Voltage(mode);

            if (gray == 0)
            {
                OCMode_RGB_Voltage[band, gray].double_R = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(ref0ref4095.Get_Normal_REF4095_Voltage(), vreg1.Get_OC_Mode_Vreg1_Voltage(mode, band), New_Gamma.int_R);
                OCMode_RGB_Voltage[band, gray].double_G = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(ref0ref4095.Get_Normal_REF4095_Voltage(), vreg1.Get_OC_Mode_Vreg1_Voltage(mode, band), New_Gamma.int_G);
                OCMode_RGB_Voltage[band, gray].double_B = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(ref0ref4095.Get_Normal_REF4095_Voltage(), vreg1.Get_OC_Mode_Vreg1_Voltage(mode, band), New_Gamma.int_B);
            }
            else
            {
                RGB_Double Prev_GR_Gamma_Voltage = Get_Prev_GR_Gamma_Voltage(OCMode_RGB_Voltage, band, gray);
                OCMode_RGB_Voltage[band, gray].double_R = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Voltage(am1am0.Get_OC_Mode_AM1_Voltage(mode, band).double_R, Prev_GR_Gamma_Voltage.double_R, New_Gamma.int_R, gray);
                OCMode_RGB_Voltage[band, gray].double_G = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Voltage(am1am0.Get_OC_Mode_AM1_Voltage(mode, band).double_G, Prev_GR_Gamma_Voltage.double_G, New_Gamma.int_G, gray);
                OCMode_RGB_Voltage[band, gray].double_B = Imported_my_cpp_dll.DP213_Get_GR_Gamma_Voltage(am1am0.Get_OC_Mode_AM1_Voltage(mode, band).double_B, Prev_GR_Gamma_Voltage.double_B, New_Gamma.int_B, gray);
            }
            return(OCMode_RGB_Voltage[band, gray]);
        }
Exemple #14
0
        private double Get_HBM_RGB_Min_AM2_Voltage()
        {
            RGB AM2     = ocparam.Get_OC_Mode_RGB(DP213OCSet.Get_WhiteCompensation_OCMode(), band: 0, gray: 0);
            int Vreg1   = ocparam.Get_OC_Mode_Vreg1(DP213OCSet.Get_WhiteCompensation_OCMode(), band: 0);
            int REF0    = ocparam.Get_Normal_REF0();
            int REF4095 = ocparam.Get_Normal_REF4095();

            double REF0_Voltage    = Imported_my_cpp_dll.DP213_VREF0_Dec_to_Voltage(REF0);
            double REF4095_Voltage = Imported_my_cpp_dll.DP213_VREF4095_Dec_to_Voltage(REF4095);
            double Vreg1_Voltage   = Imported_my_cpp_dll.DP213_Get_Vreg1_Voltage(REF4095_Voltage, REF0_Voltage, Vreg1);

            RGB_Double AM2_Voltage = new RGB_Double();

            AM2_Voltage.double_R = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(REF4095_Voltage, Vreg1_Voltage, AM2.int_R);
            AM2_Voltage.double_G = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(REF4095_Voltage, Vreg1_Voltage, AM2.int_G);
            AM2_Voltage.double_B = Imported_my_cpp_dll.DP213_Get_AM2_Gamma_Voltage(REF4095_Voltage, Vreg1_Voltage, AM2.int_B);
            api.WriteLine("AM2_Voltage R/G/B : " + AM2_Voltage.double_R + "/" + AM2_Voltage.double_G + "/" + AM2_Voltage.double_B);
            api.WriteLine("Old VREF0 Voltage : " + REF0_Voltage);

            return(Get_Min_RGB_Voltage(AM2_Voltage));
        }
Exemple #15
0
        private bool AM0_Compensation()
        {
            RGB_Double AM0_Margin     = DP213OCSet.Get_AM0_Margin();
            double     AM0_Resolution = Imported_my_cpp_dll.Get_DP213_EA9155_AM0_Resolution(ocparam.Get_Normal_REF0(), ocparam.Get_Normal_REF4095());

            RGB New_AM0 = new RGB();

            New_AM0.int_R = Convert.ToInt32(AM0_Margin.double_R / AM0_Resolution);
            New_AM0.int_G = Convert.ToInt32(AM0_Margin.double_G / AM0_Resolution);
            New_AM0.int_B = Convert.ToInt32(AM0_Margin.double_B / AM0_Resolution);

            bool AM0_OC_Ok = (New_AM0.int_R <= DP213_Static.AM1_AM0_Max) && (New_AM0.int_G <= DP213_Static.AM1_AM0_Max) && (New_AM0.int_B <= DP213_Static.AM1_AM0_Max);

            api.WriteLine("DP213_Static.AM1_AM0_Max : " + DP213_Static.AM1_AM0_Max);
            api.WriteLine("New_AM0 R/G/B : " + New_AM0.int_R + "/" + New_AM0.int_G + "/" + New_AM0.int_B);

            if (AM0_OC_Ok)
            {
                Set_All_AM0_WithSameValues(New_AM0);
            }

            return(AM0_OC_Ok);
        }
Exemple #16
0
        private void Sub_AM1_Compensation(OC_Mode mode, int band)
        {
            if (vars.Optic_Compensation_Stop == false)
            {
                RGB_Double HBM_GR1_Voltage = ocparam.Get_OC_Mode_RGB_Voltage(mode, band, gray: 10);
                RGB_Double AM1_Margin      = DP213OCSet.Get_AM1_Margin();

                RGB_Double New_AM1_Voltage = Get_New_AM1_Voltage(HBM_GR1_Voltage, AM1_Margin);
                RGB_Double AM0_Voltage     = ocparam.Get_OC_Mode_AM0_Voltage(mode, band);

                if (Is_All_AM1_Voltages_Lower_Than_AM0_Voltages(New_AM1_Voltage, AM0_Voltage))
                {
                    ocparam.Set_OC_Mode_AM1(New_AM1_Voltage, mode, band);
                    Set_All_AM1_WithSameValues(ocparam.Get_OC_Mode_AM1(mode, band));
                }
                else
                {
                    vars.Optic_Compensation_Stop    = true;
                    vars.Optic_Compensation_Succeed = false;
                    api.WriteLine("(Out of Range)At lease One AM1 > AM0, AM1 Compensation NG", Color.Red);
                }
            }
        }
Exemple #17
0
        public static void Initialize()
        {
            OCMode1_GammaSet = Gamma_Set.Set2;
            OCMode2_GammaSet = Gamma_Set.Set1;
            OCMode3_GammaSet = Gamma_Set.Set3;
            OCMode4_GammaSet = Gamma_Set.Set5;
            OCMode5_GammaSet = Gamma_Set.Set4;
            OCMode6_GammaSet = Gamma_Set.Set6;

            MaxLoopCount = 500;
            SkipTargetLv = 0.02;

            //ELVSS
            IsELVSSCompensationApply = true;
            ELVSSCompensation_OCMode = OC_Mode.Mode1;
            ELVSS_Voltage_Max        = -2.0;
            ELVSS_Voltage_Min        = -2.5;

            ELVSS_Offset_OCMode1 = new double[] { -2.0, -1.0, 0.0, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 };
            ELVSS_Offset_OCMode2 = new double[] { -2.0, -1.0, 0.0, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 };
            ELVSS_Offset_OCMode3 = new double[] { -2.0, -1.0, 0.0, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 };
            ELVSS_Offset_OCMode4 = new double[] { -2.0, -1.0, 0.0, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 };
            ELVSS_Offset_OCMode5 = new double[] { -2.0, -1.0, 0.0, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 };
            ELVSS_Offset_OCMode6 = new double[] { -2.0, -1.0, 0.0, 0.3, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 };

            Vinit2_Offset_OCMode1 = new double[] { 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 };
            Vinit2_Offset_OCMode2 = new double[] { 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4 };
            Vinit2_Offset_OCMode3 = new double[] { 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6 };
            Vinit2_Offset_OCMode4 = new double[] { 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 };
            Vinit2_Offset_OCMode5 = new double[] { 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4 };
            Vinit2_Offset_OCMode6 = new double[] { 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6, 0.6 };

            //White
            IsWhiteCompensationApply = true;
            WhiteCompensation_OCMode = OC_Mode.Mode1;
            VREF0_Margin             = 0.2;

            //Black
            IsBlackCompensationApply = true;
            BlackCompensation_OCMode = OC_Mode.Mode1;
            REF4095_Margin           = 0.6;
            Black_Limit_Lv           = 0.005;
            AM0_Margin          = new RGB_Double();
            AM0_Margin.double_R = 0.0;
            AM0_Margin.double_G = 0.1;
            AM0_Margin.double_B = 0.1;

            //AM1
            IsGrayLowRefCompensationApply  = true;
            LowGrayRefCompensastion_OCMode = OC_Mode.Mode1;
            AM1_Margin          = new RGB_Double();
            AM1_Margin.double_R = 0.3;
            AM1_Margin.double_G = 0.2;
            AM1_Margin.double_B = 0.2;


            //AOD
            IsAODCompensationApply = true;
            AOD_LeftTopPos         = new int[2] {
                326, 1062
            };
            AOD_RightBottomPos = new int[2] {
                902, 1638
            };

            //Main123456
            IsMain123CompensationApply = true;
            IsMain456CompensationApply = true;
            mode456_max_skip_band      = 4;

            Initialized = true;
        }
Exemple #18
0
 public void Set_OC_Mode_AM0(RGB_Double AM0_Voltage, OC_Mode mode, int band)
 {
     am0.Set_OC_Mode_AM0(AM0_Voltage, mode, band);
 }
Exemple #19
0
 private void Show_AM1_AM0_Voltages(RGB_Double New_AM1_Voltage, RGB_Double AM0_Voltage)
 {
     api.WriteLine("New_AM1_Voltage_R/G/B : " + New_AM1_Voltage.double_R.ToString() + "/" + New_AM1_Voltage.double_G.ToString() + "/" + New_AM1_Voltage.double_B.ToString(), Color.Blue);
     api.WriteLine("AM0_Voltage/G/B : " + AM0_Voltage.double_R.ToString() + "/" + AM0_Voltage.double_G.ToString() + "/" + AM0_Voltage.double_B.ToString(), Color.Blue);
 }
Exemple #20
0
 public void Set_OC_Mode_AM1(RGB_Double AM1_Voltage, OC_Mode mode, int band)
 {
     am1.Set_OC_Mode_AM1(AM1_Voltage, mode, band);
 }
Exemple #21
0
 public void Set_OC_Mode_AM1(RGB_Double AM1_Voltage, OC_Mode mode, int band)
 {
     throw new NotImplementedException();
 }