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

Added abstract pids supported and changed the way to get the supported pids

This commit is contained in:
StefanKr 2018-04-04 11:55:25 +02:00
parent 43dd6968d9
commit b4f7a3480e
8 changed files with 42 additions and 238 deletions

View File

@ -2,41 +2,8 @@
namespace OBD.NET.Common.OBDData
{
public class PidsSupported01_20 : AbstractOBDData
public class PidsSupported01_20 : AbstractPidsSupported
{
#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 PidsSupported01_20()

View File

@ -2,41 +2,8 @@
namespace OBD.NET.Common.OBDData
{
public class PidsSupported21_40 : AbstractOBDData
public class PidsSupported21_40 : AbstractPidsSupported
{
#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()

View File

@ -2,41 +2,8 @@
namespace OBD.NET.Common.OBDData
{
public class PidsSupported41_60 : AbstractOBDData
public class PidsSupported41_60 : AbstractPidsSupported
{
#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()

View File

@ -2,41 +2,8 @@
namespace OBD.NET.Common.OBDData
{
public class PidsSupported61_80 : AbstractOBDData
public class PidsSupported61_80 : AbstractPidsSupported
{
#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()

View File

@ -2,41 +2,8 @@
namespace OBD.NET.Common.OBDData
{
public class PidsSupported81_A0 : AbstractOBDData
public class PidsSupported81_A0 : AbstractPidsSupported
{
#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()

View File

@ -2,41 +2,8 @@
namespace OBD.NET.Common.OBDData
{
public class PidsSupportedA1_C0 : AbstractOBDData
public class PidsSupportedA1_C0 : AbstractPidsSupported
{
#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()

View File

@ -0,0 +1,35 @@
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace OBD.NET.Common.OBDData
{
public abstract class AbstractPidsSupported : AbstractOBDData
{
public AbstractPidsSupported(byte pid, int length) : base(pid, length)
{
}
public int[] SupportedPids
{
get
{
List<int> supportedPids = new List<int>();
byte[] byteArray = new byte[] { D, C, B, A };
var bitArray = new BitArray(byteArray);
for (int i = 0x01; i <= 0x20; i++)
{
if (bitArray.Get(bitArray.Length - i))
{
supportedPids.Add(PID + i);
}
}
return supportedPids.ToArray();
}
}
}
}

View File

@ -2,41 +2,8 @@
namespace OBD.NET.Common.OBDData
{
public class PidsSupportedC1_E0 : AbstractOBDData
public class PidsSupportedC1_E0 : AbstractPidsSupported
{
#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()