예제 #1
0
 private void sidebarExportButton_Click(object sender, EventArgs e)
 {
     DbCommunication db = new DbCommunication();
     ExportWindow exp = new ExportWindow(1);
     //exp.grid= meranie aktualne
 }
예제 #2
0
        public void init()
        {
            db = new DbCommunication();

            try
            {
                dataRoky.DataSource = db.roky().Tables[0];
            }
            catch (MySqlException)
            {
                MessageBox.Show("AN error noccured during connection to database. validate parameters of connection", "Error with  connection to Daatabase", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error);
            }
        }
예제 #3
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;
        }
        /// <summary>
        /// Metoda nastartuje meranie s prednastavenymi parametrami.
        /// </summary>
        public void start()
        {
            //voltmeter.open();
            //voltmeter.read();
            //Thread.Sleep(1000);
            //MessageBox.Show(voltmeter.LastValue.ToString());
            //voltmeter.close();
            //return;
            abortStatus = false;
            if (!Parameters.TestRun)
            {
                db = new DbCommunication();
                db.open();
                db.vytvoritNoveMeranie(Parameters);
                db.close();
                db.Cycle = 1;
            }
            if (Parameters.Typ.Equals("Mass Scan")) { Graf.setParameters(Parameters.MassScan.StartPoint, Parameters.MassScan.EndPoint, Parameters.NumberOfSteps + 1, Parameters.NumberOfCycles); }
            else if (Parameters.Typ.Equals("Energy Scan")) { Graf.setParameters(Parameters.EnergyScan.StartPoint, Parameters.EnergyScan.EndPoint, Parameters.NumberOfSteps + 1, Parameters.NumberOfCycles); }
            else if (Parameters.Typ.Equals("2D Scan")) { }

            measuringThread = new Thread(this.startThread);
            measuringThread.Name = "Measuring thread";
            measuringThread.Start();   //vykonavame meranie v samostatnom threade
        }
예제 #5
0
        private void avgModeCheckboxChanged(object sender, EventArgs e)
        {
            if(AvgRadioButton.Checked)
            {
                AvgRadioButton.BackColor = Color.FromArgb(144, 195, 212);
                //avg urobit, ak neexistuje DataTable, vytvorit, inak iba prepnut.
                if (avgDataTable == null)
                {
                    DbCommunication db = new DbCommunication();
                    avgDataTable = db.meranieAvg(header_id).Tables[0];
                    avgItems = new CheckedListBox.ObjectCollection(checkedListBoxInclude);
                    foreach(DataColumn columnHeader in avgDataTable.Columns)
                    {
                        avgItems.Add(columnHeader.ToString());
                    }
                }
                dataMeranie.DataSource = avgDataTable;
                refreshIncludeColumns(avgItems);
                checkedListBoxCyklyInclude.Enabled = false;
                checkBoxCyklyAllInclude.Enabled = false;

            }
            else
            {
                AvgRadioButton.BackColor = default(Color);
            }
        }
예제 #6
0
        private string vygenerujNazov(int h_id)
        {
            DbCommunication db = new DbCommunication();
            DataSet hset = db.header(h_id);

            string date = hset.Tables[0].Rows[0]["datetime"].ToString();
            DateTime datum = Convert.ToDateTime(date);
            date = datum.ToString("dd.MM");

            string type = hset.Tables[0].Rows[0]["type_name"].ToString();
            string typeShort="2D-Scan";
            string ionType = (hset.Tables[0].Rows[0]["ion_type"].ToString().Equals("True")) ? "P" : "N";
            string constant = "";
            if (type.Equals("Energy Scan"))
            {
                constant = hset.Tables[0].Rows[0]["constant"].ToString() + " amu";
                typeShort = "E-Scan";
            }
            if (type.Equals("Mass Scan"))
            {
                constant = hset.Tables[0].Rows[0]["constant"].ToString() + " eV";
                typeShort = "M-Scan";
            }
            return date + "-" + typeShort + "-" + (constant.Equals("") ? "" : constant + "-") + ionType + "("+h_id.ToString()+")";
        }
예제 #7
0
        /// <summary>  
        /// metoda na export dat zobrazenych v datagride do formatu .dat
        /// format dat:
        /// -prvy riadok: nazov 
        /// -druhy riadok: jednotka
        /// -treti riadok: koment
        /// -ostatne riadky: data
        /// Oddelovac je taublator,ciarka,bodkociarka,space. Pouzivaju sa desatinne bodky
        /// </summary>
        /// <param name="filename"></param>
        private void save(string filename)
        {
            StreamWriter file = new StreamWriter(filename, false);
            bool firstColumn = true;
            DbCommunication db = new DbCommunication();
            header = db.header(header_id);
            dataMeranie.DataSource= db.meranie(header_id).Tables[0];
            if (SumRadioButton.Checked)
            {
                sumDataTable = null;
                sumModeCheckboxChanged(this,new EventArgs());
            }
            if (AvgRadioButton.Checked)
            {
                avgDataTable = null;
                avgModeCheckboxChanged(this, new EventArgs());
            }
            pocetCyklov = (int)header.Tables[0].Rows[0]["cycles"];
            if (includeHeader.Checked)
            {
                if (AvgRadioButton.Checked || SumRadioButton.Checked)
                {
                    pocetCyklov = 1;
                }
                //prvy riadok - nazvy stlpcov - beru sa priamo z nazvov v datagride
                for (int cyklus = 0; cyklus < pocetCyklov; cyklus++)
                {
                    for (int j = 0; j < dataMeranie.Columns.Count; j++)
                    {
                        if (dataMeranie.Columns[j].Visible && dataMeranie.Columns[j].HeaderText != "cycle_num")
                        {
                            if (!firstColumn) file.Write("\t");

                            file.Write(dataMeranie.Columns[j].HeaderText);
                            firstColumn = false;
                        }

                    }
                }
                file.WriteLine();

                //druhy riadok - jednotky stlpcov - zatial nic... TODO. vyriesit cez slovnik... current -> A, temperature -> °C
                firstColumn = true;
                for (int cyklus = 0; cyklus < pocetCyklov; cyklus++)
                {
                    for (int j = 0; j < dataMeranie.Columns.Count; j++)
                    {
                        if (dataMeranie.Columns[j].Visible && !dataMeranie.Columns[j].HeaderText.Equals("cycle_num"))
                        {
                            if (!firstColumn) file.Write("\t");
                            file.Write(jednotky[dataMeranie.Columns[j].HeaderText.ToString()]);
                            firstColumn = false;
                        }
                    }
                }

                file.WriteLine();

                //treti riadok - commenty - pod stlpcom intensity, constant, , resolution,datum
                string comment = "";
                string type = header.Tables[0].Rows[0]["type_name"].ToString();
                if (type.Equals("Energy Scan"))
                {
                    comment = header.Tables[0].Rows[0]["constant"] + " amu, ress " +
                                    header.Tables[0].Rows[0]["resolution"] + ", " +
                                    header.Tables[0].Rows[0]["datetime"];
                }
                if (type.Equals("Mass Scan"))
                {
                    comment = header.Tables[0].Rows[0]["constant"] + " eV, ress " +
                                    header.Tables[0].Rows[0]["resolution"] + ", " +
                                    header.Tables[0].Rows[0]["datetime"];
                }
                if (type.Equals("2D Scan"))
                {
                    comment = "ress " +
                                    header.Tables[0].Rows[0]["resolution"] + ", " +
                                    header.Tables[0].Rows[0]["datetime"];
                }

                firstColumn = true;

                for (int cyklus = 0; cyklus < pocetCyklov; cyklus++)
                {
                    for (int j = 0; j < dataMeranie.Columns.Count; j++)
                    {

                        if (dataMeranie.Columns[j].Visible)
                        {
                            if (!firstColumn) file.Write("\t");
                            if ((type.Equals("Energy Scan") || type.Equals("Mass Scan")) && j > 0)
                            {
                                file.Write(comment);
                            }
                            if (type.Equals("2D Scan") && j > 1)
                            {
                                file.Write(comment);
                            }
                            firstColumn = false;
                        }

                    }
                }
                file.Write("\t");
                file.WriteLine();

                string y = (type.Equals("Mass Scan") || type.Equals("2D Scan")) ? "m/z" : "Electron_energy";
                string x = (type.Equals("Mass Scan") || type.Equals("2D Scan")) ? "Electron_energy" : "m/z";
            }
            //data
            firstColumn = true;
            for (int i = 0; i < dataMeranie.Rows.Count; i++)
            {
                if (dataMeranie.Rows[i].Visible)
                {
                    for (int j = 0; j < dataMeranie.Columns.Count; j++)
                    {
                        if (dataMeranie.Columns[j].Visible && !dataMeranie.Columns[j].HeaderText.Equals("cycle_num"))
                        {
                            if (!firstColumn) file.Write("\t");
                            file.Write(dataMeranie[j,i].Value);
                            firstColumn = false;
                        }
                    }
                }
                if (eachCycleRadioButton.Checked)
                {
                    if ((i + 1) % pocetCyklov == 0)
                    {
                        file.WriteLine();
                        firstColumn = true;
                    }
                }
                else
                {
                    file.WriteLine();
                    firstColumn = true;
                }

            }

            file.Close();
            if (multi)
            {
                dataMeranie.DataSource = null;
            }
        }
예제 #8
0
        private void init()
        {
            DbCommunication db = new DbCommunication();

            normalDataTable = db.meranie(header_id).Tables[0];
            dataMeranie.DataSource = normalDataTable;
            header = db.header(header_id);

            normalItems = new CheckedListBox.ObjectCollection(checkedListBoxInclude);

            for (int c = 0; c < dataMeranie.Columns.Count; c++)
            {
                dataMeranie.Columns[c].SortMode = DataGridViewColumnSortMode.NotSortable;
                dataMeranie.Columns[c].Visible = false;
                normalItems.Add(dataMeranie.Columns[c].HeaderText);
            }

            refreshIncludeColumns(normalItems);

            checkedListBoxInclude.SetItemChecked(0, true);
            checkedListBoxInclude.SetItemChecked(2, true);
        }