Example #1
0
        protected void MeasureAndUpdate(OC_Mode mode, int band, int gray)
        {
            double[] MeasuredXYLv = api.measure_XYL(channel_num);
            ocparam.Set_OC_Mode_Measure(new XYLv(MeasuredXYLv[0], MeasuredXYLv[1], MeasuredXYLv[2]), mode, band, gray);

            XYLv TargetXYLv = ocparam.Get_OC_Mode_Target(mode, band, gray);

            api.WriteLine($"Measured X / Y / Lv : {MeasuredXYLv[0]} / {MeasuredXYLv[1]} / {MeasuredXYLv[2]}");
            api.WriteLine($"Target X / Y / Lv : {TargetXYLv.double_X} / {TargetXYLv.double_Y} / {TargetXYLv.double_Lv}");
        }
Example #2
0
        private bool REF4095_Compensation()
        {
            if (vars.Optic_Compensation_Stop == false)
            {
                const double REF4095_Resolution = 0.04;
                double       REF4095_Margin     = DP213OCSet.Get_REF4095_Margin();
                double       Black_Limit_Lv     = DP213OCSet.Get_Black_Limit_Lv();
                byte         REF4095            = (byte)DP213_Static.REF4095_REF0_Max;

                Set_and_Send_VREF0_VREF4095(REF4095);

                while (REF4095 > 0)
                {
                    if (REF4095 == 0)
                    {
                        REF4095 += Convert.ToByte(REF4095_Margin / REF4095_Resolution);
                        Set_and_Send_VREF0_VREF4095(REF4095);
                        api.WriteLine("Black(REF4095) Compensation OK (Case 1)");
                        return(true);
                    }
                    else
                    {
                        double[] measured = api.measure_XYL(channel_num);
                        api.WriteLine("REF4095 / Lv : " + REF4095 + "/" + measured[2]);

                        if (measured[2] < Black_Limit_Lv)
                        {
                            REF4095--;
                            Set_and_Send_VREF0_VREF4095(REF4095);
                            continue;
                        }
                        else
                        {
                            REF4095 += Convert.ToByte(REF4095_Margin / REF4095_Resolution);
                            if (REF4095 > DP213_Static.REF4095_REF0_Max)
                            {
                                api.WriteLine("Black(REF4095) Compensation Fail (Black Margin Is Not Enough)");
                                return(false);
                            }
                            else
                            {
                                Set_and_Send_VREF0_VREF4095(REF4095);
                                api.WriteLine("Black(REF4095) Compensation OK (Case 2)");
                                return(true);
                            }
                        }
                    }
                }
                return(true);
            }
            return(false);
        }
Example #3
0
        private XYLv[] Get_Multitimes_Measured_Values(int how_many_times)
        {
            XYLv[] Temp_Measures = new XYLv[how_many_times];

            for (int i = 0; i < Temp_Measures.Length; i++)
            {
                double[] measured = api.measure_XYL(channel_num);

                Temp_Measures[i].double_X  = measured[0];
                Temp_Measures[i].double_Y  = measured[1];
                Temp_Measures[i].double_Lv = measured[2];
            }
            return(Temp_Measures);
        }
Example #4
0
 public void Measure(IOCparamters ocparam, OC_Mode mode, int band, int gray)
 {
     double[] XYLv = api.measure_XYL(channel_num);
     api.WriteLine($"X / Y / Lv : {XYLv[0]} / {XYLv[1]} / {XYLv[2]}");
     ocparam.Set_OC_Mode_Measure(new XYLv(XYLv[0], XYLv[1], XYLv[2]), mode, band, gray);
 }