Example #1
0
        private void btnStart_Click(object sender, EventArgs e)
        {
            double value = 0.0;
            int    valid = 0;

            if (!m_obd2Interface.Connected)
            {
                MessageBox.Show("A vehicle connection must first be established. \n\n" + "Please enable communications and check all wiring connections.", "Connection Required", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
                int count = 0;
                do
                {
                    OBD2Response response1 = m_obd2Interface.getResponse(new OBD2Request("010D"));
                    OBD2Response response2 = m_obd2Interface.getResponse(new OBD2Request("010C"));
                    OBD2Response response3 = m_obd2Interface.getResponse(new OBD2Request("010D"));
                    if (response1 != null && response2 != null && response3 != null)
                    {
                        double   value1       = response1.getValue(0).MetricValue;
                        double   value2       = response3.getValue(0).MetricValue;
                        double   value3       = response2.getValue(0).MetricValue;
                        double   totalSeconds = response2.Date.Subtract(response1.Date).TotalSeconds;
                        TimeSpan timeSpan     = response3.Date.Subtract(response1.Date);
                        value = (totalSeconds / timeSpan.TotalSeconds * (value2 - value1) + value1) / value3 + value;
                        ++valid;
                    }
                    progressBar.Value = count;
                    count            += 5;
                }while (count < 100);
                lblRatio.Text = (value / (double)valid).ToString("0.000000");
            }
        }