private void tmsiFreq_Click(object sender, EventArgs e) { PointsEdit frmPointsEdit = new PointsEdit(); frmPointsEdit.Set("Частота", "МГц"); float freq = 0; if (frmPointsEdit.ShowDialog() == DialogResult.OK) { float.TryParse(frmPointsEdit.Value, out freq); MeasConfigurator.EditPoint(DGV.SelectedRows[0].Index, (long)Converter.Transform(freq, UnitsFrequency.MHz, UnitsFrequency.Hz), int.MaxValue, int.MaxValue, InstrBands.Null); } SetDGV(MeasConfigurator.GetTable()); }
private void ToolStripMenuItem_SetNewAmpl_Click(object sender, EventArgs e) { PointsEdit frmPointEdit = new PointsEdit(); frmPointEdit.Set("Амплитуда", "dBm"); int ampl = 0; if (frmPointEdit.ShowDialog() == DialogResult.OK) { int.TryParse(frmPointEdit.Value, out ampl); foreach (DataGridViewRow row in DGV.SelectedRows) { MeasConfigurator.EditPoint(row.Index, long.MaxValue, ampl, int.MaxValue, InstrBands.Null); } } SetDGV(MeasConfigurator.GetTable()); }
private void ToolStripMenuItem_SetNewTime_Click(object sender, EventArgs e) { PointsEdit frmPointEdit = new PointsEdit(); frmPointEdit.Set("Время измерения", "с"); int val = 1; float fval = 1; if (frmPointEdit.ShowDialog() == DialogResult.OK) { float.TryParse(frmPointEdit.Value, out fval); val = (int)(fval * 1000); foreach (var index in GetSelectedRows()) { MeasConfigurator.EditPoint(index, long.MaxValue, int.MaxValue, val, InstrBands.Null); } } SetDGV(MeasConfigurator.GetTable()); }
private void SetBands() { AmplBand[] abBandList; if (GetAmplBands(out abBandList)) { DGV.DataSource = null; long f; for (int i = 0; i < MeasConfigurator.PointsCount; i++) { f = MeasConfigurator.Points[i].Frequency; foreach (var band in abBandList) { if ((f >= band.MinFreq) && (f <= band.MaxFreq)) { MeasConfigurator.EditPoint(i, long.MaxValue, int.MaxValue, int.MaxValue, band.Band); break; } } } SetDGV(MeasConfigurator.GetTable()); } }
/// <summary> /// Генерация таблицы /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnGenerateMeasure_Click(object sender, EventArgs e) { Int64 iStartFreq = 0; Int64 iStopFreq = 0; float fAmpl = 0; float fTime = 0; int iSteps = 0; //количество проходов на точку int iPointsCount = (int)nudPointsCount.Value; float fDecCount; //количество декад double tmpDouble; Int64 iTempFreq; try { iStartFreq = Int64.Parse(txtStartFreq.Text) * (Int64)Math.Pow(1000, cmbxStartFreqUnits.SelectedIndex); // / 1000000; iStopFreq = Int64.Parse(txtStopFreq.Text) * (Int64)Math.Pow(1000, cmbxStopFreqUnits.SelectedIndex); // / 1000000; fAmpl = float.Parse(txtAmplitude.Text); fTime = float.Parse(txtTime.Text) * (float)Math.Pow(1000, cmbxTimeUnits.SelectedIndex); iSteps = (int)nudPointsCount.Value; } catch { MessageBox.Show(this, "Ошибка при вводе параметров.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } if (fAmpl > 0) { MessageBox.Show(this, "Заданная мощность сигнала превышает 0dBm!\nПри использовании усилителя превышение излучаемой\nмощности 0dBm запрещено!"); } SetMinMaxFreq(); if (iStartFreq > m_MaxFreq - 1) { MessageBox.Show(this, "Введено слишком большое значение начальной частоты"); return; } if (iStartFreq < m_MinFreq) { MessageBox.Show(this, "Введено слишком маленькое значение начальной частоты"); return; } if (iStopFreq > m_MaxFreq) { MessageBox.Show(this, "Введено слишком большое значение конечной частоты"); return; } if (iStopFreq < m_MinFreq + 1) { MessageBox.Show(this, "Введено слишком маленькое значение конечной частоты"); return; } if (iStartFreq >= iStopFreq) { MessageBox.Show(this, "Конечное значение частоты должно быть больше начального"); return; } if (fTime < 0.001) { MessageBox.Show(this, "Введено слишком маленькое значение времени"); return; } if (fTime > 4000000) { MessageBox.Show(this, "Введено слишком большое значение времени"); return; } if (fAmpl > 20) { MessageBox.Show(this, "Введено слишком большое значение амплитуды сигнала"); return; } if (fAmpl < -40) { MessageBox.Show(this, "Введено слишком маленькое значение амплитуды сигнала"); return; } fDecCount = (float)Math.Ceiling(Math.Log10(iStopFreq / iStartFreq)); MeasConfigurator.ClearPoints(); int time_ms = 0; if (cmbxTimeUnits.SelectedIndex > 0) { time_ms = int.Parse(txtTime.Text) * 1000; } else { time_ms = int.Parse(txtTime.Text); } int amplitude = 0; int.TryParse(txtAmplitude.Text, out amplitude); ApplyMeasConfig(); if (rbFixedPoints.Checked) //Фиксированное количество точек на декаду { MeasConfigurator.AddPoint(iStartFreq, amplitude, time_ms, InstrBands.NAN); for (int i = 0; i < fDecCount; i++) { iTempFreq = iStartFreq * (Int64)Math.Pow(10, i); for (int j = 1; j < iPointsCount; j++) { if (rbStepLog.Checked) { tmpDouble = (Math.Ceiling(iTempFreq * Math.Pow(10, ((double)j / (iPointsCount - 1))))); } else { tmpDouble = iTempFreq + iTempFreq * 9 * j / (iPointsCount - 1); } MeasConfigurator.AddPoint((long)tmpDouble, amplitude, time_ms, InstrBands.NAN); } } } else if (rbMoreThenPoints.Checked)//Количество точек не меньше заданного { int i = 0; double step = (double)(10 * iStartFreq - iStartFreq) / (iPointsCount - 1); tmpDouble = iStartFreq; while (tmpDouble < iStopFreq) { tmpDouble = iStartFreq + step * i; MeasConfigurator.AddPoint((long)tmpDouble, amplitude, time_ms, InstrBands.NAN); i++; } MeasConfigurator.EditPoint(MeasConfigurator.PointsCount - 1, iStopFreq, amplitude, time_ms, InstrBands.NAN); } else//Количество точек на диапазон { for (int i = 0; i < iPointsCount; i++) { if (rbStepLog.Checked) { tmpDouble = (iStartFreq * Math.Pow(10, i * Math.Log10(iStopFreq / iStartFreq) / (iPointsCount - 1))); } else { tmpDouble = (iStartFreq + (iStopFreq - iStartFreq) * i / (iPointsCount - 1)); } MeasConfigurator.AddPoint((long)tmpDouble, amplitude, time_ms, InstrBands.NAN); } } UpdatePointsCountLbl(); this.Update(); SetDGV(MeasConfigurator.GetTable()); SetMeasRange(); UpdatePointsCountLbl(); }