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

Added second set of PIDs

This commit is contained in:
Darth Affe 2016-04-17 10:54:43 +02:00
parent 732d50ad8f
commit dd9bcf50ce
47 changed files with 961 additions and 31 deletions

View File

@ -46,14 +46,28 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Enums\Mode.cs" />
<Compile Include="OBDData\AbsoluteBarometricPressure.cs" />
<Compile Include="OBDData\AbstractOBDData.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\DistanceTraveledSinceCodesCleared.cs" />
<Compile Include="OBDData\DistanceTraveledWithMILOn.cs" />
<Compile Include="OBDData\EGRError.cs" />
<Compile Include="OBDData\EngineCoolantTemperature.cs" />
<Compile Include="OBDData\CalculatedEngineLoad.cs" />
<Compile Include="OBDData\EngineRPM.cs" />
<Compile Include="OBDData\EvapSystemVaporPressure.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\IntakeAirTemperature.cs" />
<Compile Include="OBDData\IntakeManifoldAbsolutePressure.cs" />
<Compile Include="OBDData\IOBDData.cs" />
@ -61,16 +75,38 @@
<Compile Include="OBDData\LongTermFuelTrimBank2.cs" />
<Compile Include="OBDData\MAFAirFlowRate.cs" />
<Compile Include="OBDData\OBDStandards.cs" />
<Compile Include="OBDData\OxygenSensor8.cs" />
<Compile Include="OBDData\OxygenSensor7.cs" />
<Compile Include="OBDData\OxygenSensor6.cs" />
<Compile Include="OBDData\OxygenSensor5.cs" />
<Compile Include="OBDData\OxygenSensor4.cs" />
<Compile Include="OBDData\OxygenSensor3.cs" />
<Compile Include="OBDData\OxygenSensor2.cs" />
<Compile Include="OBDData\OxygenSensor1.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\RunTimeSinceEngineStart.cs" />
<Compile Include="OBDData\ShortTermFuelTrimBank1.cs" />
@ -78,6 +114,7 @@
<Compile Include="OBDData\ThrottlePosition.cs" />
<Compile Include="OBDData\TimingAdvance.cs" />
<Compile Include="OBDData\VehicleSpeed.cs" />
<Compile Include="OBDData\WarmUpsSinceCodesCleared.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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)
{ }

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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)
{ }

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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)
{ }

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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)
{ }

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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)
{ }

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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)
{ }

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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)
{ }

View File

@ -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
}
}

View File

@ -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
}
}

View File

@ -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)
{ }

View File

@ -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();

View File

@ -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<int> supportedPids = new List<int>();
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
}
}

View File

@ -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<int> supportedPids = new List<int>();
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
}
}

View File

@ -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<int> supportedPids = new List<int>();
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
}
}

View File

@ -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<int> supportedPids = new List<int>();
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
}
}

View File

@ -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<int> supportedPids = new List<int>();
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
}
}

View File

@ -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<int> supportedPids = new List<int>();
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
}
}

View File

@ -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
}
}