Example #1
0
        public void SetColour(double colourRange, double colourOffset)
        {
            if (HelperMethods.IsValidDouble(dataValue) && !cellCurrentlyIgnored)
            {
                double scalar = 360.0 / colourRange;
                double value  = scalar * (dataValue - colourOffset);

                double H = (0.4 * (360.0 - value)) - 10.0;
                double S = 0.9;
                double B = 0.92;

                this.Style.BackColor = HelperMethods.HSVtoRGB(H, S, B);
            }
            else
            {
                this.Style.BackColor = Color.White;
            }
        }
Example #2
0
        public void PopulateFilteredCellGridView(DataGridViewTuningCell data)
        {
            SecondaryGridView.Rows.Clear();
            SecondaryGridView.Columns.Clear();

            List <String> columns       = new List <string>();
            double        val           = data.data.Min();
            double        range         = data.data.Max() - val;
            int           numberOfCells = Math.Min(10, data.data.Length);

            for (int x = 0; x < numberOfCells; x++)
            {
                columns.Add(String.Format("{0:0.00}", val));
                val += range / (double)numberOfCells;
            }
            secondaryXValues = new double[numberOfCells];


            int i = 0;

            SecondaryGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
            foreach (string column in columns)
            {
                secondaryXValues[i] = Convert.ToDouble(column);

                DataGridViewTextBoxColumn cell = new DataGridViewTextBoxColumn();
                cell.HeaderText = column;
                cell.Name       = column;
                cell.Width      = 45;
                cell.DefaultCellStyle.WrapMode = DataGridViewTriState.True;
                SecondaryGridView.Columns.Add(cell);
                i++;
            }

            double minY = data.secondaryData.Min();

            minY = double.MaxValue;
            for (int index = 0; index < data.secondaryData.Length; index++)
            {
                if (data.secondaryData[index] < minY)
                {
                    minY = data.secondaryData[index];
                }
            }

            double maxY = data.secondaryData.Max();

            double        Range = maxY - minY;
            List <String> rows  = new List <string>();

            val           = minY;
            numberOfCells = Math.Min(10, data.secondaryData.Length);

            List <Double> rowDoubles = new List <Double>();

            for (int y = 0; y < numberOfCells; y++)
            {
                rows.Add(String.Format("{0:0.00}", val));
                rowDoubles.Add(val);
                val += Range / (double)numberOfCells;
            }

            secondaryYValues = new double[rows.Count];
            i = 0;
            foreach (double row in rowDoubles)
            {
                secondaryYValues[i] = row;
                i++;
            }
            SecondaryGridView.RowHeadersWidth = 60;

            SecondaryGridViewData = new int[data.secondaryData.Length, secondaryYValues.Length];
            for (i = 0; i < SecondaryGridView.Columns.Count; i++)
            {
                for (int j = 0; j < secondaryYValues.Length; j++)
                {
                    SecondaryGridViewData[i, j] = 0;
                }
            }

            //Iterate each time sample and add it to the appropriate x,y list
            int min = int.MaxValue;
            int max = int.MinValue;

            for (i = 0; i < data.secondaryData.Length; i++)
            {
                double x = data.data[i];
                double y = data.secondaryData[i];

                int[] coordinates = GetNearestCoordinate(x, y, secondaryXValues, secondaryYValues);

                SecondaryGridViewData[coordinates[0], coordinates[1]]++;
            }

            for (i = 0; i < secondaryXValues.Length; i++)
            {
                for (int j = 0; j < secondaryYValues.Length; j++)
                {
                    if (SecondaryGridViewData[j, i] != 0)
                    {
                        if (SecondaryGridViewData[j, i] < min)
                        {
                            min = SecondaryGridViewData[j, i];
                        }
                        if (SecondaryGridViewData[j, i] > max)
                        {
                            max = SecondaryGridViewData[j, i];
                        }
                    }
                }
            }


            //Create a series of sums per x,y reference
            SecondaryGridView.RowHeadersWidth = 4;
            for (i = 0; i < secondaryYValues.Length; i++)
            {
                DataGridViewRow row = new DataGridViewRow();
                row.HeaderCell       = new DataGridViewRowHeaderCell();
                row.HeaderCell.Value = secondaryYValues[i].ToString();
                int widthTemp = (row.HeaderCell.Value.ToString().Length + 3) * 10;
                if (widthTemp > SecondaryGridView.RowHeadersWidth)
                {
                    SecondaryGridView.RowHeadersWidth = widthTemp;
                }

                for (int j = 0; j < secondaryXValues.Length; j++)
                {
                    DataGridViewTextBoxCell cell = new DataGridViewTextBoxCell();
                    if (SecondaryGridViewData[j, i] != 0)
                    {
                        cell.Value = SecondaryGridViewData[j, i].ToString();
                        double scalar = 360.0 / (max - min);
                        double value  = scalar * (SecondaryGridViewData[j, i] - min);

                        double H = (0.4 * (360.0 - value)) - 10.0;
                        double S = 0.9;
                        double B = 0.92;

                        cell.Style.BackColor = HelperMethods.HSVtoRGB(H, S, B);;
                    }
                    else
                    {
                        cell.Value = "";
                    }



                    row.Cells.Add(cell);
                }
                SecondaryGridView.Rows.Add(row);
            }
        }