private void LoadGraphWithDetails()
{
if (gridControl1.DataSource != null)
{
DataTable dt = (DataTable)gridControl1.DataSource;
// get only the WOT cells, the last 16 integers
// and the columns which hold the rpm stages
chartControl1.Series.Clear();
string powerLabel = "Power (bhp)";
if (checkEdit5.Checked) powerLabel = "Power (kW)";
string torqueLabel = "Torque (Nm)";
if (checkEdit6.Checked) torqueLabel = "Torque (lbft)";
string injectorDCLabel = "Injector DC";
string targetLambdaLabel = "Target lambda";
powerSeries = chartControl1.Series.Add(powerLabel, DevExpress.XtraCharts.ViewType.Spline);
torqueSeries = chartControl1.Series.Add(torqueLabel, DevExpress.XtraCharts.ViewType.Spline);
// set line colors
chartControl1.Series[powerSeries].Label.Border.Visible = false;
chartControl1.Series[torqueSeries].Label.Border.Visible = false;
chartControl1.Series[powerSeries].Label.Shadow.Visible = true;
chartControl1.Series[torqueSeries].Label.Shadow.Visible = true;
chartControl1.Series[powerSeries].View.Color = Color.Red;
chartControl1.Series[torqueSeries].View.Color = Color.Blue;
chartControl1.Series[powerSeries].ArgumentScaleType = ScaleType.Qualitative;
chartControl1.Series[powerSeries].ValueScaleType = ScaleType.Numerical;
chartControl1.Series[torqueSeries].ArgumentScaleType = ScaleType.Qualitative;
chartControl1.Series[torqueSeries].ValueScaleType = ScaleType.Numerical;
SplineSeriesView sv = (SplineSeriesView)chartControl1.Series[powerSeries].View;
sv.LineMarkerOptions.Visible = false;
sv = (SplineSeriesView)chartControl1.Series[torqueSeries].View;
sv.LineMarkerOptions.Visible = false;
for (int i = 0; i < dt.Rows[0].ItemArray.Length; i++)
{
double o = Convert.ToDouble(dt.Rows[0].ItemArray.GetValue(i));
// convert to hp
int rpm = Convert.ToInt32(y_axisvalues.GetValue(i));
int torque = Tools.Instance.IQToTorque(Convert.ToInt32(o), rpm, m_numberCylinders);
if (_ECUType.Contains("EDC16"))
{
torque = Convert.ToInt32(o);
torque *= 10; // correction to keep the code identical from here
double temptorque = torque * Tools.Instance.GetCorrectionFactorForRpm(rpm, m_numberCylinders);
torque = Convert.ToInt32(temptorque);
}
int horsepower = Tools.Instance.TorqueToPower(torque, rpm);
if (checkEdit5.Checked) horsepower = Tools.Instance.TorqueToPowerkW(torque, rpm);
if (checkEdit6.Checked) torque = Tools.Instance.IQToTorque(Convert.ToInt32(o), rpm, m_numberCylinders);//AirmassToTorqueLbft(Convert.ToInt32(o), rpm);
horsepower /= 100;
torque /= 100;
double[] dvals = new double[1];
dvals.SetValue(Convert.ToDouble(horsepower), 0);
chartControl1.Series[powerSeries].Points.Add(new SeriesPoint(Convert.ToDouble(rpm), dvals));
double[] dvalstorq = new double[1];
dvalstorq.SetValue(Convert.ToDouble(torque), 0);
chartControl1.Series[torqueSeries].Points.Add(new SeriesPoint(Convert.ToDouble(rpm), dvalstorq));
}
}
}