1
0
mirror of https://github.com/DarthAffe/OBD.NET.git synced 2025-12-12 16:58:30 +00:00

Refactored PIDs

This commit is contained in:
Darth Affe 2016-04-18 22:46:23 +02:00
parent 1b4f77f1a8
commit b3e8e82da7
141 changed files with 1193 additions and 638 deletions

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class Count : GenericData
{
#region Constructors
public Count(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Count(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class Degree : GenericData
{
#region Constructors
public Degree(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Degree(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class DegreeCelsius : GenericData
{
#region Constructors
public DegreeCelsius(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public DegreeCelsius(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,50 @@
using System;
namespace OBD.NET.DataTypes
{
public class GenericData
{
#region Properties & Fields
public double Value { get; }
public double MinValue { get; }
public double MaxValue { get; }
public bool IsFloatingPointValue { get; }
#endregion
#region Constructors
public GenericData(double value, double minValue, double maxValue)
{
this.Value = value;
this.MinValue = minValue;
this.MaxValue = maxValue;
this.IsFloatingPointValue = true;
}
public GenericData(int value, int minValue, int maxValue)
{
this.Value = value;
this.MinValue = minValue;
this.MaxValue = maxValue;
this.IsFloatingPointValue = false;
}
#endregion
#region Operators
public static implicit operator double(GenericData p)
{
return p.Value;
}
public static implicit operator int(GenericData p)
{
return (int)Math.Round(p.Value);
}
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class GramPerSec : GenericData
{
#region Constructors
public GramPerSec(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public GramPerSec(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class Kilometre : GenericData
{
#region Constructors
public Kilometre(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Kilometre(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class KilometrePerHour : GenericData
{
#region Constructors
public KilometrePerHour(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public KilometrePerHour(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,26 @@
namespace OBD.NET.DataTypes
{
public class Kilopascal : GenericData
{
#region Constructors
public Kilopascal(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Kilopascal(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
#region Operators
public static explicit operator Pascal(Kilopascal pa)
{
return new Pascal(pa.Value / 1000.0, pa.MinValue / 1000.0, pa.MaxValue / 1000.0);
}
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class LitresPerHour : GenericData
{
#region Constructors
public LitresPerHour(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public LitresPerHour(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class Milliampere : GenericData
{
#region Constructors
public Milliampere(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Milliampere(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,28 @@
namespace OBD.NET.DataTypes
{
public class Minute : GenericData
{
#region Constructors
public Minute(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Minute(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
#region Operators
public static explicit operator Second(Minute m)
{
return m.IsFloatingPointValue
? new Second(m.Value * 60, m.MinValue * 60, m.MaxValue * 60)
: new Second((int)(m.Value * 60), (int)(m.MinValue * 60), (int)(m.MaxValue * 60));
}
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class NewtonMetre : GenericData
{
#region Constructors
public NewtonMetre(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public NewtonMetre(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,28 @@
namespace OBD.NET.DataTypes
{
public class Pascal : GenericData
{
#region Constructors
public Pascal(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Pascal(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
#region Operators
public static explicit operator Kilopascal(Pascal pa)
{
return pa.IsFloatingPointValue
? new Kilopascal(pa.Value * 1000, pa.MinValue * 1000, pa.MaxValue * 1000)
: new Kilopascal((int)(pa.Value * 1000), (int)(pa.MinValue * 1000), (int)(pa.MaxValue * 1000));
}
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class Percent : GenericData
{
#region Constructors
public Percent(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Percent(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class Ratio : GenericData
{
#region Constructors
public Ratio(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Ratio(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class RevolutionsPerMinute : GenericData
{
#region Constructors
public RevolutionsPerMinute(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public RevolutionsPerMinute(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -0,0 +1,26 @@
namespace OBD.NET.DataTypes
{
public class Second : GenericData
{
#region Constructors
public Second(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Second(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
#region Operators
public static explicit operator Minute(Second s)
{
return new Minute(s.Value / 60.0, s.MinValue / 60.0, s.MaxValue / 60.0);
}
#endregion
}
}

View File

@ -0,0 +1,17 @@
namespace OBD.NET.DataTypes
{
public class Volt : GenericData
{
#region Constructors
public Volt(double value, double minValue, double maxValue)
: base(value, minValue, maxValue)
{ }
public Volt(int value, int minValue, int maxValue)
: base(value, minValue, maxValue)
{ }
#endregion
}
}

View File

@ -45,113 +45,131 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="DataTypes\Degree.cs" />
<Compile Include="DataTypes\Minute.cs" />
<Compile Include="DataTypes\LitresPerHour.cs" />
<Compile Include="DataTypes\NewtonMetre.cs" />
<Compile Include="DataTypes\GramPerSec.cs" />
<Compile Include="DataTypes\Kilometre.cs" />
<Compile Include="DataTypes\Ratio.cs" />
<Compile Include="DataTypes\Count.cs" />
<Compile Include="DataTypes\Milliampere.cs" />
<Compile Include="DataTypes\Second.cs" />
<Compile Include="DataTypes\Volt.cs" />
<Compile Include="DataTypes\Kilopascal.cs" />
<Compile Include="DataTypes\Pascal.cs" />
<Compile Include="DataTypes\RevolutionsPerMinute.cs" />
<Compile Include="DataTypes\KilometrePerHour.cs" />
<Compile Include="DataTypes\Percent.cs" />
<Compile Include="DataTypes\DegreeCelsius.cs" />
<Compile Include="DataTypes\GenericData.cs" />
<Compile Include="Enums\Mode.cs" />
<Compile Include="OBDData\AbsoluteBarometricPressure.cs" />
<Compile Include="OBDData\AbsoluteEvapSystemVaporPressure.cs" />
<Compile Include="OBDData\AbsoluteLoadValue.cs" />
<Compile Include="OBDData\AbsoluteThrottlePositionC.cs" />
<Compile Include="OBDData\AbsoluteThrottlePositionB.cs" />
<Compile Include="OBDData\20-3F\AbsoluteBarometricPressure.cs" />
<Compile Include="OBDData\40-5F\AbsoluteEvapSystemVaporPressure.cs" />
<Compile Include="OBDData\40-5F\AbsoluteLoadValue.cs" />
<Compile Include="OBDData\40-5F\AbsoluteThrottlePositionC.cs" />
<Compile Include="OBDData\40-5F\AbsoluteThrottlePositionB.cs" />
<Compile Include="OBDData\AbstractOBDData.cs" />
<Compile Include="OBDData\AcceleratorPedalPositionF.cs" />
<Compile Include="OBDData\AcceleratorPedalPositionE.cs" />
<Compile Include="OBDData\AcceleratorPedalPositionD.cs" />
<Compile Include="OBDData\ActualEnginePercentTorque.cs" />
<Compile Include="OBDData\AmbientAirTemperature.cs" />
<Compile Include="OBDData\AuxiliaryInputStatus.cs" />
<Compile Include="OBDData\CatalystTemperatureBank2Sensor2.cs" />
<Compile Include="OBDData\CatalystTemperatureBank2Sensor1.cs" />
<Compile Include="OBDData\CatalystTemperatureBank1Sensor2.cs" />
<Compile Include="OBDData\CatalystTemperatureBank1Sensor1.cs" />
<Compile Include="OBDData\CommandedEGR.cs" />
<Compile Include="OBDData\CommandedEvaporativePurge.cs" />
<Compile Include="OBDData\CommandedSecondaryAirStatus.cs" />
<Compile Include="OBDData\CommandedThrottleActuator.cs" />
<Compile Include="OBDData\ControlModuleVoltage.cs" />
<Compile Include="OBDData\DistanceTraveledSinceCodesCleared.cs" />
<Compile Include="OBDData\DistanceTraveledWithMILOn.cs" />
<Compile Include="OBDData\DriversDemandEnginePercentTorque.cs" />
<Compile Include="OBDData\EGRError.cs" />
<Compile Include="OBDData\EmissionRequirementsToWhichVehicleIsDesigned.cs" />
<Compile Include="OBDData\EngineCoolantTemperature.cs" />
<Compile Include="OBDData\CalculatedEngineLoad.cs" />
<Compile Include="OBDData\EngineFuelRate.cs" />
<Compile Include="OBDData\EngineOilTemperature.cs" />
<Compile Include="OBDData\EnginePercentTorqueData.cs" />
<Compile Include="OBDData\EngineReferenceTorque.cs" />
<Compile Include="OBDData\EngineRPM.cs" />
<Compile Include="OBDData\EthanolFuel.cs" />
<Compile Include="OBDData\EvapSystemVaporPressure.cs" />
<Compile Include="OBDData\EvapSystemVaporPressure2.cs" />
<Compile Include="OBDData\FuelInjectionTiming.cs" />
<Compile Include="OBDData\FuelRailAbsolutePressure.cs" />
<Compile Include="OBDData\FuelType.cs" />
<Compile Include="OBDData\FuelAirCommandedEquivalenceRatio.cs" />
<Compile Include="OBDData\FuelPressure.cs" />
<Compile Include="OBDData\FuelRailGaugePressure.cs" />
<Compile Include="OBDData\FuelRailPressure.cs" />
<Compile Include="OBDData\FuelSystemStatus.cs" />
<Compile Include="OBDData\FuelTankLevelInput.cs" />
<Compile Include="OBDData\HybridBatteryPackRemainingLife.cs" />
<Compile Include="OBDData\IntakeAirTemperature.cs" />
<Compile Include="OBDData\IntakeManifoldAbsolutePressure.cs" />
<Compile Include="OBDData\40-5F\AcceleratorPedalPositionF.cs" />
<Compile Include="OBDData\40-5F\AcceleratorPedalPositionE.cs" />
<Compile Include="OBDData\40-5F\AcceleratorPedalPositionD.cs" />
<Compile Include="OBDData\60-7F\ActualEnginePercentTorque.cs" />
<Compile Include="OBDData\40-5F\AmbientAirTemperature.cs" />
<Compile Include="OBDData\00-1F\AuxiliaryInputStatus.cs" />
<Compile Include="OBDData\20-3F\CatalystTemperatureBank2Sensor2.cs" />
<Compile Include="OBDData\20-3F\CatalystTemperatureBank2Sensor1.cs" />
<Compile Include="OBDData\20-3F\CatalystTemperatureBank1Sensor2.cs" />
<Compile Include="OBDData\20-3F\CatalystTemperatureBank1Sensor1.cs" />
<Compile Include="OBDData\20-3F\CommandedEGR.cs" />
<Compile Include="OBDData\20-3F\CommandedEvaporativePurge.cs" />
<Compile Include="OBDData\00-1F\CommandedSecondaryAirStatus.cs" />
<Compile Include="OBDData\40-5F\CommandedThrottleActuator.cs" />
<Compile Include="OBDData\40-5F\ControlModuleVoltage.cs" />
<Compile Include="OBDData\20-3F\DistanceTraveledSinceCodesCleared.cs" />
<Compile Include="OBDData\20-3F\DistanceTraveledWithMILOn.cs" />
<Compile Include="OBDData\60-7F\DriversDemandEnginePercentTorque.cs" />
<Compile Include="OBDData\20-3F\EGRError.cs" />
<Compile Include="OBDData\00-1F\EngineCoolantTemperature.cs" />
<Compile Include="OBDData\00-1F\CalculatedEngineLoad.cs" />
<Compile Include="OBDData\40-5F\EngineFuelRate.cs" />
<Compile Include="OBDData\40-5F\EngineOilTemperature.cs" />
<Compile Include="OBDData\60-7F\EnginePercentTorqueData.cs" />
<Compile Include="OBDData\60-7F\EngineReferenceTorque.cs" />
<Compile Include="OBDData\00-1F\EngineRPM.cs" />
<Compile Include="OBDData\40-5F\EthanolFuel.cs" />
<Compile Include="OBDData\20-3F\EvapSystemVaporPressure.cs" />
<Compile Include="OBDData\40-5F\EvapSystemVaporPressure2.cs" />
<Compile Include="OBDData\40-5F\FuelInjectionTiming.cs" />
<Compile Include="OBDData\40-5F\FuelRailAbsolutePressure.cs" />
<Compile Include="OBDData\40-5F\FuelType.cs" />
<Compile Include="OBDData\40-5F\FuelAirCommandedEquivalenceRatio.cs" />
<Compile Include="OBDData\00-1F\FuelPressure.cs" />
<Compile Include="OBDData\20-3F\FuelRailGaugePressure.cs" />
<Compile Include="OBDData\20-3F\FuelRailPressure.cs" />
<Compile Include="OBDData\00-1F\FuelSystemStatus.cs" />
<Compile Include="OBDData\20-3F\FuelTankLevelInput.cs" />
<Compile Include="OBDData\40-5F\HybridBatteryPackRemainingLife.cs" />
<Compile Include="OBDData\00-1F\IntakeAirTemperature.cs" />
<Compile Include="OBDData\00-1F\IntakeManifoldAbsolutePressure.cs" />
<Compile Include="OBDData\IOBDData.cs" />
<Compile Include="OBDData\LongTermFuelTrimBank1.cs" />
<Compile Include="OBDData\LongTermFuelTrimBank2.cs" />
<Compile Include="OBDData\MAFAirFlowRate.cs" />
<Compile Include="OBDData\MaximumValueForAirFlowRate.cs" />
<Compile Include="OBDData\MaximumValues.cs" />
<Compile Include="OBDData\MonitorStatusThisDriveCycle.cs" />
<Compile Include="OBDData\OBDStandards.cs" />
<Compile Include="OBDData\OxygenSensor1FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor2FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor3FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor4FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor5FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor6FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor7FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor8FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor8FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor7FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor6FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor5FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor4FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor3FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor2FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor1FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor8FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor7FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor6FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor5FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor4FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor3FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor2FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor1FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensorPresent.cs" />
<Compile Include="OBDData\OxygenSensorsPresent2.cs" />
<Compile Include="OBDData\PidsSupportedC1_E0.cs" />
<Compile Include="OBDData\PidsSupportedA1_C0.cs" />
<Compile Include="OBDData\PidsSupported81_A0.cs" />
<Compile Include="OBDData\PidsSupported61_80.cs" />
<Compile Include="OBDData\PidsSupported41_60.cs" />
<Compile Include="OBDData\PidsSupported21_40.cs" />
<Compile Include="OBDData\PidsSupported01_20.cs" />
<Compile Include="OBDData\RelativeAcceleratorPedalPosition.cs" />
<Compile Include="OBDData\RelativeThrottlePosition.cs" />
<Compile Include="OBDData\RunTimeSinceEngineStart.cs" />
<Compile Include="OBDData\ShortTermFuelTrimBank1.cs" />
<Compile Include="OBDData\ShortTermFuelTrimBank2.cs" />
<Compile Include="OBDData\LongTermSecondaryOxygenSensorTrimBank13.cs" />
<Compile Include="OBDData\LongTermSecondaryOxygenSensorTrimBank24.cs" />
<Compile Include="OBDData\ShortTermSecondaryOxygenSensorTrimBank24.cs" />
<Compile Include="OBDData\ShortTermSecondaryOxygenSensorTrimBank13.cs" />
<Compile Include="OBDData\ThrottlePosition.cs" />
<Compile Include="OBDData\TimeRunWithMILOn.cs" />
<Compile Include="OBDData\TimeSinceTroubleCodesCleared.cs" />
<Compile Include="OBDData\TimingAdvance.cs" />
<Compile Include="OBDData\VehicleSpeed.cs" />
<Compile Include="OBDData\WarmUpsSinceCodesCleared.cs" />
<Compile Include="OBDData\00-1F\LongTermFuelTrimBank1.cs" />
<Compile Include="OBDData\00-1F\LongTermFuelTrimBank2.cs" />
<Compile Include="OBDData\00-1F\MAFAirFlowRate.cs" />
<Compile Include="OBDData\40-5F\MaximumValueForAirFlowRate.cs" />
<Compile Include="OBDData\40-5F\MaximumValues.cs" />
<Compile Include="OBDData\40-5F\MonitorStatusThisDriveCycle.cs" />
<Compile Include="OBDData\00-1F\OBDStandards.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor1FuelAir2.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor2FuelAir2.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor3FuelAir2.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor4FuelAir2.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor5FuelAir2.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor6FuelAir2.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor7FuelAir2.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor8FuelAir2.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor8FuelAir.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor7FuelAir.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor6FuelAir.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor5FuelAir.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor4FuelAir.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor3FuelAir.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor2FuelAir.cs" />
<Compile Include="OBDData\20-3F\OxygenSensor1FuelAir.cs" />
<Compile Include="OBDData\00-1F\OxygenSensor8FuelTrim.cs" />
<Compile Include="OBDData\00-1F\OxygenSensor7FuelTrim.cs" />
<Compile Include="OBDData\00-1F\OxygenSensor6FuelTrim.cs" />
<Compile Include="OBDData\00-1F\OxygenSensor5FuelTrim.cs" />
<Compile Include="OBDData\00-1F\OxygenSensor4FuelTrim.cs" />
<Compile Include="OBDData\00-1F\OxygenSensor3FuelTrim.cs" />
<Compile Include="OBDData\00-1F\OxygenSensor2FuelTrim.cs" />
<Compile Include="OBDData\00-1F\OxygenSensor1FuelTrim.cs" />
<Compile Include="OBDData\00-1F\OxygenSensorPresent.cs" />
<Compile Include="OBDData\00-1F\OxygenSensorsPresent2.cs" />
<Compile Include="OBDData\C0-DF\PidsSupportedC1_E0.cs" />
<Compile Include="OBDData\A0-BF\PidsSupportedA1_C0.cs" />
<Compile Include="OBDData\80-9F\PidsSupported81_A0.cs" />
<Compile Include="OBDData\60-7F\PidsSupported61_80.cs" />
<Compile Include="OBDData\40-5F\PidsSupported41_60.cs" />
<Compile Include="OBDData\20-3F\PidsSupported21_40.cs" />
<Compile Include="OBDData\00-1F\PidsSupported01_20.cs" />
<Compile Include="OBDData\40-5F\RelativeAcceleratorPedalPosition.cs" />
<Compile Include="OBDData\40-5F\RelativeThrottlePosition.cs" />
<Compile Include="OBDData\00-1F\RunTimeSinceEngineStart.cs" />
<Compile Include="OBDData\00-1F\ShortTermFuelTrimBank1.cs" />
<Compile Include="OBDData\00-1F\ShortTermFuelTrimBank2.cs" />
<Compile Include="OBDData\40-5F\LongTermSecondaryOxygenSensorTrimBank13.cs" />
<Compile Include="OBDData\40-5F\LongTermSecondaryOxygenSensorTrimBank24.cs" />
<Compile Include="OBDData\40-5F\ShortTermSecondaryOxygenSensorTrimBank24.cs" />
<Compile Include="OBDData\40-5F\ShortTermSecondaryOxygenSensorTrimBank13.cs" />
<Compile Include="OBDData\00-1F\ThrottlePosition.cs" />
<Compile Include="OBDData\40-5F\TimeRunWithMILOn.cs" />
<Compile Include="OBDData\40-5F\TimeSinceTroubleCodesCleared.cs" />
<Compile Include="OBDData\00-1F\TimingAdvance.cs" />
<Compile Include="OBDData\00-1F\VehicleSpeed.cs" />
<Compile Include="OBDData\20-3F\WarmUpsSinceCodesCleared.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.

View File

@ -0,0 +1,8 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=obddata_005Cc0_002Ddf/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=obddata_005C20_002D3f/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=obddata_005C40_002D5f/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=obddata_005C60_002D7f/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=obddata_005C80_002D9f/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=obddata_005Ca0_002Dbf/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/NamespaceProvider/NamespaceFoldersToSkip/=obddata_005C00_002D1f/@EntryIndexedValue">True</s:Boolean></wpf:ResourceDictionary>

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class CalculatedEngineLoad : AbstractOBDData
{
#region Properties & Fields
public double Load => A / 2.55;
public Percent Load => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class EngineCoolantTemperature : AbstractOBDData
{
#region Properties & Fields
public int Temperature => A - 40;
public DegreeCelsius Temperature => new DegreeCelsius(A - 40, -40, 215);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class EngineRPM : AbstractOBDData
{
#region Properties & Fields
public double RPM => ((256 * A) + B) / 4.0;
public RevolutionsPerMinute Rpm => new RevolutionsPerMinute(((256 * A) + B) / 4.0, 0, 16383.75);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class FuelPressure : AbstractOBDData
{
#region Properties & Fields
public int Pressure => 3 * A;
public Kilopascal Pressure => new Kilopascal(3 * A, 0, 765);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class IntakeAirTemperature : AbstractOBDData
{
#region Properties & Fields
public int Temperature => A - 40;
public DegreeCelsius Temperature => new DegreeCelsius(A - 40, -40, 215);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class IntakeManifoldAbsolutePressure : AbstractOBDData
{
#region Properties & Fields
public int Pressure => A;
public Kilopascal Pressure => new Kilopascal(A, 0, 255);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class LongTermFuelTrimBank1 : AbstractOBDData
{
#region Properties & Fields
public double Trim => (A / 1.28) - 100;
public Percent Trim => new Percent((A / 1.28) - 100, -100, 99.2);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class LongTermFuelTrimBank2 : AbstractOBDData
{
#region Properties & Fields
public double Trim => (A / 1.28) - 100;
public Percent Trim => new Percent((A / 1.28) - 100, -100, 99.2);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class MAFAirFlowRate : AbstractOBDData
{
#region Properties & Fields
public double Rate => ((256 * A) + B) / 100.0;
public GramPerSec Rate => new GramPerSec(((256 * A) + B) / 100.0, 0, 655.35);
#endregion

View File

@ -1,11 +1,13 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor1FuelTrim : AbstractOBDData
{
#region Properties & Fields
public double Voltage => A / 200.0;
public double ShortTermFuelTrim => (B / 1.28) - 100;
public Volt Voltage => new Volt(A / 200.0, 0, 1.275);
public Percent ShortTermFuelTrim => new Percent((B / 1.28) - 100, -100, 99.2);
public bool IsSensorUsed => B != 0xFF;
#endregion

View File

@ -1,11 +1,13 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor2FuelTrim : AbstractOBDData
{
#region Properties & Fields
public double Voltage => A / 200.0;
public double ShortTermFuelTrim => (B / 1.28) - 100;
public Volt Voltage => new Volt(A / 200.0, 0, 1.275);
public Percent ShortTermFuelTrim => new Percent((B / 1.28) - 100, -100, 99.2);
public bool IsSensorUsed => B != 0xFF;
#endregion

View File

@ -1,11 +1,13 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor3FuelTrim : AbstractOBDData
{
#region Properties & Fields
public double Voltage => A / 200.0;
public double ShortTermFuelTrim => (B / 1.28) - 100;
public Volt Voltage => new Volt(A / 200.0, 0, 1.275);
public Percent ShortTermFuelTrim => new Percent((B / 1.28) - 100, -100, 99.2);
public bool IsSensorUsed => B != 0xFF;
#endregion

View File

@ -1,11 +1,13 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor4FuelTrim : AbstractOBDData
{
#region Properties & Fields
public double Voltage => A / 200.0;
public double ShortTermFuelTrim => (B / 1.28) - 100;
public Volt Voltage => new Volt(A / 200.0, 0, 1.275);
public Percent ShortTermFuelTrim => new Percent((B / 1.28) - 100, -100, 99.2);
public bool IsSensorUsed => B != 0xFF;
#endregion

View File

@ -1,11 +1,13 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor5FuelTrim : AbstractOBDData
{
#region Properties & Fields
public double Voltage => A / 200.0;
public double ShortTermFuelTrim => (B / 1.28) - 100;
public Volt Voltage => new Volt(A / 200.0, 0, 1.275);
public Percent ShortTermFuelTrim => new Percent((B / 1.28) - 100, -100, 99.2);
public bool IsSensorUsed => B != 0xFF;
#endregion

View File

@ -1,11 +1,13 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor6FuelTrim : AbstractOBDData
{
#region Properties & Fields
public double Voltage => A / 200.0;
public double ShortTermFuelTrim => (B / 1.28) - 100;
public Volt Voltage => new Volt(A / 200.0, 0, 1.275);
public Percent ShortTermFuelTrim => new Percent((B / 1.28) - 100, -100, 99.2);
public bool IsSensorUsed => B != 0xFF;
#endregion

View File

@ -1,11 +1,13 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor7FuelTrim : AbstractOBDData
{
#region Properties & Fields
public double Voltage => A / 200.0;
public double ShortTermFuelTrim => (B / 1.28) - 100;
public Volt Voltage => new Volt(A / 200.0, 0, 1.275);
public Percent ShortTermFuelTrim => new Percent((B / 1.28) - 100, -100, 99.2);
public bool IsSensorUsed => B != 0xFF;
#endregion

View File

@ -1,11 +1,13 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor8FuelTrim : AbstractOBDData
{
#region Properties & Fields
public double Voltage => A / 200.0;
public double ShortTermFuelTrim => (B / 1.28) - 100;
public Volt Voltage => new Volt(A / 200.0, 0, 1.275);
public Percent ShortTermFuelTrim => new Percent((B / 1.28) - 100, -100, 99.2);
public bool IsSensorUsed => B != 0xFF;
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class RunTimeSinceEngineStart : AbstractOBDData
{
#region Properties & Fields
public int Runtime => (256 * A) + B;
public Second Runtime => new Second((256 * A) + B, 0, 65535);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class ShortTermFuelTrimBank1 : AbstractOBDData
{
#region Properties & Fields
public double Trim => (A / 1.28) - 100;
public Percent Trim => new Percent((A / 1.28) - 100, -100, 99.2);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class ShortTermFuelTrimBank2 : AbstractOBDData
{
#region Properties & Fields
public double Trim => (A / 1.28) - 100;
public Percent Trim => new Percent((A / 1.28) - 100, -100, 99.2);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class ThrottlePosition : AbstractOBDData
{
#region Properties & Fields
public double Position => A / 2.55;
public Percent Position => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class TimingAdvance : AbstractOBDData
{
#region Properties & Fields
public double Timing => (A / 2.0) - 64;
public Degree Timing => new Degree((A / 2.0) - 64, -64, 63.5);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class VehicleSpeed : AbstractOBDData
{
#region Properties & Fields
public int Speed => A;
public KilometrePerHour Speed => new KilometrePerHour(A, 0, 255);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AbsoluteBarometricPressure : AbstractOBDData
{
#region Properties & Fields
public int Pressure => A;
public Kilopascal Pressure => new Kilopascal(A, 0, 255);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class CatalystTemperatureBank1Sensor1 : AbstractOBDData
{
#region Properties & Fields
public double Temperature => (((256 * A) + B) / 10.0) - 40;
public DegreeCelsius Temperature => new DegreeCelsius((((256 * A) + B) / 10.0) - 40, -40, 6513.5);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class CatalystTemperatureBank1Sensor2 : AbstractOBDData
{
#region Properties & Fields
public double Temperature => (((256 * A) + B) / 10.0) - 40;
public DegreeCelsius Temperature => new DegreeCelsius((((256 * A) + B) / 10.0) - 40, -40, 6513.5);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class CatalystTemperatureBank2Sensor1 : AbstractOBDData
{
#region Properties & Fields
public double Temperature => (((256 * A) + B) / 10.0) - 40;
public DegreeCelsius Temperature => new DegreeCelsius((((256 * A) + B) / 10.0) - 40, -40, 6513.5);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class CatalystTemperatureBank2Sensor2 : AbstractOBDData
{
#region Properties & Fields
public double Temperature => (((256 * A) + B) / 10.0) - 40;
public DegreeCelsius Temperature => new DegreeCelsius((((256 * A) + B) / 10.0) - 40, -40, 6513.5);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class CommandedEGR : AbstractOBDData
{
#region Properties & Fields
public double EGR => A / 2.55;
public Percent EGR => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class CommandedEvaporativePurge : AbstractOBDData
{
#region Properties & Fields
public double Purge => A / 2.55;
public Percent Purge => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class DistanceTraveledSinceCodesCleared : AbstractOBDData
{
#region Properties & Fields
public int Distance => (256 * A) + B;
public Kilometre Distance => new Kilometre((256 * A) + B, 0, 65535);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class DistanceTraveledWithMILOn : AbstractOBDData
{
#region Properties & Fields
public int Distance => (256 * A) + B;
public Kilometre Distance => new Kilometre((256 * A) + B, 0, 65535);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class EGRError : AbstractOBDData
{
#region Properties & Fields
public double Error => (A / 1.28) - 100;
public Percent Error => new Percent((A / 1.28) - 100, -100, 99.2);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class EvapSystemVaporPressure : AbstractOBDData
{
#region Properties & Fields
public double Pressure => ((256 * A) + B) / 4.0;
public Pascal Pressure => new Pascal(((256 * A) + B) / 4.0, -8192, 8191.75);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class FuelRailGaugePressure : AbstractOBDData
{
#region Properties & Fields
public int Pressure => 10 * ((256 * A) + B);
public Kilopascal Pressure => new Kilopascal(10 * ((256 * A) + B), 0, 655350);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class FuelRailPressure : AbstractOBDData
{
#region Properties & Fields
public double Pressure => 0.079 * ((256 * A) + B);
public Kilopascal Pressure => new Kilopascal(0.079 * ((256 * A) + B), 0, 5177.265);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class FuelTankLevelInput : AbstractOBDData
{
#region Properties & Fields
public double Level => A / 2.55;
public Percent Level => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor1FuelAir : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Volt Voltage => new Volt((80 / 25536.0) * ((256 * C) + D), 0, 8 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor1FuelAir()
: base(0x24, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor1FuelAir2 : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Milliampere Current => new Milliampere(C + (D / 256.0) - 128, -128, 128 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor1FuelAir2()
: base(0x34, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor2FuelAir : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Volt Voltage => new Volt((80 / 25536.0) * ((256 * C) + D), 0, 8 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor2FuelAir()
: base(0x25, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor2FuelAir2 : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Milliampere Current => new Milliampere(C + (D / 256.0) - 128, -128, 128 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor2FuelAir2()
: base(0x35, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor3FuelAir : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Volt Voltage => new Volt((80 / 25536.0) * ((256 * C) + D), 0, 8 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor3FuelAir()
: base(0x26, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor3FuelAir2 : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Milliampere Current => new Milliampere(C + (D / 256.0) - 128, -128, 128 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor3FuelAir2()
: base(0x36, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor4FuelAir : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Volt Voltage => new Volt((80 / 25536.0) * ((256 * C) + D), 0, 8 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor4FuelAir()
: base(0x27, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor4FuelAir2 : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Milliampere Current => new Milliampere(C + (D / 256.0) - 128, -128, 128 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor4FuelAir2()
: base(0x37, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor5FuelAir : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Volt Voltage => new Volt((80 / 25536.0) * ((256 * C) + D), 0, 8 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor5FuelAir()
: base(0x28, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor5FuelAir2 : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Milliampere Current => new Milliampere(C + (D / 256.0) - 128, -128, 128 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor5FuelAir2()
: base(0x38, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor6FuelAir : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Volt Voltage => new Volt((80 / 25536.0) * ((256 * C) + D), 0, 8 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor6FuelAir()
: base(0x29, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor6FuelAir2 : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Milliampere Current => new Milliampere(C + (D / 256.0) - 128, -128, 128 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor6FuelAir2()
: base(0x39, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor7FuelAir : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Volt Voltage => new Volt((80 / 25536.0) * ((256 * C) + D), 0, 8 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor7FuelAir()
: base(0x2A, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor7FuelAir2 : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Milliampere Current => new Milliampere(C + (D / 256.0) - 128, -128, 128 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor7FuelAir2()
: base(0x3A, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor8FuelAir : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Volt Voltage => new Volt((80 / 25536.0) * ((256 * C) + D), 0, 8 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor8FuelAir()
: base(0x2B, 4)
{ }
#endregion
}
}

View File

@ -0,0 +1,22 @@
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class OxygenSensor8FuelAir2 : AbstractOBDData
{
#region Properties & Fields
public Ratio FuelAirEquivalenceRatio => new Ratio((2.0 / 25536.0) * ((256 * A) + B), 0, 2 - double.Epsilon);
public Milliampere Current => new Milliampere(C + (D / 256.0) - 128, -128, 128 - double.Epsilon);
#endregion
#region Constructors
public OxygenSensor8FuelAir2()
: base(0x3B, 4)
{ }
#endregion
}
}

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class WarmUpsSinceCodesCleared : AbstractOBDData
{
#region Properties & Fields
public int WarmUps => A;
public Count WarmUps => new Count(A, 0, 255);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AbsoluteEvapSystemVaporPressure : AbstractOBDData
{
#region Properties & Fields
public double Pressure => ((256 * A) + B) / 200.0;
public Kilopascal Pressure => new Kilopascal(((256 * A) + B) / 200.0, 0, 327.675);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AbsoluteLoadValue : AbstractOBDData
{
#region Properties & Fields
public double Load => ((256 * A) + B) / 2.55;
public Percent Load => new Percent(((256 * A) + B) / 2.55, 0, 25700);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AbsoluteThrottlePositionB : AbstractOBDData
{
#region Properties & Fields
public double Position => A / 2.55;
public Percent Position => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AbsoluteThrottlePositionC : AbstractOBDData
{
#region Properties & Fields
public double Position => A / 2.55;
public Percent Position => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AcceleratorPedalPositionD : AbstractOBDData
{
#region Properties & Fields
public double Position => A / 2.55;
public Percent Position => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AcceleratorPedalPositionE : AbstractOBDData
{
#region Properties & Fields
public double Position => A / 2.55;
public Percent Position => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AcceleratorPedalPositionF : AbstractOBDData
{
#region Properties & Fields
public double Position => A / 2.55;
public Percent Position => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class AmbientAirTemperature : AbstractOBDData
{
#region Properties & Fields
public int Temperature => A - 40;
public DegreeCelsius Temperature => new DegreeCelsius(A - 40, -40, 215);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class CommandedThrottleActuator : AbstractOBDData
{
#region Properties & Fields
public double Value => A / 2.55;
public Percent Value => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class ControlModuleVoltage : AbstractOBDData
{
#region Properties & Fields
public double Voltage => ((256 * A) + B) / 1000.0;
public Volt Voltage => new Volt(((256 * A) + B) / 1000.0, 0, 65.535);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class EngineFuelRate : AbstractOBDData
{
#region Properties & Fields
public double FuelRate => ((256 * A) + B) / 20.0;
public LitresPerHour FuelRate => new LitresPerHour(((256 * A) + B) / 20.0, 0, 3212.75);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class EngineOilTemperature : AbstractOBDData
{
#region Properties & Fields
public int Temperature => A - 40;
public DegreeCelsius Temperature => new DegreeCelsius(A - 40, -40, 210);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class EthanolFuel : AbstractOBDData
{
#region Properties & Fields
public double Value => A / 2.55;
public Percent Value => new Percent(A / 2.55, 0, 100);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class EvapSystemVaporPressure2 : AbstractOBDData
{
#region Properties & Fields
public int Pressure => ((A * 256) + B) - 32767;
public Pascal Pressure => new Pascal(((A * 256) + B) - 32767, -32767, 32768);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class FuelAirCommandedEquivalenceRatio : AbstractOBDData
{
#region Properties & Fields
public double Ratio => (2.0 / 65536.0) * ((256 * A) + B);
public Ratio Ratio => new Ratio((2.0 / 65536.0) * ((256 * A) + B), 0, 2.0 - double.Epsilon);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class FuelInjectionTiming : AbstractOBDData
{
#region Properties & Fields
public double Timing => (((256 * A) + B) / 128.0) - 210;
public Degree Timing => new Degree((((256 * A) + B) / 128.0) - 210, -210, 301.992);
#endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData
using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{
public class FuelRailAbsolutePressure : AbstractOBDData
{
#region Properties & Fields
public int Pressure => 10 * ((256 * A) + B);
public Kilopascal Pressure => new Kilopascal(10 * ((256 * A) + B), 0, 655350);
#endregion

Some files were not shown because too many files have changed in this diff Show More