diff --git a/OBD.NET/OBD.NET/OBD.NET.csproj b/OBD.NET/OBD.NET/OBD.NET.csproj
index 1822b1d..f0197ce 100644
--- a/OBD.NET/OBD.NET/OBD.NET.csproj
+++ b/OBD.NET/OBD.NET/OBD.NET.csproj
@@ -46,14 +46,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -61,16 +75,38 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -78,6 +114,7 @@
+
diff --git a/OBD.NET/OBD.NET/OBDData/AbsoluteBarometricPressure.cs b/OBD.NET/OBD.NET/OBDData/AbsoluteBarometricPressure.cs
new file mode 100644
index 0000000..d716bd2
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/AbsoluteBarometricPressure.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class AbsoluteBarometricPressure : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int Pressure => A;
+
+ #endregion
+
+ #region Constructors
+
+ public AbsoluteBarometricPressure()
+ : base(0x33, 1)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank1Sensor1.cs b/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank1Sensor1.cs
new file mode 100644
index 0000000..e01e5e0
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank1Sensor1.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class CatalystTemperatureBank1Sensor1 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Temperature => (((256 * A) + B) / 10.0) - 40;
+
+ #endregion
+
+ #region Constructors
+
+ public CatalystTemperatureBank1Sensor1()
+ : base(0x3C, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank1Sensor2.cs b/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank1Sensor2.cs
new file mode 100644
index 0000000..50fefe1
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank1Sensor2.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class CatalystTemperatureBank1Sensor2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Temperature => (((256 * A) + B) / 10.0) - 40;
+
+ #endregion
+
+ #region Constructors
+
+ public CatalystTemperatureBank1Sensor2()
+ : base(0x3D, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank2Sensor1.cs b/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank2Sensor1.cs
new file mode 100644
index 0000000..191d930
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank2Sensor1.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class CatalystTemperatureBank2Sensor1 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Temperature => (((256 * A) + B) / 10.0) - 40;
+
+ #endregion
+
+ #region Constructors
+
+ public CatalystTemperatureBank2Sensor1()
+ : base(0x3E, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank2Sensor2.cs b/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank2Sensor2.cs
new file mode 100644
index 0000000..98cf32d
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/CatalystTemperatureBank2Sensor2.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class CatalystTemperatureBank2Sensor2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Temperature => (((256 * A) + B) / 10.0) - 40;
+
+ #endregion
+
+ #region Constructors
+
+ public CatalystTemperatureBank2Sensor2()
+ : base(0x3F, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/CommandedEGR.cs b/OBD.NET/OBD.NET/OBDData/CommandedEGR.cs
new file mode 100644
index 0000000..6d82aa5
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/CommandedEGR.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class CommandedEGR : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double EGR => A / 2.55;
+
+ #endregion
+
+ #region Constructors
+
+ public CommandedEGR()
+ : base(0x2C, 1)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/CommandedEvaporativePurge.cs b/OBD.NET/OBD.NET/OBDData/CommandedEvaporativePurge.cs
new file mode 100644
index 0000000..6188da8
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/CommandedEvaporativePurge.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class CommandedEvaporativePurge : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Purge => A / 2.55;
+
+ #endregion
+
+ #region Constructors
+
+ public CommandedEvaporativePurge()
+ : base(0x2E, 1)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/DistanceTraveledSinceCodesCleared.cs b/OBD.NET/OBD.NET/OBDData/DistanceTraveledSinceCodesCleared.cs
new file mode 100644
index 0000000..a6cb67a
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/DistanceTraveledSinceCodesCleared.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class DistanceTraveledSinceCodesCleared : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int Distance => (256 * A) + B;
+
+ #endregion
+
+ #region Constructors
+
+ public DistanceTraveledSinceCodesCleared()
+ : base(0x31, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/DistanceTraveledWithMILOn.cs b/OBD.NET/OBD.NET/OBDData/DistanceTraveledWithMILOn.cs
new file mode 100644
index 0000000..2b2ae19
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/DistanceTraveledWithMILOn.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class DistanceTraveledWithMILOn : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int Distance => (256 * A) + B;
+
+ #endregion
+
+ #region Constructors
+
+ public DistanceTraveledWithMILOn()
+ : base(0x21, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/EGRError.cs b/OBD.NET/OBD.NET/OBDData/EGRError.cs
new file mode 100644
index 0000000..0f9321e
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/EGRError.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class EGRError : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Error => (A / 1.28) - 100;
+
+ #endregion
+
+ #region Constructors
+
+ public EGRError()
+ : base(0x2D, 1)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/EvapSystemVaporPressure.cs b/OBD.NET/OBD.NET/OBDData/EvapSystemVaporPressure.cs
new file mode 100644
index 0000000..5a1d9d3
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/EvapSystemVaporPressure.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class EvapSystemVaporPressure : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Pressure => ((256 * A) + B) / 4.0;
+
+ #endregion
+
+ #region Constructors
+
+ public EvapSystemVaporPressure()
+ : base(0x32, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/FuelRailGaugePressure.cs b/OBD.NET/OBD.NET/OBDData/FuelRailGaugePressure.cs
new file mode 100644
index 0000000..c9d8902
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/FuelRailGaugePressure.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class FuelRailGaugePressure : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int Pressure => 10 * ((256 * A) + B);
+
+ #endregion
+
+ #region Constructors
+
+ public FuelRailGaugePressure()
+ : base(0x23, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/FuelRailPressure.cs b/OBD.NET/OBD.NET/OBDData/FuelRailPressure.cs
new file mode 100644
index 0000000..b6a9ccb
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/FuelRailPressure.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class FuelRailPressure : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Pressure => 0.079 * ((256 * A) + B);
+
+ #endregion
+
+ #region Constructors
+
+ public FuelRailPressure()
+ : base(0x22, 2)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/FuelTankLevelInput.cs b/OBD.NET/OBD.NET/OBDData/FuelTankLevelInput.cs
new file mode 100644
index 0000000..ccc0235
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/FuelTankLevelInput.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class FuelTankLevelInput : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double Level => A / 2.55;
+
+ #endregion
+
+ #region Constructors
+
+ public FuelTankLevelInput()
+ : base(0x2F, 1)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelAir.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelAir.cs
new file mode 100644
index 0000000..18264f4
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelAir.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor1FuelAir : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Voltage => (80 / 25536.0) * ((256 * C) + D);
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor1FuelAir()
+ : base(0x24, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelAir2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelAir2.cs
new file mode 100644
index 0000000..8586b23
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelAir2.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor1FuelAir2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Current => C + (D / 256.0) - 128;
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor1FuelAir2()
+ : base(0x34, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor1.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelTrim.cs
similarity index 78%
rename from OBD.NET/OBD.NET/OBDData/OxygenSensor1.cs
rename to OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelTrim.cs
index 17ceb85..feeddf6 100644
--- a/OBD.NET/OBD.NET/OBDData/OxygenSensor1.cs
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor1FuelTrim.cs
@@ -1,6 +1,6 @@
namespace OBD.NET.OBDData
{
- public class OxygenSensor1 : AbstractOBDData
+ public class OxygenSensor1FuelTrim : AbstractOBDData
{
#region Properties & Fields
@@ -12,7 +12,7 @@
#region Constructors
- public OxygenSensor1()
+ public OxygenSensor1FuelTrim()
: base(0x14, 2)
{ }
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelAir.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelAir.cs
new file mode 100644
index 0000000..8869625
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelAir.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor2FuelAir : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Voltage => (80 / 25536.0) * ((256 * C) + D);
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor2FuelAir()
+ : base(0x25, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelAir2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelAir2.cs
new file mode 100644
index 0000000..f856dc2
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelAir2.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor2FuelAir2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Current => C + (D / 256.0) - 128;
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor2FuelAir2()
+ : base(0x35, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelTrim.cs
similarity index 78%
rename from OBD.NET/OBD.NET/OBDData/OxygenSensor2.cs
rename to OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelTrim.cs
index 99e401d..7db8ec2 100644
--- a/OBD.NET/OBD.NET/OBDData/OxygenSensor2.cs
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor2FuelTrim.cs
@@ -1,6 +1,6 @@
namespace OBD.NET.OBDData
{
- public class OxygenSensor2 : AbstractOBDData
+ public class OxygenSensor2FuelTrim : AbstractOBDData
{
#region Properties & Fields
@@ -12,7 +12,7 @@
#region Constructors
- public OxygenSensor2()
+ public OxygenSensor2FuelTrim()
: base(0x15, 2)
{ }
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelAir.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelAir.cs
new file mode 100644
index 0000000..9afd20f
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelAir.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor3FuelAir : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Voltage => (80 / 25536.0) * ((256 * C) + D);
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor3FuelAir()
+ : base(0x26, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelAir2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelAir2.cs
new file mode 100644
index 0000000..48d6a92
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelAir2.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor3FuelAir2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Current => C + (D / 256.0) - 128;
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor3FuelAir2()
+ : base(0x36, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor3.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelTrim.cs
similarity index 78%
rename from OBD.NET/OBD.NET/OBDData/OxygenSensor3.cs
rename to OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelTrim.cs
index 0c87e93..5990442 100644
--- a/OBD.NET/OBD.NET/OBDData/OxygenSensor3.cs
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor3FuelTrim.cs
@@ -1,6 +1,6 @@
namespace OBD.NET.OBDData
{
- public class OxygenSensor3 : AbstractOBDData
+ public class OxygenSensor3FuelTrim : AbstractOBDData
{
#region Properties & Fields
@@ -12,7 +12,7 @@
#region Constructors
- public OxygenSensor3()
+ public OxygenSensor3FuelTrim()
: base(0x16, 2)
{ }
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelAir.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelAir.cs
new file mode 100644
index 0000000..8a6582e
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelAir.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor4FuelAir : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Voltage => (80 / 25536.0) * ((256 * C) + D);
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor4FuelAir()
+ : base(0x27, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelAir2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelAir2.cs
new file mode 100644
index 0000000..6b038ec
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelAir2.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor4FuelAir2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Current => C + (D / 256.0) - 128;
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor4FuelAir2()
+ : base(0x37, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor4.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelTrim.cs
similarity index 78%
rename from OBD.NET/OBD.NET/OBDData/OxygenSensor4.cs
rename to OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelTrim.cs
index 6a75c2d..09ce254 100644
--- a/OBD.NET/OBD.NET/OBDData/OxygenSensor4.cs
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor4FuelTrim.cs
@@ -1,6 +1,6 @@
namespace OBD.NET.OBDData
{
- public class OxygenSensor4 : AbstractOBDData
+ public class OxygenSensor4FuelTrim : AbstractOBDData
{
#region Properties & Fields
@@ -12,7 +12,7 @@
#region Constructors
- public OxygenSensor4()
+ public OxygenSensor4FuelTrim()
: base(0x17, 2)
{ }
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelAir.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelAir.cs
new file mode 100644
index 0000000..e1f6dcc
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelAir.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor5FuelAir : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Voltage => (80 / 25536.0) * ((256 * C) + D);
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor5FuelAir()
+ : base(0x28, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelAir2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelAir2.cs
new file mode 100644
index 0000000..2f3477d
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelAir2.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor5FuelAir2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Current => C + (D / 256.0) - 128;
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor5FuelAir2()
+ : base(0x38, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor5.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelTrim.cs
similarity index 78%
rename from OBD.NET/OBD.NET/OBDData/OxygenSensor5.cs
rename to OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelTrim.cs
index e40768b..1245abf 100644
--- a/OBD.NET/OBD.NET/OBDData/OxygenSensor5.cs
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor5FuelTrim.cs
@@ -1,6 +1,6 @@
namespace OBD.NET.OBDData
{
- public class OxygenSensor5 : AbstractOBDData
+ public class OxygenSensor5FuelTrim : AbstractOBDData
{
#region Properties & Fields
@@ -12,7 +12,7 @@
#region Constructors
- public OxygenSensor5()
+ public OxygenSensor5FuelTrim()
: base(0x18, 2)
{ }
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelAir.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelAir.cs
new file mode 100644
index 0000000..687f9b0
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelAir.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor6FuelAir : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Voltage => (80 / 25536.0) * ((256 * C) + D);
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor6FuelAir()
+ : base(0x29, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelAir2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelAir2.cs
new file mode 100644
index 0000000..0286fee
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelAir2.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor6FuelAir2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Current => C + (D / 256.0) - 128;
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor6FuelAir2()
+ : base(0x39, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor6.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelTrim.cs
similarity index 78%
rename from OBD.NET/OBD.NET/OBDData/OxygenSensor6.cs
rename to OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelTrim.cs
index 3bc695e..e7e715e 100644
--- a/OBD.NET/OBD.NET/OBDData/OxygenSensor6.cs
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor6FuelTrim.cs
@@ -1,6 +1,6 @@
namespace OBD.NET.OBDData
{
- public class OxygenSensor6 : AbstractOBDData
+ public class OxygenSensor6FuelTrim : AbstractOBDData
{
#region Properties & Fields
@@ -12,7 +12,7 @@
#region Constructors
- public OxygenSensor6()
+ public OxygenSensor6FuelTrim()
: base(0x19, 2)
{ }
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelAir.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelAir.cs
new file mode 100644
index 0000000..61629d6
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelAir.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor7FuelAir : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Voltage => (80 / 25536.0) * ((256 * C) + D);
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor7FuelAir()
+ : base(0x2A, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelAir2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelAir2.cs
new file mode 100644
index 0000000..eccc6e1
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelAir2.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor7FuelAir2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Current => C + (D / 256.0) - 128;
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor7FuelAir2()
+ : base(0x3A, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor7.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelTrim.cs
similarity index 78%
rename from OBD.NET/OBD.NET/OBDData/OxygenSensor7.cs
rename to OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelTrim.cs
index fa1aba4..4000cc6 100644
--- a/OBD.NET/OBD.NET/OBDData/OxygenSensor7.cs
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor7FuelTrim.cs
@@ -1,6 +1,6 @@
namespace OBD.NET.OBDData
{
- public class OxygenSensor7 : AbstractOBDData
+ public class OxygenSensor7FuelTrim : AbstractOBDData
{
#region Properties & Fields
@@ -12,7 +12,7 @@
#region Constructors
- public OxygenSensor7()
+ public OxygenSensor7FuelTrim()
: base(0x1A, 2)
{ }
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelAir.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelAir.cs
new file mode 100644
index 0000000..42ba8ac
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelAir.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor8FuelAir : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Voltage => (80 / 25536.0) * ((256 * C) + D);
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor8FuelAir()
+ : base(0x2B, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelAir2.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelAir2.cs
new file mode 100644
index 0000000..fb99720
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelAir2.cs
@@ -0,0 +1,20 @@
+namespace OBD.NET.OBDData
+{
+ public class OxygenSensor8FuelAir2 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public double FuelAirEquivalenceRatio => (2.0 / 25536.0) * ((256 * A) + B);
+ public double Current => C + (D / 256.0) - 128;
+
+ #endregion
+
+ #region Constructors
+
+ public OxygenSensor8FuelAir2()
+ : base(0x3B, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/OxygenSensor8.cs b/OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelTrim.cs
similarity index 78%
rename from OBD.NET/OBD.NET/OBDData/OxygenSensor8.cs
rename to OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelTrim.cs
index ea9ea82..f7dfea3 100644
--- a/OBD.NET/OBD.NET/OBDData/OxygenSensor8.cs
+++ b/OBD.NET/OBD.NET/OBDData/OxygenSensor8FuelTrim.cs
@@ -1,6 +1,6 @@
namespace OBD.NET.OBDData
{
- public class OxygenSensor8 : AbstractOBDData
+ public class OxygenSensor8FuelTrim : AbstractOBDData
{
#region Properties & Fields
@@ -12,7 +12,7 @@
#region Constructors
- public OxygenSensor8()
+ public OxygenSensor8FuelTrim()
: base(0x1B, 2)
{ }
diff --git a/OBD.NET/OBD.NET/OBDData/PidsSupported01_20.cs b/OBD.NET/OBD.NET/OBDData/PidsSupported01_20.cs
index 704750d..ab2edfd 100644
--- a/OBD.NET/OBD.NET/OBDData/PidsSupported01_20.cs
+++ b/OBD.NET/OBD.NET/OBDData/PidsSupported01_20.cs
@@ -16,19 +16,19 @@ namespace OBD.NET.OBDData
{
case 0:
if ((A << (7 - i)) != 0)
- supportedPids.Add(i);
+ supportedPids.Add(PID + i);
break;
case 1:
- if ((A << (15 - i)) != 0)
- supportedPids.Add(i);
+ if ((B << (15 - i)) != 0)
+ supportedPids.Add(PID + i);
break;
case 2:
- if ((A << (23 - i)) != 0)
- supportedPids.Add(i);
+ if ((C << (23 - i)) != 0)
+ supportedPids.Add(PID + i);
break;
case 3:
- if ((A << (31 - i)) != 0)
- supportedPids.Add(i);
+ if ((D << (31 - i)) != 0)
+ supportedPids.Add(PID + i);
break;
}
return supportedPids.ToArray();
diff --git a/OBD.NET/OBD.NET/OBDData/PidsSupported21_40.cs b/OBD.NET/OBD.NET/OBDData/PidsSupported21_40.cs
new file mode 100644
index 0000000..ee87c35
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/PidsSupported21_40.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+
+namespace OBD.NET.OBDData
+{
+ public class PidsSupported21_40 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int[] SupportedPids
+ {
+ get
+ {
+ List supportedPids = new List();
+ for (int i = 0x01; i < 0x20; i++)
+ switch ((int)(i / 8.0))
+ {
+ case 0:
+ if ((A << (7 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 1:
+ if ((B << (15 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 2:
+ if ((C << (23 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 3:
+ if ((D << (31 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ }
+ return supportedPids.ToArray();
+ }
+ }
+
+ #endregion
+
+ #region Constructors
+
+ public PidsSupported21_40()
+ : base(0x20, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/PidsSupported41_60.cs b/OBD.NET/OBD.NET/OBDData/PidsSupported41_60.cs
new file mode 100644
index 0000000..6b5a386
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/PidsSupported41_60.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+
+namespace OBD.NET.OBDData
+{
+ public class PidsSupported41_60 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int[] SupportedPids
+ {
+ get
+ {
+ List supportedPids = new List();
+ for (int i = 0x01; i < 0x20; i++)
+ switch ((int)(i / 8.0))
+ {
+ case 0:
+ if ((A << (7 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 1:
+ if ((B << (15 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 2:
+ if ((C << (23 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 3:
+ if ((D << (31 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ }
+ return supportedPids.ToArray();
+ }
+ }
+
+ #endregion
+
+ #region Constructors
+
+ public PidsSupported41_60()
+ : base(0x40, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/PidsSupported61_80.cs b/OBD.NET/OBD.NET/OBDData/PidsSupported61_80.cs
new file mode 100644
index 0000000..b08282c
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/PidsSupported61_80.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+
+namespace OBD.NET.OBDData
+{
+ public class PidsSupported61_80 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int[] SupportedPids
+ {
+ get
+ {
+ List supportedPids = new List();
+ for (int i = 0x01; i < 0x20; i++)
+ switch ((int)(i / 8.0))
+ {
+ case 0:
+ if ((A << (7 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 1:
+ if ((B << (15 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 2:
+ if ((C << (23 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 3:
+ if ((D << (31 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ }
+ return supportedPids.ToArray();
+ }
+ }
+
+ #endregion
+
+ #region Constructors
+
+ public PidsSupported61_80()
+ : base(0x60, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/PidsSupported81_A0.cs b/OBD.NET/OBD.NET/OBDData/PidsSupported81_A0.cs
new file mode 100644
index 0000000..d9890a0
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/PidsSupported81_A0.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+
+namespace OBD.NET.OBDData
+{
+ public class PidsSupported81_A0 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int[] SupportedPids
+ {
+ get
+ {
+ List supportedPids = new List();
+ for (int i = 0x01; i < 0x20; i++)
+ switch ((int)(i / 8.0))
+ {
+ case 0:
+ if ((A << (7 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 1:
+ if ((B << (15 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 2:
+ if ((C << (23 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 3:
+ if ((D << (31 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ }
+ return supportedPids.ToArray();
+ }
+ }
+
+ #endregion
+
+ #region Constructors
+
+ public PidsSupported81_A0()
+ : base(0x80, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/PidsSupportedA1_C0.cs b/OBD.NET/OBD.NET/OBDData/PidsSupportedA1_C0.cs
new file mode 100644
index 0000000..dad7d21
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/PidsSupportedA1_C0.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+
+namespace OBD.NET.OBDData
+{
+ public class PidsSupportedA1_C0 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int[] SupportedPids
+ {
+ get
+ {
+ List supportedPids = new List();
+ for (int i = 0x01; i < 0x20; i++)
+ switch ((int)(i / 8.0))
+ {
+ case 0:
+ if ((A << (7 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 1:
+ if ((B << (15 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 2:
+ if ((C << (23 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 3:
+ if ((D << (31 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ }
+ return supportedPids.ToArray();
+ }
+ }
+
+ #endregion
+
+ #region Constructors
+
+ public PidsSupportedA1_C0()
+ : base(0xA0, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/PidsSupportedC1_E0.cs b/OBD.NET/OBD.NET/OBDData/PidsSupportedC1_E0.cs
new file mode 100644
index 0000000..c091848
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/PidsSupportedC1_E0.cs
@@ -0,0 +1,48 @@
+using System.Collections.Generic;
+
+namespace OBD.NET.OBDData
+{
+ public class PidsSupportedC1_E0 : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int[] SupportedPids
+ {
+ get
+ {
+ List supportedPids = new List();
+ for (int i = 0x01; i < 0x20; i++)
+ switch ((int)(i / 8.0))
+ {
+ case 0:
+ if ((A << (7 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 1:
+ if ((B << (15 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 2:
+ if ((C << (23 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ case 3:
+ if ((D << (31 - i)) != 0)
+ supportedPids.Add(PID + i);
+ break;
+ }
+ return supportedPids.ToArray();
+ }
+ }
+
+ #endregion
+
+ #region Constructors
+
+ public PidsSupportedC1_E0()
+ : base(0xC0, 4)
+ { }
+
+ #endregion
+ }
+}
diff --git a/OBD.NET/OBD.NET/OBDData/WarmUpsSinceCodesCleared.cs b/OBD.NET/OBD.NET/OBDData/WarmUpsSinceCodesCleared.cs
new file mode 100644
index 0000000..1afd458
--- /dev/null
+++ b/OBD.NET/OBD.NET/OBDData/WarmUpsSinceCodesCleared.cs
@@ -0,0 +1,19 @@
+namespace OBD.NET.OBDData
+{
+ public class WarmUpsSinceCodesCleared : AbstractOBDData
+ {
+ #region Properties & Fields
+
+ public int WarmUps => A;
+
+ #endregion
+
+ #region Constructors
+
+ public WarmUpsSinceCodesCleared()
+ : base(0x30, 1)
+ { }
+
+ #endregion
+ }
+}