Ejemplo n.º 1
0
        private void GenerarGrafica()
        {
            try {
                var Aux = PageView.SelectedPage;

                if (Aux.Enabled)
                {
                    BarSeries barSeria = new BarSeries();
                    barSeria.DataSource     = oList;
                    barSeria.ValueMember    = Aux.Tag.ToString();
                    barSeria.CategoryMember = "Id";

                    ChartPanZoomController panZoomController = new ChartPanZoomController();
                    panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal;
                    chart1.View.Palette           = KnownPalette.Arctic;

                    chart = chart1;
                    chart.Series.Clear();
                    chart.Series.Add(barSeria);
                    chart.Title       = Aux.Text;
                    chart.ShowPanZoom = true;
                    chart.Controllers.Add(panZoomController);

                    chart.Dock = DockStyle.Fill;
                    Aux.Controls.Add(chart);
                }
            } catch (Exception ex) {
                throw ex;
            }
        }
Ejemplo n.º 2
0
        public LiveDataModel(JBC_API_Remote jbcConnect, RadChartView _radChartView, Label labelHotAirTemp, Label labelExtTCTemp, Label labelAirFlow, Label labelStatus, long stationID)
        {
            m_jbcConnect      = jbcConnect;
            m_radChartView    = _radChartView;
            m_labelHotAirTemp = labelHotAirTemp;
            m_labelExtTCTemp  = labelExtTCTemp;
            m_labelAirFlow    = labelAirFlow;
            m_labelStatus     = labelStatus;
            m_stationID       = stationID;

            m_timerPrintSeries.Interval = 100;
            m_timerPrintSeries.Tick    += Tick_PrintSeries;

            //Data collection
            BindingList <DataSerie> collection = new BindingList <DataSerie>();

            DataProfileHotAirTemp = collection;
            collection            = new BindingList <DataSerie>();
            DataProfileExtTCTemp  = collection;
            collection            = new BindingList <DataSerie>();
            DataProfileAirFlow    = collection;
            collection            = new BindingList <DataSerie>();
            DataHotAirTemp        = collection;
            collection            = new BindingList <DataSerie>();
            DataExtTCTemp         = collection;
            collection            = new BindingList <DataSerie>();
            DataAirFlow           = collection;
            collection            = new BindingList <DataSerie>();
            DataVerticalMark      = collection;
        }
Ejemplo n.º 3
0
        private void GenerarGraficas()
        {
            try {
                var Aux = PageView.SelectedPage;

                if (Aux.Enabled)
                {
                    BarSeries barSeria = new BarSeries();
                    barSeria.DataSource     = Historica || Ensamble ? oHistoria : oList[0].Valores;
                    barSeria.ValueMember    = Aux.Tag.ToString();
                    barSeria.CategoryMember = "Limite";

                    ChartPanZoomController panZoomController = new ChartPanZoomController();
                    panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal;
                    chart1.View.Palette           = KnownPalette.Arctic;

                    chart = chart1;
                    chart.Series.Clear();
                    chart.Series.Add(barSeria);
                    chart.Title       = Aux.Text;
                    chart.ShowPanZoom = true;
                    chart.Controllers.Add(panZoomController);

                    chart.Dock = DockStyle.Fill;
                    Aux.Controls.Add(chart);
                }
            } catch (Exception ex) {
                RadMessageBox.Show("Ocurrio un error generar la gráfica\n" + ex.Message, this.Text, MessageBoxButtons.OK, RadMessageIcon.Error);
            }
        }
Ejemplo n.º 4
0
        //Public helper methods

        public void plotChannels(RadChartView chart)
        {
            foreach (sXpChannel channel in this.Channels)
            {
                //Mag
                if (channel.DisplayMag == true && !chart.Series.Contains(channel.MagSeries))
                {
                    chart.Series.Add(channel.MagSeries);
                }
                else if (channel.DisplayMag == false && chart.Series.Contains(channel.MagSeries))
                {
                    chart.Series.Remove(channel.MagSeries);
                }

                //Phase
                if (channel.DisplayPhase == true && !chart.Series.Contains(channel.PhaseSeries))
                {
                    chart.Series.Add(channel.PhaseSeries);
                }
                else if (channel.DisplayPhase == false && chart.Series.Contains(channel.PhaseSeries))
                {
                    chart.Series.Remove(channel.PhaseSeries);
                }
            }
        }
Ejemplo n.º 5
0
        private void SetCartesianGrid(RadChartView chart)
        {
            CartesianArea area = chart.GetArea <CartesianArea>();

            area.ShowGrid = true;

            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.DrawHorizontalFills   = false;
            grid.DrawVerticalFills     = false;
            grid.DrawHorizontalStripes = true;
            grid.DrawVerticalStripes   = true;
            grid.ForeColor             = Color.LightGray;
            grid.BorderDashStyle       = System.Drawing.Drawing2D.DashStyle.Solid;
        }
Ejemplo n.º 6
0
        public MainForm()
        {
            InitializeComponent();

            Random random = new Random();
            // Initial Population
            Population initialPopulation = new Population(random);

            // List to store best of every iteration
            var bestResult = new List<double>();

            // List to store average of every iteration
            var averageResult = new List<double>();
            List<GraphMapper> globalBestOfIteration = new List<GraphMapper>();
            List<GraphMapper> localBestOfIteration = new List<GraphMapper>();
            List<GraphMapper> averageOfIteration = new List<GraphMapper>();

            for (int i = 0; i < 20; i++)
            {
                List<GraphMapper> populationFitnessValue = new List<GraphMapper>();
                List<GraphMapper> populationGFitnessValue = new List<GraphMapper>();

                foreach (Chromosome chromosome in initialPopulation.Chromosomes)
                {
                    if (chromosome.FitnessValue > initialPopulation.LocalBest.FitnessValue)
                    {
                        initialPopulation.LocalBest.ValueX = chromosome.ValueX;
                        initialPopulation.LocalBest.ValueY = chromosome.ValueY;
                    }

                    if (initialPopulation.LocalBest.FitnessValue > initialPopulation.GlobalBest.FitnessValue)
                    {
                        initialPopulation.GlobalBest = initialPopulation.LocalBest;
                    }
                }
                foreach (Chromosome chromosome in initialPopulation.Chromosomes)
                {
                    chromosome.CalculateVelocity();
                    chromosome.UpdatePosition();

                    populationFitnessValue.Add(new GraphMapper
                    {
                        Category = "C " + (initialPopulation.Chromosomes.IndexOf(chromosome) + 1).ToString(),
                        Value = chromosome.FitnessValue,
                    });

                    populationGFitnessValue.Add(new GraphMapper
                    {
                        Category = "C " + (initialPopulation.Chromosomes.IndexOf(chromosome) + 1).ToString(),
                        Value = chromosome.GlobalBest.FitnessValue,
                    });
                }

                List<SeriesMapper> listOfGraphMappers = new List<SeriesMapper>
                {
                    new SeriesMapper
                    {
                        Category = "Position Fitness Value",
                        GraphDataSource = populationFitnessValue,
                    },
                    new SeriesMapper
                    {
                        Category = "Global Best Fitness Value",
                        GraphDataSource = populationGFitnessValue,
                    },
                };

                #region Add Charts dynamically to Form

                CartesianArea cartesianArea = new CartesianArea();
                int heightGraph = 0;
                if (i > 0)
                {
                    heightGraph = this.Controls[i - 1].Height + this.Controls[i - 1].Location.Y;
                }

                RadChartView radChart = new RadChartView
                {
                    AreaDesign = cartesianArea,
                    Location = new Point(0, heightGraph),
                    Name = "radChartView1",
                    ShowGrid = true,
                    Size = new Size(1300, 700),
                    TabIndex = 0,
                    Text = "radChartView1",
                    Title = "Iteration " + (i + 1).ToString(),
                    ShowTitle = true,
                    ShowLegend = true,
                };
                foreach (SeriesMapper graphMappers in listOfGraphMappers)
                {
                    LineSeries series = new LineSeries
                    {
                        LegendTitle = graphMappers.Category,
                        PointSize = new SizeF(10, 10),
                        BorderWidth = 2,
                        CategoryMember = "Category",
                        ValueMember = "Value",
                        DataSource = graphMappers.GraphDataSource,
                        ShowLabels = true,
                        CombineMode = ChartSeriesCombineMode.None
                    };
                    radChart.Series.Add(series);
                    radChart.ShowSmartLabels = true;

                    ((CartesianArea)radChart.View.Area).ShowGrid = true;
                }
                this.Controls.Add(radChart);
                radChart.ExportToImage(@"C:\Users\Farjad\Desktop\TOCI2\" + radChart.Title + ".png", radChart.Size);
                #endregion

                globalBestOfIteration.Add(new GraphMapper
                {
                    Category = "G " + (i + 1).ToString(),
                    Value = initialPopulation.LocalBest.FitnessValue,
                    //Value = initialPopulation.Chromosomes.FirstOrDefault(m => m.FitnessValue == initialPopulation.Chromosomes.Max(w => w.FitnessValue)).FitnessValue,
                });
                localBestOfIteration.Add(new GraphMapper
                {
                    Category = "G " + (i + 1).ToString(),
                    Value = initialPopulation.Chromosomes.Max(m => m.FitnessValue),
                });
                averageOfIteration.Add(new GraphMapper
                {
                    Category = "G " + (i + 1).ToString(),
                    Value = initialPopulation.Chromosomes.Average(m => m.FitnessValue),
                });

            }

            var x = 0;
            List<SeriesMapper> listOfSeries = new List<SeriesMapper>
                {
                    new SeriesMapper
                    {
                        Category = "Global Best of Iteration",
                        GraphDataSource = globalBestOfIteration,
                    },
                    new SeriesMapper
                    {
                        Category = "Local Best of Iteration",
                        GraphDataSource = localBestOfIteration,
                    },
                     new SeriesMapper
                    {
                        Category = "Average Best of Iteration",
                        GraphDataSource = averageOfIteration,
                    },
                };

            #region Add Charts dynamically to Form

            CartesianArea cartesianArea1 = new CartesianArea();
            int height = 0;
            height = this.Controls[Controls.Count - 1].Height + this.Controls[Controls.Count - 1].Location.Y;

            RadChartView chart = new RadChartView
            {
                AreaDesign = cartesianArea1,
                Location = new Point(0, height),
                Name = "radChartView1",
                ShowGrid = true,
                Size = new Size(1300, 700),
                TabIndex = 0,
                Text = "radChartView1",
                Title = "Summary Graph",
                ShowTitle = true,
                ShowLegend = true,
            };
            foreach (SeriesMapper graphMappers in listOfSeries)
            {
                LineSeries series = new LineSeries
                {
                    LegendTitle = graphMappers.Category,
                    PointSize = new SizeF(10, 10),
                    BorderWidth = 2,
                    CategoryMember = "Category",
                    ValueMember = "Value",
                    DataSource = graphMappers.GraphDataSource,
                    ShowLabels = true,
                    CombineMode = ChartSeriesCombineMode.None
                };
                chart.Series.Add(series);
                chart.ShowSmartLabels = true;

                ((CartesianArea)chart.View.Area).ShowGrid = true;
            }
            this.Controls.Add(chart);
            chart.ExportToImage(@"C:\Users\Farjad\Desktop\TOCI2\" + chart.Title + ".png", chart.Size);
            #endregion
        }
Ejemplo n.º 7
0
        void DisplayOppReports()
        {
            try
            {
                DataSet ds = objReports.fnGetReports(Common.iProjectID);

                if (ds.Tables.Count > 0)
                {
                    foreach (DataTable dt in ds.Tables)
                    {
                        if (dt.Rows.Count > 0)
                        {
                            TableLayoutPanel pnlChart = new TableLayoutPanel();

                            pnlChart.AutoSize    = true;
                            pnlChart.ColumnCount = 2;
                            pnlChart.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50));
                            pnlChart.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50));
                            //  pnlChart.ColumnStyles.Clear();
                            pnlChart.RowCount = 4;
                            LinearAxis verticalAxis1 = new LinearAxis();
                            verticalAxis1.AxisType = AxisType.Second;
                            LinearAxis verticalAxis2 = new LinearAxis();
                            verticalAxis2.AxisType           = AxisType.Second;
                            verticalAxis2.HorizontalLocation = AxisHorizontalLocation.Right;
                            BarSeries AccountsBar = new BarSeries();

                            AccountsBar.BackColor    = new Color();
                            AccountsBar.BackColor    = Color.Green;
                            AccountsBar.VerticalAxis = verticalAxis1;
                            AccountsBar.ShowLabels   = true;
                            LineSeries AvgDeltaLine = new LineSeries();
                            AvgDeltaLine.BorderColor  = Color.Red;
                            AvgDeltaLine.ShowLabels   = true;
                            AvgDeltaLine.Spline       = true;
                            AvgDeltaLine.VerticalAxis = verticalAxis2;
                            BarSeries AccountsCountBar = new BarSeries();
                            AccountsCountBar.BackColor = Color.Green;


                            AccountsCountBar.ShowLabels = true;
                            BarSeries AvgPotentialBar = new BarSeries();
                            AvgPotentialBar.BackColor  = Color.Brown;
                            AvgPotentialBar.ShowLabels = true;
                            foreach (DataRow dr in dt.Rows)
                            {
                                AccountsBar.DataPoints.Add(new CategoricalDataPoint(dr["AccountsPercentage"].Equals(DBNull.Value) ? 0 : Convert.ToDouble(dr["AccountsPercentage"]), dr["OppStatus"]));
                                AvgDeltaLine.DataPoints.Add(new CategoricalDataPoint(dr["AverageDelta"].Equals(DBNull.Value) ? 0 : Convert.ToDouble(dr["AverageDelta"]), dr["OppStatus"]));
                                AccountsCountBar.DataPoints.Add(new CategoricalDataPoint(dr["Accounts"].Equals(DBNull.Value) ? 0 : Convert.ToDouble(dr["Accounts"]), dr["OppStatus"]));
                                AvgPotentialBar.DataPoints.Add(new CategoricalDataPoint(dr["AvgAccountPotential"].Equals(DBNull.Value) ? 0 : Convert.ToDouble(dr["AvgAccountPotential"]), dr["OppStatus"]));
                            }
                            for (int i = 0; i < 2; i++)
                            {
                                RadChartView chrtReports = new RadChartView();
                                chrtReports.ElementTree.EnableTheming = false;
                                chrtReports.ThemeName   = "ControlDefault";
                                chrtReports.ShowToolTip = true;
                                if (i == 0)
                                {
                                    pnlChart.BackColor = Color.White;

                                    chrtReports.BackColor = Color.White;;
                                    chrtReports.Series.Add(AccountsBar);
                                    chrtReports.Series.Add(AvgDeltaLine);
                                    chrtReports.Dock = DockStyle.Fill;
                                    pnlChart.Height  = 400;
                                    TableLayoutPanel legendtbl = new TableLayoutPanel();
                                    legendtbl.ColumnCount = 2;
                                    legendtbl.RowCount    = 1;
                                    legendtbl.Controls.Add(Legendisplay(AccountsBar.BackColor.Name.ToString(), "%Accounts", 0), 0, 0);
                                    legendtbl.Controls.Add(Legendisplay(AvgDeltaLine.BorderColor.Name.ToString(), "AvgDelta%", 1), 1, 0);
                                    legendtbl.Dock = DockStyle.Top;
                                    pnlChart.Controls.Add(ChartTitle(dt.Rows[0]["OppName"].ToString() + "-Opportunity"), 0, 0);
                                    pnlChart.Controls.Add(chrtReports, 0, 1);
                                    pnlChart.Controls.Add(legendtbl, 0, 2);
                                }
                                else
                                {
                                    chrtReports.Series.Add(AccountsCountBar);
                                    chrtReports.Series.Add(AvgPotentialBar);
                                    TableLayoutPanel legendtbl = new TableLayoutPanel();
                                    legendtbl.ColumnCount = 2;
                                    legendtbl.RowCount    = 1;
                                    legendtbl.Controls.Add(Legendisplay(AccountsCountBar.BackColor.Name.ToString(), "Accounts", 0), 0, 0);
                                    legendtbl.Controls.Add(Legendisplay(AvgPotentialBar.BackColor.Name.ToString(), "AvgPotential Per Account", 1), 1, 0);
                                    legendtbl.Dock   = DockStyle.Top;
                                    chrtReports.Dock = DockStyle.Fill;
                                    pnlChart.Controls.Add(ChartTitle(dt.Rows[0]["OppName"].ToString() + "-Potential"), 1, 0);
                                    pnlChart.Controls.Add(chrtReports, 1, 1);
                                    pnlChart.Controls.Add(legendtbl, 1, 2);
                                }
                            }
                            pnlChart.Dock = DockStyle.Top;

                            pnlMain.Controls.Add(pnlChart);
                            Label Opportunitylbl = new Label();
                            Opportunitylbl.Height      = 40;
                            Opportunitylbl.Text        = dt.Rows[0]["OppName"].ToString();
                            Opportunitylbl.Font        = new Font(Opportunitylbl.Font.FontFamily, 10);
                            Opportunitylbl.Dock        = DockStyle.Top;
                            Opportunitylbl.Padding     = new Padding(0, 10, 0, 0);
                            Opportunitylbl.BorderStyle = BorderStyle.FixedSingle;
                            pnlMain.Controls.Add(Opportunitylbl);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        public PlotRecorderProfile_HA(JBC_API_Remote jbcConnect, RadChartView _radChartView, Label labelHotAirTemp, Label labelExtTCTemp, Label labelAirFlow, Label labelStatus, long stationID, Port port)
        {
            m_jbcConnect      = jbcConnect;
            m_radChartView    = _radChartView;
            m_labelHotAirTemp = labelHotAirTemp;
            m_labelExtTCTemp  = labelExtTCTemp;
            m_labelAirFlow    = labelAirFlow;
            m_labelStatus     = labelStatus;
            m_stationID       = stationID;
            m_port            = port;
            m_liveData        = new LiveDataModel(m_jbcConnect, m_radChartView, m_labelHotAirTemp, m_labelExtTCTemp, m_labelAirFlow, m_labelStatus, m_stationID);


            //
            //Initialize axis
            //

            //Horizontal axis - Time
            m_timeAxis.LabelFitMode        = AxisLabelFitMode.MultiLine;
            m_timeAxis.PlotMode            = AxisPlotMode.OnTicks;
            m_timeAxis.ShowLabels          = true;
            m_timeAxis.LabelFormatProvider = new LabelTimeFormat();
            m_timeAxis.LabelOffset         = 1; //no mostrar el primer label

            //Vertical axis - Temperature
            m_tempAxis.AxisType  = AxisType.Second;
            m_tempAxis.Title     = "Temp ºC";
            m_tempAxis.Maximum   = TEMP_MAX;
            m_tempAxis.Minimum   = TEMP_MIN;
            m_tempAxis.MajorStep = TEMP_STEP;

            //Vertical axis - Power
            m_powerAxis.HorizontalLocation = AxisHorizontalLocation.Right;
            m_powerAxis.AxisType           = AxisType.Second;
            m_powerAxis.Title     = "Power %";
            m_powerAxis.Maximum   = POWER_MAX;
            m_powerAxis.Minimum   = POWER_MIN;
            m_powerAxis.MajorStep = POWER_STEP;

            //
            //Initialize grid area
            //

            //Adjust margins
            m_radChartView.View.Margin = new Padding(0);

            CartesianArea area = m_radChartView.GetArea <CartesianArea>();
            CartesianGrid grid = area.GetGrid <CartesianGrid>();

            grid.DrawHorizontalStripes = true;
            grid.DrawHorizontalFills   = false;
            grid.DrawVerticalStripes   = true;
            grid.DrawVerticalFills     = false;
            grid.ForeColor             = Color.DarkGray;


            //Se añaden y se quitan dos series vacias a cada eje para que pinte del color correcto el eje de temperatura y de potencia
            FastLineSeries lineSeries = new FastLineSeries();

            lineSeries.BorderColor    = Color.Black;
            lineSeries.DataSource     = new BindingList <DataSerie>();
            lineSeries.HorizontalAxis = m_timeAxis;
            lineSeries.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(lineSeries);

            lineSeries                = new FastLineSeries();
            lineSeries.BorderColor    = Color.Black;
            lineSeries.DataSource     = new BindingList <DataSerie>();
            lineSeries.HorizontalAxis = m_timeAxis;
            lineSeries.VerticalAxis   = m_powerAxis;
            m_radChartView.Series.Add(lineSeries);

            m_radChartView.Series.Clear();


            //
            //Initialize series
            //

            //Profile hot air temp
            FastLineSeries serieProfileHotAirTemp = new FastLineSeries();

            serieProfileHotAirTemp.Name           = "Profile hot air temperature";
            serieProfileHotAirTemp.LegendTitle    = "Profile hot air temperature";
            serieProfileHotAirTemp.BorderColor    = Color.LightCoral;
            serieProfileHotAirTemp.PointSize      = new SizeF(0, 0);
            serieProfileHotAirTemp.CategoryMember = "Time";
            serieProfileHotAirTemp.ValueMember    = "Value";
            serieProfileHotAirTemp.DataSource     = m_liveData.DataProfileHotAirTemp;
            serieProfileHotAirTemp.BorderWidth    = 1;
            serieProfileHotAirTemp.HorizontalAxis = m_timeAxis;
            serieProfileHotAirTemp.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieProfileHotAirTemp);
            //Profile ext TC temp
            FastLineSeries serieProfileExtTCTemp = new FastLineSeries();

            serieProfileExtTCTemp.Name           = "Profile ext TC temperature";
            serieProfileExtTCTemp.LegendTitle    = "Profile ext TC temperature";
            serieProfileExtTCTemp.BorderColor    = Color.LightGreen;
            serieProfileExtTCTemp.PointSize      = new SizeF(0, 0);
            serieProfileExtTCTemp.CategoryMember = "Time";
            serieProfileExtTCTemp.ValueMember    = "Value";
            serieProfileExtTCTemp.DataSource     = m_liveData.DataProfileExtTCTemp;
            serieProfileExtTCTemp.BorderWidth    = 1;
            serieProfileExtTCTemp.HorizontalAxis = m_timeAxis;
            serieProfileExtTCTemp.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieProfileExtTCTemp);
            //Profile air flow
            FastLineSeries serieProfileAirFlow = new FastLineSeries();

            serieProfileAirFlow.Name           = "Profile air flow";
            serieProfileAirFlow.LegendTitle    = "Profile air flow";
            serieProfileAirFlow.BorderColor    = Color.DeepSkyBlue;
            serieProfileAirFlow.PointSize      = new SizeF(0, 0);
            serieProfileAirFlow.CategoryMember = "Time";
            serieProfileAirFlow.ValueMember    = "Value";
            serieProfileAirFlow.DataSource     = m_liveData.DataProfileAirFlow;
            serieProfileAirFlow.BorderWidth    = 1;
            serieProfileAirFlow.HorizontalAxis = m_timeAxis;
            serieProfileAirFlow.VerticalAxis   = m_powerAxis;
            m_radChartView.Series.Add(serieProfileAirFlow);
            //Hot air temp
            FastLineSeries serieHotAirTemp = new FastLineSeries();

            serieHotAirTemp.Name           = "Hot air temperature";
            serieHotAirTemp.LegendTitle    = "Hot air temperature";
            serieHotAirTemp.BorderColor    = Color.DarkRed;
            serieHotAirTemp.PointSize      = new SizeF(0, 0);
            serieHotAirTemp.CategoryMember = "Time";
            serieHotAirTemp.ValueMember    = "Value";
            serieHotAirTemp.DataSource     = m_liveData.DataHotAirTemp;
            serieHotAirTemp.BorderWidth    = 1;
            serieHotAirTemp.HorizontalAxis = m_timeAxis;
            serieHotAirTemp.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieHotAirTemp);
            //Ext TC temp
            FastLineSeries serieExtTCTemp = new FastLineSeries();

            serieExtTCTemp.Name           = "Ext TC temperature";
            serieExtTCTemp.LegendTitle    = "Ext TC temperature";
            serieExtTCTemp.BorderColor    = Color.DarkGreen;
            serieExtTCTemp.PointSize      = new SizeF(0, 0);
            serieExtTCTemp.CategoryMember = "Time";
            serieExtTCTemp.ValueMember    = "Value";
            serieExtTCTemp.DataSource     = m_liveData.DataExtTCTemp;
            serieExtTCTemp.BorderWidth    = 1;
            serieExtTCTemp.HorizontalAxis = m_timeAxis;
            serieExtTCTemp.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieExtTCTemp);
            //Air flow
            FastLineSeries serieAirFlow = new FastLineSeries();

            serieAirFlow.Name           = "Air flow";
            serieAirFlow.LegendTitle    = "Air flow";
            serieAirFlow.BorderColor    = Color.RoyalBlue;
            serieAirFlow.PointSize      = new SizeF(0, 0);
            serieAirFlow.CategoryMember = "Time";
            serieAirFlow.ValueMember    = "Value";
            serieAirFlow.DataSource     = m_liveData.DataAirFlow;
            serieAirFlow.BorderWidth    = 1;
            serieAirFlow.HorizontalAxis = m_timeAxis;
            serieAirFlow.VerticalAxis   = m_powerAxis;
            m_radChartView.Series.Add(serieAirFlow);
            //Vertical mark serie
            FastLineSeries serieVerticalMark = new FastLineSeries();

            serieVerticalMark.BorderColor    = Color.Black;
            serieVerticalMark.PointSize      = new SizeF(0, 0);
            serieVerticalMark.CategoryMember = "Time";
            serieVerticalMark.ValueMember    = "Value";
            serieVerticalMark.DataSource     = m_liveData.DataVerticalMark;
            serieVerticalMark.BorderWidth    = 1;
            serieVerticalMark.HorizontalAxis = m_timeAxis;
            serieVerticalMark.VerticalAxis   = m_tempAxis;
            m_radChartView.Series.Add(serieVerticalMark);
        }
Ejemplo n.º 9
0
        private void GenerarSerie()
        {
            var Aux = PageView.SelectedPage;

            try {
                if (oSeries.Count > 0)
                {
                    ChartPanZoomController panZoomController = new ChartPanZoomController();
                    panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal;
                    chart1.View.Palette           = KnownPalette.Material;

                    chart = chart1;
                    chart.Series.Clear();
                    chart.Title       = Aux.Text;
                    chart.ShowPanZoom = true;
                    chart.Controllers.Add(panZoomController);

                    //Create and add Moving Average indicator
                    BollingerBandsIndicator maIndicator = new BollingerBandsIndicator();
                    maIndicator.CategoryMember     = "Fecha";
                    maIndicator.DataSource         = oSeries;
                    maIndicator.Period             = 1;
                    maIndicator.StandardDeviations = 1;

                    //Create and add hlc series
                    HlcSeries series = new HlcSeries();

                    if (Aux.Tag.ToString() == "Cav1")
                    {
                        maIndicator.ValueMember = "Val1";
                        series.CloseValueMember = "Val1";
                        series.HighValueMember  = "Max1";
                        series.LowValueMember   = "Min1";
                    }
                    if (Aux.Tag.ToString() == "Cav2")
                    {
                        maIndicator.ValueMember = "Val2";
                        series.CloseValueMember = "Val2";
                        series.HighValueMember  = "Max2";
                        series.LowValueMember   = "Min2";
                    }
                    if (Aux.Tag.ToString() == "Cav3")
                    {
                        maIndicator.ValueMember = "Val3";
                        series.CloseValueMember = "Val3";
                        series.HighValueMember  = "Max3";
                        series.LowValueMember   = "Min3";
                    }
                    if (Aux.Tag.ToString() == "Cav4")
                    {
                        maIndicator.ValueMember = "Val4";
                        series.CloseValueMember = "Val4";
                        series.HighValueMember  = "Max4";
                        series.LowValueMember   = "Min4";
                    }
                    if (Aux.Tag.ToString() == "Cav5")
                    {
                        maIndicator.ValueMember = "Val5";
                        series.CloseValueMember = "Val5";
                        series.HighValueMember  = "Max5";
                        series.LowValueMember   = "Min5";
                    }
                    if (Aux.Tag.ToString() == "Cav6")
                    {
                        maIndicator.ValueMember = "Val6";
                        series.CloseValueMember = "Val6";
                        series.HighValueMember  = "Max6";
                        series.LowValueMember   = "Min6";
                    }
                    if (Aux.Tag.ToString() == "Cav7")
                    {
                        maIndicator.ValueMember = "Val7";
                        series.CloseValueMember = "Val7";
                        series.HighValueMember  = "Max7";
                        series.LowValueMember   = "Min7";
                    }
                    if (Aux.Tag.ToString() == "Cav8")
                    {
                        maIndicator.ValueMember = "Val8";
                        series.CloseValueMember = "Val8";
                        series.HighValueMember  = "Max8";
                        series.LowValueMember   = "Min8";
                    }
                    maIndicator.BorderColor = Color.Red;
                    maIndicator.PointSize   = SizeF.Empty;

                    chart.Series.Add(maIndicator);

                    series.CategoryMember = "Fecha";
                    series.DataSource     = oSeries;
                    series.BorderColor    = Color.Green;

                    chart.ShowLegend = false;
                    chart.Dock       = DockStyle.Fill;
                    chart.Series.Add(series);
                    Aux.Controls.Add(chart);
                }
            } catch (Exception ex) {
                RadMessageBox.Show("Ocurrio un error al generar la gráfica\n" + ex.Message, this.Text, MessageBoxButtons.OK, RadMessageIcon.Error);
            } finally {
                oEnsamble = null;
            }
        }
Ejemplo n.º 10
0
        private void GenerarGraficas()
        {
            try {
                if (oList.Count > 0)
                {
                    var     Aux  = PageView.SelectedPage;
                    decimal vMin = 0;

                    if (Aux.Enabled)
                    {
                        ChartPanZoomController panZoomController = new ChartPanZoomController();
                        panZoomController.PanZoomMode = ChartPanZoomMode.Horizontal;
                        chart1.View.Palette           = KnownPalette.Material;

                        chart = chart1;
                        chart.Series.Clear();
                        chart.Title       = Aux.Text;
                        chart.ShowPanZoom = true;
                        chart.Controllers.Add(panZoomController);

                        LineSeries lineSeries = new LineSeries();
                        LineSeries Min        = new LineSeries();
                        oList[0].Valores.ForEach(item => {
                            if (Aux.Tag.ToString() == "Cav1")
                            {
                                vMin = oList[0].Norma.Cav1;
                                lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val1, item.Hora));
                                Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora));
                            }
                            if (Aux.Tag.ToString() == "Cav2")
                            {
                                vMin = oList[0].Norma.Cav2;
                                lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val2, item.Hora));
                                Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora));
                            }
                            if (Aux.Tag.ToString() == "Cav3")
                            {
                                vMin = oList[0].Norma.Cav3;
                                lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val3, item.Hora));
                                Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora));
                            }
                            if (Aux.Tag.ToString() == "Cav4")
                            {
                                vMin = oList[0].Norma.Cav4;
                                lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val4, item.Hora));
                                Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora));
                            }
                            if (Aux.Tag.ToString() == "Cav5")
                            {
                                vMin = oList[0].Norma.Cav5;
                                lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val5, item.Hora));
                                Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora));
                            }
                            if (Aux.Tag.ToString() == "Cav6")
                            {
                                vMin = oList[0].Norma.Cav6;
                                lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val6, item.Hora));
                                Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora));
                            }
                            if (Aux.Tag.ToString() == "Cav7")
                            {
                                vMin = oList[0].Norma.Cav7;
                                lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val7, item.Hora));
                                Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora));
                            }
                            if (Aux.Tag.ToString() == "Cav8")
                            {
                                vMin = oList[0].Norma.Cav8;
                                lineSeries.DataPoints.Add(new CategoricalDataPoint(item.Val8, item.Hora));
                                Min.DataPoints.Add(new CategoricalDataPoint(double.Parse(vMin.ToString()), item.Hora));
                            }
                        });

                        lineSeries.LegendTitle = "Valor";
                        Min.LegendTitle        = "Min";

                        chart.ShowLegend = true;
                        chart.Series.Add(lineSeries);
                        chart.Series.Add(Min);
                        chart.Dock = DockStyle.Fill;
                        Aux.Controls.Add(chart);
                    }
                }
                else
                {
                    RadMessageBox.Show("No existen datos a graficar", this.Text, MessageBoxButtons.OK, RadMessageIcon.Info);
                }
            } catch (Exception ex) {
                RadMessageBox.Show("Ocurrio un error al generar la gráfica\n" + ex.Message, this.Text, MessageBoxButtons.OK, RadMessageIcon.Error);
            }
        }
Ejemplo n.º 11
0
        public void InitGraphs()
        {
            Random random = new Random();

            // Initial Population

            // List to store best of every iteration
            var bestResult = new List<double>();

            // List to store average of every iteration
            var averageResult = new List<double>();

            for (int i = 0; i < 20; i++)
            {
                Population initialPopulation = new Population(random);
                List<GraphMapper> bestOfIteration = new List<GraphMapper>();
                List<GraphMapper> worstOfIteration = new List<GraphMapper>();
                List<GraphMapper> averageOfIteration = new List<GraphMapper>();
                initialPopulation.CalculateNormalizedFitness();
                initialPopulation.OrderChromosomesDescending();
                initialPopulation.CalculateAccumulatedFitness();
                for (int j = 0; j < 20; j++)
                {
                    #region Perform GA Operations

                    // Perform GA Operations

                    initialPopulation.CloneElements();
                    initialPopulation.PerformMutation(random);
                    initialPopulation.Production(10, random);

                    bestOfIteration.Add(new GraphMapper
                    {
                        Category = "G " + (j + 1).ToString(),
                        Value = initialPopulation.BestFitness,
                    });
                    worstOfIteration.Add(new GraphMapper
                    {
                        Category = "G " + (j + 1).ToString(),
                        Value = initialPopulation.WorstFitness,
                    });

                    averageOfIteration.Add(new GraphMapper
                    {
                        Category = "G " + (j + 1).ToString(),
                        Value = initialPopulation.AverageFitness,
                    });

                    #endregion
                }

                List<SeriesMapper> listOfSeries = new List<SeriesMapper>
                {
                    new SeriesMapper
                    {
                        Category = "Best of Iteration",
                        GraphDataSource = bestOfIteration,
                    },
                    new SeriesMapper
                    {
                        Category = "Worst of Iteration",
                        GraphDataSource = worstOfIteration,
                    },
                    new SeriesMapper
                    {
                        Category = "Average of Iteration",
                        GraphDataSource = averageOfIteration,
                    }
                };

                // Add Best And Average Result to respective lists
                averageResult.Add(initialPopulation.Chromosomes.Sum(m => m.FitnessValue) /
                                  initialPopulation.Chromosomes.Count);
                bestResult.Add(initialPopulation.Chromosomes.Max(m => m.FitnessValue));

                #region Add Charts dynamically to Form

                CartesianArea cartesianArea1 = new CartesianArea();
                int height = 0;
                if (i > 0)
                {
                    height = this.Controls[i - 1].Height + this.Controls[i - 1].Location.Y;
                }

                RadChartView chart = new RadChartView
                {
                    AreaDesign = cartesianArea1,
                    Location = new Point(0, height),
                    Name = "radChartView1",
                    ShowGrid = true,
                    Size = new Size(1300, 700),
                    TabIndex = 0,
                    Text = "radChartView1",
                    Title = "Iteration " + (i + 1).ToString(),
                    ShowTitle = true,
                    ShowLegend = true,
                };
                foreach (SeriesMapper graphMappers in listOfSeries)
                {
                    LineSeries series = new LineSeries
                    {
                        LegendTitle = graphMappers.Category,
                        PointSize = new SizeF(10, 10),
                        BorderWidth = 2,
                        CategoryMember = "Category",
                        ValueMember = "Value",
                        DataSource = graphMappers.GraphDataSource,
                        ShowLabels = true,
                        CombineMode = ChartSeriesCombineMode.None
                    };
                    chart.Series.Add(series);
                    chart.ShowSmartLabels = true;

                    ((CartesianArea)chart.View.Area).ShowGrid = true;
                }

                this.Controls.Add(chart);
                chart.ExportToImage(@"C:\Users\Farjad\Desktop\TOCI2\AIS\" + chart.Title + ".png", chart.Size);

                #endregion
            }

            #region Best of All Chart

            var heightOfPreviousChart = this.Controls[this.Controls.Count - 1].Height +
                                        this.Controls[this.Controls.Count - 1].Location.Y;
            RadChartView chartForBestOfIterations = new RadChartView
            {
                AreaDesign = new CartesianArea(),
                Location = new Point(0, heightOfPreviousChart),
                Name = "radChartView1",
                ShowGrid = true,
                Size = new Size(1300, 700),
                TabIndex = 0,
                Title = "Best of all Iterations",
                ShowTitle = true,
                Text = "radChartView1",
                ShowLegend = true,
            };
            var dataSourceForBestResultsGraph = new List<GraphMapper>();
            int counter = 1;
            bestResult.ForEach(m =>
            {
                dataSourceForBestResultsGraph.Add(new GraphMapper
                {
                    Category = "P" + counter.ToString(),
                    Value = m,
                });
                counter += 1;
            });
            LineSeries lineSeriesForBestOfIteration = new LineSeries
            {
                LegendTitle = "Best of All Iterations",
                PointSize = new SizeF(10, 10),
                BorderWidth = 2,
                CategoryMember = "Category",
                ValueMember = "Value",
                DataSource = dataSourceForBestResultsGraph,
                ShowLabels = true,
                CombineMode = ChartSeriesCombineMode.None
            };
            chartForBestOfIterations.Series.Add(lineSeriesForBestOfIteration);
            chartForBestOfIterations.ShowSmartLabels = true;

            ((CartesianArea)chartForBestOfIterations.View.Area).ShowGrid = true;

            this.Controls.Add(chartForBestOfIterations);
            chartForBestOfIterations.ExportToImage(
                @"C:\Users\Farjad\Desktop\TOCI2\AIS\" + chartForBestOfIterations.Title + ".png",
                chartForBestOfIterations.Size);

            #endregion

            #region Average of All Chart

            RadChartView chartForAverageOfIterations = new RadChartView
            {
                AreaDesign = new CartesianArea(),
                //Anchor = AnchorStyles.Left,
                //Dock = DockStyle.Fill,
                Location = new Point(0, chartForBestOfIterations.Height + chartForBestOfIterations.Location.Y),
                Name = "radChartView1",
                ShowGrid = true,
                Size = new Size(1300, 700),
                Title = "Average of all Iterations",
                ShowTitle = true,
                TabIndex = 0,
                Text = "radChartView1",
                ShowLegend = true,

            };
            var dataSourceForAverageResultsGraph = new List<GraphMapper>();
            counter = 1;
            averageResult.ForEach(m =>
            {
                dataSourceForAverageResultsGraph.Add(new GraphMapper
                {
                    Category = "P" + counter,
                    Value = m,
                });
                counter += 1;
            });
            LineSeries lineSeriesForAverageOfIteration = new LineSeries
            {
                LegendTitle = "Average of All Iterations",
                PointSize = new SizeF(10, 10),
                BorderWidth = 2,
                CategoryMember = "Category",
                ValueMember = "Value",
                DataSource = dataSourceForAverageResultsGraph,
                ShowLabels = true,
                CombineMode = ChartSeriesCombineMode.None
            };
            chartForAverageOfIterations.Series.Add(lineSeriesForAverageOfIteration);
            chartForAverageOfIterations.ShowSmartLabels = true;

            ((CartesianArea)chartForAverageOfIterations.View.Area).ShowGrid = true;

            this.Controls.Add(chartForAverageOfIterations);
            chartForAverageOfIterations.ExportToImage(
                @"C:\Users\Farjad\Desktop\TOCI2\AIS\" + chartForAverageOfIterations.Title + ".png",
                chartForAverageOfIterations.Size);

            #endregion
        }