Ejemplo n.º 1
0
        private void CollectData()
        {
            DisplayStatusMessage("请求MIL状态和故障码数量");
            DisplayRequest("0101");
            OBDParameterValue value5 = m_obdInterface.GetValue("SAE.MIL");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            if (!value5.ErrorDetected)
            {
                if (value5.BoolValue)
                {
                    DisplayDetailMessage("MIL状态: On");
                    m_bReportForm.ReportPage1.MilStatus = true;
                }
                else
                {
                    DisplayDetailMessage("MIL状态: Off");
                    m_bReportForm.ReportPage1.MilStatus = false;
                }
            }
            OBDParameterValue value3 = m_obdInterface.GetValue("SAE.DTC_COUNT");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            if (!value3.ErrorDetected)
            {
                m_bReportForm.ReportPage1.TotalCodes = (int)value3.DoubleValue;
                DisplayDetailMessage("存储的故障码数量: " + value3.DoubleValue.ToString());
            }
            DisplayStatusMessage("请求存储的故障码列表");
            OBDParameterValue value4 = m_obdInterface.GetValue("SAE.STORED_DTCS");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            if (!value4.ErrorDetected)
            {
                m_bReportForm.ReportPage1.DTCList.Clear();
                foreach (string strVal in value4.ListStringValue)
                {
                    m_bReportForm.ReportPage1.DTCList.Add(strVal);
                    DisplayDetailMessage("存储的故障码: " + strVal);
                    DTC dtc2 = m_obdInterface.GetDTC(strVal);
                    if (dtc2 != null)
                    {
                        m_bReportForm.ReportPage1.DTCDefinitionList.Add(dtc2.Description);
                    }
                }
            }
            DisplayStatusMessage("请求未决故障码列表");
            OBDParameterValue value2 = m_obdInterface.GetValue("SAE.PENDING_DTCS");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            if (!value2.ErrorDetected)
            {
                m_bReportForm.ReportPage1.PendingList.Clear();
                foreach (string strVal in value2.ListStringValue)
                {
                    m_bReportForm.ReportPage1.PendingList.Add(strVal);
                    DisplayDetailMessage("未决故障码: " + strVal);
                    DTC dtc = m_obdInterface.GetDTC(strVal);
                    if (dtc != null)
                    {
                        m_bReportForm.ReportPage1.PendingDefinitionList.Add(dtc.Description);
                    }
                }
            }

            DisplayStatusMessage("检查冻结帧数据");
            OBDParameter parameter = m_obdInterface.LookupParameter("SAE.FF_DTC");

            if (parameter != null)
            {
                OBDParameter freezeFrameCopy = parameter.GetFreezeFrameCopy(0);
                value2 = m_obdInterface.GetValue(freezeFrameCopy);
                this.BeginInvoke((EventHandler) delegate {
                    progressBar.Value += 1;
                });
                if (!value2.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.FreezeFrameDTC = value2.StringValue;
                    DisplayDetailMessage("找到冻结帧数据 " + value2.StringValue);
                    CollectFreezeFrameData();
                }
                else
                {
                    m_bReportForm.ReportPage1.FreezeFrameDTC = "P0000";
                    DisplayDetailMessage("未找到冻结帧数据");
                }
                CollectMonitoringTestData();
                this.BeginInvoke((EventHandler) delegate {
                    progressBar.Value   = progressBar.Maximum;
                    btnGenerate.Enabled = true;
                    // ReportForm窗体类里需要调用SaveFileDialog.ShowDialog()
                    // 该方法需要调用COM对象(系统中的打开文件通用对话框),故需要调用者线程具有STA模式(单线程单元模式)
                    // 而Task无法显式设置线程模式为STA,故只能在主UI线程里调用ReportForm窗体类
                    m_bReportForm.ShowDialog();
                });
            }
        }
Ejemplo n.º 2
0
        private void ReadFreezeFrameData()
        {
            while (true)
            {
                this.BeginInvoke(new Action(() => {
                    freezeFrame.Reset();
                }));
                OBDParameter parameter = m_obdInterface.LookupParameter("SAE.FF_DTC");
                if (parameter == null)
                {
                    MessageBox.Show(
                        "加载SAE.FF_DTC参数时发生错误",
                        "出错",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Hand
                        );
                    break;
                }

                OBDParameterValue value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (value.ErrorDetected)
                {
                    m_obdInterface.GetLogger().TraceError("Error while requesting SAE.FF_DTC");
                    MessageBox.Show(
                        "请求SAE.FF_DTC命令时发生错误",
                        "出错",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Hand
                        );
                    break;
                }

                if (string.Compare(value.StringValue, "P0000") == 0)
                {
                    MessageBox.Show(
                        string.Format("在 #{0} 帧中,没有发现冻结帧信息", m_FrameNumber),
                        "信息",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Asterisk
                        );
                    break;
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Value = 0;
                    freezeFrame.DTC   = value.StringValue;
                }));

                parameter = m_obdInterface.LookupParameter("SAE.FUEL1_STATUS");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.FuelSystem1Status = value.StringValue;
                    }));
                }

                parameter = m_obdInterface.LookupParameter("SAE.FUEL2_STATUS");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.FuelSystem2Status = value.StringValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.LOAD_CALC");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.CalculatedLoad = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.ECT");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.EngineCoolantTemp = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.STFT1");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.STFT1 = value.DoubleValue;
                    }));
                }

                parameter = m_obdInterface.LookupParameter("SAE.STFT3");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.STFT3 = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.LTFT1");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.LTFT1 = value.DoubleValue;
                    }));
                }

                parameter = m_obdInterface.LookupParameter("SAE.LTFT3");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.LTFT3 = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.STFT2");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.STFT2 = value.DoubleValue;
                    }));
                }

                parameter = m_obdInterface.LookupParameter("SAE.STFT4");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.STFT4 = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.LTFT2");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.LTFT2 = value.DoubleValue;
                    }));
                }

                parameter = m_obdInterface.LookupParameter("SAE.LTFT4");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.LTFT4 = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.MAP");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.IntakePressure = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.RPM");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.EngineRPM = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.VSS");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.VehicleSpeed = value.DoubleValue;
                    }));
                }

                this.BeginInvoke(new Action(() => {
                    progressBar.Increment(progressBar.Step);
                }));
                if (!m_KeepReading)
                {
                    break;
                }

                parameter = m_obdInterface.LookupParameter("SAE.SPARKADV");
                if (parameter == null)
                {
                    break;
                }

                value = m_obdInterface.GetValue(parameter.GetFreezeFrameCopy(m_FrameNumber));
                if (!value.ErrorDetected)
                {
                    this.BeginInvoke(new Action(() => {
                        freezeFrame.SparkAdvance = value.DoubleValue;
                    }));
                }

                break;
            }
            this.BeginInvoke(new Action(() => {
                progressBar.Value  = progressBar.Maximum;
                btnRefresh.Enabled = true;
                btnCancel.Enabled  = false;
            }));
        }
Ejemplo n.º 3
0
        private void CollectFreezeFrameData()
        {
            OBDParameter param = m_obdInterface.LookupParameter("SAE.FUEL1_STATUS");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowFuelSystemStatus = false;
            if (param != null)
            {
                param = param.GetFreezeFrameCopy(0);
                OBDParameterValue value17 = m_obdInterface.GetValue(param);
                if (!value17.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowFuelSystemStatus = true;
                    DisplayDetailMessage("燃油系统 1: " + value17.StringValue);
                    m_bReportForm.ReportPage1.FuelSystem1Status = value17.StringValue;
                }
            }
            OBDParameter freezeFrameCopy = m_obdInterface.LookupParameter("SAE.FUEL2_STATUS");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowFuelSystemStatus = false;
            if (freezeFrameCopy != null)
            {
                freezeFrameCopy = freezeFrameCopy.GetFreezeFrameCopy(0);
                OBDParameterValue value3 = m_obdInterface.GetValue(freezeFrameCopy);
                if (!value3.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowFuelSystemStatus = true;
                    DisplayDetailMessage("燃油系统 2: " + value3.StringValue);
                    m_bReportForm.ReportPage1.FuelSystem2Status = value3.StringValue;
                }
            }
            OBDParameter parameter16 = m_obdInterface.LookupParameter("SAE.LOAD_CALC");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowCalculatedLoad = false;
            if (parameter16 != null)
            {
                OBDParameter      parameter17 = parameter16.GetFreezeFrameCopy(0);
                OBDParameterValue value2      = m_obdInterface.GetValue(parameter17);
                if (!value2.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowCalculatedLoad = true;
                    DisplayDetailMessage("计算负荷: " + value2.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.CalculatedLoad = value2.DoubleValue;
                }
            }
            OBDParameter parameter14 = m_obdInterface.LookupParameter("SAE.ECT");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowEngineCoolantTemp = false;
            if (parameter14 != null)
            {
                parameter14 = parameter14.GetFreezeFrameCopy(0);
                OBDParameterValue value16 = m_obdInterface.GetValue(parameter14);
                if (!value16.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowEngineCoolantTemp = true;
                    DisplayDetailMessage("发动机冷却液温度: " + value16.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.EngineCoolantTemp = value16.DoubleValue;
                }
            }
            OBDParameter parameter13 = m_obdInterface.LookupParameter("SAE.STFT1");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowSTFT13 = false;
            if (parameter13 != null)
            {
                parameter13 = parameter13.GetFreezeFrameCopy(0);
                OBDParameterValue value15 = m_obdInterface.GetValue(parameter13);
                if (!value15.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowSTFT13 = true;
                    DisplayDetailMessage("短时燃油修正 - 组 1: " + value15.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.STFT1 = value15.DoubleValue;
                }
            }
            OBDParameter parameter12 = m_obdInterface.LookupParameter("SAE.STFT3");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowSTFT13 = false;
            if (parameter12 != null)
            {
                parameter12 = parameter12.GetFreezeFrameCopy(0);
                OBDParameterValue value14 = m_obdInterface.GetValue(parameter12);
                if (!value14.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowSTFT13 = true;
                    DisplayDetailMessage("短时燃油修正 - 组 3: " + value14.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.STFT3 = value14.DoubleValue;
                }
            }
            OBDParameter parameter11 = m_obdInterface.LookupParameter("SAE.LTFT1");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowLTFT13 = false;
            if (parameter11 != null)
            {
                parameter11 = parameter11.GetFreezeFrameCopy(0);
                OBDParameterValue value13 = m_obdInterface.GetValue(parameter11);
                if (!value13.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowLTFT13 = true;
                    DisplayDetailMessage("长时燃油修正 - 组 1: " + value13.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.LTFT1 = value13.DoubleValue;
                }
            }
            OBDParameter parameter10 = m_obdInterface.LookupParameter("SAE.LTFT3");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowLTFT13 = false;
            if (parameter10 != null)
            {
                parameter10 = parameter10.GetFreezeFrameCopy(0);
                OBDParameterValue value12 = m_obdInterface.GetValue(parameter10);
                if (!value12.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowLTFT13 = true;
                    DisplayDetailMessage("长时燃油修正 - 组 3: " + value12.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.LTFT3 = value12.DoubleValue;
                }
            }
            OBDParameter parameter9 = m_obdInterface.LookupParameter("SAE.STFT2");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowSTFT24 = false;
            if (parameter9 != null)
            {
                parameter9 = parameter9.GetFreezeFrameCopy(0);
                OBDParameterValue value11 = m_obdInterface.GetValue(parameter9);
                if (!value11.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowSTFT24 = true;
                    DisplayDetailMessage("短时燃油修正 - 组 2: " + value11.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.STFT2 = value11.DoubleValue;
                }
            }
            OBDParameter parameter8 = m_obdInterface.LookupParameter("SAE.STFT4");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowSTFT24 = false;
            if (parameter8 != null)
            {
                parameter8 = parameter8.GetFreezeFrameCopy(0);
                OBDParameterValue value10 = m_obdInterface.GetValue(parameter8);
                if (!value10.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowSTFT24 = true;
                    DisplayDetailMessage("短时燃油修正 - 组 4: " + value10.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.STFT4 = value10.DoubleValue;
                }
            }
            OBDParameter parameter7 = m_obdInterface.LookupParameter("SAE.LTFT2");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowLTFT24 = false;
            if (parameter7 != null)
            {
                parameter7 = parameter7.GetFreezeFrameCopy(0);
                OBDParameterValue value9 = m_obdInterface.GetValue(parameter7);
                if (!value9.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowLTFT24 = true;
                    DisplayDetailMessage("长时燃油修正 - 组 2: " + value9.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.LTFT2 = value9.DoubleValue;
                }
            }
            OBDParameter parameter6 = m_obdInterface.LookupParameter("SAE.LTFT4");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowLTFT24 = false;
            if (parameter6 != null)
            {
                parameter6 = parameter6.GetFreezeFrameCopy(0);
                OBDParameterValue value8 = m_obdInterface.GetValue(parameter6);
                if (!value8.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowLTFT24 = true;
                    DisplayDetailMessage("长时燃油修正 - 组 4: " + value8.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.LTFT4 = value8.DoubleValue;
                }
            }
            OBDParameter parameter5 = m_obdInterface.LookupParameter("SAE.MAP");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowIntakePressure = false;
            if (parameter5 != null)
            {
                parameter5 = parameter5.GetFreezeFrameCopy(0);
                OBDParameterValue value7 = m_obdInterface.GetValue(parameter5);
                if (!value7.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowIntakePressure = true;
                    DisplayDetailMessage("进气歧管压力: " + value7.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.IntakePressure = value7.DoubleValue;
                }
            }
            OBDParameter parameter4 = m_obdInterface.LookupParameter("SAE.RPM");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowEngineRPM = false;
            if (parameter4 != null)
            {
                parameter4 = parameter4.GetFreezeFrameCopy(0);
                OBDParameterValue value6 = m_obdInterface.GetValue(parameter4);
                if (!value6.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowEngineRPM = true;
                    DisplayDetailMessage("发动机转数: " + value6.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.EngineRPM = value6.DoubleValue;
                }
            }
            OBDParameter parameter3 = m_obdInterface.LookupParameter("SAE.VSS");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowVehicleSpeed = false;
            if (parameter3 != null)
            {
                parameter3 = parameter3.GetFreezeFrameCopy(0);
                OBDParameterValue value5 = m_obdInterface.GetValue(parameter3);
                if (!value5.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowVehicleSpeed = true;
                    DisplayDetailMessage("车辆速度: " + value5.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.VehicleSpeed = value5.DoubleValue;
                }
            }
            OBDParameter parameter2 = m_obdInterface.LookupParameter("SAE.SPARKADV");

            this.BeginInvoke((EventHandler) delegate {
                progressBar.Value += 1;
            });
            m_bReportForm.ReportPage1.ShowSparkAdvance = false;
            if (parameter2 != null)
            {
                parameter2 = parameter2.GetFreezeFrameCopy(0);
                OBDParameterValue value4 = m_obdInterface.GetValue(parameter2);
                if (!value4.ErrorDetected)
                {
                    m_bReportForm.ReportPage1.ShowSparkAdvance = true;
                    DisplayDetailMessage("点火提前角: " + value4.DoubleValue.ToString());
                    m_bReportForm.ReportPage1.SparkAdvance = value4.DoubleValue;
                }
            }
        }