// Метод заполнения диаграмм точками. private void CreateDateChart(string directionFile) { try { // Запрос в файл с данными для получения точек, по каторым строится диаграмма InteractionWithBase oCon = new InteractionWithBase(directionFile); oCon.SettingConnectToBD(); List <SensitiveElement> PointsOfChart = QueriesToBD.SelectFromBD(oCon, "Паспорт СИОМ", new SensitiveElement()); // Настройка диаграмм Series SChartSPI_SPI1 = new Series("СПИ 1"); SChartSPI_SPI1.ChartType = SeriesChartType.Line; Series SChartSPI_SPI2 = new Series("СПИ 2"); SChartSPI_SPI2.ChartType = SeriesChartType.Line; Series SChartTemperature = new Series("Температура"); SChartTemperature.ChartType = SeriesChartType.Line; Series SChartLoss = new Series("Потери"); SChartLoss.ChartType = SeriesChartType.Line; Series SChartKD = new Series("Коофицент деления"); SChartKD.ChartType = SeriesChartType.Line; Series SChartPower1 = new Series("Мощьность 1"); SChartPower1.ChartType = SeriesChartType.Line; Series SChartPower2 = new Series("Мощьность 2"); SChartPower2.ChartType = SeriesChartType.Line; foreach (SensitiveElement s in PointsOfChart) { // Составление точек диаграммы СПИ // Основные параметры для составления точек double time = (double)s.Filds["Time (s)"]; double spi1 = (double)s.Filds["ER1(dB)"]; double spi2 = (double)s.Filds["ER2(dB)"]; double power1 = (double)s.Filds["POW1(mW)"]; double power2 = (double)s.Filds["POW2(mW)"]; double temperature = (double)s.Filds["Темп#, °С"]; double kd = (double)s.Filds["КД по лев# кан#, %"]; double loss = (double)s.Filds["Потери, дБ"]; // Поиск минималных и максимальных точкд для отображения диаграмм if (dMaxSPI < spi1) { dMaxSPI = spi1; } if (dMaxSPI < spi2) { dMaxSPI = spi1; } if (dMinSPI > spi1) { dMinSPI = spi1; } if (dMinSPI > spi2) { dMinSPI = spi2; } if (dMaxPower < power1) { dMaxPower = power1; } if (dMaxPower < power2) { dMaxPower = power2; } if (dMinPower > power1) { dMinPower = power1; } if (dMinPower > power2) { dMinPower = power2; } if (dMaxKD < kd) { dMaxKD = kd; } if (dMinKD > kd) { dMinKD = kd; } if (dMaxLoss < loss) { dMaxLoss = loss; } if (dMinLoss > loss) { dMinLoss = loss; } // Диаграмма СПИ DataPoint DPspi1 = new DataPoint(time, spi1); DataPoint DPspi2 = new DataPoint(time, spi2); DataPoint DPtemperature = new DataPoint(time, temperature); // Диаграмма Потери\КД DataPoint DPloss = new DataPoint(time, loss); DataPoint DPkd = new DataPoint(time, kd); // Диаграмма Мощности DataPoint DPpower1 = new DataPoint(time, power1); DataPoint DPpower2 = new DataPoint(time, power2); // Добавление точек к шкале диаграммы SChartSPI_SPI1.Points.Add(DPspi1); SChartSPI_SPI2.Points.Add(DPspi2); SChartTemperature.Points.Add(DPtemperature); SChartPower1.Points.Add(DPpower1); SChartPower2.Points.Add(DPpower2); SChartKD.Points.Add(DPkd); SChartLoss.Points.Add(DPloss); } // Добавление графиков к диаграммам ChartSPI.Series.Add(SChartSPI_SPI1); ChartSPI.Series.Add(SChartSPI_SPI2); ChartSPI.Series.Add(SChartTemperature); ChartLoss.Series.Add(SChartLoss); ChartLoss.Series.Add(SChartKD); ChartPower.Series.Add(SChartPower1); ChartPower.Series.Add(SChartPower2); } catch { MessageBox.Show("Возникла ошибка на операции составления графиков СИОМ. Обратитесь к рукожопу, который делал эту программу", "Рукожёп детектед", MessageBoxButtons.OK); throw; } }
// Метод нахождения данных диаграммы private void CreateDateChart(string directionFile) { try { // Запрос в файл с данными для получения точек, по каторым строится диаграмма InteractionWithBase oCon = new InteractionWithBase(directionFile); oCon.SettingConnectToBD(); string spiVK = String.Format("ER{0}(dB)", NumberVKinChart); string powerVK = String.Format("POW{0}(mW)", NumberVKinChart); Dictionary <string, object> fildsOfVK = new Dictionary <string, object>(); fildsOfVK.Add("Time (s)", null); fildsOfVK.Add(spiVK, null); fildsOfVK.Add(powerVK, null); List <SensitiveElement> PointsOfChart = QueriesToBD.SelectFromBD(oCon, "Лист1", new SensitiveElement()); // Настройка диаграмм Series SChartSPI_SPI = new Series("СПИ"); SChartSPI_SPI.ChartType = SeriesChartType.Line; Series SChartPower = new Series("Мощьность"); SChartPower.ChartType = SeriesChartType.Line; foreach (SensitiveElement s in PointsOfChart) { // Составление точек диаграммы СПИ // Основные параметры для составления точек double time = (double)s.Filds["Time (s)"]; double spi = (double)s.Filds[spiVK]; double power = (double)s.Filds[powerVK]; // Поиск минималных и максимальных точкд для отображения диаграмм if (dMaxSPI < spi) { dMaxSPI = spi; } if (dMinSPI > spi) { dMinSPI = spi; } if (dMaxPower < power) { dMaxPower = power; } if (dMinPower > power) { dMinPower = power; } // Диаграмма СПИ DataPoint DPspi = new DataPoint(time, spi); // Диаграмма Мощности DataPoint DPpower = new DataPoint(time, power); // Добавление точек к шкале диаграммы SChartSPI_SPI.Points.Add(DPspi); SChartPower.Points.Add(DPpower); } // Добавление графиков к диаграммам ChartVK.Series.Add(SChartSPI_SPI); ChartVK.Series.Add(SChartPower); } catch { MessageBox.Show("Возникла ошибка на операции составления графиков ВК. Обратитесь к рукожопу, который делал эту программу", "Рукожёп детектед", MessageBoxButtons.OK); throw; } }