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" /> <Reference Include="System.Xml" />
</ItemGroup> </ItemGroup>
<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="Enums\Mode.cs" />
<Compile Include="OBDData\AbsoluteBarometricPressure.cs" /> <Compile Include="OBDData\20-3F\AbsoluteBarometricPressure.cs" />
<Compile Include="OBDData\AbsoluteEvapSystemVaporPressure.cs" /> <Compile Include="OBDData\40-5F\AbsoluteEvapSystemVaporPressure.cs" />
<Compile Include="OBDData\AbsoluteLoadValue.cs" /> <Compile Include="OBDData\40-5F\AbsoluteLoadValue.cs" />
<Compile Include="OBDData\AbsoluteThrottlePositionC.cs" /> <Compile Include="OBDData\40-5F\AbsoluteThrottlePositionC.cs" />
<Compile Include="OBDData\AbsoluteThrottlePositionB.cs" /> <Compile Include="OBDData\40-5F\AbsoluteThrottlePositionB.cs" />
<Compile Include="OBDData\AbstractOBDData.cs" /> <Compile Include="OBDData\AbstractOBDData.cs" />
<Compile Include="OBDData\AcceleratorPedalPositionF.cs" /> <Compile Include="OBDData\40-5F\AcceleratorPedalPositionF.cs" />
<Compile Include="OBDData\AcceleratorPedalPositionE.cs" /> <Compile Include="OBDData\40-5F\AcceleratorPedalPositionE.cs" />
<Compile Include="OBDData\AcceleratorPedalPositionD.cs" /> <Compile Include="OBDData\40-5F\AcceleratorPedalPositionD.cs" />
<Compile Include="OBDData\ActualEnginePercentTorque.cs" /> <Compile Include="OBDData\60-7F\ActualEnginePercentTorque.cs" />
<Compile Include="OBDData\AmbientAirTemperature.cs" /> <Compile Include="OBDData\40-5F\AmbientAirTemperature.cs" />
<Compile Include="OBDData\AuxiliaryInputStatus.cs" /> <Compile Include="OBDData\00-1F\AuxiliaryInputStatus.cs" />
<Compile Include="OBDData\CatalystTemperatureBank2Sensor2.cs" /> <Compile Include="OBDData\20-3F\CatalystTemperatureBank2Sensor2.cs" />
<Compile Include="OBDData\CatalystTemperatureBank2Sensor1.cs" /> <Compile Include="OBDData\20-3F\CatalystTemperatureBank2Sensor1.cs" />
<Compile Include="OBDData\CatalystTemperatureBank1Sensor2.cs" /> <Compile Include="OBDData\20-3F\CatalystTemperatureBank1Sensor2.cs" />
<Compile Include="OBDData\CatalystTemperatureBank1Sensor1.cs" /> <Compile Include="OBDData\20-3F\CatalystTemperatureBank1Sensor1.cs" />
<Compile Include="OBDData\CommandedEGR.cs" /> <Compile Include="OBDData\20-3F\CommandedEGR.cs" />
<Compile Include="OBDData\CommandedEvaporativePurge.cs" /> <Compile Include="OBDData\20-3F\CommandedEvaporativePurge.cs" />
<Compile Include="OBDData\CommandedSecondaryAirStatus.cs" /> <Compile Include="OBDData\00-1F\CommandedSecondaryAirStatus.cs" />
<Compile Include="OBDData\CommandedThrottleActuator.cs" /> <Compile Include="OBDData\40-5F\CommandedThrottleActuator.cs" />
<Compile Include="OBDData\ControlModuleVoltage.cs" /> <Compile Include="OBDData\40-5F\ControlModuleVoltage.cs" />
<Compile Include="OBDData\DistanceTraveledSinceCodesCleared.cs" /> <Compile Include="OBDData\20-3F\DistanceTraveledSinceCodesCleared.cs" />
<Compile Include="OBDData\DistanceTraveledWithMILOn.cs" /> <Compile Include="OBDData\20-3F\DistanceTraveledWithMILOn.cs" />
<Compile Include="OBDData\DriversDemandEnginePercentTorque.cs" /> <Compile Include="OBDData\60-7F\DriversDemandEnginePercentTorque.cs" />
<Compile Include="OBDData\EGRError.cs" /> <Compile Include="OBDData\20-3F\EGRError.cs" />
<Compile Include="OBDData\EmissionRequirementsToWhichVehicleIsDesigned.cs" /> <Compile Include="OBDData\00-1F\EngineCoolantTemperature.cs" />
<Compile Include="OBDData\EngineCoolantTemperature.cs" /> <Compile Include="OBDData\00-1F\CalculatedEngineLoad.cs" />
<Compile Include="OBDData\CalculatedEngineLoad.cs" /> <Compile Include="OBDData\40-5F\EngineFuelRate.cs" />
<Compile Include="OBDData\EngineFuelRate.cs" /> <Compile Include="OBDData\40-5F\EngineOilTemperature.cs" />
<Compile Include="OBDData\EngineOilTemperature.cs" /> <Compile Include="OBDData\60-7F\EnginePercentTorqueData.cs" />
<Compile Include="OBDData\EnginePercentTorqueData.cs" /> <Compile Include="OBDData\60-7F\EngineReferenceTorque.cs" />
<Compile Include="OBDData\EngineReferenceTorque.cs" /> <Compile Include="OBDData\00-1F\EngineRPM.cs" />
<Compile Include="OBDData\EngineRPM.cs" /> <Compile Include="OBDData\40-5F\EthanolFuel.cs" />
<Compile Include="OBDData\EthanolFuel.cs" /> <Compile Include="OBDData\20-3F\EvapSystemVaporPressure.cs" />
<Compile Include="OBDData\EvapSystemVaporPressure.cs" /> <Compile Include="OBDData\40-5F\EvapSystemVaporPressure2.cs" />
<Compile Include="OBDData\EvapSystemVaporPressure2.cs" /> <Compile Include="OBDData\40-5F\FuelInjectionTiming.cs" />
<Compile Include="OBDData\FuelInjectionTiming.cs" /> <Compile Include="OBDData\40-5F\FuelRailAbsolutePressure.cs" />
<Compile Include="OBDData\FuelRailAbsolutePressure.cs" /> <Compile Include="OBDData\40-5F\FuelType.cs" />
<Compile Include="OBDData\FuelType.cs" /> <Compile Include="OBDData\40-5F\FuelAirCommandedEquivalenceRatio.cs" />
<Compile Include="OBDData\FuelAirCommandedEquivalenceRatio.cs" /> <Compile Include="OBDData\00-1F\FuelPressure.cs" />
<Compile Include="OBDData\FuelPressure.cs" /> <Compile Include="OBDData\20-3F\FuelRailGaugePressure.cs" />
<Compile Include="OBDData\FuelRailGaugePressure.cs" /> <Compile Include="OBDData\20-3F\FuelRailPressure.cs" />
<Compile Include="OBDData\FuelRailPressure.cs" /> <Compile Include="OBDData\00-1F\FuelSystemStatus.cs" />
<Compile Include="OBDData\FuelSystemStatus.cs" /> <Compile Include="OBDData\20-3F\FuelTankLevelInput.cs" />
<Compile Include="OBDData\FuelTankLevelInput.cs" /> <Compile Include="OBDData\40-5F\HybridBatteryPackRemainingLife.cs" />
<Compile Include="OBDData\HybridBatteryPackRemainingLife.cs" /> <Compile Include="OBDData\00-1F\IntakeAirTemperature.cs" />
<Compile Include="OBDData\IntakeAirTemperature.cs" /> <Compile Include="OBDData\00-1F\IntakeManifoldAbsolutePressure.cs" />
<Compile Include="OBDData\IntakeManifoldAbsolutePressure.cs" />
<Compile Include="OBDData\IOBDData.cs" /> <Compile Include="OBDData\IOBDData.cs" />
<Compile Include="OBDData\LongTermFuelTrimBank1.cs" /> <Compile Include="OBDData\00-1F\LongTermFuelTrimBank1.cs" />
<Compile Include="OBDData\LongTermFuelTrimBank2.cs" /> <Compile Include="OBDData\00-1F\LongTermFuelTrimBank2.cs" />
<Compile Include="OBDData\MAFAirFlowRate.cs" /> <Compile Include="OBDData\00-1F\MAFAirFlowRate.cs" />
<Compile Include="OBDData\MaximumValueForAirFlowRate.cs" /> <Compile Include="OBDData\40-5F\MaximumValueForAirFlowRate.cs" />
<Compile Include="OBDData\MaximumValues.cs" /> <Compile Include="OBDData\40-5F\MaximumValues.cs" />
<Compile Include="OBDData\MonitorStatusThisDriveCycle.cs" /> <Compile Include="OBDData\40-5F\MonitorStatusThisDriveCycle.cs" />
<Compile Include="OBDData\OBDStandards.cs" /> <Compile Include="OBDData\00-1F\OBDStandards.cs" />
<Compile Include="OBDData\OxygenSensor1FuelAir2.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor1FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor2FuelAir2.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor2FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor3FuelAir2.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor3FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor4FuelAir2.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor4FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor5FuelAir2.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor5FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor6FuelAir2.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor6FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor7FuelAir2.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor7FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor8FuelAir2.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor8FuelAir2.cs" />
<Compile Include="OBDData\OxygenSensor8FuelAir.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor8FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor7FuelAir.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor7FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor6FuelAir.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor6FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor5FuelAir.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor5FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor4FuelAir.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor4FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor3FuelAir.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor3FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor2FuelAir.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor2FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor1FuelAir.cs" /> <Compile Include="OBDData\20-3F\OxygenSensor1FuelAir.cs" />
<Compile Include="OBDData\OxygenSensor8FuelTrim.cs" /> <Compile Include="OBDData\00-1F\OxygenSensor8FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor7FuelTrim.cs" /> <Compile Include="OBDData\00-1F\OxygenSensor7FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor6FuelTrim.cs" /> <Compile Include="OBDData\00-1F\OxygenSensor6FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor5FuelTrim.cs" /> <Compile Include="OBDData\00-1F\OxygenSensor5FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor4FuelTrim.cs" /> <Compile Include="OBDData\00-1F\OxygenSensor4FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor3FuelTrim.cs" /> <Compile Include="OBDData\00-1F\OxygenSensor3FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor2FuelTrim.cs" /> <Compile Include="OBDData\00-1F\OxygenSensor2FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensor1FuelTrim.cs" /> <Compile Include="OBDData\00-1F\OxygenSensor1FuelTrim.cs" />
<Compile Include="OBDData\OxygenSensorPresent.cs" /> <Compile Include="OBDData\00-1F\OxygenSensorPresent.cs" />
<Compile Include="OBDData\OxygenSensorsPresent2.cs" /> <Compile Include="OBDData\00-1F\OxygenSensorsPresent2.cs" />
<Compile Include="OBDData\PidsSupportedC1_E0.cs" /> <Compile Include="OBDData\C0-DF\PidsSupportedC1_E0.cs" />
<Compile Include="OBDData\PidsSupportedA1_C0.cs" /> <Compile Include="OBDData\A0-BF\PidsSupportedA1_C0.cs" />
<Compile Include="OBDData\PidsSupported81_A0.cs" /> <Compile Include="OBDData\80-9F\PidsSupported81_A0.cs" />
<Compile Include="OBDData\PidsSupported61_80.cs" /> <Compile Include="OBDData\60-7F\PidsSupported61_80.cs" />
<Compile Include="OBDData\PidsSupported41_60.cs" /> <Compile Include="OBDData\40-5F\PidsSupported41_60.cs" />
<Compile Include="OBDData\PidsSupported21_40.cs" /> <Compile Include="OBDData\20-3F\PidsSupported21_40.cs" />
<Compile Include="OBDData\PidsSupported01_20.cs" /> <Compile Include="OBDData\00-1F\PidsSupported01_20.cs" />
<Compile Include="OBDData\RelativeAcceleratorPedalPosition.cs" /> <Compile Include="OBDData\40-5F\RelativeAcceleratorPedalPosition.cs" />
<Compile Include="OBDData\RelativeThrottlePosition.cs" /> <Compile Include="OBDData\40-5F\RelativeThrottlePosition.cs" />
<Compile Include="OBDData\RunTimeSinceEngineStart.cs" /> <Compile Include="OBDData\00-1F\RunTimeSinceEngineStart.cs" />
<Compile Include="OBDData\ShortTermFuelTrimBank1.cs" /> <Compile Include="OBDData\00-1F\ShortTermFuelTrimBank1.cs" />
<Compile Include="OBDData\ShortTermFuelTrimBank2.cs" /> <Compile Include="OBDData\00-1F\ShortTermFuelTrimBank2.cs" />
<Compile Include="OBDData\LongTermSecondaryOxygenSensorTrimBank13.cs" /> <Compile Include="OBDData\40-5F\LongTermSecondaryOxygenSensorTrimBank13.cs" />
<Compile Include="OBDData\LongTermSecondaryOxygenSensorTrimBank24.cs" /> <Compile Include="OBDData\40-5F\LongTermSecondaryOxygenSensorTrimBank24.cs" />
<Compile Include="OBDData\ShortTermSecondaryOxygenSensorTrimBank24.cs" /> <Compile Include="OBDData\40-5F\ShortTermSecondaryOxygenSensorTrimBank24.cs" />
<Compile Include="OBDData\ShortTermSecondaryOxygenSensorTrimBank13.cs" /> <Compile Include="OBDData\40-5F\ShortTermSecondaryOxygenSensorTrimBank13.cs" />
<Compile Include="OBDData\ThrottlePosition.cs" /> <Compile Include="OBDData\00-1F\ThrottlePosition.cs" />
<Compile Include="OBDData\TimeRunWithMILOn.cs" /> <Compile Include="OBDData\40-5F\TimeRunWithMILOn.cs" />
<Compile Include="OBDData\TimeSinceTroubleCodesCleared.cs" /> <Compile Include="OBDData\40-5F\TimeSinceTroubleCodesCleared.cs" />
<Compile Include="OBDData\TimingAdvance.cs" /> <Compile Include="OBDData\00-1F\TimingAdvance.cs" />
<Compile Include="OBDData\VehicleSpeed.cs" /> <Compile Include="OBDData\00-1F\VehicleSpeed.cs" />
<Compile Include="OBDData\WarmUpsSinceCodesCleared.cs" /> <Compile Include="OBDData\20-3F\WarmUpsSinceCodesCleared.cs" />
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it. <!-- 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. 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 public class CalculatedEngineLoad : AbstractOBDData
{ {
#region Properties & Fields #region Properties & Fields
public double Load => A / 2.55; public Percent Load => new Percent(A / 2.55, 0, 100);
#endregion #endregion

View File

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

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class EngineRPM : AbstractOBDData public class EngineRPM : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class MAFAirFlowRate : AbstractOBDData public class MAFAirFlowRate : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class CatalystTemperatureBank1Sensor1 : AbstractOBDData public class CatalystTemperatureBank1Sensor1 : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class CatalystTemperatureBank1Sensor2 : AbstractOBDData public class CatalystTemperatureBank1Sensor2 : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class CatalystTemperatureBank2Sensor1 : AbstractOBDData public class CatalystTemperatureBank2Sensor1 : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class CatalystTemperatureBank2Sensor2 : AbstractOBDData public class CatalystTemperatureBank2Sensor2 : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class EvapSystemVaporPressure : AbstractOBDData public class EvapSystemVaporPressure : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

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

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class FuelRailPressure : AbstractOBDData public class FuelRailPressure : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class FuelTankLevelInput : AbstractOBDData public class FuelTankLevelInput : AbstractOBDData
{ {
#region Properties & Fields #region Properties & Fields
public double Level => A / 2.55; public Percent Level => new Percent(A / 2.55, 0, 100);
#endregion #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 public class WarmUpsSinceCodesCleared : AbstractOBDData
{ {
#region Properties & Fields #region Properties & Fields
public int WarmUps => A; public Count WarmUps => new Count(A, 0, 255);
#endregion #endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class AbsoluteEvapSystemVaporPressure : AbstractOBDData public class AbsoluteEvapSystemVaporPressure : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class ControlModuleVoltage : AbstractOBDData public class ControlModuleVoltage : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class EngineFuelRate : AbstractOBDData public class EngineFuelRate : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

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

View File

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

View File

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

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class FuelAirCommandedEquivalenceRatio : AbstractOBDData public class FuelAirCommandedEquivalenceRatio : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

@ -1,10 +1,12 @@
namespace OBD.NET.OBDData using OBD.NET.DataTypes;
namespace OBD.NET.OBDData
{ {
public class FuelInjectionTiming : AbstractOBDData public class FuelInjectionTiming : AbstractOBDData
{ {
#region Properties & Fields #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 #endregion

View File

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

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