private void ReadFreezeFrameData(object state) { freezeFrame.Reset(); progressBar.Value = 0; OBDParameter parameter = m_obdInterface.lookupParameter("SAE.FF_DTC"); if (parameter != null) { OBDParameter freezeFrameCopy = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value2 = m_obdInterface.getValue(freezeFrameCopy, true); if (value2.ErrorDetected) { MessageBox.Show("An error was encountered while requesting SAE.FF_DTC", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand); m_obdInterface.logItem("Error while requesting SAE.FF_DTC"); progressBar.Value = progressBar.Maximum; } else { bool flag = false; if (string.Compare(value2.StringValue, "P0000") != 0) { freezeFrame.DTC = value2.StringValue; flag = true; } progressBar.Increment(progressBar.Step); if (m_bKeepReading) { if (flag) { parameter = m_obdInterface.lookupParameter("SAE.FUEL1_STATUS"); if (parameter == null) { return; } OBDParameter param = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value17 = m_obdInterface.getValue(param, true); if (!value17.ErrorDetected) { freezeFrame.FuelSystem1Status = value17.StringValue; } parameter = m_obdInterface.lookupParameter("SAE.FUEL2_STATUS"); if (parameter == null) { return; } OBDParameter parameter16 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value16 = m_obdInterface.getValue(parameter16, true); if (!value16.ErrorDetected) { freezeFrame.FuelSystem2Status = value16.StringValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.LOAD_CALC"); if (parameter == null) { return; } OBDParameter parameter15 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value15 = m_obdInterface.getValue(parameter15, true); if (!value15.ErrorDetected) { freezeFrame.CalculatedLoad = value15.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.ECT"); if (parameter == null) { return; } OBDParameter parameter14 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value14 = m_obdInterface.getValue(parameter14, true); if (!value14.ErrorDetected) { freezeFrame.EngineCoolantTemp = value14.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.STFT1"); if (parameter == null) { return; } OBDParameter parameter13 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value13 = m_obdInterface.getValue(parameter13, true); if (!value13.ErrorDetected) { freezeFrame.STFT1 = value13.DoubleValue; } parameter = m_obdInterface.lookupParameter("SAE.STFT3"); if (parameter == null) { return; } OBDParameter parameter12 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value12 = m_obdInterface.getValue(parameter12, true); if (!value12.ErrorDetected) { freezeFrame.STFT3 = value12.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.LTFT1"); if (parameter == null) { return; } OBDParameter parameter11 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value11 = m_obdInterface.getValue(parameter11, true); if (!value11.ErrorDetected) { freezeFrame.LTFT1 = value11.DoubleValue; } parameter = m_obdInterface.lookupParameter("SAE.LTFT3"); if (parameter == null) { return; } OBDParameter parameter10 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value10 = m_obdInterface.getValue(parameter10, true); if (!value10.ErrorDetected) { freezeFrame.LTFT3 = value10.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.STFT2"); if (parameter == null) { return; } OBDParameter parameter9 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value9 = m_obdInterface.getValue(parameter9, true); if (!value9.ErrorDetected) { freezeFrame.STFT2 = value9.DoubleValue; } parameter = m_obdInterface.lookupParameter("SAE.STFT4"); if (parameter == null) { return; } OBDParameter parameter8 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value8 = m_obdInterface.getValue(parameter8, true); if (!value8.ErrorDetected) { freezeFrame.STFT4 = value8.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.LTFT2"); if (parameter == null) { return; } OBDParameter parameter7 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value7 = m_obdInterface.getValue(parameter7, true); if (!value7.ErrorDetected) { freezeFrame.LTFT2 = value7.DoubleValue; } parameter = m_obdInterface.lookupParameter("SAE.LTFT4"); if (parameter == null) { return; } OBDParameter parameter6 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value6 = m_obdInterface.getValue(parameter6, true); if (!value6.ErrorDetected) { freezeFrame.LTFT4 = value6.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.MAP"); if (parameter == null) { return; } OBDParameter parameter5 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value5 = m_obdInterface.getValue(parameter5, true); if (!value5.ErrorDetected) { freezeFrame.IntakePressure = value5.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.RPM"); if (parameter == null) { return; } OBDParameter parameter4 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value4 = m_obdInterface.getValue(parameter4, true); if (!value4.ErrorDetected) { freezeFrame.EngineRPM = value4.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.VSS"); if (parameter == null) { return; } OBDParameter parameter3 = parameter.GetFreezeFrameCopy(m_iFrameNumber); OBDParameterValue value3 = m_obdInterface.getValue(parameter3, true); if (!value3.ErrorDetected) { freezeFrame.VehicleSpeed = value3.DoubleValue; } progressBar.Increment(progressBar.Step); if (!m_bKeepReading) { return; } parameter = m_obdInterface.lookupParameter("SAE.SPARKADV"); if (parameter == null) { return; } freezeFrameCopy = parameter.GetFreezeFrameCopy(m_iFrameNumber); value2 = m_obdInterface.getValue(freezeFrameCopy, true); if (!value2.ErrorDetected) { freezeFrame.SparkAdvance = value2.DoubleValue; } progressBar.Increment(progressBar.Step); } else { MessageBox.Show(string.Format("No freeze frame information found at frame #{0}.", m_iFrameNumber), "Information", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } progressBar.Value = progressBar.Maximum; btnRefresh.Enabled = true; btnCancel.Enabled = false; } } } }
private void ReadFreezeFrameData(object state) { for (; ;) { freezeFrame.Reset(); OBDParameter parameter = m_obdInterface.LookupParameter("SAE.FF_DTC"); if (parameter == null) { MessageBox.Show( "An error was encountered while requesting SAE.FF_DTC", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand ); break; } OBDParameterValue value = m_obdInterface.getValue(parameter.GetFreezeFrameCopy(m_FrameNumber), true); if (value.ErrorDetected) { MessageBox.Show( "An error was encountered while requesting SAE.FF_DTC", "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand ); m_obdInterface.logItem("Error while requesting SAE.FF_DTC"); break; } if (string.Compare(value.StringValue, "P0000") == 0) { MessageBox.Show( string.Format("No freeze frame information found at frame #{0}.", m_FrameNumber), "Information", MessageBoxButtons.OK, MessageBoxIcon.Asterisk ); break; } 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), true); if (!value.ErrorDetected) { freezeFrame.FuelSystem1Status = value.StringValue; } parameter = m_obdInterface.LookupParameter("SAE.FUEL2_STATUS"); if (parameter == null) { break; } value = m_obdInterface.getValue(parameter.GetFreezeFrameCopy(m_FrameNumber), true); if (!value.ErrorDetected) { freezeFrame.FuelSystem2Status = value.StringValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.CalculatedLoad = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.EngineCoolantTemp = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.STFT1 = value.DoubleValue; } parameter = m_obdInterface.LookupParameter("SAE.STFT3"); if (parameter == null) { break; } value = m_obdInterface.getValue(parameter.GetFreezeFrameCopy(m_FrameNumber), true); if (!value.ErrorDetected) { freezeFrame.STFT3 = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.LTFT1 = value.DoubleValue; } parameter = m_obdInterface.LookupParameter("SAE.LTFT3"); if (parameter == null) { break; } value = m_obdInterface.getValue(parameter.GetFreezeFrameCopy(m_FrameNumber), true); if (!value.ErrorDetected) { freezeFrame.LTFT3 = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.STFT2 = value.DoubleValue; } parameter = m_obdInterface.LookupParameter("SAE.STFT4"); if (parameter == null) { break; } value = m_obdInterface.getValue(parameter.GetFreezeFrameCopy(m_FrameNumber), true); if (!value.ErrorDetected) { freezeFrame.STFT4 = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.LTFT2 = value.DoubleValue; } parameter = m_obdInterface.LookupParameter("SAE.LTFT4"); if (parameter == null) { break; } value = m_obdInterface.getValue(parameter.GetFreezeFrameCopy(m_FrameNumber), true); if (!value.ErrorDetected) { freezeFrame.LTFT4 = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.IntakePressure = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.EngineRPM = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.VehicleSpeed = value.DoubleValue; } 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), true); if (!value.ErrorDetected) { freezeFrame.SparkAdvance = value.DoubleValue; } break; } progressBar.Value = progressBar.Maximum; btnRefresh.Enabled = true; btnCancel.Enabled = false; }