From b4f7a3480ea29ecf114f7b1b6ecdfd9863d78036 Mon Sep 17 00:00:00 2001 From: StefanKr Date: Wed, 4 Apr 2018 11:55:25 +0200 Subject: [PATCH 1/2] Added abstract pids supported and changed the way to get the supported pids --- .../OBDData/00-1F/PidsSupported01_20.cs | 35 +------------------ .../OBDData/20-3F/PidsSupported21_40.cs | 35 +------------------ .../OBDData/40-5F/PidsSupported41_60.cs | 35 +------------------ .../OBDData/60-7F/PidsSupported61_80.cs | 35 +------------------ .../OBDData/80-9F/PidsSupported81_A0.cs | 35 +------------------ .../OBDData/A0-BF/PidsSupportedA1_C0.cs | 35 +------------------ .../OBDData/AbstractPidsSupported.cs | 35 +++++++++++++++++++ .../OBDData/C0-DF/PidsSupportedC1_E0.cs | 35 +------------------ 8 files changed, 42 insertions(+), 238 deletions(-) create mode 100644 OBD.NET/OBD.NET.Common/OBDData/AbstractPidsSupported.cs diff --git a/OBD.NET/OBD.NET.Common/OBDData/00-1F/PidsSupported01_20.cs b/OBD.NET/OBD.NET.Common/OBDData/00-1F/PidsSupported01_20.cs index 7f4c234..9fb5869 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/00-1F/PidsSupported01_20.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/00-1F/PidsSupported01_20.cs @@ -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 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 PidsSupported01_20() diff --git a/OBD.NET/OBD.NET.Common/OBDData/20-3F/PidsSupported21_40.cs b/OBD.NET/OBD.NET.Common/OBDData/20-3F/PidsSupported21_40.cs index bdffe1e..b896706 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/20-3F/PidsSupported21_40.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/20-3F/PidsSupported21_40.cs @@ -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 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() diff --git a/OBD.NET/OBD.NET.Common/OBDData/40-5F/PidsSupported41_60.cs b/OBD.NET/OBD.NET.Common/OBDData/40-5F/PidsSupported41_60.cs index 98a34fa..2ae07f9 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/40-5F/PidsSupported41_60.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/40-5F/PidsSupported41_60.cs @@ -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 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() diff --git a/OBD.NET/OBD.NET.Common/OBDData/60-7F/PidsSupported61_80.cs b/OBD.NET/OBD.NET.Common/OBDData/60-7F/PidsSupported61_80.cs index d054e79..f57944b 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/60-7F/PidsSupported61_80.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/60-7F/PidsSupported61_80.cs @@ -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 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() diff --git a/OBD.NET/OBD.NET.Common/OBDData/80-9F/PidsSupported81_A0.cs b/OBD.NET/OBD.NET.Common/OBDData/80-9F/PidsSupported81_A0.cs index e79c809..357586d 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/80-9F/PidsSupported81_A0.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/80-9F/PidsSupported81_A0.cs @@ -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 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() diff --git a/OBD.NET/OBD.NET.Common/OBDData/A0-BF/PidsSupportedA1_C0.cs b/OBD.NET/OBD.NET.Common/OBDData/A0-BF/PidsSupportedA1_C0.cs index 0cb7645..8861022 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/A0-BF/PidsSupportedA1_C0.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/A0-BF/PidsSupportedA1_C0.cs @@ -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 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() diff --git a/OBD.NET/OBD.NET.Common/OBDData/AbstractPidsSupported.cs b/OBD.NET/OBD.NET.Common/OBDData/AbstractPidsSupported.cs new file mode 100644 index 0000000..cc7288b --- /dev/null +++ b/OBD.NET/OBD.NET.Common/OBDData/AbstractPidsSupported.cs @@ -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 supportedPids = new List(); + 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(); + } + } + } +} + diff --git a/OBD.NET/OBD.NET.Common/OBDData/C0-DF/PidsSupportedC1_E0.cs b/OBD.NET/OBD.NET.Common/OBDData/C0-DF/PidsSupportedC1_E0.cs index 8c3ac3a..d690e90 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/C0-DF/PidsSupportedC1_E0.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/C0-DF/PidsSupportedC1_E0.cs @@ -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 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() From b9da9787bacd7636661481088aa3bebff0584cc3 Mon Sep 17 00:00:00 2001 From: Darth Affe Date: Wed, 4 Apr 2018 20:34:21 +0200 Subject: [PATCH 2/2] Small refactorings to make the code fit the code-style of the library --- .../OBDData/00-1F/PidsSupported01_20.cs | 4 +-- .../OBDData/20-3F/PidsSupported21_40.cs | 4 +-- .../OBDData/40-5F/PidsSupported41_60.cs | 4 +-- .../OBDData/60-7F/PidsSupported61_80.cs | 4 +-- .../OBDData/80-9F/PidsSupported81_A0.cs | 4 +-- .../OBDData/A0-BF/PidsSupportedA1_C0.cs | 4 +-- .../OBDData/AbstractPidsSupported.cs | 29 +++++++++---------- .../OBDData/C0-DF/PidsSupportedC1_E0.cs | 4 +-- 8 files changed, 21 insertions(+), 36 deletions(-) diff --git a/OBD.NET/OBD.NET.Common/OBDData/00-1F/PidsSupported01_20.cs b/OBD.NET/OBD.NET.Common/OBDData/00-1F/PidsSupported01_20.cs index 9fb5869..18794e2 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/00-1F/PidsSupported01_20.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/00-1F/PidsSupported01_20.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace OBD.NET.Common.OBDData +namespace OBD.NET.Common.OBDData { public class PidsSupported01_20 : AbstractPidsSupported { diff --git a/OBD.NET/OBD.NET.Common/OBDData/20-3F/PidsSupported21_40.cs b/OBD.NET/OBD.NET.Common/OBDData/20-3F/PidsSupported21_40.cs index b896706..cc72b10 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/20-3F/PidsSupported21_40.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/20-3F/PidsSupported21_40.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace OBD.NET.Common.OBDData +namespace OBD.NET.Common.OBDData { public class PidsSupported21_40 : AbstractPidsSupported { diff --git a/OBD.NET/OBD.NET.Common/OBDData/40-5F/PidsSupported41_60.cs b/OBD.NET/OBD.NET.Common/OBDData/40-5F/PidsSupported41_60.cs index 2ae07f9..9f935a9 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/40-5F/PidsSupported41_60.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/40-5F/PidsSupported41_60.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace OBD.NET.Common.OBDData +namespace OBD.NET.Common.OBDData { public class PidsSupported41_60 : AbstractPidsSupported { diff --git a/OBD.NET/OBD.NET.Common/OBDData/60-7F/PidsSupported61_80.cs b/OBD.NET/OBD.NET.Common/OBDData/60-7F/PidsSupported61_80.cs index f57944b..a946df4 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/60-7F/PidsSupported61_80.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/60-7F/PidsSupported61_80.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace OBD.NET.Common.OBDData +namespace OBD.NET.Common.OBDData { public class PidsSupported61_80 : AbstractPidsSupported { diff --git a/OBD.NET/OBD.NET.Common/OBDData/80-9F/PidsSupported81_A0.cs b/OBD.NET/OBD.NET.Common/OBDData/80-9F/PidsSupported81_A0.cs index 357586d..cb5c658 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/80-9F/PidsSupported81_A0.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/80-9F/PidsSupported81_A0.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace OBD.NET.Common.OBDData +namespace OBD.NET.Common.OBDData { public class PidsSupported81_A0 : AbstractPidsSupported { diff --git a/OBD.NET/OBD.NET.Common/OBDData/A0-BF/PidsSupportedA1_C0.cs b/OBD.NET/OBD.NET.Common/OBDData/A0-BF/PidsSupportedA1_C0.cs index 8861022..03dbbed 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/A0-BF/PidsSupportedA1_C0.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/A0-BF/PidsSupportedA1_C0.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace OBD.NET.Common.OBDData +namespace OBD.NET.Common.OBDData { public class PidsSupportedA1_C0 : AbstractPidsSupported { diff --git a/OBD.NET/OBD.NET.Common/OBDData/AbstractPidsSupported.cs b/OBD.NET/OBD.NET.Common/OBDData/AbstractPidsSupported.cs index cc7288b..9ecd36a 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/AbstractPidsSupported.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/AbstractPidsSupported.cs @@ -1,35 +1,34 @@ -using System; -using System.Collections; +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) - { - - } + #region Properties & Fields public int[] SupportedPids { get { List supportedPids = new List(); - byte[] byteArray = new byte[] { D, C, B, A }; - var bitArray = new BitArray(byteArray); + BitArray bitArray = new BitArray(new[] { D, C, B, A }); + for (int i = 0x01; i <= 0x20; i++) - { if (bitArray.Get(bitArray.Length - i)) - { supportedPids.Add(PID + i); - } - } + return supportedPids.ToArray(); } } + + #endregion + + #region Constructors + + public AbstractPidsSupported(byte pid, int length) : base(pid, length) + { } + + #endregion } } - diff --git a/OBD.NET/OBD.NET.Common/OBDData/C0-DF/PidsSupportedC1_E0.cs b/OBD.NET/OBD.NET.Common/OBDData/C0-DF/PidsSupportedC1_E0.cs index d690e90..0e92608 100644 --- a/OBD.NET/OBD.NET.Common/OBDData/C0-DF/PidsSupportedC1_E0.cs +++ b/OBD.NET/OBD.NET.Common/OBDData/C0-DF/PidsSupportedC1_E0.cs @@ -1,6 +1,4 @@ -using System.Collections.Generic; - -namespace OBD.NET.Common.OBDData +namespace OBD.NET.Common.OBDData { public class PidsSupportedC1_E0 : AbstractPidsSupported {