Exemplo n.º 1
0
        public Form1()
        {
            InitializeComponent();
            panel1.Controls.Add(DPP1.spmGraph);
            DPP1.numkeV.Enabled = false;

            DPP1.AutoConnect(Text);
            Tube1.AutoConnect(Text);
            FW1.AutoConnect(Text);

            DPP1.LoadSettings(
                $@"{ Tube1.configFolder }PS564 RH3 XPIN_BT\MX-02r00us.dxp",
                $@"{ Tube1.configFolder }start upcalibration\Ringo calibration.txt"
                );
            Text = Tube1.testbox;
            Tube1.numSetkV.ValueChanged += NumSetkV_ValueChanged;
        }
Exemplo n.º 2
0
        private void DoTest(bool justVerify = false)
        {
            int    testID = GenerateTestID(Tube1.tub.serialNum, Tube1.testboxShort);
            double maxkV  = Tube1.tub.maxkV;

            btnStart.Enabled = btnVerify.Enabled = false;
            Tube1.tub.status = Devices.Tube.Status.Testing;
            Tube1.tub.maxkV  = 55;

            int n = 0;

            double[] kV;
            double[] kVSet;
            double[] kVMon;
            double[] kVEdge;
            bool[]   pass;

            List <double> verifyKV = new List <double>();

            if (Tube1.tub.maxkV == 35)
            {
                verifyKV.Add(35);
            }
            else
            {
                verifyKV.Add(8);
                verifyKV.Add(13);
                verifyKV.Add(15);
                verifyKV.Add(25);
                verifyKV.Add(35);
                verifyKV.Add(40);
                if (Tube1.tub.maxkV > 40)
                {
                    verifyKV.Add(50);
                }
            }

            if (justVerify)
            {
                n = 1;
            }

            for (int j = n; j < 2; j++)
            {
                if (n == 0)
                {
                    kV     = new double[48];
                    kVSet  = new double[48];
                    kVMon  = new double[48];
                    kVEdge = new double[48];
                    pass   = new bool[48];
                    dataGridView1.Columns["Pass"].Visible = false;

                    Tube1.tub.DeleteCalibration();
                }
                else
                {
                    kV     = new double[verifyKV.Count];
                    kVSet  = new double[verifyKV.Count];
                    kVMon  = new double[verifyKV.Count];
                    kVEdge = new double[verifyKV.Count];
                    pass   = new bool[verifyKV.Count];
                    dataGridView1.Columns["Pass"].Visible = true;
                }

                Tube1.tub.setuA = Tube1.tub.maxuA;
                Tube1.tub.on    = true;
                dataGridView1.Rows.Clear();

                for (int i = 0; i < kV.Length; i++)
                {
                    if (n == 0)
                    {
                        kV[i] = i + 5;
                    }
                    else
                    {
                        kV[i] = verifyKV[i];
                    }

                    if (kV[i] <= 11)
                    {
                        FW1.ChangeFilter(1);
                    }
                    else if (kV[i] >= 12 && kV[i] <= 16)
                    {
                        FW1.ChangeFilter(2);
                    }
                    else if (kV[i] >= 17 && kV[i] <= 24)
                    {
                        FW1.ChangeFilter(3);
                    }
                    else if (kV[i] >= 25)
                    {
                        FW1.ChangeFilter(3);
                    }

                    Tube1.tub.setkV = kV[i];

                    Tools.WaitSync(1000);

                    DPP1.GetSpectrum();

                    if (DPP1.stopper)
                    {
                        break;
                    }

                    kVSet[i]  = Tube1.tub.setkV;
                    kVMon[i]  = Tube1.tub.monkV;
                    kVEdge[i] = DPP1.keVEdge;

                    if (n == 0)
                    {
                        dataGridView1.Rows.Add(kV[i], kVSet[i], kVMon[i], kVEdge[i]);
                    }
                    else
                    {
                        pass[i] = (kVEdge[i] < kV[i] + 0.2) && (kVEdge[i] > kV[i] - 0.2);
                        dataGridView1.Rows.Add(kV[i], kVSet[i], kVMon[i], kVEdge[i], pass[i]);
                    }
                }

                Tube1.tub.on = false;

                if (DPP1.stopper)
                {
                    break;
                }

                if (n == 0)
                {
                    Tube1.tub.Calibrate(kVEdge);
                    n++;

                    Tools.WaitSync(2000);

                    for (int i = 0; i < kV.Length; i++)
                    {
                        DBHelper.Insert("TSCBPreCalData",
                                        testID,
                                        Tube1.tub.serialNum,
                                        kV[i],
                                        kVSet[i],
                                        kVMon[i],
                                        kVEdge[i]
                                        );
                    }

                    for (int i = 0; i < Tube1.tub.keVFit.Length; i++)
                    {
                        DBHelper.Insert("TSCBSourceCalibration",
                                        testID,
                                        Tube1.tub.serialNum,
                                        Tube1.tub.keVFit[i],
                                        Tube1.tub.keVFitByte[i],
                                        Tube1.tub.page1keVAddresses[i],
                                        Tube1.tub.keVSetFitByte[i],
                                        Tube1.tub.page1SetAddresses[i],
                                        Tube1.tub.keVMonFitByte[i],
                                        Tube1.tub.page1MonAddresses[i]
                                        );
                    }
                }
                else if (n == 1)
                {
                    for (int i = 0; i < kV.Length; i++)
                    {
                        DBHelper.Insert("TSCBSourceCalValidation",
                                        testID,
                                        Tube1.tub.serialNum,
                                        kV[i],
                                        kVSet[i],
                                        kVMon[i],
                                        kVEdge[i],
                                        0,
                                        0,
                                        pass[i]
                                        );
                    }

                    Tube1.tub.status = Devices.Tube.Status.Done;

                    string result = "";
                    for (int i = 0; i < kV.Length; i++)
                    {
                        result += $"{ kV[i] }  { kVEdge[i] }  { pass[i] }\r\n";
                    }
                    result = result.Replace("True", "Yes");
                    result = result.Replace("False", "No");
                    MessageBox.Show(
                        "kV   keVEdge   Pass?\r\n" +
                        result, "Test Results");
                }
            }

            Tube1.tub.maxkV  = maxkV;
            Tube1.tub.status = Devices.Tube.Status.Idle;

            DPP1.stopper       = false;
            btnStart.Enabled   = btnVerify.Enabled = true;
            btnStart.BackColor = btnVerify.BackColor = Color.LightBlue;
        }