public MeasurementControl(MeasurementParameters mp,Main mainForm)
 {
     showCurrent = true;
     Parameters = mp;
     ADPrevodnik = new NIDriver(Parameters.NumberOfSteps);
     this.mainForm = mainForm;
     showCurrent = true;
 }
Exemple #2
0
        public static Meranie loadMeranie(int headerId)
        {
            DbCommunication d=new DbCommunication();
            DataRow header=d.header(headerId).Tables[0].Rows[0];

            MeasurementParameters parametre =
                new MeasurementParameters(
                    header["name"].ToString(),
                    header["ion_type"].ToString().Equals("true"),
                    header["note"].ToString(),
                    (int)header["cycles"]);

            string x = "";
            string y = "";
            if (header["type_name"].Equals("Energy Scan"))
            {
                EnergyScanParameters pp=new EnergyScanParameters();

                pp.StartPoint= (double)header["start_point"];
                pp.EndPoint= (double)header["end_point"];
                pp.Constant= Convert.ToInt32(header["constant"]);

                pp.StepTime= (double)header["steptime"];
                pp.NumberOfSteps=(int)header["pocet_krokov"];

                parametre.EnergyScan=pp;
                parametre.Typ = "Energy Scan";
                x = "Electron energy";
                y = "m/z";
            }
            else if (header["type_name"].Equals("Mass Scan"))
            {
                MassScanParameters mp = new MassScanParameters();

                mp.StartPoint = (int)header["start_point"];
                mp.EndPoint = (int)header["end_point"];
                mp.Constant = (double)header["constant"];

                mp.TimePerAmu = (double)header["time_for_amu"];
                mp.Density = (double)header["density"];
                parametre.MassScan = mp;
                parametre.Typ = "Mass Scan";
                x = "m/z";
                y = "Electron energy";

            }
            else if (header["type_name"].Equals("2D Scan")){
                EnergyScanParameters ep = new EnergyScanParameters();

                ep.StartPoint = (double)header["e_start_point"];
                ep.EndPoint = (double)header["e_end_point"];
                ep.StepTime = (double)header["e_steptime"];
                ep.NumberOfSteps = (int)header["pocet_krokov"];
                parametre.EnergyScan = ep;

                MassScanParameters mp = new MassScanParameters();

                mp.StartPoint = (int)header["m_start_point"];
                mp.EndPoint = (int)header["m_end_point"];
                mp.TimePerAmu = (double)header["time_for_amu"];
                mp.Density = (double)header["density"];
                parametre.Typ = "2D Scan";
                parametre.MassScan = mp;
                x = "m/z";
                y = "Electron energy";
            }

            Meranie m=new Meranie(parametre);
            m.cykly = new List<CyklusMerania>();
            for (int c = 0; c < (int)header["cycles"]; c++)
            {
                CyklusMerania cyklus = new CyklusMerania(c);
                cyklus.KrokyMerania = new List<KrokMerania>();
                DataTable data=d.meranie(headerId,c).Tables[0];
                for (int i=0;i<data.Rows.Count ;i++ )
                {

                    KrokMerania krok = new KrokMerania();
                    krok.Intensity= (ulong)data.Rows[i]["Intensity"];
                    krok.Temperature = (double)data.Rows[i]["Temperature"];
                    krok.Chamber = (double)data.Rows[i]["Chamber pressure"];
                    krok.Capillar = (double)data.Rows[i]["Capillar pressure"];
                    krok.X = (double)data.Rows[i][x];
                    krok.Y = (double)data.Rows[i][y];

                    cyklus.KrokyMerania.Add(krok);
                }

                m.cykly.Add(cyklus);
            }

            return m;
        }
Exemple #3
0
 public Meranie(MeasurementParameters parameters)
 {
     this.Parameters = parameters;
     cykly = new List<CyklusMerania>(parameters.NumberOfCycles);
 }
        public void vytvoritNoveMeranie(MeasurementParameters mp)
        {
            MySqlCommand c = new MySqlCommand("insert into headers (name,type_name,resolution,cycles,note,ion_type) values(@name,@type_name,@resolution,@cycles,@note,@ion_type)", conn);

            c.Parameters.AddWithValue("@name", mp.Name);
            c.Parameters.AddWithValue("@type_name", mp.Typ);
            c.Parameters.AddWithValue("@resolution", mp.Resolution);
            c.Parameters.AddWithValue("@cycles", mp.NumberOfCycles);
            c.Parameters.AddWithValue("@note", mp.Note);
            c.Parameters.AddWithValue("@ion_type", mp.IonType);
            c.ExecuteNonQuery();
            aktualneMeranie = c.LastInsertedId;

            if (mp.Typ.Equals("Energy Scan"))
            {
                c = new MySqlCommand("insert into energy_scan_header (header_id,start_point,end_point,constant,steptime,pocet_krokov) values(@header_id,@start_point,@end_point,@constant,@steptime,@pocet_krokov)", conn);
                c.Parameters.AddWithValue("@header_id",aktualneMeranie);
                c.Parameters.AddWithValue("@steptime", (mp.StepTime));
                c.Parameters.AddWithValue("@start_point", (mp.EnergyScan.StartPoint));
                c.Parameters.AddWithValue("@end_point", (mp.EnergyScan.EndPoint));
                c.Parameters.AddWithValue("@constant", (mp.EnergyScan.Constant));
                c.Parameters.AddWithValue("@pocet_krokov", (mp.NumberOfSteps));
            }
            else if (mp.Typ.Equals("Mass Scan"))
            {
                c = new MySqlCommand("insert into mass_scan_header (header_id,start_point,end_point,constant,time_for_amu,density) values(@header_id,@start_point,@end_point,@constant,@time_for_amu,@density)", conn);
                c.Parameters.AddWithValue("@header_id", aktualneMeranie);
                c.Parameters.AddWithValue("@time_for_amu", (mp.MassScan.TimePerAmu));
                c.Parameters.AddWithValue("@density", (mp.MassScan.Density));
                c.Parameters.AddWithValue("@start_point", (mp.MassScan.StartPoint));
                c.Parameters.AddWithValue("@end_point", (mp.MassScan.EndPoint));
                c.Parameters.AddWithValue("@constant", (mp.MassScan.Constant));

            }
            else if (mp.Typ.Equals("2D Scan"))
            {
                c = new MySqlCommand("insert into scan2d_header(header_id,e_start_point,e_end_point,e_steptime,pocet_krokov,m_start_point,m_end_point,time_for_amu,density) values (@header_id,@e_start_point,@e_end_point,@e_steptime,@pocet_krokov,@m_start_point,@m_end_point,@time_for_amu,@density)", conn);
                c.Parameters.AddWithValue("@header_id", aktualneMeranie);
                c.Parameters.AddWithValue("@e_steptime", (mp.EnergyScan.StepTime));
                c.Parameters.AddWithValue("@e_start_point", (mp.EnergyScan.StartPoint));
                c.Parameters.AddWithValue("@e_end_point", (mp.EnergyScan.EndPoint));
                c.Parameters.AddWithValue("@pocet_krokov", (mp.EnergyScan.NumberOfSteps));
                c.Parameters.AddWithValue("@time_for_amu", (mp.MassScan.TimePerAmu));
                c.Parameters.AddWithValue("@density", (mp.MassScan.Density));
                c.Parameters.AddWithValue("@m_start_point", (mp.MassScan.StartPoint));
                c.Parameters.AddWithValue("@m_end_point", (mp.MassScan.EndPoint));

            }
            c.ExecuteNonQuery();
        }
        /// <summary>
        /// tato metoda da do fieldu parametreMerania parametre merania konkretneho typu
        /// </summary>
        private void nastavParametre()
        {
            try
            {
                validateName();
                parametreMerania=new MeasurementParameters(
                    nameField.Text,
                    positiveIon.Checked,
                    noteField.Text,
                    Convert.ToInt32(pocetCyklovField.Value),
                    testRun
                    );
                if (typyMeraniaTaby.SelectedTab.Text.Equals("Energy scan"))
                {
                    validateEnergyScanTab();
                    EnergyScanParameters energyscan = new EnergyScanParameters(
                        Convert.ToDouble(startPointFieldEs.Text),
                        Convert.ToDouble(endPointFieldEs.Text),
                        Convert.ToInt32(constantFieldEs.Text),
                        Convert.ToDouble(stepTimeFieldEs.Text),
                        Convert.ToInt32(pocetKrokovFieldEs.Text)
                    );

                    parametreMerania.Resolution = Convert.ToDouble(resolutionFieldEs.Text);
                    parametreMerania.EnergyScan = energyscan;
                    parametreMerania.Typ = "Energy Scan";
                    ulozParametreEnergyScan();
                }
                else if (typyMeraniaTaby.SelectedTab.Text.Equals("Mass scan"))
                {
                    validateMassScanTab();
                    MassScanParameters massScan=new MassScanParameters(
                        Convert.ToInt32(startPointFieldMs.Text),
                        Convert.ToInt32(endPointFieldMs.Text),
                        Convert.ToDouble(constantFieldMs.Text),
                        (int)DensOfMeasFieldMs.SelectedValue,
                        (double) timePerAmuFieldMs.SelectedValue
                    );
                    parametreMerania.Typ = "Mass Scan";
                    parametreMerania.Resolution= Convert.ToDouble(resolutionFieldMs.Text);
                    parametreMerania.MassScan = massScan;
                    ulozParametreMassScan();

                }
                else if (typyMeraniaTaby.SelectedTab.Text.Equals("2D scan"))
                {
                    validateMass2DScanTab();
                    EnergyScanParameters energyScan = new EnergyScanParameters(
                        Convert.ToDouble(startPointField2DEs.Text),
                        Convert.ToDouble(endPointField2DEs.Text),
                        0,
                        Convert.ToDouble(steptimeField2DEs.Text),
                        Convert.ToInt32(pocetKrokovField2DEs.Text)
                    );

                    MassScanParameters massScan = new MassScanParameters(
                        Convert.ToInt32(startPointField2DMs.Text),
                        Convert.ToInt32(endPointField2DMs.Text),
                        0,
                        (int)DensOfMeasField2DMS.SelectedValue,
                        (double)timePerAmuField2DMs.SelectedValue
                    );
                    parametreMerania.Typ = "2D Scan";
                    parametreMerania.Resolution= Convert.ToDouble(resolutionField2D.Text);
                    parametreMerania.EnergyScan = energyScan;
                    parametreMerania.MassScan = massScan;
                    ulozParametre2DScan();
                }
            }
            catch (ValidateParametersException e)
            {
                throw e;
            }
        }