diff --git a/ClassDecryptString.cs b/ClassDecryptString.cs new file mode 100644 index 0000000..758ecf4 --- /dev/null +++ b/ClassDecryptString.cs @@ -0,0 +1,22 @@ +using System; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// Token: 0x020001FD RID: 509 +internal class ClassDecryptString +{ + // Token: 0x0600163F RID: 5695 RVA: 0x0016A828 File Offset: 0x00168A28 + internal static uint DecryptThisString(string string_0) + { + uint num = 0; + if (string_0 != null) + { + num = 2166136261U; + for (int i = 0; i < string_0.Length; i++) + { + num = ((uint)string_0[i] ^ num) * 16777619U; + } + } + return num; + } +} diff --git a/ClassListView.cs b/ClassListView.cs new file mode 100644 index 0000000..e08d3f4 --- /dev/null +++ b/ClassListView.cs @@ -0,0 +1,20 @@ +using System; +using System.Windows.Forms; + +internal class ClassListView : ListView +{ + public ClassListView() + { + base.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint, true); + base.SetStyle(ControlStyles.EnableNotifyMessage, true); + } + + protected virtual void OnNotifyMessage(Message m) + { + if (m.Msg != 20) + { + base.OnNotifyMessage(m); + } + } +} + diff --git a/Class_RWD.cs b/Class_RWD.cs index 7f3db96..5318332 100644 --- a/Class_RWD.cs +++ b/Class_RWD.cs @@ -22,6 +22,7 @@ static class Class_RWD private static byte[] DecodersBytes = new byte[] { }; //Used to decode rwd to bin private static byte[] EncodersBytes = new byte[] { }; //Used to encode bin to rwd private static byte[] RWD_encrypted_StartFile = new byte[] { }; //Used to encode bin to rwd + public static byte BootloaderSum = 0; private static GForm_Main GForm_Main_0; @@ -54,7 +55,7 @@ static class Class_RWD return k1; } - private static UInt16 checksum_by_sum(byte[] fw, uint start, uint end) + public static UInt16 checksum_by_sum(byte[] fw, uint start, uint end) { int s = 0; uint valuescount = (end - start) / 2; @@ -105,6 +106,8 @@ static class Class_RWD //Fix Checksums //TODO HERE ####################################### + //UInt16 thisnn = Class_RWD.checksum_by_sum(dataEncrypted, (uint)RWD_encrypted_StartFile.Length, (uint)dataEncrypted.Length); + //Console.WriteLine(thisnn.ToString("X4")); //Save Encrypted rwd firmware string ThisPath = Path.GetDirectoryName(f_name) + @"\" + Path.GetFileNameWithoutExtension(f_name) + ".rwd"; @@ -213,6 +216,7 @@ static class Class_RWD EmptyCount++; } } + //Remove Empty chars byte[] bufRedo = new byte[16 - EmptyCount]; for (int i2 = 0; i2 < bufRedo.Length; i2++) bufRedo[i2] = buf[i2]; @@ -228,12 +232,17 @@ static class Class_RWD } //Get CanAddress Infos - CanAddress = "18DA" + headers2[0].ToString("X") + "F1"; + CanAddress = "18DA" + headers2[0].ToString("X2") + "F1"; + string AdditionnalCanInfos = ""; + if (headers2[0] == 0x0e) AdditionnalCanInfos = " (CVT Transmission (maybe?))"; + if (headers2[0] == 0x10) AdditionnalCanInfos = " (Manual Transmission)"; + if (headers2[0] == 0x11) AdditionnalCanInfos = " (Automatics Transmission)"; + if (headers2[0] == 0x30) AdditionnalCanInfos = " (Electric Power Sterring)"; //Print/Log Informations GForm_Main_0.method_1("Firmware Start: 0x" + start.ToString("X")); GForm_Main_0.method_1("Firmware Size: 0x" + size.ToString("X")); - GForm_Main_0.method_1("CanAddress: 0x" + CanAddress); + GForm_Main_0.method_1("CanAddress: 0x" + CanAddress + AdditionnalCanInfos); GForm_Main_0.method_1("Software Keys: 0x" + SoftwareKey); GForm_Main_0.method_1("Supported Versions (and keys): "); for (int i = 0; i < SuppportedVersions.Length; i++) GForm_Main_0.method_1(SuppportedVersions[i] + " (0x" + SuppportedFWKeys[i] + ")"); @@ -284,6 +293,29 @@ static class Class_RWD //################################################################### //################################################################### + foreach (byte[] fc in firmware_candidates) + { + //Checksum location for SH7058 1mb rom file are located at 0x8400, it's a 1byte sum calculated from negative sum of the full binary + //Since we are missing the bootloader section of the full binary we have to remove the section 0x0000 to 0x8000(Start_Address) + //we can calculate what was the 'sum' of the bootloader by subtracting the 'sum' of the decrypted firmware! + + if (start == 0x8000) //Only SH7058 1mb file + { + byte num = GetBootloaderSum(fc); + byte num2 = GetNegativeChecksumFWBin(fc); + byte ThisSum = num; + ThisSum -= num2; + byte chk = fc[0x400]; + if (chk == ThisSum) + { + GForm_Main_0.method_1("checksums good!"); + BootloaderSum = num; + GForm_Main_0.method_1("Bootloader Sum are 0x" + BootloaderSum.ToString("X")); + } + } + } + + //############################################### /*List firmware_good = new List(); idx = 0; @@ -357,6 +389,33 @@ static class Class_RWD } } + public static byte GetBootloaderSum(byte[] FWFileBytes) + { + //############################### + //Get Checksum (sum) + byte[] BufferBytes = FWFileBytes; + byte num = BufferBytes[0x400]; + byte num2 = GetNegativeChecksumFWBin(BufferBytes); + byte BTSum = num; + BTSum += num2; + return BTSum; + //BootloaderSum = BTSum; + //GForm_Main_0.method_1("Bootloader Sum are 0x" + BootloaderSum.ToString("X")); + } + + public static byte GetNegativeChecksumFWBin(byte[] byte_1) + { + byte b = 0; + for (int i = 0; i < byte_1.Length; i++) + { + if (i != 0x400) + { + b -= byte_1[i]; + } + } + return b; + } + public static byte[] Push(byte[] bArray, byte[] newBytes) { byte[] newArray = new byte[bArray.Length + newBytes.Length]; @@ -594,12 +653,10 @@ static class Class_RWD { search_value_padded += ThisChar + "."; } - GForm_Main_0.method_1("Searching:"); - //GForm_Main_0.method_1(search_value); - //GForm_Main_0.method_1(search_value_padded); string search_exact = search_value.ToUpper(); string search_padded = search_value_padded.ToUpper(); + GForm_Main_0.method_1("Searching:"); GForm_Main_0.method_1(search_exact); GForm_Main_0.method_1(search_padded); @@ -614,29 +671,36 @@ static class Class_RWD "fn:%", //MOD }; - List keys = new List { }; + if (_keys.Length != 3) + { + GForm_Main_0.method_1("excatly three keys currently required, cannot perform decryption!"); + return new List { }; + } + //##################################################################################################### + //This code is for trying all Keys and cypher methods to find the correct decrypting cypher + /*List keys = new List { }; for (int i = 0; i < _keys.Length; i++) { string k = _keys[i].ToString("x2"); keys.Add(String.Format("val:" + k + ",sym:" + "k{0}", i)); } - - if (keys.Count != 3) - { - GForm_Main_0.method_1("excatly three keys currently required, cannot perform decryption!"); - return new List { }; - //return null; - } - - List firmware_candidates_0 = new List { }; - string[] key_perms = prnPermut(keys.ToArray()); - string[] op_perms = prnPermutALL(operators); - - //Console.WriteLine(key_perms.Length); - //Console.WriteLine(op_perms.Length); + string[] op_perms = prnPermutALL(operators);*/ + //##################################################################################################### + //BUT the cypher seem to always be: (((i ^ k2) + k1) - k0) & 0xFF so use this code instead for 1000x faster decryption + string KeyPermStr = ""; + for (int i = _keys.Length - 1; i >= 0; i--) + { + string k = _keys[i].ToString("x2"); + KeyPermStr += String.Format("val:" + k + ",sym:" + "k{0}", i) + "|"; + } + string OPPermStr = "fn:^,o1|fn:+,o2|fn:-,o3|"; + string[] key_perms = new string[] { KeyPermStr }; + string[] op_perms = new string[] { OPPermStr }; + //##################################################################################################### List display_ciphers = new List { }; + List firmware_candidates_0 = new List { }; List attempted_decoders = new List { }; int CurrentDone = 0; diff --git a/FlashToolTest.csproj b/FlashToolTest.csproj index 2178ac9..7a2e1b0 100644 --- a/FlashToolTest.csproj +++ b/FlashToolTest.csproj @@ -38,6 +38,9 @@ hnet.com-image.ico + + app.manifest + .\DarkUI.dll @@ -58,10 +61,24 @@ + + + Component + + + Form + + + + + + + Form + Form @@ -75,7 +92,17 @@ Form + + Form + + + UserControl + + + + GForm_FWChkSum.cs + GForm_ConvertBIN.cs @@ -98,6 +125,7 @@ Resources.resx True + SettingsSingleFileGenerator Settings.Designer.cs @@ -116,6 +144,9 @@ Always + + Always + \ No newline at end of file diff --git a/GClass3.cs b/GClass3.cs new file mode 100644 index 0000000..23c9c3f --- /dev/null +++ b/GClass3.cs @@ -0,0 +1,139 @@ +using System; +using System.ComponentModel; +using System.Drawing; + +[TypeConverter(typeof(ExpandableObjectConverter))] +public class GClass3 +{ + private GClass4 gclass4_0 = new GClass4(); + private GClass4 gclass4_1 = new GClass4(); + private GClass4 gclass4_2 = new GClass4(); + private GClass4 gclass4_3 = new GClass4(); + private Color color_0 = Color.DarkGreen; + private Color color_1 = Color.DarkGreen; + private bool bool_0 = true; + private bool bool_1 = true; + private bool bool_2 = true; + private bool bool_3 = true; + + public bool Boolean_0 + { + get + { + return this.bool_0; + } + set + { + this.bool_0 = value; + } + } + + public bool Boolean_1 + { + get + { + return this.bool_1; + } + set + { + this.bool_1 = value; + } + } + + public bool Boolean_2 + { + get + { + return this.bool_2; + } + set + { + this.bool_2 = value; + } + } + + public GClass4 GClass4_0 + { + get + { + return this.gclass4_0; + } + set + { + this.gclass4_0 = value; + } + } + + public GClass4 GClass4_1 + { + get + { + return this.gclass4_1; + } + set + { + this.gclass4_1 = value; + } + } + + public GClass4 GClass4_2 + { + get + { + return this.gclass4_2; + } + set + { + this.gclass4_2 = value; + } + } + + public GClass4 GClass4_3 + { + get + { + return this.gclass4_3; + } + set + { + this.gclass4_3 = value; + } + } + + public bool Boolean_3 + { + get + { + return this.bool_3; + } + set + { + this.bool_3 = value; + } + } + + public Color Color_0 + { + get + { + return this.color_0; + } + set + { + this.color_0 = value; + } + } + + public Color Color_1 + { + get + { + return this.color_1; + } + set + { + this.color_1 = value; + } + } +} + diff --git a/GClass4.cs b/GClass4.cs new file mode 100644 index 0000000..9722957 --- /dev/null +++ b/GClass4.cs @@ -0,0 +1,56 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; + +[TypeConverter(typeof(ExpandableObjectConverter))] +public class GClass4 +{ + private Pen pen_0 = new Pen(Color.Black); + + public Color Color_0 + { + get + { + return this.pen_0.Color; + } + set + { + this.pen_0.Color = value; + } + } + + public DashStyle DashStyle_0 + { + get + { + return this.pen_0.DashStyle; + } + set + { + this.pen_0.DashStyle = value; + } + } + + public float Single_0 + { + get + { + return this.pen_0.Width; + } + set + { + this.pen_0.Width = value; + } + } + + [EditorBrowsable(EditorBrowsableState.Never), Browsable(false)] + public Pen Pen_0 + { + get + { + return this.pen_0; + } + } +} + diff --git a/GEnum0.cs b/GEnum0.cs new file mode 100644 index 0000000..bec5e12 --- /dev/null +++ b/GEnum0.cs @@ -0,0 +1,8 @@ +using System; + +public enum GEnum0 +{ + Absolute, + Relative +} + diff --git a/GEnum1.cs b/GEnum1.cs new file mode 100644 index 0000000..e964a3b --- /dev/null +++ b/GEnum1.cs @@ -0,0 +1,10 @@ +using System; + +public enum GEnum1 +{ + Disabled, + Simple, + SynchronizedAverage, + SynchronizedSum +} + diff --git a/GForm_FWChkSum.cs b/GForm_FWChkSum.cs new file mode 100644 index 0000000..071918c --- /dev/null +++ b/GForm_FWChkSum.cs @@ -0,0 +1,195 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Runtime.CompilerServices; +using System.Windows.Forms; +using DarkUI.Controls; +using DarkUI.Forms; + + +public class GForm_FWChkSum : DarkForm +{ + + public GForm_FWChkSum() + { + this.InitializeComponent(); + } + + public string FileBIN { get; set; } + public string FileRWD { get; set; } + + private void method_0(object sender, EventArgs e) + { + this.FileBIN = this.textBox_bin.Text; + this.FileRWD = this.textBox_rwd.Text; + base.Close(); + } + + private void method_1(object sender, EventArgs e) + { + if (this.FileBIN != "") this.textBox_bin.Text = this.FileBIN; + + } + + private void method_2(object sender, EventArgs e) + { + base.DialogResult = DialogResult.Abort; + base.Close(); + } + + protected virtual void Dispose(bool disposing) + { + if (disposing && this.icontainer_0 != null) + { + this.icontainer_0.Dispose(); + } + base.Dispose(disposing); + } + + private void InitializeComponent() + { + this.darkButton_0 = new DarkUI.Controls.DarkButton(); + this.darkButton_1 = new DarkUI.Controls.DarkButton(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.textBox_bin = new System.Windows.Forms.TextBox(); + this.textBox_rwd = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.SuspendLayout(); + // + // darkButton_0 + // + this.darkButton_0.Checked = false; + this.darkButton_0.DialogResult = System.Windows.Forms.DialogResult.OK; + this.darkButton_0.Location = new System.Drawing.Point(257, 154); + this.darkButton_0.Name = "darkButton_0"; + this.darkButton_0.Size = new System.Drawing.Size(75, 23); + this.darkButton_0.TabIndex = 4; + this.darkButton_0.Text = "Accept"; + this.darkButton_0.Click += new System.EventHandler(this.method_0); + // + // darkButton_1 + // + this.darkButton_1.Checked = false; + this.darkButton_1.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.darkButton_1.Location = new System.Drawing.Point(12, 154); + this.darkButton_1.Name = "darkButton_1"; + this.darkButton_1.Size = new System.Drawing.Size(75, 23); + this.darkButton_1.TabIndex = 5; + this.darkButton_1.Text = "Cancel"; + this.darkButton_1.Click += new System.EventHandler(this.method_2); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.ForeColor = System.Drawing.SystemColors.ControlLight; + this.label1.Location = new System.Drawing.Point(12, 61); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(267, 13); + this.label1.TabIndex = 6; + this.label1.Text = "Select decrypted firmware .bin file (file to fix checksum):"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.ForeColor = System.Drawing.SystemColors.ControlLight; + this.label2.Location = new System.Drawing.Point(12, 106); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(171, 13); + this.label2.TabIndex = 7; + this.label2.Text = "Select encrypted firmware .rwd file:"; + // + // textBox_bin + // + this.textBox_bin.Location = new System.Drawing.Point(12, 79); + this.textBox_bin.Name = "textBox_bin"; + this.textBox_bin.Size = new System.Drawing.Size(320, 20); + this.textBox_bin.TabIndex = 8; + this.textBox_bin.DoubleClick += new System.EventHandler(this.textBox_bin_DoubleClick); + // + // textBox_rwd + // + this.textBox_rwd.Location = new System.Drawing.Point(12, 124); + this.textBox_rwd.Name = "textBox_rwd"; + this.textBox_rwd.Size = new System.Drawing.Size(320, 20); + this.textBox_rwd.TabIndex = 9; + this.textBox_rwd.DoubleClick += new System.EventHandler(this.textBox_rwd_DoubleClick); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.ForeColor = System.Drawing.SystemColors.ControlLight; + this.label3.Location = new System.Drawing.Point(30, 10); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(285, 39); + this.label3.TabIndex = 10; + this.label3.Text = "To fix a firmware decrypted .bin checksum, you must select\r\nthe .rwd firmware fro" + + "m which it has been decrypted from in\r\norder to apply the correct checksum value" + + ""; + this.label3.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // openFileDialog1 + // + this.openFileDialog1.Title = "Select File"; + // + // GForm_FWChkSum + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(344, 187); + this.ControlBox = false; + this.Controls.Add(this.label3); + this.Controls.Add(this.textBox_rwd); + this.Controls.Add(this.textBox_bin); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.darkButton_1); + this.Controls.Add(this.darkButton_0); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "GForm_FWChkSum"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Fix decrypted firmware .bin checksum"; + this.Load += new System.EventHandler(this.method_1); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + [CompilerGenerated] + private IContainer icontainer_0; + private DarkButton darkButton_0; + private Label label1; + private Label label2; + private TextBox textBox_bin; + private TextBox textBox_rwd; + private Label label3; + private OpenFileDialog openFileDialog1; + private DarkButton darkButton_1; + + private void textBox_bin_DoubleClick(object sender, EventArgs e) + { + this.openFileDialog1.Filter = "Honda decompressed firmware binary|*.bin"; + this.openFileDialog1.DefaultExt = "*.bin"; + + DialogResult result = this.openFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + this.textBox_bin.Text = this.openFileDialog1.FileName; + } + } + + private void textBox_rwd_DoubleClick(object sender, EventArgs e) + { + this.openFileDialog1.Filter = "Honda compressed firmware file|*.rwd;*.gz"; + this.openFileDialog1.DefaultExt = "*.gz"; + + DialogResult result = this.openFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + this.textBox_rwd.Text = this.openFileDialog1.FileName; + } + } +} diff --git a/GForm_FWChkSum.resx b/GForm_FWChkSum.resx new file mode 100644 index 0000000..3a7d671 --- /dev/null +++ b/GForm_FWChkSum.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/GForm_Main.cs b/GForm_Main.cs index 2036bc8..a1fb2ca 100644 --- a/GForm_Main.cs +++ b/GForm_Main.cs @@ -24,6 +24,9 @@ public class GForm_Main : DarkForm bool WritingBinaryMode = true; //if false we are in writing firmware mode private DarkButton darkButton_FlashFW; GForm_Main GForm_Main_0; + private DarkGroupBox DarkgroupBox1; + private DarkButton darkButton4; + private DarkButton darkButton5; private DarkButton darkButton3; public GForm_Main() @@ -68,6 +71,7 @@ public class GForm_Main : DarkForm public void method_1(string string_3) { + //With newline automaticly added Console.WriteLine(string_3); GForm_Main.Class5 @class = new GForm_Main.Class5(); @class.gform0_0 = this; @@ -81,9 +85,9 @@ public class GForm_Main : DarkForm APIInfo[] apilist = APIFactory.GetAPIList(); APIInfo apiinfo = apilist[0]; DarkTextBox darkTextBox = this.darkTextBox_0; - Console.Write(apiinfo.Name + Environment.NewLine); - Console.Write("Filename:" + apiinfo.Filename + Environment.NewLine); - Console.Write(apiinfo.Details + Environment.NewLine); + Console.WriteLine(apiinfo.Name); + Console.WriteLine("Filename:" + apiinfo.Filename); + Console.WriteLine(apiinfo.Details); darkTextBox.Text = darkTextBox.Text + apiinfo.Name + Environment.NewLine; darkTextBox.Text = darkTextBox.Text + "Filename:" + apiinfo.Filename + Environment.NewLine; darkTextBox.Text = darkTextBox.Text + apiinfo.Details + Environment.NewLine; @@ -100,9 +104,7 @@ public class GForm_Main : DarkForm darkButton1.Enabled = true; darkButton_4.Enabled = true; darkButton_0.Enabled = true; - return; } - this.darkTextBox_0.Text = "Couldn't open device selection form"; } @@ -174,7 +176,7 @@ public class GForm_Main : DarkForm byte[] bytes = new byte[0x10]; Array.Copy(Received, 8, bytes, 0, 0x10); this.darkTextBox_1.Text = Encoding.ASCII.GetString(bytes); //Display VIN number - this.method_1("VIN:" + Encoding.ASCII.GetString(bytes) + Environment.NewLine); + this.method_1("VIN:" + Encoding.ASCII.GetString(bytes)); num2 = 1; } //############################################################# @@ -192,14 +194,14 @@ public class GForm_Main : DarkForm byte[] bytes = new byte[0x10]; Array.Copy(Received, 7, bytes, 0, 0x10); this.darkTextBox_2.Text = Encoding.ASCII.GetString(bytes); //Display CAL_ID Number - this.method_1("ID:" + Encoding.ASCII.GetString(bytes) + Environment.NewLine); - this.method_1("Vehicle is Online" + Environment.NewLine); + this.method_1("ID:" + Encoding.ASCII.GetString(bytes)); + this.method_1("Vehicle is Online"); num2 = 2; } //############################################################# if (num2 == 1) { - this.method_1("Vehicle is in recovery mode?" + Environment.NewLine); + this.method_1("Vehicle is in recovery mode?"); DarkMessageBox.Show(this, "Failed to retrieve vin number, assuming recovery mode, read disabled", "RECOVERY MODE", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else if (num2 != 2) @@ -277,6 +279,7 @@ public class GForm_Main : DarkForm return; } File.WriteAllBytes(saveFileDialog.FileName, byte_12); + this.method_1("File saved: " + saveFileDialog.FileName); DarkMessageBox.Show(this, "Successfully Saved File!", "Success", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.darkButton_DownloadROM.Enabled = false; this.darkButton_Unlock41.Enabled = false; @@ -386,7 +389,7 @@ public class GForm_Main : DarkForm byte[] Received = SendJ2534Message(channel, arraySend1); if (Received != null) { - this.method_1("Diag Mode Set" + Environment.NewLine); + this.method_1("Diag Mode Set"); } //################################################################ arraySend1 = new byte[] @@ -396,7 +399,7 @@ public class GForm_Main : DarkForm }; byte SeedSendByte = this.Unlocking_Mode; arraySend1[1] = SeedSendByte; - this.method_1("Requesting Seed" + Environment.NewLine); + this.method_1("Requesting Seed"); Received = SendJ2534Message(channel, arraySend1); byte[] byte_ = new byte[] @@ -430,8 +433,8 @@ public class GForm_Main : DarkForm Array.Reverse(array6); } - this.method_1("Security Request - Seed Bytes:" + GForm_Main.smethod_1(array6) + Environment.NewLine); - if (!TwoBytesMode) this.method_1("Security Request - Algorithm:" + b.ToString("X2") + Environment.NewLine); + this.method_1("Security Request - Seed Bytes:" + GForm_Main.smethod_1(array6)); + if (!TwoBytesMode) this.method_1("Security Request - Algorithm:" + b.ToString("X2")); break; } array6[index] = Received[(index + num) + 2]; @@ -447,7 +450,7 @@ public class GForm_Main : DarkForm else value = Class_Cypher.GetKey01(array6, darkTextBox_2.Text); byte[] bytes = BitConverter.GetBytes(value); - this.method_1("Security Request - Key to Send:" + GForm_Main.smethod_1(bytes) + Environment.NewLine); + this.method_1("Security Request - Key to Send:" + GForm_Main.smethod_1(bytes)); arraySend1 = new byte[] { @@ -480,7 +483,7 @@ public class GForm_Main : DarkForm int num = GForm_Main.smethod_2(Received, byte_2, 0); //looking for 0x67, 0x42 if (num > 0) { - this.method_1("Security Authorized: ECU Unlocked" + Environment.NewLine); + this.method_1("Security Authorized: ECU Unlocked"); ECU_Unlocked = true; if (!TwoBytesMode) { @@ -497,7 +500,7 @@ public class GForm_Main : DarkForm } else { - this.method_1("Recv:" + GForm_Main.smethod_1(Received) + Environment.NewLine); + this.method_1("Recv:" + GForm_Main.smethod_1(Received)); ECU_Unlocked = false; this.darkButton_DownloadROM.Enabled = false; this.darkButton_FlashRom.Enabled = false; @@ -508,7 +511,7 @@ public class GForm_Main : DarkForm } else { - this.method_1("Result NOT OK!!" + Environment.NewLine); + this.method_1("Result NOT OK!!"); } } } @@ -542,13 +545,13 @@ public class GForm_Main : DarkForm //Send message SAE.J2534.Message messageCommands = new SAE.J2534.Message(arrayCommand, TxFlag.CAN_29BIT_ID | TxFlag.ISO15765_FRAME_PAD); channel.SendMessage(messageCommands); - this.method_1("Send:" + GForm_Main.smethod_1(messageCommands.Data) + Environment.NewLine); + this.method_1("Send:" + GForm_Main.smethod_1(messageCommands.Data)); //Receive message GetMessageResults messagesReceived = channel.GetMessages(3, 1000); if (messagesReceived.Result.IsOK()) { - //this.method_1("Programming Mode Set!" + Environment.NewLine); + //this.method_1("Programming Mode Set!"); int IndexReceived = 1; foreach (SAE.J2534.Message message3 in messagesReceived.Messages) { @@ -563,11 +566,11 @@ public class GForm_Main : DarkForm Class_ODB.Mode mode = (Class_ODB.Mode)this.byte_6[0]; string str2 = mode.ToString(); Class_ODB.NegativeResponse negativeResponse = (Class_ODB.NegativeResponse)this.byte_6[1]; - this.method_1("BAD Response: " + str2 + "|" + negativeResponse.ToString() + Environment.NewLine); + this.method_1("BAD Response: " + str2 + "|" + negativeResponse.ToString()); } if (IndexReceived >= 3) { - this.method_1("Recv:" + GForm_Main.smethod_1(message3.Data) + Environment.NewLine); + this.method_1("Recv:" + GForm_Main.smethod_1(message3.Data)); return message3.Data; //after 3messages received, return the last messages bytes } IndexReceived++; @@ -575,7 +578,7 @@ public class GForm_Main : DarkForm } else { - this.method_1("Result NOT OK!!" + Environment.NewLine); + this.method_1("Result NOT OK!!"); } return null; } @@ -961,30 +964,113 @@ public class GForm_Main : DarkForm } } - public int Check_Checksum(byte[] byte_1) + public byte GetNegativeChecksumFullBin(byte[] byte_1) { byte b = 0; for (int i = 0; i < byte_1.Length; i++) { - if (i != 33792) //0x8400 + if (i != 0x8400) { b -= byte_1[i]; } } - return (int)b; + return b; } - public int GetChecksum(byte[] byte_1) + public byte GetNegativeChecksumArea(byte[] byte_1, int Start, int ChecksumLocation) { byte b = 0; - for (int i = 0; i < byte_1.Length; i++) + for (int i = Start; i < byte_1.Length; i++) { - if (i != 33792) //0x8400 + if (i != ChecksumLocation) { b -= byte_1[i]; } } - return (int)b; + return b; + } + + public byte[] VerifyChecksumFullBin(byte[] BinFileBytes) + { + //############################### + //Get Checksum and Fix it for 0x8400 + byte[] BufferBytes = BinFileBytes; + int CheckLocation = 0x8400; + byte num = BufferBytes[CheckLocation]; + byte num2 = GetNegativeChecksumArea(BufferBytes, 0, CheckLocation); + //byte num2 = this.GetNegativeChecksumFullBin(BufferBytes); + if (num != num2) + { + this.method_1("Checksum miss match."); + BufferBytes[0x8400] = num2; + this.method_1("Checksum fixed at 0x" + CheckLocation.ToString("X") + " | Checksum: 0x" + num2.ToString("X2")); + } + else + { + this.method_1("Checksum are good at 0x" + CheckLocation.ToString("X") + " | Checksum: 0x" + num2.ToString("X2")); + } + //######################################################## + //######################################################## + //Verify for 0x10400 + CheckLocation = 0x10400; + num = BufferBytes[CheckLocation]; + num2 = GetNegativeChecksumArea(BufferBytes, 0x8000, CheckLocation); + if (num != num2) + { + this.method_1("Checksum miss match."); + BufferBytes[CheckLocation] = num2; + this.method_1("Checksum fixed at 0x" + CheckLocation.ToString("X") + " | Checksum: 0x" + num2.ToString("X2")); + } + else + { + this.method_1("Checksum are good at 0x" + CheckLocation.ToString("X") + " | Checksum: 0x" + num2.ToString("X2")); + } + //######################################################## + //######################################################## + return BufferBytes; + } + + public byte[] VerifyChecksumFWBin(byte[] FWFileBytes) + { + //############################### + //Get Checksum and Fix it at 0x400 (0x8400 in full bin) + byte[] BufferBytes = FWFileBytes; + + byte num = Class_RWD.BootloaderSum; + byte num2 = Class_RWD.GetNegativeChecksumFWBin(BufferBytes); + byte ThisSum = num; + ThisSum -= num2; + int CheckLocation = 0x400; + byte chk = BufferBytes[CheckLocation]; + if (chk != ThisSum) + { + this.method_1("Checksum miss match."); + BufferBytes[0x400] = ThisSum; + this.method_1("Checksum fixed at 0x" + CheckLocation.ToString("X") + " | Checksum: 0x" + num2.ToString("X2")); + } + else + { + GForm_Main_0.method_1("checksum good at 0x" + CheckLocation.ToString("X") + " | Checksum: 0x" + num2.ToString("X2")); + } + //######################################################## + //######################################################## + //Verify for 0x8400 (0x10400 in full bin) + CheckLocation = 0x8400; + num = BufferBytes[CheckLocation]; + num2 = GetNegativeChecksumArea(BufferBytes, 0, CheckLocation); + if (num != num2) + { + this.method_1("Checksum miss match."); + BufferBytes[CheckLocation] = num2; + this.method_1("Checksum fixed at 0x" + CheckLocation.ToString("X") + " | Checksum: 0x" + num2.ToString("X2")); + } + else + { + this.method_1("Checksum are good at 0x" + CheckLocation.ToString("X") + " | Checksum: 0x" + num2.ToString("X2")); + } + //######################################################## + //######################################################## + return BufferBytes; } @@ -1002,18 +1088,8 @@ public class GForm_Main : DarkForm WritingBinaryMode = true; //############################### - //Get Checksum and Fix it - int num = (int) byte_ToWrite[33792]; - int num2 = this.GetChecksum(byte_ToWrite); - if (num != num2) - { - DialogResult dialogResult = MessageBox.Show("Checksum miss match." + Environment.NewLine + "Do you want to correct it?", "Checksum Error.", MessageBoxButtons.YesNo, MessageBoxIcon.Hand); - if (dialogResult == DialogResult.Yes) - { - byte_ToWrite[33792] = (byte)num2; - } - } - //############################### + //Get/Fix Checksums + byte_ToWrite = VerifyChecksumFullBin(byte_ToWrite); if (MessageBox.Show("Are you sure you want to write this file to ECU?", "Flash Tool", MessageBoxButtons.YesNo) == DialogResult.Yes) { @@ -1173,7 +1249,7 @@ public class GForm_Main : DarkForm byte[] Received = SendJ2534Message(channel, arraySend1); if (Received != null) { - this.method_1("Programming Mode Set!" + Environment.NewLine); + this.method_1("Programming Mode Set!"); } //################### //Erase Memory @@ -1189,7 +1265,7 @@ public class GForm_Main : DarkForm Received = SendJ2534Message(channel, arraySend1); if (Received != null) { - this.method_1("Memory Erased!" + Environment.NewLine); + this.method_1("Memory Erased!"); } //################### //Set WRITE_DATA_BY_IDENTIFIER @@ -1206,7 +1282,7 @@ public class GForm_Main : DarkForm Received = SendJ2534Message(channel, arraySend1); if (Received != null) { - this.method_1("WRITE_DATA_BY_IDENTIFIER Set!" + Environment.NewLine); + this.method_1("WRITE_DATA_BY_IDENTIFIER Set!"); } //################### //Request Download @@ -1246,7 +1322,7 @@ public class GForm_Main : DarkForm Received = SendJ2534Message(channel, arraySend1); if (Received != null) { - this.method_1("Request download started" + Environment.NewLine); + this.method_1("Request download started"); stopwatch.Start(); var block_size = (Received[Received.Length - 2] + Received[Received.Length - 1]); //Get the two last bytes @@ -1288,7 +1364,7 @@ public class GForm_Main : DarkForm this.method_5(Percent); /*if (Received != null) { - this.method_1("WRITE CHUNK CORRECT!" + Environment.NewLine); + this.method_1("WRITE CHUNK CORRECT!"); }*/ } stopwatch.Stop(); @@ -1365,7 +1441,7 @@ public class GForm_Main : DarkForm int num3 = GForm_Main.smethod_2(Received, buffer2, 0); if (num3 > 0) { - this.method_1("Transfer Exited" + Environment.NewLine); + this.method_1("Transfer Exited"); } arraySend1 = new byte[] @@ -1378,7 +1454,7 @@ public class GForm_Main : DarkForm Received = SendJ2534Message(channel_0, arraySend1); if (Received != null) { - this.method_1("Routine control check dependencies" + Environment.NewLine); + this.method_1("Routine control check dependencies"); } } } @@ -1485,16 +1561,16 @@ public class GForm_Main : DarkForm this.darkButton_DownloadROM = new DarkUI.Controls.DarkButton(); this.darkButton_0 = new DarkUI.Controls.DarkButton(); this.darkGroupBox_0 = new DarkUI.Controls.DarkGroupBox(); - this.darkButton3 = new DarkUI.Controls.DarkButton(); this.darkButton_FlashFW = new DarkUI.Controls.DarkButton(); - this.darkButton2 = new DarkUI.Controls.DarkButton(); this.darkButton_Unlock01 = new DarkUI.Controls.DarkButton(); - this.darkTextBox_4 = new DarkUI.Controls.DarkTextBox(); this.darkButton_Unlock41 = new DarkUI.Controls.DarkButton(); - this.darkTextBox_3 = new DarkUI.Controls.DarkTextBox(); this.darkButton1 = new DarkUI.Controls.DarkButton(); this.darkButton_6 = new DarkUI.Controls.DarkButton(); this.darkButton_FlashRom = new DarkUI.Controls.DarkButton(); + this.darkButton3 = new DarkUI.Controls.DarkButton(); + this.darkButton2 = new DarkUI.Controls.DarkButton(); + this.darkTextBox_4 = new DarkUI.Controls.DarkTextBox(); + this.darkTextBox_3 = new DarkUI.Controls.DarkTextBox(); this.darkLabel_3 = new DarkUI.Controls.DarkLabel(); this.darkButton_4 = new DarkUI.Controls.DarkButton(); this.darkLabel_2 = new DarkUI.Controls.DarkLabel(); @@ -1508,7 +1584,11 @@ public class GForm_Main : DarkForm this.darkLabel_7 = new DarkUI.Controls.DarkLabel(); this.darkLabel_8 = new DarkUI.Controls.DarkLabel(); this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); + this.DarkgroupBox1 = new DarkUI.Controls.DarkGroupBox(); + this.darkButton4 = new DarkUI.Controls.DarkButton(); + this.darkButton5 = new DarkUI.Controls.DarkButton(); this.darkGroupBox_0.SuspendLayout(); + this.DarkgroupBox1.SuspendLayout(); this.SuspendLayout(); // // darkTextBox_0 @@ -1556,7 +1636,7 @@ public class GForm_Main : DarkForm // this.darkButton_0.Checked = false; this.darkButton_0.Enabled = false; - this.darkButton_0.Location = new System.Drawing.Point(6, 338); + this.darkButton_0.Location = new System.Drawing.Point(695, 24); this.darkButton_0.Name = "darkButton_0"; this.darkButton_0.Size = new System.Drawing.Size(192, 23); this.darkButton_0.TabIndex = 50; @@ -1567,40 +1647,23 @@ public class GForm_Main : DarkForm // darkGroupBox_0 // this.darkGroupBox_0.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); - this.darkGroupBox_0.Controls.Add(this.darkButton3); + this.darkGroupBox_0.Controls.Add(this.darkButton5); this.darkGroupBox_0.Controls.Add(this.darkButton_FlashFW); - this.darkGroupBox_0.Controls.Add(this.darkButton2); this.darkGroupBox_0.Controls.Add(this.darkButton_Unlock01); - this.darkGroupBox_0.Controls.Add(this.darkTextBox_4); this.darkGroupBox_0.Controls.Add(this.darkButton_Unlock41); - this.darkGroupBox_0.Controls.Add(this.darkTextBox_3); this.darkGroupBox_0.Controls.Add(this.darkButton1); this.darkGroupBox_0.Controls.Add(this.darkButton_6); this.darkGroupBox_0.Controls.Add(this.darkButton_FlashRom); - this.darkGroupBox_0.Controls.Add(this.darkLabel_3); - this.darkGroupBox_0.Controls.Add(this.darkButton_4); - this.darkGroupBox_0.Controls.Add(this.darkButton_0); this.darkGroupBox_0.Controls.Add(this.darkButton_3); - this.darkGroupBox_0.Controls.Add(this.darkLabel_2); this.darkGroupBox_0.Controls.Add(this.darkButton_DownloadROM); this.darkGroupBox_0.Controls.Add(this.darkButton_2); this.darkGroupBox_0.Location = new System.Drawing.Point(7, 6); this.darkGroupBox_0.Name = "darkGroupBox_0"; - this.darkGroupBox_0.Size = new System.Drawing.Size(204, 500); + this.darkGroupBox_0.Size = new System.Drawing.Size(204, 314); this.darkGroupBox_0.TabIndex = 56; this.darkGroupBox_0.TabStop = false; this.darkGroupBox_0.Text = "J2534 Controls"; // - // darkButton3 - // - this.darkButton3.Checked = false; - this.darkButton3.Location = new System.Drawing.Point(6, 309); - this.darkButton3.Name = "darkButton3"; - this.darkButton3.Size = new System.Drawing.Size(192, 23); - this.darkButton3.TabIndex = 67; - this.darkButton3.Text = "Convert Firmware .bin to .rwd"; - this.darkButton3.Click += new System.EventHandler(this.darkButton3_Click_1); - // // darkButton_FlashFW // this.darkButton_FlashFW.Checked = false; @@ -1612,16 +1675,6 @@ public class GForm_Main : DarkForm this.darkButton_FlashFW.Text = "Flash Firmware (.rwd)"; this.darkButton_FlashFW.Click += new System.EventHandler(this.darkButton3_Click); // - // darkButton2 - // - this.darkButton2.Checked = false; - this.darkButton2.Location = new System.Drawing.Point(6, 280); - this.darkButton2.Name = "darkButton2"; - this.darkButton2.Size = new System.Drawing.Size(192, 23); - this.darkButton2.TabIndex = 59; - this.darkButton2.Text = "Convert Firmware .rwd to .bin"; - this.darkButton2.Click += new System.EventHandler(this.darkButton2_Click_1); - // // darkButton_Unlock01 // this.darkButton_Unlock01.Checked = false; @@ -1633,14 +1686,6 @@ public class GForm_Main : DarkForm this.darkButton_Unlock01.Text = "UNLOCK ECU (0x27,0x01)"; this.darkButton_Unlock01.Click += new System.EventHandler(this.darkButton_Unlock01_Click); // - // darkTextBox_4 - // - this.darkTextBox_4.Location = new System.Drawing.Point(85, 474); - this.darkTextBox_4.Name = "darkTextBox_4"; - this.darkTextBox_4.Size = new System.Drawing.Size(113, 20); - this.darkTextBox_4.TabIndex = 66; - this.darkTextBox_4.Visible = false; - // // darkButton_Unlock41 // this.darkButton_Unlock41.Checked = false; @@ -1652,14 +1697,6 @@ public class GForm_Main : DarkForm this.darkButton_Unlock41.Text = "UNLOCK ECU (0x27,0x41)"; this.darkButton_Unlock41.Click += new System.EventHandler(this.darkButton2_Click); // - // darkTextBox_3 - // - this.darkTextBox_3.Location = new System.Drawing.Point(85, 450); - this.darkTextBox_3.Name = "darkTextBox_3"; - this.darkTextBox_3.Size = new System.Drawing.Size(113, 20); - this.darkTextBox_3.TabIndex = 65; - this.darkTextBox_3.Visible = false; - // // darkButton1 // this.darkButton1.Checked = false; @@ -1692,11 +1729,47 @@ public class GForm_Main : DarkForm this.darkButton_FlashRom.Text = "Flash Rom (.bin)"; this.darkButton_FlashRom.Click += new System.EventHandler(this.method_17); // + // darkButton3 + // + this.darkButton3.Checked = false; + this.darkButton3.Location = new System.Drawing.Point(6, 48); + this.darkButton3.Name = "darkButton3"; + this.darkButton3.Size = new System.Drawing.Size(192, 23); + this.darkButton3.TabIndex = 67; + this.darkButton3.Text = "Convert Firmware .bin to .rwd"; + this.darkButton3.Click += new System.EventHandler(this.darkButton3_Click_1); + // + // darkButton2 + // + this.darkButton2.Checked = false; + this.darkButton2.Location = new System.Drawing.Point(6, 19); + this.darkButton2.Name = "darkButton2"; + this.darkButton2.Size = new System.Drawing.Size(192, 23); + this.darkButton2.TabIndex = 59; + this.darkButton2.Text = "Convert Firmware .rwd to .bin"; + this.darkButton2.Click += new System.EventHandler(this.darkButton2_Click_1); + // + // darkTextBox_4 + // + this.darkTextBox_4.Location = new System.Drawing.Point(774, 104); + this.darkTextBox_4.Name = "darkTextBox_4"; + this.darkTextBox_4.Size = new System.Drawing.Size(113, 20); + this.darkTextBox_4.TabIndex = 66; + this.darkTextBox_4.Visible = false; + // + // darkTextBox_3 + // + this.darkTextBox_3.Location = new System.Drawing.Point(774, 80); + this.darkTextBox_3.Name = "darkTextBox_3"; + this.darkTextBox_3.Size = new System.Drawing.Size(113, 20); + this.darkTextBox_3.TabIndex = 65; + this.darkTextBox_3.Visible = false; + // // darkLabel_3 // this.darkLabel_3.AutoSize = true; this.darkLabel_3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); - this.darkLabel_3.Location = new System.Drawing.Point(24, 476); + this.darkLabel_3.Location = new System.Drawing.Point(713, 106); this.darkLabel_3.Name = "darkLabel_3"; this.darkLabel_3.Size = new System.Drawing.Size(56, 13); this.darkLabel_3.TabIndex = 60; @@ -1707,7 +1780,7 @@ public class GForm_Main : DarkForm // this.darkButton_4.Checked = false; this.darkButton_4.Enabled = false; - this.darkButton_4.Location = new System.Drawing.Point(6, 367); + this.darkButton_4.Location = new System.Drawing.Point(695, 53); this.darkButton_4.Name = "darkButton_4"; this.darkButton_4.Size = new System.Drawing.Size(192, 23); this.darkButton_4.TabIndex = 51; @@ -1719,7 +1792,7 @@ public class GForm_Main : DarkForm // this.darkLabel_2.AutoSize = true; this.darkLabel_2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); - this.darkLabel_2.Location = new System.Drawing.Point(7, 453); + this.darkLabel_2.Location = new System.Drawing.Point(696, 83); this.darkLabel_2.Name = "darkLabel_2"; this.darkLabel_2.Size = new System.Drawing.Size(73, 13); this.darkLabel_2.TabIndex = 59; @@ -1813,31 +1886,71 @@ public class GForm_Main : DarkForm // this.openFileDialog1.DefaultExt = "*.gz"; this.openFileDialog1.Filter = "Honda Compressed RWD Firmware|*.gz;*.rwd"; - this.openFileDialog1.Title = "Open Honda RWD Firmware File"; + this.openFileDialog1.Title = "Open Honda/Acura File"; + // + // DarkgroupBox1 + // + this.DarkgroupBox1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.DarkgroupBox1.Controls.Add(this.darkButton4); + this.DarkgroupBox1.Controls.Add(this.darkButton3); + this.DarkgroupBox1.Controls.Add(this.darkButton2); + this.DarkgroupBox1.Location = new System.Drawing.Point(7, 326); + this.DarkgroupBox1.Name = "DarkgroupBox1"; + this.DarkgroupBox1.Size = new System.Drawing.Size(204, 180); + this.DarkgroupBox1.TabIndex = 70; + this.DarkgroupBox1.TabStop = false; + this.DarkgroupBox1.Text = "File Controls"; + // + // darkButton4 + // + this.darkButton4.Checked = false; + this.darkButton4.Location = new System.Drawing.Point(6, 77); + this.darkButton4.Name = "darkButton4"; + this.darkButton4.Size = new System.Drawing.Size(192, 23); + this.darkButton4.TabIndex = 68; + this.darkButton4.Text = "Fix Checksums"; + this.darkButton4.Click += new System.EventHandler(this.darkButton4_Click); + // + // darkButton5 + // + this.darkButton5.Checked = false; + this.darkButton5.Location = new System.Drawing.Point(6, 280); + this.darkButton5.Name = "darkButton5"; + this.darkButton5.Size = new System.Drawing.Size(192, 23); + this.darkButton5.TabIndex = 69; + this.darkButton5.Text = "Open OBD2 Scan Tools"; + this.darkButton5.Click += new System.EventHandler(this.darkButton5_Click); // // GForm_Main // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(694, 571); + this.Controls.Add(this.DarkgroupBox1); this.Controls.Add(this.darkLabel_8); this.Controls.Add(this.darkLabel_7); this.Controls.Add(this.darkProgressBar_0); this.Controls.Add(this.darkTextBox_2); + this.Controls.Add(this.darkTextBox_4); this.Controls.Add(this.darkTextBox_1); this.Controls.Add(this.darkLabel_5); + this.Controls.Add(this.darkTextBox_3); this.Controls.Add(this.darkLabel_4); this.Controls.Add(this.darkLabel_1); this.Controls.Add(this.darkLabel_0); this.Controls.Add(this.darkGroupBox_0); + this.Controls.Add(this.darkLabel_3); this.Controls.Add(this.darkTextBox_0); + this.Controls.Add(this.darkButton_4); + this.Controls.Add(this.darkLabel_2); + this.Controls.Add(this.darkButton_0); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MinimumSize = new System.Drawing.Size(710, 573); this.Name = "GForm_Main"; this.Text = "Honda CANBUS Tools"; this.Load += new System.EventHandler(this.GForm_Main_Load); this.darkGroupBox_0.ResumeLayout(false); - this.darkGroupBox_0.PerformLayout(); + this.DarkgroupBox1.ResumeLayout(false); this.ResumeLayout(false); this.PerformLayout(); @@ -2152,6 +2265,8 @@ public class GForm_Main : DarkForm private void darkButton2_Click_1(object sender, EventArgs e) { + this.openFileDialog1.Filter = "Honda Compressed RWD Firmware|*.gz;*.rwd"; + this.openFileDialog1.DefaultExt = "*.gz"; DialogResult result = openFileDialog1.ShowDialog(); if (result == DialogResult.OK) { @@ -2172,9 +2287,72 @@ public class GForm_Main : DarkForm string ThisB = gform.FileBIN; string ThisR = gform.FileRWD; gform.Dispose(); + Class_RWD.LoadBIN(ThisB, ThisR); - return; } - this.darkTextBox_0.Text = "Couldn't open file selection form"; + } + + private void darkButton4_Click(object sender, EventArgs e) + { + //this.openFileDialog1.Filter = "Honda Compressed RWD Firmware|*.gz;*.rwd"; + this.openFileDialog1.Filter = "Honda full binary rom file|*.bin|Honda decompressed firmware binary|*.bin"; + this.openFileDialog1.DefaultExt = "*.bin"; + DialogResult result = openFileDialog1.ShowDialog(); + if (result == DialogResult.OK) + { + if (openFileDialog1.FilterIndex == 1) + { + byte[] FilesBytes = File.ReadAllBytes(openFileDialog1.FileName); + if (FilesBytes.Length == 0xFFFFF) + { + byte[] NewFilesBytes = VerifyChecksumFullBin(FilesBytes); + if (NewFilesBytes != FilesBytes) + { + string NewPath = Path.GetDirectoryName(openFileDialog1.FileName) + @"\" + Path.GetFileNameWithoutExtension(openFileDialog1.FileName) + "_FixedChkSum.bin"; + File.Create(NewPath).Dispose(); + File.WriteAllBytes(NewPath, NewFilesBytes); + this.method_1("File saved: " + NewPath); + } + } + else + { + this.method_1("This file is not compatible!"); + } + } + if (openFileDialog1.FilterIndex == 2) + { + GForm_FWChkSum gform = new GForm_FWChkSum(); + gform.FileBIN = openFileDialog1.FileName; + if (gform.ShowDialog() == DialogResult.OK) + { + string ThisB = gform.FileBIN; + string ThisR = gform.FileRWD; + gform.Dispose(); + byte[] FilesBytes = File.ReadAllBytes(ThisB); + if (FilesBytes.Length == 0xF7FFF) + { + Class_RWD.LoadRWD(ThisR, true, false); + byte[] NewFilesBytes = VerifyChecksumFWBin(FilesBytes); + if (NewFilesBytes != FilesBytes) + { + string NewPath = Path.GetDirectoryName(ThisB) + @"\" + Path.GetFileNameWithoutExtension(ThisB) + "_FixedChkSum.bin"; + File.Create(NewPath).Dispose(); + File.WriteAllBytes(NewPath, NewFilesBytes); + this.method_1("File saved: " + NewPath); + } + } + else + { + this.method_1("This file is not compatible!"); + } + } + } + } + } + + private void darkButton5_Click(object sender, EventArgs e) + { + frmOBD2Scan frmOBD2Scan_0 = new frmOBD2Scan(); + frmOBD2Scan_0.Show(); } } diff --git a/LineG.cs b/LineG.cs new file mode 100644 index 0000000..c782f24 --- /dev/null +++ b/LineG.cs @@ -0,0 +1,151 @@ +using System; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +public class LineG : Form +{ + private IContainer icontainer_0; + private PerfChart perfChart1; + private Label sensorname; + private Timer timer_0; + + public LineG() + { + this.InitializeComponent(); + } + + private void InitializeComponent() + { + this.icontainer_0 = new Container(); + GClass4 class2 = new GClass4(); + GClass4 class3 = new GClass4(); + GClass4 class4 = new GClass4(); + GClass4 class5 = new GClass4(); + this.sensorname = new Label(); + this.timer_0 = new Timer(this.icontainer_0); + this.perfChart1 = new PerfChart(); + base.SuspendLayout(); + this.sensorname.AutoSize = true; + this.sensorname.BackColor = Color.Green; + this.sensorname.Font = new Font("Microsoft Sans Serif", 16.875f, FontStyle.Bold); + this.sensorname.ForeColor = Color.White; + this.sensorname.Location = new Point(0x1a, 0x187); + this.sensorname.Name = "sensorname"; + this.sensorname.Size = new Size(0x143, 0x34); + this.sensorname.TabIndex = 1; + this.sensorname.Text = "Sensor Name:"; + this.timer_0.Interval = 50; + this.timer_0.Tick += new EventHandler(this.timer_0_Tick); + this.perfChart1.Border3DStyle_0 = Border3DStyle.Flat; + this.perfChart1.Font = new Font("Segoe UI", 72f, FontStyle.Regular, GraphicsUnit.Point, 0); + this.perfChart1.Location = new Point(0x10, 0x11); + this.perfChart1.Margin = new Padding(7, 8, 7, 8); + this.perfChart1.Name = "perfChart1"; + this.perfChart1.GClass3_0.Boolean_3 = true; + class2.Color_0 = Color.Black; + class2.DashStyle_0 = DashStyle.Solid; + class2.Single_0 = 1f; + this.perfChart1.GClass3_0.GClass4_2 = class2; + this.perfChart1.GClass3_0.Color_1 = Color.Green; + this.perfChart1.GClass3_0.Color_0 = Color.YellowGreen; + class3.Color_0 = Color.White; + class3.DashStyle_0 = DashStyle.Solid; + class3.Single_0 = 15f; + this.perfChart1.GClass3_0.GClass4_3 = class3; + class4.Color_0 = Color.Black; + class4.DashStyle_0 = DashStyle.Solid; + class4.Single_0 = 1f; + this.perfChart1.GClass3_0.GClass4_1 = class4; + this.perfChart1.GClass3_0.Boolean_2 = false; + this.perfChart1.GClass3_0.Boolean_1 = true; + this.perfChart1.GClass3_0.Boolean_0 = true; + class5.Color_0 = Color.Black; + class5.DashStyle_0 = DashStyle.Solid; + class5.Single_0 = 1f; + this.perfChart1.GClass3_0.GClass4_0 = class5; + this.perfChart1.GEnum0_0 = GEnum0.Relative; + this.perfChart1.Size = new Size(0x218, 0x16e); + this.perfChart1.TabIndex = 0; + this.perfChart1.Int32_0 = 100; + this.perfChart1.GEnum1_0 = GEnum1.Disabled; + this.perfChart1.Click += new EventHandler(this.perfChart1_Click); + this.perfChart1.DoubleClick += new EventHandler(this.perfChart1_DoubleClick); + this.perfChart1.KeyDown += new KeyEventHandler(this.perfChart1_KeyDown); + base.AutoScaleDimensions = new SizeF(12f, 25f); + base.AutoScaleMode = AutoScaleMode.Font; + base.ClientSize = new Size(800, 450); + base.Controls.Add(this.sensorname); + base.Controls.Add(this.perfChart1); + base.FormBorderStyle = FormBorderStyle.None; + base.MaximizeBox = false; + base.MinimizeBox = false; + base.Name = "LineG"; + this.Text = "Form1"; + base.Load += new EventHandler(this.LineG_Load); + base.ResumeLayout(false); + base.PerformLayout(); + } + + private void LineG_Load(object sender, EventArgs e) + { + base.FormBorderStyle = FormBorderStyle.None; + base.WindowState = FormWindowState.Maximized; + this.perfChart1.Top = 0; + this.perfChart1.Left = 0; + this.sensorname.Left = 10; + this.sensorname.Top = base.Height - 50; + this.perfChart1.Size = new Size(base.Width, base.Height); + this.sensorname.Text = "Sensor: " + frmOBD2Scan.string_20; + this.timer_0.Enabled = true; + this.perfChart1.GClass3_0.Color_1 = frmOBD2Scan.color_0; + this.perfChart1.GClass3_0.Color_0 = frmOBD2Scan.color_0; + this.perfChart1.GClass3_0.GClass4_3.Color_0 = frmOBD2Scan.color_2; + } + + private void perfChart1_Click(object sender, EventArgs e) + { + if (this.timer_0.Enabled) + { + this.timer_0.Enabled = false; + } + else + { + this.timer_0.Enabled = true; + } + } + + private void perfChart1_DoubleClick(object sender, EventArgs e) + { + this.timer_0.Enabled = false; + frmOBD2Scan.int_186 = 0; + base.Close(); + } + + private void perfChart1_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Escape) + { + e.SuppressKeyPress = true; + this.timer_0.Enabled = false; + frmOBD2Scan.int_186 = 0; + base.Close(); + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && (this.icontainer_0 != null)) + { + this.icontainer_0.Dispose(); + } + base.Dispose(disposing); + } + + private void timer_0_Tick(object sender, EventArgs e) + { + this.perfChart1.method_1((decimal) frmOBD2Scan.int_185); + } +} + diff --git a/OBD2.txt b/OBD2.txt new file mode 100644 index 0000000..bdcb53f --- /dev/null +++ b/OBD2.txt @@ -0,0 +1,1445 @@ +P0001,Fuel Volume Regulator Control Circuit/Open +P0002,Fuel Volume Regulator Control Circuit Range/Performance +P0003,Fuel Volume Regulator Control Circuit Low +P0004,Fuel Volume Regulator Control Circuit High +P0005,Fuel Shutoff Valve Control Circuit/Open +P0006,Fuel Shutoff Valve Control Circuit Low +P0007,Fuel Shutoff Valve Control Circuit High +P0008,Engine Position System Performance (Bank1) +P0009,Engine Position System Performance (Bank2) +P0010,A Camshaft Position Actuator Circuit (Bank1) +P0011,A Camshaft Position - Timing Over-Advanced or System Performance (Bank 1) +P0012,A Camshaft Position - Timing Over-Retarded (Bank 1) +P0013,B Camshaft Position - Actuator Circuit (Bank1) +P0014,B Camshaft Position - Timing Over-Advanced or Sytem Performance (Bank 1) +P0015,B Camshaft Position - Timing Over-Retarded (Bank 1) +P0016,Crankshaft Position Camshaft Position Correlation (Bank 1 Sensor A) +P0017,Crankshaft Position Camshaft Position Correlation (Bank 1 Sensor B) +P0018,Crankshaft Position Camshaft Position Correlation (Bank 2 Sensor A) +P0019,Crankshaft Position Camshaft Position Correlation (Bank 2 Sensor B) +P0020,A Camshaft Position Actuator Circuit (Bank 2) +P0021,A Camshaft Position - Timing Over-Advanced or System Performance (Bank 2) +P0022,A Camshaft Position - Timing Over-Retarded (Bank 2) +P0023,B Camshaft Position - Actuator Circuit (Bank 2) +P0024,B Camshaft Position - Timing Over-Advanced or System Performance (Bank 2) +P0025,B Camshaft Position - Timing Over-Retarded (Bank 2) +P0026,Intake Valve Control Solenoid Circuit Range/Performance (Bank 1) +P0027,Exhaust Valve Control Solenoid Circuit Range/Performance (Bank 1) +P0028,Intake Valve Control Solenoid Circuit Range/Performance (Bank 2) +P0029,Exhaust Valve Control Solenoid Circuit Range/Performance (Bank 2) +P0030,HO2S Heater Control Circuit (Bank 1 Sensor 1) +P0031,HO2S Heater Control Circuit Low (Bank 1 Sensor 1) +P0032,HO2S Heater Control Circuit High (Bank 1 Sensor 1) +P0033,Turbo Charger Bypass Valve Control Circuit +P0034,Turbo Charger Bypass Valve Control Circuit Low +P0035,Turbo Charger Bypass Valve Control Circuit High +P0036,HO2S Heater Control C ircuit (Bank 1 Sensor 2) +P0037,HO2S Heater Control Circuit Low (Bank 1 Sensor 2) +P0038,HO2S Heater Control Circuit High (Bank 1 Sensor 2) +P0039,Turbo/Super Charger Bypass Valve Control Circuit Range/Performance +P0040,O2 Sensor Signals Swapped Bank 1 Sensor 1/ Bank 2 Sensor 1 +P0041,O2 Sensor Signals Swapped Bank 1 Sensor 2/ Bank 2 Sensor 2 +P0042,HO2S Heater Control Circuit (Bank 1 Sensor 3) +P0043,HO2S Heater Control Circuit Low (Bank 1 Sensor 3) +P0044,HO2S Heater Control Circuit High (Bank 1 Sensor 3) +P0045,Turbo/Super Charger Boost Control Solenoid Circuit/Open +P0046,Turbo/Super Charger Boost Control Solenoid Circuit Range/Performance +P0047,Turbo/Super Charger Boost Control Solenoid Circuit Low +P0048,Turbo/Super Charger Boost Control Solenoid Circuit High +P0049,Turbo/Super Charger Turbine Overspeed +P0050,HO2S Heater Control Circuit (Bank 2 Sensor 1) +P0051,HO2S Heater Control Circuit Low (Bank 2 Sensor 1) +P0052,HO2S Heater Control Circuit High (Bank 2 Sensor 1) +P0053,HO2S Heater Resistance (Bank 1 Sensor 1) +P0054,HO2S Heater Resistance (Bank 1 Sensor 2) +P0055,HO2S Heater Resistance (Bank 1 Sensor 3) +P0056,HO2S Heater Control Circuit (Bank 2 Sensor 2) +P0057,HO2S Heater Control Circuit Low (Bank 2 Sensor 2) +P0058,HO2S Heater Control Circuit High (Bank 2 Sensor 2) +P0059,HO2S Heater Resistance (Bank 2 Sensor 1) +P0060,HO2S Heater Resistance (Bank 2 Sensor 2) +P0061,HO2S Heater Resistance (Bank 2 Sensor 3) +P0062,HO2S Heater Control Circuit (Bank 2 Sensor 3) +P0063,HO2S Heater Control Circuit Low (Bank 2 Sensor 3) +P0064,HO2S Heater Control Circuit High (Bank 2 Sensor 3) +P0065,Air Assisted Injector Control Range/Performance +P0066,Air Assisted Injector Control Circuit or Circuit Low +P0067,Air Assisted Injector Control Circuit High +P0068,MAP/MAF Throttle Position Correlation +P0069,Manifold Absolute Pressure Barometric Pressure Correlation +P0070,Ambient Air Temperature Sensor Circuit +P0071,Ambient Air Temperature Sensor Range/Performance +P0072,Ambient Air Temperature Sensor Circuit Low +P0073,Ambient Air Temperature Sensor Circuit High +P0074,Ambient Air Temperature Sensor Circuit Intermittent +P0075,Intake Valve Control Solenoid Circuit (Bank 1) +P0076,Intake Valve Control Solenoid Circuit Low (Bank 1) +P0077,Intake Valve Control Solenoid Circuit High (Bank 1) +P0078,Exhaust Valve Control Solenoid Circuit (Bank 1) +P0079,Exhaust Valve Control Solenoid Circuit Low (Bank 1) +P0080,Exhaust Valve Control Solenoid C ircuit High (Bank 1) +P0081,Intake Valve Control Solenoid Circuit (Bank 2) +P0082,Intake Valve Control Solenoid Circuit Low (Bank 2) +P0083,Intake Valve Control Solenoid Circuit High (Bank 2) +P0084,Exhaust Valve Control Solenoid Circuit (Bank 2) +P0085,Exhaust Valve Control Solenoid Circuit Low (Bank 2) +P0086,Exhaust Valve Control Solenoid C ircuit High (Bank 2) +P0087,Fuel Rail/System Pressure - Too Low +P0088,Fuel Rail/System Pressure - Too High +P0089,Fuel Pressure Regulator 1 Performance +P0090,Fuel Pressure Regulator 1 Control Circuit +P0091,Fuel Pressure Regulator 1 Control Circuit Low +P0092,Fuel Pressure Regulator 1 Control Circuit High +P0093,Fuel System Leak Detected Large Leak +P0094,Fuel System Leak Detected Small Leak +P0095,Intake Air Temperature Sensor 2 Circuit +P0096,Intake Air Temperature Sensor 2 Circuit Range/Performance +P0097,Intake Air Temperature Sensor 2 Circuit Low +P0098,Intake Air Temperature Sensor 2 Circuit High +P0099,Intake Air Temperature Sensor 2 Circuit Intermittent/Erratic +P0100,Mass or Volume Air flow Circuit Malfunction +P0101,Mass or Volume Air flow Circuit Range/Performance Problem +P0102,Mass or Volume Air Flow Circuit low Input +P0103,Mass or Volume Air flow Circuit High Input +P0104,Mass or Volume Air flow Circuit Intermittent +P0105,Manifold Absolute Pressure/Barometric Pressure Circuit Malfunction +P0106,Manifold Absolute Pressure/Barometric Pressure Circuit Range/Performance Problem +P0107,Manifold Absolute Pressure/Barometric Pressure Circuit Low Input +P0108,Manifold Absolute Pressure/Barometric Pressure Circuit High Input +P0109,Manifold Absolute Pressure/Barometric Pressure Circuit Intermittent +P0110,Intake Air Temperature Circuit Malfunction +P0111,Intake Air Temperature Circuit Range/Performance Problem +P0112,Intake Air Temperature Circuit Low Input +P0113,Intake Air Temperature Circuit High Input +P0114,Intake Air Temperature Circuit Intermittent +P0115,Engine Coolant Temperature Circuit Malfunction +P0116,Engine Coolant Temperature Circuit Range/Performance Problem +P0117,Engine Coolant Temperature Circuit Low Input +P0118,Engine Coolant Temperature Circuit High Input +P0119,Engine Coolant Temperature Circuit Intermittent +P0120,Throttle Pedal Position Sensor/Switch A Circuit Malfunction +P0121,Throttle/Pedal Position Sensor/Switch A Circuit Range/Performance Problem +P0122,Throttle/Pedal Position Sensor/Switch A Circuit Low Input +P0123,Throttle/Pedal Position Sensor/Switch A Circuit High Input +P0124,Throttle/Pedal Position Sensor/Switch A Circuit Intermittent +P0125,Insufficient Coolant Temperature for Closed Loop Fuel Control +P0126,Insufficient Coolant Temperature for Stable Operation +P0130,O2 Sensor Circuit Malfunction (Bank 1 Sensor 1) +P0131,O2 Sensor Circuit Low Voltage (Bank 1 Sensor 1) +P0132,O2 Sensor Circuit High Voltage (Bank 1 Sensor 1) +P0133,O2 Sensor Circuit Slow Response (Bank 1 Sensor 1) +P0134,O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 1) +P0135,O2 Sensor Heater Circuit Malfunction (Bank 1 Sensor 1) +P0136,O2 Sensor Circuit Malfunction (Bank 1 Sensor 2) +P0137,O2 Sensor Circuit Low Voltage (Bank 1 Sensor 2) +P0138,O2 Sensor Circuit High Voltage (Bank 1 Sensor 2) +P0139,O2 Sensor Circuit Slow Response (Bank 1 Sensor 2) +P0140,O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 2) +P0141,O2 Sensor Heater Circuit Malfunction (Bank 1 Sensor 2) +P0142,O2 Sensor Circuit Malfunction (Bank 1 Sensor 3) +P0143,O2 Sensor Circuit Low Voltage (Bank 1 Sensor 3) +P0144,O2 Sensor Circuit High Voltage (Bank 1 Sensor 3) +P0145,O2 Sensor Circuit Slow Response (Bank 1 Sensor 3) +P0146,O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 3 +P0147,O2 Sensor Heater Circuit Malfunction (Bank 1 Sensor 3) +P0150,O2 Sensor Circuit Malfunction (Bank 2 Sensor 1) +P0151,O2 Sensor Circuit Low Voltage (Bank 2 Sensor 1) +P0152,O2 Sensor Circuit High Voltage (Bank 2 Sensor 1) +P0153,O2 Sensor Circuit Slow Response (Bank 2 Sensor 1) +P0154,O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 1) +P0155,O2 Sensor Heater Circuit Malfunction (Bank 2 Sensor 1 +P0156,O2 Sensor Circuit Malfunction (Bank 2 Sensor 2) +P0157,O2 Sensor Circuit Low Voltage (Bank 2 Sensor 2) +P0158,O2 Sensor Circuit High Voltage (Bank 2 Sensor 2) +P0159,O2 Sensor Circuit Slow Response (Bank 2 Sensor 2 +P0160,O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 2) +P0161,O2 Sensor Heater Circuit Malfunction (Bank 2 Sensor 2) +P0162,O2 Sensor Circuit Malfunction (Bank 2 Sensor 3 +P0163,O2 Sensor Circuit Low Voltage (Bank 2 Sensor 3 +P0164,O2 Sensor Circuit High Voltage (Bank 2 Sensor 3) +P0165,O2 Sensor Circuit Slow Response (Bank 2 Sensor 3) +P0166,O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 3 +P0167,O2 Sensor Heater Circuit Malfunction (Bank 2 Sensor 3) +P0170,Fuel Trim Malfunction (Bank 1) +P0171,System Too Lean (Bank 1) +P0172,System Too Rich (Bank 1) +P0173,Fuel Trim Malfunction (Bank 2) +P0174,System Too Lean (Bank 2 +P0175,System Too Rich (Bank 2) +P0176,Fuel Composition Sensor Circuit Malfunction +P0177,Fuel Composition Sensor Circuit Range/Performance +P0178,Fuel Composition Sensor Circuit Low Input +P0179,Fuel Composition Sensor Circuit High Input +P0180,Fuel Temperature Sensor A Circuit Malfunction +P0181,Fuel Temperature Sensor A Circuit Performance +P0182,Fuel Temperature Sensor A Circuit low Input +P0183,Fuel Temperature Sensor A Circuit High Input +P0184,Fuel Temperature Sensor A Circuit Intermittent +P0185,Fuel Temperature Sensor B Circuit Malfunction +P0186,Fuel Temperature Sensor B Circuit Range/Performance +P0187,Fuel Temperature Sensor U Circuit Low Input +P0188,Fuel Temperature Sensor B Circuit High Input +P0189,Fuel Temperature Sensor B Circuit Intermittent +P0190,Fuel Rail Pressure Sensor Circuit Malfunction +P0191,Fuel Rail Pressure Sensor Circuit Range/Performance +P0192,Fuel Rail Pressure Sensor Circuit Low Input +P0193,Fuel Rail Pressure Sensor Circuit High Input +P0194,Fuel Rail Pressure Sensor Circuit Intermittent +P0195,Engine Oil Temperature Sensor Malfunction +P0196,Engine Oil Temperature Sensor Range/Performance +P0197,Engine Oil Temperature Sensor Low +P0198,Engine Oil Temperature Sensor High +P0199,Engine Oil Temperature Sensor Intermittent +P0200,Injector Circuit Malfunction +P0201,Injector Circuit Malfunction - Cylinder 1 +P0202,Injector Circuit Malfunction - Cylinder 2 +P0203,Injector Circuit Malfunction - Cylinder 3 +P0204,Injector Circuit Malfunction - Cylinder 4 +P0205,Injector Circuit Malfunction - Cylinder 5 +P0206,Injector Circuit Malfunction - Cylinder 6 +P0207,Injector Circuit Malfunction - Cylinder 7 +P0208,Injector Circuit Malfunction - Cylinder 8 +P0209,Injector Circuit Malfunction - Cylinder 9 +P0210,Injector Circuit Malfunction - Cylinder 10 +P0211,Injector Circuit Malfunction - Cylinder 11 +P0212,Injector Circuit Malfunction - Cylinder 12 +P0213,Cold Start Injector 1 Malfunction +P0214,Cold Start Injector 2 Malfunction +P0215,Engine Shutoff Solenoid Malfunction +P0216,Injection Timing Control Circuit Malfunction +P0217,Engine Overtemp Condition +P0218,Transmission Over Temperature Condition +P0219,Engine Over Speed Condition +P0220,Throttle/Pedal Position Sensor/Switch B Circuit Malfunction +P0221,Throttle/pedal Position Sensor/Switch B Circuit Range/Performance Problem +P0222,Throttle/pedal Position Sensor/Switch B Circuit Low Input +P0223,Throttle/Pedal Position Sensor/Switch B Circuit High Input +P0224,Throttle/Pedal Position Sensor/Switch B Circuit Intermittent +P0225,Throttle/Pedal Position Sensor/Switch C Circuit Malfunction +P0226,Throttle/Pedal Position Sensor/Switch C Circuit Range/Performance Problem +P0227,Throttle/Pedal Position Sensor/Switch C Circuit Low Input +P0228,Throttle/Pedal Position Sensor/Switch C Circuit High Input +P0229,Throttle/Pedal Position Sensor/Switch C Circuit Intermittent +P0230,Fuel Pump Primary Circuit Malfunction +P0231,Fuel Pump Secondary Circuit Low +P0232,Fuel Pump Secondary Circuit High +P0233,Fuel Pump Secondary Circuit Intermittent +P0234,Engine Overboost Condition +P0235,Turbocharger Boost Sensor A Circuit Malfunction +P0236,Turbocharger Boost Sensor A Circuit Range/Performance +P0237,Turbocharger Boost Sensor A Circuit Low +P0238,Turbocharger Boost Sensor A Circuit High +P0239,Turbocharger Boost Sensor B Circuit Malfunction +P0240,Turbocharger Boost Sensor B Circuit Range/Performance +P0241,Turbocharger Boost Sensor B Circuit Low +P0242,Turbocharger Boost Sensor B Circuit High +P0243,Turbocharger Wastegate Solenoid A Malfunction +P0244,Turbocharger Wastegate Solenoid A Range/Performance +P0245,Turbocharger Wastegate Solenoid A low +P0246,Turbocharger Wastegate Solenoid A High +P0247,Turbocharger Wastegate Solenoid B Malfunction +P0248,Turbocharger Wastegate Solenoid B Range/Performance +P0249,Turbocharger Wastegate Solenoid B Low +P0250,Turbocharger Wastegate Solenoid B High +P0251,Injection Pump Fuel Metering Control 'A' Malfunction (Cam/Rotor/Injector) +P0252,Injection Pump Fuel Metering Control 'A' Range/Performance (Cam/Rotor/Injector) +P0254,Injection Pump Fuel Metering Control 'A' High (Cam/Rotor/Injector) +P0256,Injection Pump Fuel Metering Control 'B' Malfunction (Cam/Rotor/Injector) +P0257,Injection Pump Fuel Metering Control 'B' Range/Performance (Cam/Rotor/Injector) +P0258,Injection Pump Fuel Metering Control 'B' Low (Cam/Rotor/Injector) +P0259,Injection lump Fuel Metering Control 'B' High (Cam/Rotor/Injector) +P0260,Injection Pump Fuel Metering Control 'B' Intermittent (Cam/Rotor/Injector) +P0261,Cylinder 1 Injector Circuit Low +P0262,Cylinder 1 Injector Circuit High +P0263,Cylinder 1 Contribution/Balance Fault +P0264,Cylinder 2 Injector Circuit Low +P0265,Cylinder 2 Injector Circuit High +P0266,Cylinder 2 Contribution/Balance Fault +P0267,Cylinder 3 Injector Circuit Low +P0268,Cylinder 3 Injector Circuit High +P0269,Cylinder 3 Contribution/Balance Fault +P0270,Cylinder 4 Injector Circuit Low +P0271,Cylinder 4 Injector Circuit High +P0272,Cylinder 4 Contribution/Balance Fault +P0273,Cylinder 5 Injector Circuit Low +P0274,Cylinder 5 Injector Circuit High +P0275,Cylinder 5 Contribution/Balance Fault +P0276,Cylinder 6 Injector Circuit Low +P0277,Cylinder 6 Injector Circuit High +P0278,Cylinder 6 Contribution/Balance Fault +P0279,Cylinder 7 Injector Circuit Low +P0280,Cylinder 7 Injector Circuit High +P0281,Cylinder 7 Contribution/Balance Fault +P0282,Cylinder 8 Injector Circuit Low +P0283,Cylinder 8 Injector Circuit High +P0284,Cylinder 8 Contribution/Balance Fault +P0285,Cylinder 9 Injector Circuit Low +P0286,Cylinder 9 Injector Circuit High +P0287,Cylinder 9 Contribution/Balance Fault +P0288,Cylinder 10 Injector Circuit Low +P0289,Cylinder 10 Injector Circuit High +P0290,Cylinder 10 Contribution/balance Fault +P0291,Cylinder 11 Injector Circuit Low +P0292,Cylinder 11 Injector Circuit High +P0293,Cylinder 11 Contribution/balance Fault +P0294,Cylinder 12 Injector Circuit Low +P0295,Cylinder 12 Injector Circuit High +P0296,Cylinder 12 Contribution/Balance Fault +P0300,Random/Multiple Cylinder Misfire Detected +P0301,Cylinder 1 Misfire Detected +P0302,Cylinder 2 Misfire Detected +P0303,Cylinder 3 Misfire Detected +P0304,Cylinder 4 Misfire Detected +P0305,Cylinder 5 Misfire Detected +P0306,Cylinder 6 Misfire Detected +P0307,Cylinder 7 Misfire Detected +P0308,Cylinder 8 Misfire Detected +P0309,Cylinder 9 Misfire Detected +P0310,Cylinder 10 Misfire Detected +P0311,Cylinder 11 Misfire Detected +P0312,Cylinder 12 Misfire Detected +P0320,Ignition/Distributor Engine Speed Input Circuit Malfunction +P0321,Ignition/Distributor Engine Speed Input Circuit Range/Performance +P0322,Ignition/Distributor Engine Speed Input Circuit No Signal +P0323,Ignition/Distributor Engine Speed Input Circuit Intermittent +P0325,Knock Sensor 1 Circuit Malfunction (Bank 1 or Single Sensor +P0326,Knock Sensor 1 Circuit Range/Performance (Bank 1 or Single Sensor) +P0327,Knock Sensor 1 Circuit low Input (Bank 1 or Single Sensor) +P0328,Knock Sensor 1 Circuit High Input (Bank 1 or Single Sensor) +P0329,Knock Sensor 1 Circuit Input Intermittent (Bank 1 or Single Sensor) +P0330,Knock Sensor 2 Circuit Malfunction (Bank 2) +P0331,Knock Sensor 2 Circuit Range/Performance (Bank 2) +P0332,Knock Sensor 2 Circuit Low Input (Bank 2) +P0333,Knock Sensor 2 Circuit High Input (Bank 2) +P0334,Knock Sensor 2 Circuit Input Intermittent (Bank 2) +P0335,Crankshaft Position Sensor A Circuit Malfunction +P0336,Crankshaft Position Sensor A Circuit Range/Performance +P0337,Crankshaft Position Sensor A Circuit Low Input +P0338,Crankshaft Position Sensor A Circuit High Input +P0339,Crankshaft Position Sensor A Circuit Intermittent +P0340,Camshaft Position Sensor Circuit Malfunction +P0341,Camshaft Position Sensor Circuit Range/Performance +P0342,Camshaft Position Sensor Circuit Low Input +P0343,Camshaft Position Sensor Circuit High Input +P0344,Camshaft Position Sensor Circuit Intermittent +P0350,Ignition Coil Primary/Secondary Circuit Malfunction +P0351,Ignition Coil A Primary/Secondary Circuit Malfunction +P0352,Ignition Coil B Primary/Secondary Circuit Malfunction +P0353,Ignition Coil C Primary/Secondary Circuit Malfunction +P0354,Ignition Coil D Primary/Secondary Circuit Malfunction +P0355,Ignition Coil B Primary/Secondary Circuit Malfunction +P0356,Ignition Coil F Primary/Secondary Circuit Malfunction +P0357,Ignition Coil G Primary/Secondary Circuit Malfunction +P0358,Ignition Coil H Primary/Secondary Circuit Malfunction +P0359,Ignition Coil I Primary/Secondary Circuit Malfunction +P0360,Ignition Coil I Primary/Secondary Circuit Malfunction +P0361,Ignition Coil K Primary/Secondary Circuit Malfunction +P0362,Ignition Coil L Primary/Secondary Circuit Malfunction +P0370,Timing Reference High Resolution Signal A Malfunction +P0371,Timing Reference High Resolution Signal A Too Many Pulses +P0372,Timing Reference High Resolution Signal A Too Few Pulses +P0373,Timing Reference High Resolution Signal A Intermittent/Erratic Pulses +P0374,Timing Reference High Resolution Signal A No Pulses +P0375,Timing Reference High Resolution Signal B Malfunction +P0376,Timing Reference High Resolution Signal B Too Many Pulses +P0377,Timing Reference High Resolution Signal B Too Few Pulses +P0378,Timing Reference High Resolution Signal B Intermittent/Erratic Pulses +P0379,Timing Reference High Resolution Signal B No Pulses +P0380,Glow Plug/Heater Circuit 'A' Malfunction +P0381,Glow Plug/Heater Indicator Circuit Malfunction +P0382,Glow Plug/Heater Circuit 'B' Malfunction +P0385,Crankshaft Position Sensor B Circuit Malfunction +P0386,Crankshaft Position Sensor B Circuit Range/Performance +P0387,Crankshaft Position Sensor B Circuit Low Input +P0388,Crankshaft Position Sensor B Circuit High Input +P0389,Crankshaft Position Sensor B Circuit Intermittent +P0400,Exhaust Gas Recirculation Flow Malfunction +P0401,Exhaust Gas Recirculation Flow Insufficient Detected +P0402,Exhaust Gas Recirculation Flow Excessive Detected +P0403,Exhaust Gas Recirculation Circuit Malfunction +P0404,Exhaust Gas Recirculation Circuit Range/Performance +P0405,Exhaust Gas Recirculation Sensor A Circuit Low +P0406,Exhaust Gas Recirculation Sensor A Circuit High +P0407,Exhaust Gas Recirculation Sensor B Circuit Low +P0408,Exhaust Gas Recirculation Sensor B Circuit High +P0410,Secondary Air Injection System Malfunction +P0411,Secondary Air Injection System Incorrect Flow Detected +P0412,Secondary Air Injection System Switching Valve A Circuit Malfunction +P0413,Secondary Air Injection System Switching Valve A Circuit Open +P0414,Secondary Air Injection System Switching Valve A Circuit Shorted +P0415,Secondary Air Injection System Switching Valve B Circuit Malfunction +P0416,Secondary Air Injection System Switching Valve B Circuit Open +P0417,Secondary Air Injection System Switching Valve B Circuit Shorted +P0418,Secondary Air Injection System Relay A circuit Malfunction +P0419,Secondary Air Injection System Relay B Circuit Malfunction +P0420,Catalyst System Efficiency Below Threshold (Bank 1) +P0421,Warm Up Catalyst Efficiency Below Threshold (Bank 1 +P0422,Main Catalyst Efficiency Below Threshold (Bank 1 +P0423,Heated Catalyst Efficiency Below Threshold (Bank l) +P0424,Heated Catalyst Temperature Below Threshold (Bank 1) +P0430,Catalyst System Efficiency Below Threshold (Bank 2) +P0431,Warm Up Catalyst Efficiency Below Threshold (Bank 2) +P0432,Main Catalyst Efficiency Below Threshold (Bank 2) +P0433,Heated Catalyst Efficiency Below Threshold (Bank 2) +P0434,Heated Catalyst Temperature Below Threshold (Bank 2) +P0440,Evaporative Emission Control System Malfunction +P0441,Evaporative Emission Control System Incorrect Purge flow +P0442,Evaporative Emission Control System leak Detected (small leak) +P0443,Evaporative Emission Control System Purge Control Valve circuit Malfunction +P0444,Evaporative Emission Control System Purge Control Valve Circuit Open +P0445,Evaporative Emission Control System Purge Control Valve Circuit Shorted +P0446,Evaporative Emission Control System Vent Control Circuit Malfunction +P0447,Evaporative Emission Control System Vent Control Circuit Open +P0448,Evaporative Emission Control System Vent Control Circuit Shorted +P0449,Evaporative Emission Control System Vent Valve/Solenoid Circuit Malfunction +P0450,Evaporative Emission Control System Pressure Sensor Malfunction +P0451,Evaporative Emission Control System Pressure Sensor Range/Performance +P0452,Evaporative Emission Control System Pressure Sensor Low Input +P0453,Evaporative Emission Control System Pressure Sensor High Input +P0454,Evaporative Emission Control System Pressure Sensor Intermittent +P0455,Evaporative Emission Control System Tank Detected (gross leak) +P0460,Fuel Level Sensor Circuit Malfunction +P0461,Fuel Level Sensor Circuit Range/Performance +P0462,Fuel level Sensor Circuit Low Input +P0463,Fuel level Sensor Circuit High Input +P0464,Fuel level Sensor Circuit Intermittent +P0465,Purge Flow Sensor Circuit Malfunction +P0466,Purge flow Sensor Circuit Range/Performance +P0467,Purge Flow Sensor Circuit Low Input +P0468,Purge flow Sensor Circuit High Input +P0469,Purge flow Sensor Circuit Intermittent +P0470,Exhaust Pressure Sensor Malfunction +P0471,Exhaust Pressure Sensor Range/Performance +P0472,Exhaust Pressure Sensor Low +P0473,Exhaust Pressure Sensor High +P0474,Exhaust Pressure Sensor Intermittent +P0475,Exhaust Pressure Control Valve Malfunction +P0476,Exhaust Pressure Control Valve Range/Performance +P0477,Exhaust Pressure Control Valve Low +P0478,Exhaust Pressure Control Valve High +P0479,Exhaust Pressure Control Valve Intermittent +P0480,Cooling Fan 1 Control Circuit Malfunction +P0481,Cooling Fan 2 Control Circuit Malfunction +P0482,Cooling Fan 3 Control Circuit Malfunction +P0483,Cooling Fan Rationality Check Malfunction +P0484,Cooling Fan Circuit Over Current +P0485,Cooling Fan Power/Ground Circuit Malfunction +P0500,Vehicle Speed Sensor Malfunction +P0501,Vehicle Speed Sensor Range/Performance +P0502,Vehicle Speed Sensor Circuit Low Input +P0503,Vehicle Speed Sensor Intermittent/Erratic/High +P0505,Idle Control System Malfunction +P0506,Idle Control System RPM lower Than Expected +P0507,Idle Control System RPM higher Than Expected +P0510,Closed Throttle Position Switch Malfunction +P0520,Engine Oil Pressure Sensor/Switch Circuit Malfunction +P0521,Engine Oil Pressure Sensor/Switch Range/Performance +P0522,Engine Oil Pressure Sensor/Switch Low Voltage +P0523,Engine Oil Pressure Sensor/Switch High Voltage +P0530,A/C Refrigerant Pressure Sensor Circuit Malfunction +P0531,A/C Refrigerant Pressure Sensor Circuit Range/Performance +P0532,A/C Refrigerant Pressure Sensor Circuit Low Input +P0533,A/C Refrigerant pressure Sensor Circuit High Input +P0534,Air Conditioner Refrigerant Charge Loss +P0550,Power Steering Pressure Sensor Circuit Malfunction +P0551,Power Steering Pressure Sensor Circuit Range/Performance +P0552,Power Steering Pressure Sensor Circuit Low Input +P0553,Power Steering Pressure Sensor Circuit High Input +P0554,Power Steering Pressure sensor Circuit Intermittent +P0560,System Voltage Malfunction +P0561,System Voltage Unstable +P0562,System Voltage Low +P0563,System Voltage High +P0565,Cruise Control On Signal Malfunction +P0566,Cruise Control Off Signal Malfunction +P0567,Cruise Control Resume Signal Malfunction +P0568,Cruise Control Set Signal Malfunction +P0569,Cruise Control Coast Signal Malfunction +P0570,Cruise Control Accel Signal Malfunction +P0571,Cruise Control/Brake Switch A Circuit Malfunction +P0572,Cruise Control/Brake Switch A Circuit Low +P0573,Cruise Control/Brake Switch A Circuit High +P0574,through P0580 Reserved for Cruise Codes +P0600,Serial Communication Link Malfunction +P0601,Internal Control Module Memory Check Sum Error +P0602,Control Module Programming Error +P0603,Internal Control Module Keep Alive Memory (KAM) Error +P0604,Internal Control Module RAM Error +P0605,Internal Control Module ROM Error (Module Identification Defined by SAE J1979) +P0606,PCM Processor Fault +P0608,Control Module VSS Output 'A' Malfunction +P0609,Control Module VSS Output 'B' Malfunction +P0620,Generator Control Circuit Malfunction +P0621,Generator Lamp 'L' Control Circuit Malfunction +P0622,Generator Field 'F' Control Circuit Malfunction +P0650,Malfunction Indicator Lamp (MIL) Control Circuit Malfunction +P0654,Engine RPM Output Circuit Malfunction +P0655,Engine Hot Lamp Output Control Circuit Malfunction +P0656,Fuel Level Output Circuit Malfunction +P0700,Transmission Control System Malfunction +P0701,Transmission Control System Range/Performance +P0702,Transmission Control System Electrical +P0703,Torque Converter/Brake Switch B Circuit Malfunction +P0704,Clutch Switch Input Circuit Malfunction +P0705,Transmission Range Sensor Circuit malfunction (PRNDL Input) +P0706,Transmission Range Sensor Circuit Range/Performance +P0707,Transmission Range Sensor Circuit Low Input +P0708,Transmission Range Sensor Circuit High Input +P0709,Transmission Range Sensor Circuit Intermittent +P0710,Transmission Fluid Temperature Sensor Circuit Malfunction +P0711,Transmission Fluid Temperature Sensor Circuit Range/Performance +P0712,Transmission Fluid Temperature Sensor Circuit Low Input +P0713,Transmission Fluid Temperature Sensor Circuit High Input +P0714,Transmission Fluid Temperature Sensor Circuit Intermittent +P0715,Input/Turbine Speed Sensor Circuit Malfunction +P0716,Input/Turbine Speed Sensor Circuit Range/Performance +P0717,Input/Turbine Speed Sensor Circuit No Signal +P0718,Input/Turbine Speed Sensor Circuit Intermittent +P0719,Torque Converter/Brake Switch B Circuit Low +P0720,Output Speed Sensor Circuit Malfunction +P0721,Output Speed Sensor Range/Performance +P0722,Output Speed Sensor No Signal +P0723,Output Speed Sensor Intermittent +P0724,Torque Converter/Brake Switch B Circuit High +P0725,Engine Speed input Circuit Malfunction +P0726,Engine Speed Input Circuit Range/Performance +P0727,Engine Speed Input Circuit No Signal +P0728,Engine Speed Input Circuit Intermittent +P0730,Incorrect Gear Ratio +P0731,Gear 1 Incorrect ratio +P0732,Gear 2 Incorrect ratio +P0733,Gear 3 Incorrect ratio +P0734,Gear 4 Incorrect ratio +P0735,Gear 5 Incorrect ratio +P0736,Reverse incorrect gear ratio +P0740,Torque Converter Clutch Circuit Malfuction +P0741,Torque Converter Clutch Circuit Performance or Stuck Off +P0742,Torque Converter Clutch Circuit Stuck On +P0743,Torque Converter Clutch Circuit Electrical +P0744,Torque Converter Clutch Circuit Intermittent +P0745,Pressure Control Solenoid Malfunction +P0746,Pressure Control Solenoid Performance or Stuck Off +P0747,Pressure Control Solenoid Stuck On +P0748,Pressure Control Solenoid Electrical +P0749,Pressure Control Solenoid Intermittent +P0750,Shift Solenoid A Malfunction +P0751,Shift Solenoid A Performance or Stuck Off/1-2 Shift Solenoid Valve Performance +P0752,Shift Solenoid A Stuck On +P0753,Shift Solenoid A Electrical/1-2 Shift Solenoid Circuit Electrical +P0754,Shift Solenoid A Intermittent +P0755,Shift Solenoid B Malfunction +P0756,Shift Solenoid B Performance or Stuck Off/2-3 Shift Solenoid Valve Performance +P0757,Shift Solenoid B Stuck On +P0758,Shift Solenoid B Electrical/2-3 Shift Solenoid Circuit Electrical +P0759,Shift Solenoid B Intermittent +P0760,Shift Solenoid C Malfunction +P0761,Shift Solenoid C Performance or Stuck Off +P0762,Shift Solenoid C Stuck On +P0763,Shift Solenoid C Electrical +P0764,Shift Solenoid C Intermittent +P0765,Shift Solenoid D Malfunction +P0766,Shift Solenoid D Performance or Stuck Off +P0767,Shift Solenoid D Stuck On +P0768,Shift Solenoid D Electrical +P0769,Shift Solenoid D Intermittent +P0770,Shift Solenoid E Malfunction +P0771,Shift Solenoid E Performance or Stuck Off +P0772,Shift Solenoid E Stuck On +P0773,Shift Solenoid E Electrical +P0774,Shift Solenoid E Intermittent +P0775,Pressure Control Solenoid B Malfunction +P0776,Pressure Control Solenoid B Performance +P0777,Pressure Control Solenoid B Stuck On +P0778,Pressure Control Solenoid B Electrical +P0779,Pressure Control Solenoid B Intermittent +P0780,Shift Malfunction +P0781,1-2 Shift Malfunction +P0782,2-3 Shift Malfunction +P0783,3-4 Shift Malfunction +P0784,4-5 Shift Malfunction +P0785,Shift/Timing Solenoid Malfunction/ 3-2 Shift Solenoid Circuit Electrical +P0786,Shift/Timing Solenoid Range/Performance +P0787,Shift/Timing Solenoid Low +P0788,Shift/Timing Solenoid High +P0789,Shift/Timing Solenoid Intermittent +P0790,Normal/Performance Switch Circuit Malfunction +P0791,Intermediate Shaft Speed Sensor Circuit +P0792,Intermediate Shaft Speed Sensor Circuit Range/Performance +P0793,Intermediate Shaft Speed Sensor Circuit No signal +P0794,Intermediate Shaft Speed Sensor Circuit Intermittent +P0795,Pressure Control Solenoid C +P0796,Pressure Control Solenoid C Performance or Stuck off +P0797,Pressure Control Solenoid C Stuck On +P0798,Pressure Control Solenoid C Electrical +P0799,Pressure Control Solenoid C Intermittent +P0801,Reverse Inhibit Control Circuit Malfunction +P0803,1-4 Upshift (Skip Shift) Solenoid Control Circuit Malfunction +P0804,1-4 Upshift (Skip Shift) Lamp Control Circuit Malfunction +P0805,Clutch Position Sensor Circuit Malfunction +P0806,Clutch Position Sensor Circuit Range/Performance Malfunction +P0807,Clutch Position Sensor Circuit Low Malfunction +P0808,Clutch Position Sensor Circuit High Malfunction +P0809,Clutch Position Sensor Circuit Intermittent Malfunction +P0810,Clutch Position Control Error +P0811,Excessive Clutch Slippage +P0812,Reverse Input Circuit +P0813,Reverse Output Circuit +P0814,Transmission Range Display Circuit +P0815,Upshift Switch Circuit +P0816,Downshift Switch Circuit +P0817,Starter Disable Circuit +P0818,Driveline Disconnect Switch Input Circuit +P0819,Up and Down Shift Switch to Transmission Range Correlation +P0820,Gear Lever X - Y Position Sensor Circuit +P0821,Gear Lever X Position Circuit +P0822,Gear Lever Y Position Circuit +P0823,Gear Lever X Position Circuit Intermittent +P0824,Gear Lever Y Position Circuit Intermittent +P0825,Gear Lever Push - Pull Switch (Shift Anticipate) +P0826,Up and Down Switch Input Circuit +P0827,Up and Down Switch Input Circuit Low +P0828,Up and Down Switch Input Circuit High +P0829,5-6 Shift +P0830,Clutch Pedal Switch A Circuit +P0831,Clutch Pedal Switch A Circuit Low +P0832,Clutch Pedal Switch A Circuit High +P0833,Clutch Pedal Switch B Circuit +P0834,Clutch Pedal Switch B Circuit Low +P0835,Clutch Pedal Switch B Circuit High +P0836,Four Wheel Drive (4WD) Switch Circuit +P0837,Four Wheel Drive (4WD) Switch Circuit Range/Performance +P0838,Four Wheel Drive (4WD) Switch Circuit Low +P0839,Four Wheel Drive (4WD) Switch Circuit High +P0840,Transmission Fluid Pressure Sensor/Switch A Circuit +P0841,Transmission Fluid Pressure Sensor/Switch A Circuit Range/Performance +P0842,Transmission Fluid Pressure Sensor/Switch A Circuit Low +P0843,Transmission Fluid Pressure Sensor/Switch A Circuit High +P0844,Transmission Fluid Pressure Sensor/Switch A Circuit Intermittent +P0845,Transmission Fluid Pressure Sensor/Switch B Circuit +P0846,Transmission Fluid Pressure Sensor/Switch B Circuit Range/Performance +P0847,Transmission Fluid Pressure Sensor/Switch B Circuit Low +P0848,Transmission Fluid Pressure Sensor/Switch B Circuit High +P0849,Transmission Fluid Pressure Sensor/Switch B Circuit Intermittent +P0850,Park / Neutral Switch Input Circuit +P0851,Park / Neutral Switch Input Circuit Low +P0852,Park / Neutral Switch Input Circuit High +P0853,Drive Switch Input Circuit +P0854,Drive Switch Input Circuit Low +P0855,Drive Switch Input Circuit High +P0856,Traction Control Input Signal +P0857,Traction Control Input Signal Range/Performance +P0858,Traction Control Input Signal Low +P0859,Traction Control Input Signal High +P0860,Gear Shift Module Communication Circuit +P0861,Gear Shift Module Communication Circuit Low +P0862,Gear Shift Module Communication Circuit High +P0863,TCM Communication Circuit +P0864,TCM Communication Circuit Range/Performance +P0865,TCM Communication Circuit Low +P0866,TCM Communication Circuit High +P0867,Transmission Fluid Pressure +P0868,Transmission Fluid Pressure Low +P0869,Transmission Fluid Pressure High +P0870,Transmission Fluid Pressure Sensor/Switch C Circuit +P0871,Transmission Fluid Pressure Sensor/Switch C Circuit Range/Performance +P0872,Transmission Fluid Pressure Sensor/Switch C Circuit Low +P0873,Transmission Fluid Pressure Sensor/Switch C Circuit High +P0874,Transmission Fluid Pressure Sensor/Switch C Circuit Intermittent +P0875,Transmission Fluid Pressure Sensor/Switch D Circuit +P0876,Transmission Fluid Pressure Sensor/Switch D Circuit Range/Performance +P0877,Transmission Fluid Pressure Sensor/Switch D Circuit Low +P0878,Transmission Fluid Pressure Sensor/Switch D Circuit High +P0879,Transmission Fluid Pressure Sensor/Switch D Circuit Intermittent +P0880,TCM Power Input Signal +P0881,TCM Power Input Signal Range/Performance +P0882,TCM Power Input Signal Low +P0883,TCM Power Input Signal High +P0884,TCM Power Input Signal Intermittent +P0885,TCM Power Relay Control Circuit /Open +P0886,TCM Power Relay Control Circuit Low +P0887,TCM Power Relay Control Circuit High +P0888,TCM Power Relay Sense Circuit +P0889,TCM Power Relay Sense Circuit Range/Performance +P0890,TCM Power Relay Sense Circuit Low +P0891,TCM Power Relay Sense Circuit High +P0892,TCM Power Relay Sense Circuit Intermittent +P0893,Multiple Gears Engaged +P0894,Transmission Component Slipping +P0895,Shift Time Too Short +P0896,Shift Time Too Long +P0897,Transmission Fluid Deteriorated +P0898,Transmission Control System MIL Request Circuit Low +P0899,Transmission Control System MIL Request Circuit High +P0900,Clutch Actuator Circuit / Open +P0901,Clutch Actuator Circuit Range/Performance +P0902,Clutch Actuator Circuit Low +P0903,Clutch Actuator Circuit High +P0904,Gate Select Position Circuit [senses left / right position] +P0905,Gate Select Position Circuit Range/Performance +P0906,Gate Select Position Circuit Low +P0907,Gate Select Position Circuit High +P0908,Gate Select Position Circuit Intermittent +P0909,Gate Select Control Error +P0910,Gate Select Actuator Circuit / Open [left / right motion] +P0911,Gate Select Actuator Circuit Range/Performance +P0912,Gate Select Actuator Circuit Low +P0913,Gate Select Actuator Circuit High +P0914,Gear Shift Position Circuit [senses forward / rearward position, odd / even gears] +P0915,Gear Shift Position Circuit Range/Performance +P0916,Gear Shift Position Circuit Low +P0917,Gear Shift Position Circuit High +P0918,Gear Shift Position Circuit Intermittent +P0919,Gear Shift Position Control Error +P0920,Gear Shift Forward Actuator Circuit / Open [forward motion, odd gears, 1,3,5] +P0921,Gear Shift Foward Actuator Circuit Range/Performance +P0922,Gear Shift Foward Actuator Circuit Low +P0923,Gear Shift Foward Actuator Circuit High +P0924,Gear Shift Reverse Actuator Circuit / Open [rearward motion, even gears, 2,4,6] +P0925,Gear Shift Reverse Actuator Circuit Range/Performance +P0926,Gear Shift Reverse Actuator Circuit Low +P0927,Gear Shift Reverse Actuator Circuit High +P0928,Gear Shift Lock Solenoid Circuit / Open +P0929,Gear Shift Lock Solenoid Circuit Range/Performance +P0930,Gear Shift Lock Solenoid Circuit Low +P0931,Gear Shift Lock Solenoid Circuit High +P0932,Hydraulic Pressure Sensor Circuit +P0933,Hydraulic Pressure Sensor Range/Performance +P0934,Hydraulic Pressure Sensor Circuit Low Input +P0935,Hydraulic Pressure Sensor Circuit High Input +P0936,Hydraulic Pressure Sensor Circuit Intermittent +P0937,Hydraulic Oil Temperature Sensor Circuit +P0938,Hydraulic Oil Temperature Sensor Range/Performance +P0939,Hydraulic Oil Temperature Sensor Circuit Low Input +P0940,Hydraulic Oil Temperature Sensor Circuit High Input +P0941,Hydraulic Oil Temperature Sensor Circuit Intermittent +P0942,Hydraulic Pressure Unit +P0943,Hydraulic Pressure Unit Cycling Period Too Short +P0944,Hydraulic Pressure Unit Loss of Pressure +P0945,Hydraulic Pump Relay Circuit / Open +P0946,Hydraulic Pump Relay Circuit Range/Performance +P0947,Hydraulic Pump Relay Circuit Low +P0948,Hydraulic Pump Relay Circuit High +P0949,ASM Adaptive Learning Not Done +P0950,ASM Control Circuit [Up / Down / Auto / etc] +P0951,ASM Control Circuit Range/Performance +P0952,ASM Control Circuit Low +P0953,ASM Control Circuit High +P0954,ASM Control Circuit Intermittent +P0955,ASM Mode Circuit [Perf / Winter / Sport / etc] +P0956,ASM Mode Circuit Range/Performance +P0957,ASM Mode Circuit Low +P0958,ASM Mode Circuit High +P0959,ASM Mode Circuit Intermittent +P0960,Pressure Control Solenoid A Control Circuit / Open +P0961,Pressure Control Solenoid A Control Circuit Range/Performance +P0962,Pressure Control Solenoid A Control Circuit Low +P0963,Pressure Control Solenoid A Control Circuit High +P0964,Pressure Control Solenoid B Control Circuit / Open +P0965,Pressure Control Solenoid B Control Circuit Range/Performance +P0966,Pressure Control Solenoid B Control Circuit Low +P0967,Pressure Control Solenoid B Control Circuit High +P0968,Pressure Control Solenoid C Control Circuit / Open +P0969,Pressure Control Solenoid C Control Circuit Range/Performance +P0970,Pressure Control Solenoid C Control Circuit Low +P0971,Pressure Control Solenoid C Control Circuit High +P0972,Shift Solenoid A Control Circuit Range/Performance +P0973,Shift Solenoid A Control Circuit Low +P0974,Shift Solenoid A Control Circuit High +P0975,Shift Solenoid B Control Circuit Range/Performance +P0976,Shift Solenoid B Control Circuit Low +P0977,Shift Solenoid B Control Circuit High +P0978,Shift Solenoid C Control Circuit Range/Performance +P0979,Shift Solenoid C Control Circuit Low +P0980,Shift Solenoid C Control Circuit High +P0981,Shift Solenoid D Control Circuit Range/Performance +P0982,Shift Solenoid D Control Circuit Low +P0983,Shift Solenoid D Control Circuit High +P0984,Shift Solenoid E Control Circuit Range/Performance +P0985,Shift Solenoid E Control Circuit Low +P0986,Shift Solenoid E Control Circuit High +P0987,Transmission Fluid Pressure Sensor/Switch E Circuit +P0988,Transmission Fluid Pressure Sensor/Switch E Circuit Range/Performance +P0989,Transmission Fluid Pressure Sensor/Switch E Circuit Low +P0990,Transmission Fluid Pressure Sensor/Switch E Circuit High +P0991,Transmission Fluid Pressure Sensor/Switch E Circuit Intermittent +P0992,Transmission Fluid Pressure Sensor/Switch F Circuit +P0993,Transmission Fluid Pressure Sensor/Switch F Circuit Range/Performance +P0994,Transmission Fluid Pressure Sensor/Switch F Circuit Low +P0995,Transmission Fluid Pressure Sensor/Switch F Circuit High +P0996,Transmission Fluid Pressure Sensor/Switch F Circuit Intermittent +P0997,Shift Solenoid F Control Circuit Range/Performance +P0998,Shift Solenoid F Control Circuit Low +P0999,Shift Solenoid F Control Circuit High +P1100,MAF Sensor Intermittent/ Check of all OBDII Systems Not Complete +P1101,MAF Sensor Out Of Self Test Range./KOER Not Able To Complete KOER Aborted +P1102,MAF Sensor In Range But Lower Than Expected +P1103,MAF Sensor In Range But Higher Than Expected +P1104,MAF Ground Malfunction +P1105,Dual Alternator Upper Fault +P1106,Dual Alternator Lower Fault/ Manifold Absolute Pressure (MAP) Sensor Circuit Intermittent High Voltage +P1107,Dual Alternator Lower Circuit Malfunction/ Manifold Absolute Pressure (MAP) Sensor Circuit Intermittent Low Voltage +P1108,Dual Alternator Battery Lamp Circuit Malfunction +P1109,IAT - B Sensor Intermittent +P1110,IAT Sensor (D/C) Open/Short +P1111,Intake Air Temperature (IAT) Sensor Circuit Intermittent High Voltage +P1112,Intake Air Temperature (IAT) Sensor Circuit Intermittent Low Voltage +P1113,IAT Sensor Open/Short +P1114,Engine Coolant Temperature (ECT) Sensor Circuit Intermittent Low Voltage/IAT - B Circuit Low Input +P1115,Engine Coolant Temperature (ECT) Sensor Circuit Intermittent High Voltage/IAT - B Circuit High Input +P1116,Engine Coolant sensor out of range/ECT Sensor Out Of Self Test Range +P1117,Engine Coolant Sensor intermittent/ECT Sensor Intermittent +P1118,Manifold Absolute Temperature Circuit Low Input +P1119,Manifold Absolute Temperature Circuit High Input +P1120,Throttle position sensor out of range +P1121,Throttle Position (TP) Sensor Circuit Intermittent High Voltage +P1122,Throttle Position (TP) Sensor Circuit Intermittent Low Voltage +P1123,Throttle Position Sensor In Range But Higher Than Expected +P1124,Throttle Position Sensor Out Of Self Test Range +P1125,Throttle position sensor intermittent +P1126,Throttle Position (Narrow Range) Sensor Circuit Malfunction +P1127,Exhaust Not Warm, Downstream O2 Sensor +P1128,Upstream Heated O2 Sensors Swapped +P1129,Downstream Heated O2 Sensors Swapped +P1130,Lack Of HO2S Switch - Adaptive Fuel At Limit +P1131,Lack Of HO2S Switch - Sensor Indicates Lean +P1132,Lack Of HO2S Switch - Sensor Indicates Rich +P1133,HO2S Insufficient Switching Sensor 1 +P1134,HO2S Transition Time Ratio Sensor 1 +P1135,Pedal Position Sensor A Circuit Intermittent +P1136,Fan Control Circuit Malfunction +P1137,Lack Of HO2S Switch - Sensor Indicates Lean +P1138,Lack Of HO2S12 Switch - Sensor Indicates Rich +P1139,Water In Fuel Indicator Circuit Malfunction +P1140,Water In Fuel Condition +P1141,Fuel Restriction Indicator Circuit Malfunction +P1142,Fuel Restriction Condition +P1143,Air Assist Control Valve Range/Performance +P1144,Air Assist Control Valve Circuit Malfunction +P1150,Lack Of HO2S21 Switch - Adaptive Fuel At Limit +P1151,Lack Of HO2S21 Switch - Sensor Indicates Lean +P1152,Lack Of HO2S21 Switch - Sensor Indicates Rich +P1153,Bank 2 Fuel Control Shifted Lean +P1154,Bank 2 Fuel Control Shifted Rich +P1155,Alternative Fuel Controller +P1156,Fuel Select Switch Malfunction +P1157,Lack Of HO2S22 Switch - Sensor Indicates Lean +P1158,Lack Of HO2S22 Switch - Sensor Indicates Rich +P1159,Fuel Stepper Motor Malfunction +P1166,Air/Fuel Ratio Sensor 1 harness is open or shorted +P1167,Invalid Test,throttle not depressed +P1168,Fuel Rail Sensor In-Range Low Failure +P1169,Fuel Rail Sensor In-Range High Failure +P1170,ESO - Engine Shut Off Solenoid Fault +P1171,Rotor Sensor Fault +P1172,Rotor Control Fault +P1173,Rotor Calibration Fault +P1174,Cam Sensor Fault +P1175,Cam Control Fault +P1176,Cam Calibration Fault +P1177,Synchronization Fault +P1178,( open ) +P1180,Fuel Delivery System Malfunction - Low +P1181,Fuel Delivery System Malfunction - High +P1182,Fuel Shut Off Solenoid Malfunction +P1183,Engine Oil Temperature Circuit Malfunction +P1184,Engine Oil Temperature Out Of Self Test Range +P1185,FTS High - Fuel Pump Temperature Sensor High +P1186,FTS Low - Fuel Pump Temperature Sensor Low +P1187,Variant Selection +P1188,Calibration Memory Fault +P1189,Pump Speed Signal Fault +P1190,Calibration Resistor Out Of Range +P1191,Key Line Voltage +P1192,Voltage External +P1193,EGR Drive Overcurrent +P1194,ECU A/D Converter +P1195,SCP HBCC Failed To Initialize +P1196,Key Off Voltage High +P1197,Key Off Voltage Low +P1198,Pump Rotor Control Underfueling +P1199,Fuel Level Input Circuit Low +P1200,Injector Control Circuit +P1201,Injector Circuit Open / Shorted - Cylinder #1 +P1202,Injector Circuit Open / Shorted - Cylinder #2 +P1203,Injector Circuit Open / Shorted - Cylinder #3 +P1204,Injector Circuit Open / Shorted - Cylinder #4 +P1205,Injector Circuit Open / Shorted - Cylinder #5 +P1206,Injector Circuit Open / Shorted - Cylinder #6 +P1209,Injector Control Pressure System Fault +P1210,Injector Control Pressure Above Expected Level +P1211,Injector Control Pressure Sensor Above / Below Desired +P1212,Injector Control Pressure Not Detected During Crank +P1213,Start Injector Circuit Malfunction +P1214,Pedal Position Sensor B Circuit Intermittent +P1215,Pedal Position Sensor C Circuit Low Input +P1216,Pedal Position Sensor C Circuit High Input +P1217,Pedal Position Sensor C Circuit Intermittent +P1218,CID High +P1219,CID Low +P1220,Series Throttle Control System Malfunction +P1221,Traction Control System Malfunction +P1222,Traction Control Output Circuit Malfunction +P1223,Pedal Demand Sensor B Circuit High Input +P1224,Throttle Position Sensor B Out Of Self Test Range +P1225,Needle Lift Sensor Malfunction +P1226,Control Sleeve Sensor Malfunction +P1227,Wastegate Failed Closed (Over Pressure) +P1228,Wastegate Failed Open (Under Pressure) +P1229,Intercooler Pump Driver Fault +P1230,Fuel Pump Low Speed Malfunction +P1231,Fuel Pump Secondary Circuit Low, High Speed +P1232,Fuel Pump Speed Primary Circuit Malfunction +P1233,Fuel Pump Driver Module Off Line +P1234,Fuel Pump Driver Module Off Line +P1235,Fuel Pump Control Out Of Range +P1236,Fuel Pump Control Out Of Range +P1237,Fuel Pump Secondary Circuit Malfunction +P1238,Fuel Pump Secondary Circuit Malfunction +P1239,Speed Fuel Pump Positive Feed Fault +P1240,Sensor Power Supply Malfunction +P1241,Sensor Power Supply Low Input +P1242,Sensor Power Supply High Input +P1243,Second Fuel Pump Faulty or Ground Fault +P1244,Alternator Load Input Failed High +P1245,Alternator Load Input Failed Low +P1246,Alternator Load Input Failed +P1247,Turbo Boost Pressure Low +P1248,Turbo Boost Pressure Not Detected +P1249,Wastegate Control Valve Performance +P1250,PRC Solenoid Circuit Malfunction +P1251,Air Mixture Solenoid Circuit Malfunction +P1252,Pedal Correlation PDS1 and LPDS High +P1253,Pedal Correlation PDS1 and LPDS Low +P1254,Pedal Correlation PDS2 and LPDS High +P1255,Pedal Correlation PDS2 and LPDS Low +P1256,Pedal Correlation PDS1 and HPDS +P1257,Pedal Correlation PDS2 and HPDS +P1258,Pedal Correlation PDS1 and PDS2 +P1259,Immobilizer to PCM Signal Error +P1260,THEFT Detected, Vehicle Immobilzed +P1261,Cylinder #1 High To Low Side Short +P1262,Cylinder #2 High To Low Side Short +P1263,Cylinder #3 High To Low Side Short +P1264,Cylinder #4 High To Low Side Short +P1265,Cylinder #5 High To Low Side Short +P1266,Cylinder #6 High To Low Side Short +P1267,Cylinder #7 High To Low Side Short +P1268,Cylinder #8 High To Low Side Short +P1269,Immobilizer Code Not Programmed +P1270,Engine RPM Or Speed Limiter Reached +P1271,Cylinder #1 High To Low Side Open +P1272,Cylinder #2 High To Low Side Open +P1273,Cylinder #3 High To Low Side Open +P1274,Cylinder #4 High To Low Side Open +P1275,Cylinder #5 High To Low Side Open +P1276,Cylinder #6 High To Low Side Open +P1277,Cylinder #7 High To Low Side Open +P1278,Cylinder #8 High To Low Side Open +P1280,Injection Control Pressure Out Of Range Low +P1281,Injection Control Pressure Out Of Range High +P1282,Excessive Injection Control Pressure +P1283,IPR Circuit Failure +P1284,Aborted KOER - ICP Failure +P1285,Cylinder head over temp sensed +P1286,Fuel Pulse In Range But Lower Than Expected +P1287,Fuel Pulse In Range But Higher Than Expected +P1288,Cylinder Head Temp Sensor Out Of Self Test Range +P1289,Cylinder Head Temp Sensor High Input +P1290,Cylinder Head Temp Sensor Low Input +P1291,Injector High Side Short To GND Or VBATT - Bank 1 +P1292,Injector High Side Short To GND Or VBATT - Bank 2 +P1293,Injector High Side Open - Bank 1 +P1294,Injector High Side Open - Bank 2/Target idle not reached +P1295,Multi-faults - Bank 1 - With Low Side Shorts +P1296,Multi-faults - Bank 2 - With Low Side Shorts +P1297,Injector High Sides Shorted Together +P1298,IDM Failure +P1299,Cylinder Head Overtemperature Protection Active +P1300,Boost Calibration Fault +P1301,Boost Calibration High +P1302,Boost Calibration Low +P1303,EGR Calibration Fault +P1304,EGR Calibration High +P1305,EGR Calibration Low +P1306,Kickdown Relay Pull - In Circuit Fault +P1307,Kickdown Relay Hold Circuit Fault +P1308,A/C Clutch Circuit Fault +P1309,Misfire Monitor AICE Chip Fault +P1313,Misfire Rate Catalyst Damage Fault - Bank 1 +P1314,Misfire Rate Catalyst Damage Fault - Bank 2 +P1315,Persistent Misfire +P1316,Injector Circuit / IDM Codes Detected +P1317,Injector Circuit / IDM Codes Not Updated +P1336,Crank / Cam Sensor Range / Performance +P1340,Camshaft Position Sensor B Circuit Malfunction +P1341,Camshaft Position Sensor B Range / Performance +P1345,SGC (Cam Position) Sensor Circuit Malfunction/ Crankshaft Position - Camshaft Position Correlation +P1346,Fuel Level Sensor B Circuit Malfunction +P1347,Fuel Level Sensor B Range / Performance +P1348,Fuel Level Sensor B Circuit Low +P1349,Fuel Level Sensor B Circuit High +P1350,Fuel Level Sensor B Intermittent/Bypass Line Monitor +P1351,IDM Input Circuit Malfunction/ Ignition Coil Control Circuit High Voltage +P1352,Ignition Coil A Primary Circuit Malfunction +P1353,Ignition Coil B Primary Circuit Malfunction +P1354,Ignition Coil C Primary Circuit Malfunction +P1355,Ignition Coil D Primary Circuit Malfunction +P1360,Ignition Coil A Secondary Circuit Malfunction +P1361,Ignition Control (IC) Circuit Low Voltage +P1362,Ignition Coil C Secondary Circuit Malfunction +P1363,Ignition Coil D Secondary Circuit Malfunction +P1364,Ignition Coil Primary Circuit Failure +P1365,Ignition Coil Secondary Circuit Failure +P1366,Ignition Spare +P1367,Ignition Spare +P1368,Ignition Spare +P1369,Engine Temperature Light Monitor Failure +P1370,Insufficient RMP Increase During Spark Test +P1371,Ignition Coil - Cylinder 1 - Early Activation Fault +P1372,Ignition Coil - Cylinder 2 - Early Activation Fault +P1373,Ignition Coil - Cylinder 3 - Early Activation Fault +P1374,Crankshaft Position (CKP)/Ignition Coil - Cylinder 4 - Early Activation Fault +P1375,Ignition Coil - Cylinder 5 - Early Activation Fault +P1376,Ignition Coil - Cylinder 6 - Early Activation Fault +P1380,Misfire Detected - Rough Road Data Not Available +P1381,Variable Cam Timing Overadvanced (Bank #1)/ Misfire Detected - No Communication with BCM +P1382,Variable Cam Timing Solenoid #1 Circuit Malfunction +P1383,Variable Cam Timing Overretarded (Bank #1) +P1384,VVT Solenoid A Malfunction +P1385,Variable Cam Timing Solenoid B Malfunction +P1386,Variable Cam Timing Overadvanced (Bank #2) +P1387,Variable Cam Timing Solenoid #2 Circuit Malfunction +P1388,Variable Cam Timing Overretarded (Bank #2) +P1389,Glow Plug Circuit High Side Low Input +P1390,Octane Adjust Pin Out Of Self Test Range +P1391,Glow Plug Circuit Low Input (Bank #1) +P1392,Glow Plug Circuit High Input (Bank #1) +P1393,Glow Plug Circuit Low Input (Bank #2) +P1394,Glow Plug Circuit High Input (Bank #2) +P1395,Glow Plug Monitor Fault (Bank #1) +P1396,Glow Plug Monitor Fault (Bank #2) +P1397,System Voltage Out Of Self Test Range +P1398,VVT Solenoid B Circuit High Input +P1399,Glow Plug Circuit High Side, High Input +P1400,DPFE Circuit Low Input +P1401,DPFE Circuit High Input +P1402,EGR Metering Orifice Restricted +P1403,DPFE Sensor Hoses Reversed +P1404,IAT - B Circuit Malfunction/ Exhaust Gas Recirculation Closed Position Performance +P1405,DPFE Sensor Upstream Hose Off Or Plugged +P1406,Exhaust Gas Recirculation (EGR) Position Sensor Performance +P1407,EGR No Flow Detected +P1408,EGR Flow Out Of Self Test Range +P1409,EVR Control Circuit Malfunction +P1411,SAI System Incorrect Downstream Flow Detected +P1413,SAI System Monitor Circuit Low Input +P1414,SAI System Monitor Circuit High Input +P1415,Air Pump Circuit Malfunction/ (AIR) System Bank 1 +P1416,Port Air Circuit Malfunction/ (AIR) System Bank 2 +P1417,Port Air Relief Circuit Malfunction +P1418,Split Air #1 Circuit Malfunction +P1419,Split Air #2 Circuit Malfunction +P1420,Catalyst Temperature Sensor Failure +P1421,Catalyst Damage +P1422,EGI Temperature Sensor Failure +P1423,EGI Functionality Test Failed +P1424,EGI Glow Plug Primary Failure +P1425,EGI Glow Plug Secondary Failure +P1426,EGI Mini - MAF Failed Out Of Range +P1427,EGI Mini - MAF Failed Short Circuit +P1428,EGI Mini - MAF Failed Open Circuit +P1429,Electric Air Pump Primary Failure +P1430,Electric Air Pump Secondary Failure +P1433,A/C Refrigerant Temperature Circuit Low +P1434,A/C Refrigerant Temperature Circuit High +P1435,A/C Refrigerant Temperature Circuit Range/Performance +P1436,A/C Evaporator Air Temperature Circuit Low +P1437,A/C Evaporator Air Temperature Circuit High +P1438,A/C Evaporator Air Temperature Circuit Range/Performance +P1439,Floor Temperature Switch Circuit Malfunction +P1440,Purge Valve Stuck Open +P1441,Evaporative Emission (EVAP) System Flow During Non-Purge Chevrolet Only +P1442,Evaporative Emission Control System Leak Detected +P1443,Evaporative Emission Control System Control Valve +P1444,Purge Flow Sensor Circuit Low Input +P1445,Purge Flow Sensor Circuit High Input +P1446,Evaporative Vac Solenoid Circuit Malfunction +P1447,ELC System Closure Valve Flow Fault +P1448,ELC System 2 Fault +P1449,Evaporative Check Solenoid Circuit Malfunction +P1450,Unable To Bleed Up Fuel Tank Vacuum +P1451,Evap Emission Control Sys Vent Control Valve Circuit +P1452,Unable To Bleed - Up Vacuum in Tank +P1453,Fuel Tank Pressure Relief Valve Malfunction +P1454,Evaporative System Vacuum Test Malfunction +P1455,Evap Emission Control Sys Leak Detected (Gross Leak/No Flow) +P1456,Fuel Tank Temperature Sensor Circuit Malfunction +P1457,Unable To Pull Vacuum In Tank +P1460,Wide open throttle A/C cutoff relay circuit +P1461,A/C pressure sensor circuit voltage low +P1462,A/C pressure sensor circuit voltage high +P1463,A/C Pressure Sensor Insufficient Pressure Change +P1464,A/C Demand Out of Self Test Range +P1465,A/C Relay Circuit Malfunction +P1466,A/C Refrigerant Temperature Sensor/Circuit Malfunction +P1467,A/C Compressor Temperature Sensor Malfunction +P1468,SSPOD Open Circuit or Closed Circuit Fault +P1469,Low A/C Cycling Period +P1470,A/C Cycling Period Too Short +P1471,Electrodrive Fan 1 Operational Failure (Driver Side) +P1472,Electrodrive Fan 2 Operational Failure (Passenger Side) +P1473,Fan Secondary High With Fan(s) Off +P1474,Low Fan Control Primary Circuit Malfunction +P1475,Fan Relay (Low) Circuit Malfunction +P1476,Fan Relay (High) Circuit Malfunction +P1477,Additional Fan Relay Circuit Malfunction +P1478,Cooling Fan Driver Fault +P1479,High Fan Control Primary Circuit Malfunction +P1480,Fan Secondary Low with Low Fan On +P1481,Fan Secondary Low With High Fan On +P1482,SCP +P1483,Power To Fan Circuit Overcurrent +P1484,Open Power To Ground VCRM +P1485,EGRV Circuit Malfunction +P1486,EGRA Circuit Malfunction +P1487,EGRCHK Solenoid Circuit Malfunction +P1490,Secondary Air Relief Solenoid Circuit Malfunction +P1491,Secondary Switch Solenoid Circuit Malfunction +P1492,APLSOL Solenoid Circuit Malfunction +P1493,RCNT Solenoid Circuit Malfunction +P1494,SPCUT Solenoid Circuit Malfunction +P1495,TCSPL Solenoid Circuit Malfunction +P1500,Vehicle Speed Sensor Intermittent +P1501,Vehicle Speed Sensor Out Of Self Test Range +P1502,Vehicle Speed Sensor Intermittent Malfunction +P1503,Auxillary Speed Sensor Fault +P1504,Idle Air Control Circuit Malfunction +P1505,Idle Air Control System At Adaptive Clip +P1506,Idle Air Control Overspeed Error +P1507,Idle Air Control Underspeed Error +P1508,Idle Control System Circuit Open +P1509,Idle Control System Circuit Shorted +P1510,Idle Signal Circuit Malfunction +P1511,Idle Switch (Electric Control Throttle) Circuit Malfunction +P1512,Intake Manifold Runner Control (Bank 1) Stuck Closed +P1513,Intake Manifold Runner Control (Bank 2) Stuck Closed +P1514,High Load Neutral/Drive Fault +P1515,Electric Current Circuit Malfunction +P1516,IMRC Input Error (Bank 1) +P1517,IMRC Input Error (Bank 2) +P1518,Intake Manifold Runner Control (Stuck Open) +P1519,Intake Manifold Runner Control (Stuck Closed) +P1520,Intake Manifold Runner Control Circuit Malfunction +P1521,Variable Intake Solenoid #1 Circuit Malfunction +P1522,Variable Intake Solenoid #2 Circuit Malfunction +P1523,IVC Solenoid Circuit Malfunction +P1524,Variable Intake Solenoid System +P1525,Air Bypass Valve System +P1526,Air Bypass System +P1527,Accelerate Warmup Solenoid Circuit Malfunction +P1528,Subsidiary Throttle Valve Solenoid Circuit Malfunction +P1529,SCAIR Solenoid Circuit Malfunction +P1530,A/C Clutch Circuit Malfunction +P1531,Invalid Test - Accelerator Pedal Movement +P1532,IMCC Circuit Malfunction, Bank B +P1533,AAI Circuit Malfunction +P1534,Inertia Switch Activated +P1535,Blower Fan Speed Circuit Range/Performance +P1536,Parking Brake Switch Circuit Failure +P1537,Intake Manifold Runner Control (Bank 1) Stuck Open +P1538,Intake Manifold Runner Control (Bank 2) Stuck Open +P1539,Power To A/C Clutch Circuit Overcurrent +P1540,Air Bypass Valve Circuit Malfunction +P1549,IMCC Circuit Malfunction, Bank B +P1550,PSPS Out Of Self Test Range +P1565,Speed Control Command Switch Out of Range High +P1566,Speed Control Command Switch Out of Range Low +P1567,Speed Control Output Circuit Continuity +P1568,Speed Control Unable to Hold Speed +P1571,Brake Switch Malfunction +P1572,Brake Pedal Switch Circuit Malfunction +P1573,Throttle Position Not Available +P1574,Throttle Position Sensor Disagreement btwn Sensors +P1575,Pedal Position Out of Self Test Range +P1576,Pedal Position Not Available +P1577,Pedal Position Sensor Disagreement btwn Sensors +P1578,ETC Power Less Than Demand +P1579,ETC In Power Limiting Mode +P1580,Electronic Throttle Monitor PCM Override +P1581,Electronic Throttle Monitor Malfunction +P1582,Electronic Throttle Monitor Data Available +P1583,Electronic Throttle Monitor Cruise Disable +P1584,TCU Detected IPE Circuit Malfunction +P1585,Throttle Control Unit Malfunction +P1586,Throttle Control Unit Throttle Position Malfunction +P1587,Throttle Control Unit Modulated Command Malfunction +P1588,Throttle Control Unit Detected Loss of Return Spring +P1589,TCU Unable To Control Desired Throttle Angle +P1600,Loss of KAM Power; Open Circuit +P1601,ECM/TCM Serial Communication Error +P1602,Immobilizer/ECM Communication Error +P1603,EEPROM Malfunction +P1604,Code Word Unregestered +P1605,Keep Alive Memory Test Failure +P1606,ECM Control Relay O/P Circuit Malfunction +P1607,MIL O/P Circuit Malfunction +P1608,Internal ECM Malfunction +P1609,Diagnostic Lamp Driver Fault +P1610,SBDS Interactive Codes +P1611,SBDS Interactive Codes +P1612,SBDS Interactive Codes +P1613,SBDS Interactive Codes +P1614,SBDS Interactive Codes +P1615,SBDS Interactive Codes +P1616,SBDS Interactive Codes +P1617,SBDS Interactive Codes +P1618,SBDS Interactive Codes +P1619,SBDS Interactive Codes +P1620,SBDS Interactive Codes +P1621,Control Module Long Term Memory Performance/ Immobilizer Code Words Do Not Match +P1622,Immobilizer ID Does Not Match +P1623,Immobilizer Code Word/ID Number Write Failure +P1624,Anti Theft System +P1625,B+ Supply To VCRM Fan Circuit Malfunction +P1626,Theft Deterrent Fuel Enable Signal Not Received/ B+ Supply To VCRM A/C Circuit Malfunction +P1627,Module Supply Voltage Out Of Range +P1628,Module Ignition Supply Input Malfunction +P1629,Internal Voltage Regulator Malfunction +P1630,Internal Vref Malfunction +P1631,Theft Deterrent Start Enable Signal Not Correct/ Main Relay Malfunction (Power Hold) +P1632,Smart Alternator Faults Sensor/Circuit Malfunction +P1633,KAM Voltage Too Low +P1634,Data Output Link Circuit Failure +P1635,Tire / Axle Ratio Out of Acceptable Range +P1636,Inductive Signature Chip Communication Error +P1637,Can Link ECM/ABSCM Circuit / Network Malfunction +P1638,Can Link ECM/INSTM Circuit / Network Malfunction +P1639,Vehicle ID Block Corrupted or Not Programmed +P1640,Powertrain DTCs Available in Another Module +P1641,Fuel Pump Primary Circuit Failure +P1642,Fuel Pump Monitor Circuit High Input +P1643,Fuel Pump Monitor Circuit Low Input +P1644,Fuel Pump Speed Control Circuit Malfunction +P1645,Fuel Pump Resistor Switch Circuit Malfunction +P1650,PSP Switch Out of Self Test Range +P1651,PSP Switch Input Malfunction +P1652,IAC Monitor Disabled by PSP Switch Failed On +P1653,Power Steering Output Circuit Malfunction +P1654,Recirculation Override Circuit Malfunction +P1655,Starter Disable Circuit Malfunction +P1660,Output Circuit Check Signal High +P1661,Output Circuit Check Signal Low +P1662,IDM_EN Circuit Failure +P1663,Fuel Demand Command Signal Circuit Malfunction +P1667,CI Circuit Malfunction +P1668,PCM - IDM Communications Error +P1670,Electronic Feedback Signal Not Detected +P1680,Metering Oil Pump Malfunction +P1681,Metering Oil Pump Malfunction +P1682,Metering Oil Pump Malfunction +P1683,Metering Oil Pump Temperature Sensor Circuit Malfunction +P1684,Metering Oil Pump Position Sensor Circuit Malfunction +P1685,Metering Oil Pump Stepping Motor Circuit Malfunction +P1686,Metering Oil Pump Stepping Motor Circuit Malfunction +P1687,Metering Oil Pump Stepping Motor Circuit Malfunction +P1688,Metering Oil Pump Stepping Motor Circuit Malfunction +P1689,Oil Pressure Control Solenoid Circuit Malfunction +P1690,Wastegate Solenoid Circuit Malfunction +P1691,Turbo Pressure Control Solenoid Circuit Malfunction +P1692,Turbo Control Solenoid Circuit Malfunction +P1693,Turbo Charge Control Circuit Malfunction +P1694,Turbo Charge Relief Circuit Malfunction +P1700,Transmission Indeterminate Failure (Failed to Neutral) +P1701,Reverse Engagement Error +P1702,TRS Circuit Intermittent Malfunction +P1703,Brake Switch Out Of Self Test Range +P1704,Digital TRS Failed to Transition States in KOEO / KOER +P1705,Not in P or N During KOEO / KOER +P1706,High Vehicle Speed Observed in Park +P1707,Transfer Case Neutral Indicator Hard Fault Present +P1708,Clutch Switch Circuit Malfunction +P1709,PNP Switch Out Of Self Test Range +P1711,TFT Sensor Out Of Self Test Range +P1712,Trans Torque Reduction Request Signal Malfunction +P1713,TFT Sensor In Range Failure Low Value +P1714,SSA Inductive Signature Malfunction +P1715,SSB Inductive Signature Malfunction +P1716,SSC Inductive Signature Malfunction +P1717,SSD Inductive Signature Malfunction +P1718,TFT Sensor In Range Failure High +P1720,Vehicle Speed (Meter) Circuit Malfunction +P1721,Gear 1 Incorrect Ratio +P1722,Gear 2 Incorrect Ratio +P1723,Gear 3 incorrect Ratio +P1724,Gear 4 Incorrect Ratio +P1725,Insufficient Engine Speed Increase During Self Test +P1726,Insufficient Engine Speed Decrease During Self Test +P1727,Coast Clutch Solenoid Inductive Signature Malfunction +P1728,Transmission Slip Error +P1729,4x4 Low Switch Error +P1730,Gear Control Malfunction 2,3,5 +P1731,1-2 Shift Malfunction +P1732,2-3 Shift Malfunction +P1733,3-4 Shift Malfunction +P1734,Gear Control Malfunction +P1735,First Gear Switch Circuit Malfunction +P1736,Second Gear Switch Circuit Malfunction +P1737,Lockup Solenoid System +P1738,Shift Time Error +P1739,Slip Solenoid System +P1740,Torque Converter Clutch Inductive Signature Malfunction +P1741,Torque Converter Clutch Control Error +P1742,Torque Converter Clutch Solenoid Failed On +P1743,Torque Converter Clutch Solenoid Failied On +P1744,Torque Converter Clutch System Performance +P1745,Line Pressure Solenoid System +P1746,Pressure Control Solenoid 'A' Open Circuit +P1747,Pressure Control Solenoid 'A' Short Circuit +P1748,EPC Malfunction +P1749,Pressure Control Solenoid Failed Low +P1751,Shift Solenoid A Performance +P1753,Torque Converter Clutch Solenoid Valve Circuit +P1754,Coast Clutch Solenoid Circuit Malfunction +P1755,Intermediate Speed Sensor (ISS) Malfunction +P1756,Shift Solenoid B Performance +P1760,Pressure Control Solenoid 'A' Short Circuit +P1761,Shift Solenoid C Performance +P1762,Overdrive Band Failed Off +P1765,Timing Solenoid Circuit Malfunction +P1767,Torque Converter Clutch Circuit Malfunction +P1768,Performance / Normal / Winter Mode Input Malfunction +P1769,AG4 Transmission Torque Modulation Fault +P1770,Clutch Solenoid Circuit Malfunction +P1775,Transmission System MIL Fault +P1776,Ignition Retard Request Duration Fault +P1777,Ignition Retard Request Circuit Fault +P1778,Transmission Reverse I/P Circuit Malfunction +P1779,TCIL Circuit Malfunction +P1780,Trans Control Switch (O/D Cancel) Out of Self Test Range +P1781,4X4 Switch Out of Self Test Range +P1782,P/ES Circuit Out Of Self Test Range +P1783,Transmission Overtemperature Condition +P1784,Transmission Mechanical Failure - First And Reverse +P1785,Transmission Mechanical Failure - First And Second +P1786,3-2 Downshift Error +P1787,2-1 Downshift Error +P1788,Pressure Control Solenoid 'B' Open Circuit +P1789,Pressure Control Solenoid 'B' Short Circuit +P1790,TP (Mechanical) Circuit Malfunction +P1791,TP (Electric) Circuit Malfunction +P1792,Barometer Pressure Circuit Malfunction +P1793,Intake Air Volume Circuit Malfunction +P1794,Battery Voltage Circuit Malfunction +P1795,Idle Switch Circuit Malfunction +P1796,Kick Down Switch Circuit Malfunction +P1797,Neutral Switch Circuit Malfunction +P1798,Coolant Temperature Circuit Malfunction +P1799,Hold Switch Circuit Malfunction +P1800,Transmission Clutch Interlock Safety Switch Circuit Failure +P1801,Transmission Clutch Interlock Safety Switch Open Circuit +P1802,Transmission Clutch Interlock Safety Switch Short Circuit To Battery +P1803,Transmission Clutch Interlock Safety Switch Short Circuit To Ground +P1804,Transmission 4-Wheel Drive High Indicator Circuit Failure +P1805,Transmission 4-Wheel Drive High Indicator Open Circuit +P1806,Transmission 4-Wheel Drive High Indicator Short Circuit To Battery +P1807,Transmission 4-Wheel Drive High Indicator Short Circuit To Ground +P1808,Transmission 4-Wheel Drive Low Indicator Circuit Failure +P1809,Transmission 4-Wheel Drive Low Indicator Open Circuit +P1810,TFP Valve Position Switch Circuit/ Transmission 4-Wheel Drive Low Indicator Short Circuit To Battery +P1811,Transmission 4-Wheel Drive Low Indicator Short Circuit To Ground +P1812,Transmission 4-Wheel Drive Mode Select Circuit Failure +P1813,Transmission 4-Wheel Drive Mode Select Open Circuit +P1814,Transmission 4-Wheel Drive Mode Select Short Circuit To Battery +P1815,Transmission 4-Wheel Drive Mode Select Short Circuit To Ground +P1816,Transmission Neutral Safety Switch Circuit Failure +P1817,Transmission Neutral Safety Switch Open Circuit +P1818,Transmission Neutral Safety Switch Short Circuit To Battery +P1819,Transmission Neutral Safety Switch Short Circuit To Ground +P1820,Transmission Transfer Case Clockwise Shift Relay Coil Circuit Failure +P1821,Transmission Transfer Case Clockwise Shift Relay Coil Open Circuit +P1822,Transmission Transfer Case Clockwise Shift Relay Coil Short Circuit To Battery +P1823,Transmission Transfer Case Clockwise Shift Relay Coil Short Circuit To Ground +P1824,Transmission 4-Wheel Drive Clutch Relay Circuit Failure +P1825,Transmission 4-Wheel Drive Clutch Relay Open Circuit +P1826,Transmission 4-Wheel Drive Low Clutch Relay Circuit To Battery +P1827,Transmission 4-Wheel Drive Low Clutch Relay Circuit To Ground +P1828,Transmission Transfer Case Counter Clockwise Shift Relay Coil Circuit Failure +P1829,Transmission Transfer Case Counter Clockwise Shift Relay Coil Open Circuit +P1830,Transmission Transfer Case Counter Clockwise Shift Relay Coil Short Circuit To Battery +P1831,Transmission Transfer Case Counter Clockwise Shift Relay Coil Short Circuit To Ground +P1832,Transmission Transfer Case Differential Lock-Up Solenoid Circuit Failure +P1833,Transmission Transfer Case Differential Lock-Up Solenoid Open Circuit +P1834,Transmission Transfer Case Differential Lock-Up Solenoid Short Circuit To Battery +P1835,Transmission Transfer Case Differential Lock-Up Solenoid Short Circuit To Ground +P1836,Transmission Transfer Case Front Shaft Speed Sensor Circuit Failure +P1837,Transmission Transfer Case Rear Shaft Speed Sensor Circuit Failure +P1838,Transmission Transfer Case Shift Motor Circuit Failure +P1839,Transmission Transfer Case Shift Motor Open Circuit +P1840,Transmission Transfer Case Shift Motor Short Circuit To Battery +P1841,Transmission Transfer Case Shift Motor Short Circuit To Ground +P1842,Transmission Transfer Case Differential Lock-Up Feedback Switch Circuit Failure +P1843,Transmission Transfer Case Differential Lock-Up Feedback Switch Open Circuit +P1844,Transmission Transfer Case Differential Lock-Up Feedback Switch Short Circuit To Battery +P1845,Transmission Transfer Case Differential Lock-Up Feedback Switch Short Circuit To Ground +P1846,Transmission Transfer Case Contact Plate 'A' Circuit Failure +P1847,Transmission Transfer Case Contact Plate 'A' Open Circuit +P1848,Transmission Transfer Case Contact Plate 'A' Short Circuit To Battery +P1849,Transmission Transfer Case Contact Plate 'A' Short Circuit To Ground +P1850,Transmission Transfer Case Contact Plate 'B' Circuit Failure +P1851,Transmission Transfer Case Contact Plate 'B' Open Circuit +P1852,Transmission Transfer Case Contact Plate 'B' Short Circuit To Battery +P1853,Transmission Transfer Case Contact Plate 'B' Short Circuit To Ground +P1854,Transmission Transfer Case Contact Plate 'C' Circuit Failure +P1855,Transmission Transfer Case Contact Plate 'C' Open Circuit +P1856,Transmission Transfer Case Contact Plate 'C' Short Circuit To Battery +P1857,Transmission Transfer Case Contact Plate 'C' Short Circuit To Ground +P1858,Transmission Transfer Case Contact Plate 'D' Circuit Failure +P1859,Transmission Transfer Case Contact Plate 'D' Open Circuit +P1860,TCC PWM Solenoid Circuit Electrical/ Transmission Transfer Case Contact Plate 'D' Short Circuit To Battery +P1861,Transmission Transfer Case Contact Plate 'D' Short Circuit To Ground +P1862,Transmission Transfer Case Contact Plate Power Circuit Failure +P1863,Transmission Transfer Case Contact Plate Power Open Circuit +P1864,Transmission Transfer Case Contact Plate Power Short To Battery +P1865,Transmission Transfer Case Contact Plate Power Short To Ground +P1866,Transmission Transfer Case System Concern - Servicing Required +P1867,Transmission Transfer Case Contact Plate General Circuit Failure +P1868,Transmission Automatic 4-Wheel Drive Indicator (Lamp) Circuit Failure +P1869,Transmission Automatic 4-Wheel Drive Indicator (Lamp) Circuit Short To Battery +P1870,Transmission Component Slipping/ Transmission Mechanical Transfer Case 4x4 Switch Circuit Failure +P1871,Transmission Mechanical Transfer Case 4x4 Switch Circuit Short To Battery +P1872,Transmission Mechanical 4-Wheel Drive Axle Lock Lamp Circuit Failure +P1873,Transmission Mechanical 4-Wheel Drive Axle Lock Lamp Circuit Short To Battery +P1874,Transmission Automatic Hall Effect Sensor Power Circuit Failure +P1875,Transmission Automatic Hall Effect Sensor Power Circuit Short To Battery / 4WD Low Switch Circuit Electrical +P1876,Transmission Transfer Case 2-Wheel Drive Solenoid Circuit Failure +P1877,Transmission Transfer Case 2-Wheel Drive Solenoid Circuit Short To Battery +P1878,Transmission Transfer Case Disengaged Solenoid Circuit Failure +P1879,Transmission Transfer Case Disengaged Solenoid Open Circuit +P1880,Transmission Transfer Case Disengaged Solenoid Short to Battery +P1881,Engine Coolant Level Switch Circuit Failure, GEM +P1882,Engine Coolant Level Switch Circuit Short to Ground +P1883,Engine Coolant Level Switch Circuit Failure, GEM +P1884,Engine Coolant Level Lamp Circuit Short to Ground +P1885,Transmission Transfer Case Disengaged Solenoid Short to Ground +P1886,4X4 Initialization Failure +P1890,Transmission 4WD Mode Select Return Input Circuit Failure +P1891,Transmission Transfer Case Contact Plate Ground Return Open Circuit +P1900,OSS Circuit Intermittent Malfunction +P1901,TSS Circuit Intermittent Malfunction +P1902,Pressure Control Solenoid 'B' Intermittent Short +P1903,Pressure Control Solenoid 'C' Short Circuit +P1904,Pressure Control Solenoid 'C' Open Circuit +P1905,Pressure Control Solenoid 'C' Intermittent Short +P1906,Kickdown Pull Relay Open or Short Circuit to Ground +P1907,Kickdown Hold Relay Open or Short Circuit to Ground +P1908,Transmission Pressure Circuit Solenoid Open or Short to Ground +P1909,Trans Temp Sensor Circuit Open or Shorted to Pwr or Gnd +P1910,VFS A Pressure Output Failed Low +P1911,VFS B Pressure Output Failed Low +P1912,VFS C Pressure Output Failed Low +P1913,Pressure Switch A Circuit Malfunction +P1914,Manually Shifted Automatic (MSA) Sw Circuit Malf +P1915,Reverse Switch Circuit Malfunction +P1916,High Clutch Drum Speed Sensor Malfunction +P1917,High Clutch Drum Speed Sensor Intermittent +P1918,Transmission Range Display Circuit Malfunction \ No newline at end of file diff --git a/PerfChart.cs b/PerfChart.cs new file mode 100644 index 0000000..6b4281f --- /dev/null +++ b/PerfChart.cs @@ -0,0 +1,371 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Windows.Forms; + +public class PerfChart : UserControl +{ + private const int int_0 = 0x200; + private const int int_1 = 8; + private int int_2; + private int int_3 = 4; + private decimal decimal_0; + private decimal decimal_1; + private int int_4; + private decimal decimal_2; + private Border3DStyle border3DStyle_0 = Border3DStyle.Flat; + private GEnum0 genum0_0; + private GEnum1 genum1_0; + private List list_0 = new List(0x200); + private Queue queue_0 = new Queue(); + private GClass3 gclass3_0; + private IContainer icontainer_0; + private Timer timer_0; + + public PerfChart() + { + this.InitializeComponent(); + this.gclass3_0 = new GClass3(); + base.SetStyle(ControlStyles.UserPaint, true); + base.SetStyle(ControlStyles.AllPaintingInWmPaint, true); + base.SetStyle(ControlStyles.OptimizedDoubleBuffer, true); + base.SetStyle(ControlStyles.ResizeRedraw, true); + this.Font = SystemInformation.MenuFont; + } + + private void InitializeComponent() + { + this.icontainer_0 = new Container(); + this.timer_0 = new Timer(this.icontainer_0); + base.SuspendLayout(); + this.timer_0.Tick += new EventHandler(this.timer_0_Tick); + base.AutoScaleDimensions = new SizeF(6f, 13f); + base.AutoScaleMode = AutoScaleMode.Font; + base.Name = "PerfChart"; + base.Size = new Size(0xeb, 0x57); + base.ResumeLayout(false); + } + + public void method_0() + { + this.list_0.Clear(); + base.Invalidate(); + } + + public void method_1(decimal decimal_3) + { + if ((this.genum0_0 == GEnum0.Absolute) && (decimal_3 > 100M)) + { + throw new Exception($"Values greater then 100 not allowed in ScaleMode: Absolute ({decimal_3})"); + } + GEnum1 enum2 = this.genum1_0; + if (enum2 == GEnum1.Disabled) + { + this.method_3(decimal_3); + base.Invalidate(); + } + else + { + if ((enum2 - 1) > GEnum1.SynchronizedAverage) + { + throw new Exception($"Unsupported TimerMode: {this.genum1_0}"); + } + this.method_2(decimal_3); + } + } + + private void method_10(Graphics graphics_0) + { + Rectangle rect = new Rectangle(0, 0, base.Width, base.Height); + using (Brush brush = new LinearGradientBrush(rect, this.gclass3_0.Color_0, this.gclass3_0.Color_1, LinearGradientMode.Vertical)) + { + graphics_0.FillRectangle(brush, rect); + } + if (this.gclass3_0.Boolean_0) + { + for (int i = base.Width - this.int_4; i >= 0; i -= 8) + { + graphics_0.DrawLine(this.gclass3_0.GClass4_0.Pen_0, i, 0, i, base.Height); + } + } + if (this.gclass3_0.Boolean_1) + { + for (int i = 0; i < base.Height; i += 8) + { + graphics_0.DrawLine(this.gclass3_0.GClass4_1.Pen_0, 0, i, base.Width, i); + } + } + } + + private void method_11(object sender, EventArgs e) + { + base.Invalidate(); + } + + private void method_2(decimal decimal_3) + { + this.queue_0.Enqueue(decimal_3); + } + + private void method_3(decimal decimal_3) + { + this.list_0.Insert(0, Math.Max(decimal_3, 0M)); + if (this.list_0.Count > 0x200) + { + this.list_0.RemoveAt(0x200); + } + this.int_4 += this.int_3; + if (this.int_4 > 8) + { + this.int_4 = this.int_4 % 8; + } + } + + private void method_4() + { + if (this.queue_0.Count <= 0) + { + this.method_3(0M); + } + else if (this.genum1_0 == GEnum1.Simple) + { + while (this.queue_0.Count > 0) + { + this.method_3(this.queue_0.Dequeue()); + } + } + else if ((this.genum1_0 == GEnum1.SynchronizedAverage) || (this.genum1_0 == GEnum1.SynchronizedSum)) + { + decimal num = 0M; + int count = this.queue_0.Count; + while (true) + { + if (this.queue_0.Count <= 0) + { + if (this.genum1_0 == GEnum1.SynchronizedAverage) + { + num = (decimal) (num / count); + } + if (num > 88M) + { + num = (decimal) (num - 10M); + } + if (num < 10M) + { + num = (decimal) (num + 10M); + } + this.method_3(num); + break; + } + num = (decimal) (num + this.queue_0.Dequeue()); + } + } + base.Invalidate(); + } + + private int method_5(decimal decimal_3) + { + decimal num = 0M; + if (this.genum0_0 == GEnum0.Absolute) + { + num = (decimal) ((decimal_3 * base.Height) / 100M); + } + else if (this.genum0_0 == GEnum0.Relative) + { + num = (this.decimal_0 > 0M) ? ((decimal) ((decimal_3 * base.Height) / this.decimal_0)) : 0M; + } + return Convert.ToInt32(Math.Round((decimal) ((base.Height - num) + 6M))); + } + + private decimal method_6() + { + decimal num = 0M; + for (int i = 0; i < this.int_2; i++) + { + if (this.list_0[i] > num) + { + num = this.list_0[i]; + } + } + return num; + } + + private decimal method_7() + { + try + { + return this.list_0[0]; + } + catch + { + } + try + { + return this.list_0[1]; + } + catch + { + return 0M; + } + } + + private void method_8(Graphics graphics_0) + { + this.int_2 = Math.Min(base.Width / this.int_3, this.list_0.Count); + if (this.genum0_0 == GEnum0.Relative) + { + this.decimal_0 = this.method_6(); + } + this.decimal_1 = this.method_7(); + Point point = new Point(base.Width + this.int_3, base.Height); + Point point2 = new Point(); + if ((this.int_2 > 0) && this.gclass3_0.Boolean_2) + { + this.decimal_2 = 0M; + this.method_9(graphics_0); + } + for (int i = 0; i < this.int_2; i++) + { + point2.X = point.X - this.int_3; + point2.Y = this.method_5(this.list_0[i]); + graphics_0.DrawLine(this.gclass3_0.GClass4_3.Pen_0, point, point2); + point = point2; + } + if (this.genum0_0 == GEnum0.Relative) + { + SolidBrush brush = new SolidBrush(this.gclass3_0.GClass4_3.Color_0); + string[] textArray1 = new string[] { "Max: ", this.decimal_0.ToString(), Environment.NewLine, "Current: ", this.decimal_1.ToString() }; + graphics_0.DrawString(string.Concat(textArray1), this.Font, brush, (float) 4f, (float) 2f); + } + ControlPaint.DrawBorder3D(graphics_0, 0, 0, base.Width, base.Height, this.border3DStyle_0); + } + + private void method_9(Graphics graphics_0) + { + for (int i = 0; i < this.int_2; i++) + { + this.decimal_2 = (decimal) (this.decimal_2 + this.list_0[i]); + } + this.decimal_2 = (decimal) (this.decimal_2 / this.int_2); + int num = this.method_5(this.decimal_2); + graphics_0.DrawLine(this.gclass3_0.GClass4_2.Pen_0, 0, num, base.Width, num); + } + + protected override void Dispose(bool disposing) + { + if (disposing && (this.icontainer_0 != null)) + { + this.icontainer_0.Dispose(); + } + base.Dispose(disposing); + } + + protected virtual void OnPaint(PaintEventArgs e) + { + base.OnPaint(e); + if (this.gclass3_0.Boolean_3) + { + e.Graphics.SmoothingMode = SmoothingMode.AntiAlias; + } + this.method_10(e.Graphics); + this.method_8(e.Graphics); + } + + protected virtual void OnResize(EventArgs e) + { + base.OnResize(e); + base.Invalidate(); + } + + private void timer_0_Tick(object sender, EventArgs e) + { + if (!base.DesignMode) + { + this.method_4(); + } + } + + [Description("Appearance and Style"), DesignerSerializationVisibility(DesignerSerializationVisibility.Content), Category("Appearance")] + public GClass3 GClass3_0 + { + get + { + return this.gclass3_0; + } + set + { + this.gclass3_0 = value; + } + } + + [Description("BorderStyle"), DefaultValue(typeof(Border3DStyle), "Sunken"), Category("Appearance")] + public Border3DStyle Border3DStyle_0 + { + get + { + return this.border3DStyle_0; + } + set + { + this.border3DStyle_0 = value; + base.Invalidate(); + } + } + + public GEnum0 GEnum0_0 + { + get + { + return this.genum0_0; + } + set + { + this.genum0_0 = value; + } + } + + public GEnum1 GEnum1_0 + { + get + { + return this.genum1_0; + } + set + { + if (value == GEnum1.Disabled) + { + if (this.genum1_0 != GEnum1.Disabled) + { + this.genum1_0 = value; + this.timer_0.Stop(); + this.method_4(); + return; + } + } + else + { + this.genum1_0 = value; + this.timer_0.Start(); + } + } + } + + public int Int32_0 + { + get + { + return this.timer_0.Interval; + } + set + { + if (value < 15) + { + throw new ArgumentOutOfRangeException("TimerInterval", value, "The Timer interval must be greater then 15"); + } + this.timer_0.Interval = value; + } + } +} + diff --git a/app.manifest b/app.manifest new file mode 100644 index 0000000..0063581 --- /dev/null +++ b/app.manifest @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/Debug/FlashToolTest.exe b/bin/Debug/FlashToolTest.exe index 4fbc492..e9888f0 100644 Binary files a/bin/Debug/FlashToolTest.exe and b/bin/Debug/FlashToolTest.exe differ diff --git a/bin/Debug/FlashToolTest.pdb b/bin/Debug/FlashToolTest.pdb index 6f8e5de..6c67151 100644 Binary files a/bin/Debug/FlashToolTest.pdb and b/bin/Debug/FlashToolTest.pdb differ diff --git a/bin/Debug/FlashToolTest.zip b/bin/Debug/FlashToolTest.zip new file mode 100644 index 0000000..a644075 Binary files /dev/null and b/bin/Debug/FlashToolTest.zip differ diff --git a/bin/Debug/OBD2.txt b/bin/Debug/OBD2.txt new file mode 100644 index 0000000..bdcb53f --- /dev/null +++ b/bin/Debug/OBD2.txt @@ -0,0 +1,1445 @@ +P0001,Fuel Volume Regulator Control Circuit/Open +P0002,Fuel Volume Regulator Control Circuit Range/Performance +P0003,Fuel Volume Regulator Control Circuit Low +P0004,Fuel Volume Regulator Control Circuit High +P0005,Fuel Shutoff Valve Control Circuit/Open +P0006,Fuel Shutoff Valve Control Circuit Low +P0007,Fuel Shutoff Valve Control Circuit High +P0008,Engine Position System Performance (Bank1) +P0009,Engine Position System Performance (Bank2) +P0010,A Camshaft Position Actuator Circuit (Bank1) +P0011,A Camshaft Position - Timing Over-Advanced or System Performance (Bank 1) +P0012,A Camshaft Position - Timing Over-Retarded (Bank 1) +P0013,B Camshaft Position - Actuator Circuit (Bank1) +P0014,B Camshaft Position - Timing Over-Advanced or Sytem Performance (Bank 1) +P0015,B Camshaft Position - Timing Over-Retarded (Bank 1) +P0016,Crankshaft Position Camshaft Position Correlation (Bank 1 Sensor A) +P0017,Crankshaft Position Camshaft Position Correlation (Bank 1 Sensor B) +P0018,Crankshaft Position Camshaft Position Correlation (Bank 2 Sensor A) +P0019,Crankshaft Position Camshaft Position Correlation (Bank 2 Sensor B) +P0020,A Camshaft Position Actuator Circuit (Bank 2) +P0021,A Camshaft Position - Timing Over-Advanced or System Performance (Bank 2) +P0022,A Camshaft Position - Timing Over-Retarded (Bank 2) +P0023,B Camshaft Position - Actuator Circuit (Bank 2) +P0024,B Camshaft Position - Timing Over-Advanced or System Performance (Bank 2) +P0025,B Camshaft Position - Timing Over-Retarded (Bank 2) +P0026,Intake Valve Control Solenoid Circuit Range/Performance (Bank 1) +P0027,Exhaust Valve Control Solenoid Circuit Range/Performance (Bank 1) +P0028,Intake Valve Control Solenoid Circuit Range/Performance (Bank 2) +P0029,Exhaust Valve Control Solenoid Circuit Range/Performance (Bank 2) +P0030,HO2S Heater Control Circuit (Bank 1 Sensor 1) +P0031,HO2S Heater Control Circuit Low (Bank 1 Sensor 1) +P0032,HO2S Heater Control Circuit High (Bank 1 Sensor 1) +P0033,Turbo Charger Bypass Valve Control Circuit +P0034,Turbo Charger Bypass Valve Control Circuit Low +P0035,Turbo Charger Bypass Valve Control Circuit High +P0036,HO2S Heater Control C ircuit (Bank 1 Sensor 2) +P0037,HO2S Heater Control Circuit Low (Bank 1 Sensor 2) +P0038,HO2S Heater Control Circuit High (Bank 1 Sensor 2) +P0039,Turbo/Super Charger Bypass Valve Control Circuit Range/Performance +P0040,O2 Sensor Signals Swapped Bank 1 Sensor 1/ Bank 2 Sensor 1 +P0041,O2 Sensor Signals Swapped Bank 1 Sensor 2/ Bank 2 Sensor 2 +P0042,HO2S Heater Control Circuit (Bank 1 Sensor 3) +P0043,HO2S Heater Control Circuit Low (Bank 1 Sensor 3) +P0044,HO2S Heater Control Circuit High (Bank 1 Sensor 3) +P0045,Turbo/Super Charger Boost Control Solenoid Circuit/Open +P0046,Turbo/Super Charger Boost Control Solenoid Circuit Range/Performance +P0047,Turbo/Super Charger Boost Control Solenoid Circuit Low +P0048,Turbo/Super Charger Boost Control Solenoid Circuit High +P0049,Turbo/Super Charger Turbine Overspeed +P0050,HO2S Heater Control Circuit (Bank 2 Sensor 1) +P0051,HO2S Heater Control Circuit Low (Bank 2 Sensor 1) +P0052,HO2S Heater Control Circuit High (Bank 2 Sensor 1) +P0053,HO2S Heater Resistance (Bank 1 Sensor 1) +P0054,HO2S Heater Resistance (Bank 1 Sensor 2) +P0055,HO2S Heater Resistance (Bank 1 Sensor 3) +P0056,HO2S Heater Control Circuit (Bank 2 Sensor 2) +P0057,HO2S Heater Control Circuit Low (Bank 2 Sensor 2) +P0058,HO2S Heater Control Circuit High (Bank 2 Sensor 2) +P0059,HO2S Heater Resistance (Bank 2 Sensor 1) +P0060,HO2S Heater Resistance (Bank 2 Sensor 2) +P0061,HO2S Heater Resistance (Bank 2 Sensor 3) +P0062,HO2S Heater Control Circuit (Bank 2 Sensor 3) +P0063,HO2S Heater Control Circuit Low (Bank 2 Sensor 3) +P0064,HO2S Heater Control Circuit High (Bank 2 Sensor 3) +P0065,Air Assisted Injector Control Range/Performance +P0066,Air Assisted Injector Control Circuit or Circuit Low +P0067,Air Assisted Injector Control Circuit High +P0068,MAP/MAF Throttle Position Correlation +P0069,Manifold Absolute Pressure Barometric Pressure Correlation +P0070,Ambient Air Temperature Sensor Circuit +P0071,Ambient Air Temperature Sensor Range/Performance +P0072,Ambient Air Temperature Sensor Circuit Low +P0073,Ambient Air Temperature Sensor Circuit High +P0074,Ambient Air Temperature Sensor Circuit Intermittent +P0075,Intake Valve Control Solenoid Circuit (Bank 1) +P0076,Intake Valve Control Solenoid Circuit Low (Bank 1) +P0077,Intake Valve Control Solenoid Circuit High (Bank 1) +P0078,Exhaust Valve Control Solenoid Circuit (Bank 1) +P0079,Exhaust Valve Control Solenoid Circuit Low (Bank 1) +P0080,Exhaust Valve Control Solenoid C ircuit High (Bank 1) +P0081,Intake Valve Control Solenoid Circuit (Bank 2) +P0082,Intake Valve Control Solenoid Circuit Low (Bank 2) +P0083,Intake Valve Control Solenoid Circuit High (Bank 2) +P0084,Exhaust Valve Control Solenoid Circuit (Bank 2) +P0085,Exhaust Valve Control Solenoid Circuit Low (Bank 2) +P0086,Exhaust Valve Control Solenoid C ircuit High (Bank 2) +P0087,Fuel Rail/System Pressure - Too Low +P0088,Fuel Rail/System Pressure - Too High +P0089,Fuel Pressure Regulator 1 Performance +P0090,Fuel Pressure Regulator 1 Control Circuit +P0091,Fuel Pressure Regulator 1 Control Circuit Low +P0092,Fuel Pressure Regulator 1 Control Circuit High +P0093,Fuel System Leak Detected Large Leak +P0094,Fuel System Leak Detected Small Leak +P0095,Intake Air Temperature Sensor 2 Circuit +P0096,Intake Air Temperature Sensor 2 Circuit Range/Performance +P0097,Intake Air Temperature Sensor 2 Circuit Low +P0098,Intake Air Temperature Sensor 2 Circuit High +P0099,Intake Air Temperature Sensor 2 Circuit Intermittent/Erratic +P0100,Mass or Volume Air flow Circuit Malfunction +P0101,Mass or Volume Air flow Circuit Range/Performance Problem +P0102,Mass or Volume Air Flow Circuit low Input +P0103,Mass or Volume Air flow Circuit High Input +P0104,Mass or Volume Air flow Circuit Intermittent +P0105,Manifold Absolute Pressure/Barometric Pressure Circuit Malfunction +P0106,Manifold Absolute Pressure/Barometric Pressure Circuit Range/Performance Problem +P0107,Manifold Absolute Pressure/Barometric Pressure Circuit Low Input +P0108,Manifold Absolute Pressure/Barometric Pressure Circuit High Input +P0109,Manifold Absolute Pressure/Barometric Pressure Circuit Intermittent +P0110,Intake Air Temperature Circuit Malfunction +P0111,Intake Air Temperature Circuit Range/Performance Problem +P0112,Intake Air Temperature Circuit Low Input +P0113,Intake Air Temperature Circuit High Input +P0114,Intake Air Temperature Circuit Intermittent +P0115,Engine Coolant Temperature Circuit Malfunction +P0116,Engine Coolant Temperature Circuit Range/Performance Problem +P0117,Engine Coolant Temperature Circuit Low Input +P0118,Engine Coolant Temperature Circuit High Input +P0119,Engine Coolant Temperature Circuit Intermittent +P0120,Throttle Pedal Position Sensor/Switch A Circuit Malfunction +P0121,Throttle/Pedal Position Sensor/Switch A Circuit Range/Performance Problem +P0122,Throttle/Pedal Position Sensor/Switch A Circuit Low Input +P0123,Throttle/Pedal Position Sensor/Switch A Circuit High Input +P0124,Throttle/Pedal Position Sensor/Switch A Circuit Intermittent +P0125,Insufficient Coolant Temperature for Closed Loop Fuel Control +P0126,Insufficient Coolant Temperature for Stable Operation +P0130,O2 Sensor Circuit Malfunction (Bank 1 Sensor 1) +P0131,O2 Sensor Circuit Low Voltage (Bank 1 Sensor 1) +P0132,O2 Sensor Circuit High Voltage (Bank 1 Sensor 1) +P0133,O2 Sensor Circuit Slow Response (Bank 1 Sensor 1) +P0134,O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 1) +P0135,O2 Sensor Heater Circuit Malfunction (Bank 1 Sensor 1) +P0136,O2 Sensor Circuit Malfunction (Bank 1 Sensor 2) +P0137,O2 Sensor Circuit Low Voltage (Bank 1 Sensor 2) +P0138,O2 Sensor Circuit High Voltage (Bank 1 Sensor 2) +P0139,O2 Sensor Circuit Slow Response (Bank 1 Sensor 2) +P0140,O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 2) +P0141,O2 Sensor Heater Circuit Malfunction (Bank 1 Sensor 2) +P0142,O2 Sensor Circuit Malfunction (Bank 1 Sensor 3) +P0143,O2 Sensor Circuit Low Voltage (Bank 1 Sensor 3) +P0144,O2 Sensor Circuit High Voltage (Bank 1 Sensor 3) +P0145,O2 Sensor Circuit Slow Response (Bank 1 Sensor 3) +P0146,O2 Sensor Circuit No Activity Detected (Bank 1 Sensor 3 +P0147,O2 Sensor Heater Circuit Malfunction (Bank 1 Sensor 3) +P0150,O2 Sensor Circuit Malfunction (Bank 2 Sensor 1) +P0151,O2 Sensor Circuit Low Voltage (Bank 2 Sensor 1) +P0152,O2 Sensor Circuit High Voltage (Bank 2 Sensor 1) +P0153,O2 Sensor Circuit Slow Response (Bank 2 Sensor 1) +P0154,O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 1) +P0155,O2 Sensor Heater Circuit Malfunction (Bank 2 Sensor 1 +P0156,O2 Sensor Circuit Malfunction (Bank 2 Sensor 2) +P0157,O2 Sensor Circuit Low Voltage (Bank 2 Sensor 2) +P0158,O2 Sensor Circuit High Voltage (Bank 2 Sensor 2) +P0159,O2 Sensor Circuit Slow Response (Bank 2 Sensor 2 +P0160,O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 2) +P0161,O2 Sensor Heater Circuit Malfunction (Bank 2 Sensor 2) +P0162,O2 Sensor Circuit Malfunction (Bank 2 Sensor 3 +P0163,O2 Sensor Circuit Low Voltage (Bank 2 Sensor 3 +P0164,O2 Sensor Circuit High Voltage (Bank 2 Sensor 3) +P0165,O2 Sensor Circuit Slow Response (Bank 2 Sensor 3) +P0166,O2 Sensor Circuit No Activity Detected (Bank 2 Sensor 3 +P0167,O2 Sensor Heater Circuit Malfunction (Bank 2 Sensor 3) +P0170,Fuel Trim Malfunction (Bank 1) +P0171,System Too Lean (Bank 1) +P0172,System Too Rich (Bank 1) +P0173,Fuel Trim Malfunction (Bank 2) +P0174,System Too Lean (Bank 2 +P0175,System Too Rich (Bank 2) +P0176,Fuel Composition Sensor Circuit Malfunction +P0177,Fuel Composition Sensor Circuit Range/Performance +P0178,Fuel Composition Sensor Circuit Low Input +P0179,Fuel Composition Sensor Circuit High Input +P0180,Fuel Temperature Sensor A Circuit Malfunction +P0181,Fuel Temperature Sensor A Circuit Performance +P0182,Fuel Temperature Sensor A Circuit low Input +P0183,Fuel Temperature Sensor A Circuit High Input +P0184,Fuel Temperature Sensor A Circuit Intermittent +P0185,Fuel Temperature Sensor B Circuit Malfunction +P0186,Fuel Temperature Sensor B Circuit Range/Performance +P0187,Fuel Temperature Sensor U Circuit Low Input +P0188,Fuel Temperature Sensor B Circuit High Input +P0189,Fuel Temperature Sensor B Circuit Intermittent +P0190,Fuel Rail Pressure Sensor Circuit Malfunction +P0191,Fuel Rail Pressure Sensor Circuit Range/Performance +P0192,Fuel Rail Pressure Sensor Circuit Low Input +P0193,Fuel Rail Pressure Sensor Circuit High Input +P0194,Fuel Rail Pressure Sensor Circuit Intermittent +P0195,Engine Oil Temperature Sensor Malfunction +P0196,Engine Oil Temperature Sensor Range/Performance +P0197,Engine Oil Temperature Sensor Low +P0198,Engine Oil Temperature Sensor High +P0199,Engine Oil Temperature Sensor Intermittent +P0200,Injector Circuit Malfunction +P0201,Injector Circuit Malfunction - Cylinder 1 +P0202,Injector Circuit Malfunction - Cylinder 2 +P0203,Injector Circuit Malfunction - Cylinder 3 +P0204,Injector Circuit Malfunction - Cylinder 4 +P0205,Injector Circuit Malfunction - Cylinder 5 +P0206,Injector Circuit Malfunction - Cylinder 6 +P0207,Injector Circuit Malfunction - Cylinder 7 +P0208,Injector Circuit Malfunction - Cylinder 8 +P0209,Injector Circuit Malfunction - Cylinder 9 +P0210,Injector Circuit Malfunction - Cylinder 10 +P0211,Injector Circuit Malfunction - Cylinder 11 +P0212,Injector Circuit Malfunction - Cylinder 12 +P0213,Cold Start Injector 1 Malfunction +P0214,Cold Start Injector 2 Malfunction +P0215,Engine Shutoff Solenoid Malfunction +P0216,Injection Timing Control Circuit Malfunction +P0217,Engine Overtemp Condition +P0218,Transmission Over Temperature Condition +P0219,Engine Over Speed Condition +P0220,Throttle/Pedal Position Sensor/Switch B Circuit Malfunction +P0221,Throttle/pedal Position Sensor/Switch B Circuit Range/Performance Problem +P0222,Throttle/pedal Position Sensor/Switch B Circuit Low Input +P0223,Throttle/Pedal Position Sensor/Switch B Circuit High Input +P0224,Throttle/Pedal Position Sensor/Switch B Circuit Intermittent +P0225,Throttle/Pedal Position Sensor/Switch C Circuit Malfunction +P0226,Throttle/Pedal Position Sensor/Switch C Circuit Range/Performance Problem +P0227,Throttle/Pedal Position Sensor/Switch C Circuit Low Input +P0228,Throttle/Pedal Position Sensor/Switch C Circuit High Input +P0229,Throttle/Pedal Position Sensor/Switch C Circuit Intermittent +P0230,Fuel Pump Primary Circuit Malfunction +P0231,Fuel Pump Secondary Circuit Low +P0232,Fuel Pump Secondary Circuit High +P0233,Fuel Pump Secondary Circuit Intermittent +P0234,Engine Overboost Condition +P0235,Turbocharger Boost Sensor A Circuit Malfunction +P0236,Turbocharger Boost Sensor A Circuit Range/Performance +P0237,Turbocharger Boost Sensor A Circuit Low +P0238,Turbocharger Boost Sensor A Circuit High +P0239,Turbocharger Boost Sensor B Circuit Malfunction +P0240,Turbocharger Boost Sensor B Circuit Range/Performance +P0241,Turbocharger Boost Sensor B Circuit Low +P0242,Turbocharger Boost Sensor B Circuit High +P0243,Turbocharger Wastegate Solenoid A Malfunction +P0244,Turbocharger Wastegate Solenoid A Range/Performance +P0245,Turbocharger Wastegate Solenoid A low +P0246,Turbocharger Wastegate Solenoid A High +P0247,Turbocharger Wastegate Solenoid B Malfunction +P0248,Turbocharger Wastegate Solenoid B Range/Performance +P0249,Turbocharger Wastegate Solenoid B Low +P0250,Turbocharger Wastegate Solenoid B High +P0251,Injection Pump Fuel Metering Control 'A' Malfunction (Cam/Rotor/Injector) +P0252,Injection Pump Fuel Metering Control 'A' Range/Performance (Cam/Rotor/Injector) +P0254,Injection Pump Fuel Metering Control 'A' High (Cam/Rotor/Injector) +P0256,Injection Pump Fuel Metering Control 'B' Malfunction (Cam/Rotor/Injector) +P0257,Injection Pump Fuel Metering Control 'B' Range/Performance (Cam/Rotor/Injector) +P0258,Injection Pump Fuel Metering Control 'B' Low (Cam/Rotor/Injector) +P0259,Injection lump Fuel Metering Control 'B' High (Cam/Rotor/Injector) +P0260,Injection Pump Fuel Metering Control 'B' Intermittent (Cam/Rotor/Injector) +P0261,Cylinder 1 Injector Circuit Low +P0262,Cylinder 1 Injector Circuit High +P0263,Cylinder 1 Contribution/Balance Fault +P0264,Cylinder 2 Injector Circuit Low +P0265,Cylinder 2 Injector Circuit High +P0266,Cylinder 2 Contribution/Balance Fault +P0267,Cylinder 3 Injector Circuit Low +P0268,Cylinder 3 Injector Circuit High +P0269,Cylinder 3 Contribution/Balance Fault +P0270,Cylinder 4 Injector Circuit Low +P0271,Cylinder 4 Injector Circuit High +P0272,Cylinder 4 Contribution/Balance Fault +P0273,Cylinder 5 Injector Circuit Low +P0274,Cylinder 5 Injector Circuit High +P0275,Cylinder 5 Contribution/Balance Fault +P0276,Cylinder 6 Injector Circuit Low +P0277,Cylinder 6 Injector Circuit High +P0278,Cylinder 6 Contribution/Balance Fault +P0279,Cylinder 7 Injector Circuit Low +P0280,Cylinder 7 Injector Circuit High +P0281,Cylinder 7 Contribution/Balance Fault +P0282,Cylinder 8 Injector Circuit Low +P0283,Cylinder 8 Injector Circuit High +P0284,Cylinder 8 Contribution/Balance Fault +P0285,Cylinder 9 Injector Circuit Low +P0286,Cylinder 9 Injector Circuit High +P0287,Cylinder 9 Contribution/Balance Fault +P0288,Cylinder 10 Injector Circuit Low +P0289,Cylinder 10 Injector Circuit High +P0290,Cylinder 10 Contribution/balance Fault +P0291,Cylinder 11 Injector Circuit Low +P0292,Cylinder 11 Injector Circuit High +P0293,Cylinder 11 Contribution/balance Fault +P0294,Cylinder 12 Injector Circuit Low +P0295,Cylinder 12 Injector Circuit High +P0296,Cylinder 12 Contribution/Balance Fault +P0300,Random/Multiple Cylinder Misfire Detected +P0301,Cylinder 1 Misfire Detected +P0302,Cylinder 2 Misfire Detected +P0303,Cylinder 3 Misfire Detected +P0304,Cylinder 4 Misfire Detected +P0305,Cylinder 5 Misfire Detected +P0306,Cylinder 6 Misfire Detected +P0307,Cylinder 7 Misfire Detected +P0308,Cylinder 8 Misfire Detected +P0309,Cylinder 9 Misfire Detected +P0310,Cylinder 10 Misfire Detected +P0311,Cylinder 11 Misfire Detected +P0312,Cylinder 12 Misfire Detected +P0320,Ignition/Distributor Engine Speed Input Circuit Malfunction +P0321,Ignition/Distributor Engine Speed Input Circuit Range/Performance +P0322,Ignition/Distributor Engine Speed Input Circuit No Signal +P0323,Ignition/Distributor Engine Speed Input Circuit Intermittent +P0325,Knock Sensor 1 Circuit Malfunction (Bank 1 or Single Sensor +P0326,Knock Sensor 1 Circuit Range/Performance (Bank 1 or Single Sensor) +P0327,Knock Sensor 1 Circuit low Input (Bank 1 or Single Sensor) +P0328,Knock Sensor 1 Circuit High Input (Bank 1 or Single Sensor) +P0329,Knock Sensor 1 Circuit Input Intermittent (Bank 1 or Single Sensor) +P0330,Knock Sensor 2 Circuit Malfunction (Bank 2) +P0331,Knock Sensor 2 Circuit Range/Performance (Bank 2) +P0332,Knock Sensor 2 Circuit Low Input (Bank 2) +P0333,Knock Sensor 2 Circuit High Input (Bank 2) +P0334,Knock Sensor 2 Circuit Input Intermittent (Bank 2) +P0335,Crankshaft Position Sensor A Circuit Malfunction +P0336,Crankshaft Position Sensor A Circuit Range/Performance +P0337,Crankshaft Position Sensor A Circuit Low Input +P0338,Crankshaft Position Sensor A Circuit High Input +P0339,Crankshaft Position Sensor A Circuit Intermittent +P0340,Camshaft Position Sensor Circuit Malfunction +P0341,Camshaft Position Sensor Circuit Range/Performance +P0342,Camshaft Position Sensor Circuit Low Input +P0343,Camshaft Position Sensor Circuit High Input +P0344,Camshaft Position Sensor Circuit Intermittent +P0350,Ignition Coil Primary/Secondary Circuit Malfunction +P0351,Ignition Coil A Primary/Secondary Circuit Malfunction +P0352,Ignition Coil B Primary/Secondary Circuit Malfunction +P0353,Ignition Coil C Primary/Secondary Circuit Malfunction +P0354,Ignition Coil D Primary/Secondary Circuit Malfunction +P0355,Ignition Coil B Primary/Secondary Circuit Malfunction +P0356,Ignition Coil F Primary/Secondary Circuit Malfunction +P0357,Ignition Coil G Primary/Secondary Circuit Malfunction +P0358,Ignition Coil H Primary/Secondary Circuit Malfunction +P0359,Ignition Coil I Primary/Secondary Circuit Malfunction +P0360,Ignition Coil I Primary/Secondary Circuit Malfunction +P0361,Ignition Coil K Primary/Secondary Circuit Malfunction +P0362,Ignition Coil L Primary/Secondary Circuit Malfunction +P0370,Timing Reference High Resolution Signal A Malfunction +P0371,Timing Reference High Resolution Signal A Too Many Pulses +P0372,Timing Reference High Resolution Signal A Too Few Pulses +P0373,Timing Reference High Resolution Signal A Intermittent/Erratic Pulses +P0374,Timing Reference High Resolution Signal A No Pulses +P0375,Timing Reference High Resolution Signal B Malfunction +P0376,Timing Reference High Resolution Signal B Too Many Pulses +P0377,Timing Reference High Resolution Signal B Too Few Pulses +P0378,Timing Reference High Resolution Signal B Intermittent/Erratic Pulses +P0379,Timing Reference High Resolution Signal B No Pulses +P0380,Glow Plug/Heater Circuit 'A' Malfunction +P0381,Glow Plug/Heater Indicator Circuit Malfunction +P0382,Glow Plug/Heater Circuit 'B' Malfunction +P0385,Crankshaft Position Sensor B Circuit Malfunction +P0386,Crankshaft Position Sensor B Circuit Range/Performance +P0387,Crankshaft Position Sensor B Circuit Low Input +P0388,Crankshaft Position Sensor B Circuit High Input +P0389,Crankshaft Position Sensor B Circuit Intermittent +P0400,Exhaust Gas Recirculation Flow Malfunction +P0401,Exhaust Gas Recirculation Flow Insufficient Detected +P0402,Exhaust Gas Recirculation Flow Excessive Detected +P0403,Exhaust Gas Recirculation Circuit Malfunction +P0404,Exhaust Gas Recirculation Circuit Range/Performance +P0405,Exhaust Gas Recirculation Sensor A Circuit Low +P0406,Exhaust Gas Recirculation Sensor A Circuit High +P0407,Exhaust Gas Recirculation Sensor B Circuit Low +P0408,Exhaust Gas Recirculation Sensor B Circuit High +P0410,Secondary Air Injection System Malfunction +P0411,Secondary Air Injection System Incorrect Flow Detected +P0412,Secondary Air Injection System Switching Valve A Circuit Malfunction +P0413,Secondary Air Injection System Switching Valve A Circuit Open +P0414,Secondary Air Injection System Switching Valve A Circuit Shorted +P0415,Secondary Air Injection System Switching Valve B Circuit Malfunction +P0416,Secondary Air Injection System Switching Valve B Circuit Open +P0417,Secondary Air Injection System Switching Valve B Circuit Shorted +P0418,Secondary Air Injection System Relay A circuit Malfunction +P0419,Secondary Air Injection System Relay B Circuit Malfunction +P0420,Catalyst System Efficiency Below Threshold (Bank 1) +P0421,Warm Up Catalyst Efficiency Below Threshold (Bank 1 +P0422,Main Catalyst Efficiency Below Threshold (Bank 1 +P0423,Heated Catalyst Efficiency Below Threshold (Bank l) +P0424,Heated Catalyst Temperature Below Threshold (Bank 1) +P0430,Catalyst System Efficiency Below Threshold (Bank 2) +P0431,Warm Up Catalyst Efficiency Below Threshold (Bank 2) +P0432,Main Catalyst Efficiency Below Threshold (Bank 2) +P0433,Heated Catalyst Efficiency Below Threshold (Bank 2) +P0434,Heated Catalyst Temperature Below Threshold (Bank 2) +P0440,Evaporative Emission Control System Malfunction +P0441,Evaporative Emission Control System Incorrect Purge flow +P0442,Evaporative Emission Control System leak Detected (small leak) +P0443,Evaporative Emission Control System Purge Control Valve circuit Malfunction +P0444,Evaporative Emission Control System Purge Control Valve Circuit Open +P0445,Evaporative Emission Control System Purge Control Valve Circuit Shorted +P0446,Evaporative Emission Control System Vent Control Circuit Malfunction +P0447,Evaporative Emission Control System Vent Control Circuit Open +P0448,Evaporative Emission Control System Vent Control Circuit Shorted +P0449,Evaporative Emission Control System Vent Valve/Solenoid Circuit Malfunction +P0450,Evaporative Emission Control System Pressure Sensor Malfunction +P0451,Evaporative Emission Control System Pressure Sensor Range/Performance +P0452,Evaporative Emission Control System Pressure Sensor Low Input +P0453,Evaporative Emission Control System Pressure Sensor High Input +P0454,Evaporative Emission Control System Pressure Sensor Intermittent +P0455,Evaporative Emission Control System Tank Detected (gross leak) +P0460,Fuel Level Sensor Circuit Malfunction +P0461,Fuel Level Sensor Circuit Range/Performance +P0462,Fuel level Sensor Circuit Low Input +P0463,Fuel level Sensor Circuit High Input +P0464,Fuel level Sensor Circuit Intermittent +P0465,Purge Flow Sensor Circuit Malfunction +P0466,Purge flow Sensor Circuit Range/Performance +P0467,Purge Flow Sensor Circuit Low Input +P0468,Purge flow Sensor Circuit High Input +P0469,Purge flow Sensor Circuit Intermittent +P0470,Exhaust Pressure Sensor Malfunction +P0471,Exhaust Pressure Sensor Range/Performance +P0472,Exhaust Pressure Sensor Low +P0473,Exhaust Pressure Sensor High +P0474,Exhaust Pressure Sensor Intermittent +P0475,Exhaust Pressure Control Valve Malfunction +P0476,Exhaust Pressure Control Valve Range/Performance +P0477,Exhaust Pressure Control Valve Low +P0478,Exhaust Pressure Control Valve High +P0479,Exhaust Pressure Control Valve Intermittent +P0480,Cooling Fan 1 Control Circuit Malfunction +P0481,Cooling Fan 2 Control Circuit Malfunction +P0482,Cooling Fan 3 Control Circuit Malfunction +P0483,Cooling Fan Rationality Check Malfunction +P0484,Cooling Fan Circuit Over Current +P0485,Cooling Fan Power/Ground Circuit Malfunction +P0500,Vehicle Speed Sensor Malfunction +P0501,Vehicle Speed Sensor Range/Performance +P0502,Vehicle Speed Sensor Circuit Low Input +P0503,Vehicle Speed Sensor Intermittent/Erratic/High +P0505,Idle Control System Malfunction +P0506,Idle Control System RPM lower Than Expected +P0507,Idle Control System RPM higher Than Expected +P0510,Closed Throttle Position Switch Malfunction +P0520,Engine Oil Pressure Sensor/Switch Circuit Malfunction +P0521,Engine Oil Pressure Sensor/Switch Range/Performance +P0522,Engine Oil Pressure Sensor/Switch Low Voltage +P0523,Engine Oil Pressure Sensor/Switch High Voltage +P0530,A/C Refrigerant Pressure Sensor Circuit Malfunction +P0531,A/C Refrigerant Pressure Sensor Circuit Range/Performance +P0532,A/C Refrigerant Pressure Sensor Circuit Low Input +P0533,A/C Refrigerant pressure Sensor Circuit High Input +P0534,Air Conditioner Refrigerant Charge Loss +P0550,Power Steering Pressure Sensor Circuit Malfunction +P0551,Power Steering Pressure Sensor Circuit Range/Performance +P0552,Power Steering Pressure Sensor Circuit Low Input +P0553,Power Steering Pressure Sensor Circuit High Input +P0554,Power Steering Pressure sensor Circuit Intermittent +P0560,System Voltage Malfunction +P0561,System Voltage Unstable +P0562,System Voltage Low +P0563,System Voltage High +P0565,Cruise Control On Signal Malfunction +P0566,Cruise Control Off Signal Malfunction +P0567,Cruise Control Resume Signal Malfunction +P0568,Cruise Control Set Signal Malfunction +P0569,Cruise Control Coast Signal Malfunction +P0570,Cruise Control Accel Signal Malfunction +P0571,Cruise Control/Brake Switch A Circuit Malfunction +P0572,Cruise Control/Brake Switch A Circuit Low +P0573,Cruise Control/Brake Switch A Circuit High +P0574,through P0580 Reserved for Cruise Codes +P0600,Serial Communication Link Malfunction +P0601,Internal Control Module Memory Check Sum Error +P0602,Control Module Programming Error +P0603,Internal Control Module Keep Alive Memory (KAM) Error +P0604,Internal Control Module RAM Error +P0605,Internal Control Module ROM Error (Module Identification Defined by SAE J1979) +P0606,PCM Processor Fault +P0608,Control Module VSS Output 'A' Malfunction +P0609,Control Module VSS Output 'B' Malfunction +P0620,Generator Control Circuit Malfunction +P0621,Generator Lamp 'L' Control Circuit Malfunction +P0622,Generator Field 'F' Control Circuit Malfunction +P0650,Malfunction Indicator Lamp (MIL) Control Circuit Malfunction +P0654,Engine RPM Output Circuit Malfunction +P0655,Engine Hot Lamp Output Control Circuit Malfunction +P0656,Fuel Level Output Circuit Malfunction +P0700,Transmission Control System Malfunction +P0701,Transmission Control System Range/Performance +P0702,Transmission Control System Electrical +P0703,Torque Converter/Brake Switch B Circuit Malfunction +P0704,Clutch Switch Input Circuit Malfunction +P0705,Transmission Range Sensor Circuit malfunction (PRNDL Input) +P0706,Transmission Range Sensor Circuit Range/Performance +P0707,Transmission Range Sensor Circuit Low Input +P0708,Transmission Range Sensor Circuit High Input +P0709,Transmission Range Sensor Circuit Intermittent +P0710,Transmission Fluid Temperature Sensor Circuit Malfunction +P0711,Transmission Fluid Temperature Sensor Circuit Range/Performance +P0712,Transmission Fluid Temperature Sensor Circuit Low Input +P0713,Transmission Fluid Temperature Sensor Circuit High Input +P0714,Transmission Fluid Temperature Sensor Circuit Intermittent +P0715,Input/Turbine Speed Sensor Circuit Malfunction +P0716,Input/Turbine Speed Sensor Circuit Range/Performance +P0717,Input/Turbine Speed Sensor Circuit No Signal +P0718,Input/Turbine Speed Sensor Circuit Intermittent +P0719,Torque Converter/Brake Switch B Circuit Low +P0720,Output Speed Sensor Circuit Malfunction +P0721,Output Speed Sensor Range/Performance +P0722,Output Speed Sensor No Signal +P0723,Output Speed Sensor Intermittent +P0724,Torque Converter/Brake Switch B Circuit High +P0725,Engine Speed input Circuit Malfunction +P0726,Engine Speed Input Circuit Range/Performance +P0727,Engine Speed Input Circuit No Signal +P0728,Engine Speed Input Circuit Intermittent +P0730,Incorrect Gear Ratio +P0731,Gear 1 Incorrect ratio +P0732,Gear 2 Incorrect ratio +P0733,Gear 3 Incorrect ratio +P0734,Gear 4 Incorrect ratio +P0735,Gear 5 Incorrect ratio +P0736,Reverse incorrect gear ratio +P0740,Torque Converter Clutch Circuit Malfuction +P0741,Torque Converter Clutch Circuit Performance or Stuck Off +P0742,Torque Converter Clutch Circuit Stuck On +P0743,Torque Converter Clutch Circuit Electrical +P0744,Torque Converter Clutch Circuit Intermittent +P0745,Pressure Control Solenoid Malfunction +P0746,Pressure Control Solenoid Performance or Stuck Off +P0747,Pressure Control Solenoid Stuck On +P0748,Pressure Control Solenoid Electrical +P0749,Pressure Control Solenoid Intermittent +P0750,Shift Solenoid A Malfunction +P0751,Shift Solenoid A Performance or Stuck Off/1-2 Shift Solenoid Valve Performance +P0752,Shift Solenoid A Stuck On +P0753,Shift Solenoid A Electrical/1-2 Shift Solenoid Circuit Electrical +P0754,Shift Solenoid A Intermittent +P0755,Shift Solenoid B Malfunction +P0756,Shift Solenoid B Performance or Stuck Off/2-3 Shift Solenoid Valve Performance +P0757,Shift Solenoid B Stuck On +P0758,Shift Solenoid B Electrical/2-3 Shift Solenoid Circuit Electrical +P0759,Shift Solenoid B Intermittent +P0760,Shift Solenoid C Malfunction +P0761,Shift Solenoid C Performance or Stuck Off +P0762,Shift Solenoid C Stuck On +P0763,Shift Solenoid C Electrical +P0764,Shift Solenoid C Intermittent +P0765,Shift Solenoid D Malfunction +P0766,Shift Solenoid D Performance or Stuck Off +P0767,Shift Solenoid D Stuck On +P0768,Shift Solenoid D Electrical +P0769,Shift Solenoid D Intermittent +P0770,Shift Solenoid E Malfunction +P0771,Shift Solenoid E Performance or Stuck Off +P0772,Shift Solenoid E Stuck On +P0773,Shift Solenoid E Electrical +P0774,Shift Solenoid E Intermittent +P0775,Pressure Control Solenoid B Malfunction +P0776,Pressure Control Solenoid B Performance +P0777,Pressure Control Solenoid B Stuck On +P0778,Pressure Control Solenoid B Electrical +P0779,Pressure Control Solenoid B Intermittent +P0780,Shift Malfunction +P0781,1-2 Shift Malfunction +P0782,2-3 Shift Malfunction +P0783,3-4 Shift Malfunction +P0784,4-5 Shift Malfunction +P0785,Shift/Timing Solenoid Malfunction/ 3-2 Shift Solenoid Circuit Electrical +P0786,Shift/Timing Solenoid Range/Performance +P0787,Shift/Timing Solenoid Low +P0788,Shift/Timing Solenoid High +P0789,Shift/Timing Solenoid Intermittent +P0790,Normal/Performance Switch Circuit Malfunction +P0791,Intermediate Shaft Speed Sensor Circuit +P0792,Intermediate Shaft Speed Sensor Circuit Range/Performance +P0793,Intermediate Shaft Speed Sensor Circuit No signal +P0794,Intermediate Shaft Speed Sensor Circuit Intermittent +P0795,Pressure Control Solenoid C +P0796,Pressure Control Solenoid C Performance or Stuck off +P0797,Pressure Control Solenoid C Stuck On +P0798,Pressure Control Solenoid C Electrical +P0799,Pressure Control Solenoid C Intermittent +P0801,Reverse Inhibit Control Circuit Malfunction +P0803,1-4 Upshift (Skip Shift) Solenoid Control Circuit Malfunction +P0804,1-4 Upshift (Skip Shift) Lamp Control Circuit Malfunction +P0805,Clutch Position Sensor Circuit Malfunction +P0806,Clutch Position Sensor Circuit Range/Performance Malfunction +P0807,Clutch Position Sensor Circuit Low Malfunction +P0808,Clutch Position Sensor Circuit High Malfunction +P0809,Clutch Position Sensor Circuit Intermittent Malfunction +P0810,Clutch Position Control Error +P0811,Excessive Clutch Slippage +P0812,Reverse Input Circuit +P0813,Reverse Output Circuit +P0814,Transmission Range Display Circuit +P0815,Upshift Switch Circuit +P0816,Downshift Switch Circuit +P0817,Starter Disable Circuit +P0818,Driveline Disconnect Switch Input Circuit +P0819,Up and Down Shift Switch to Transmission Range Correlation +P0820,Gear Lever X - Y Position Sensor Circuit +P0821,Gear Lever X Position Circuit +P0822,Gear Lever Y Position Circuit +P0823,Gear Lever X Position Circuit Intermittent +P0824,Gear Lever Y Position Circuit Intermittent +P0825,Gear Lever Push - Pull Switch (Shift Anticipate) +P0826,Up and Down Switch Input Circuit +P0827,Up and Down Switch Input Circuit Low +P0828,Up and Down Switch Input Circuit High +P0829,5-6 Shift +P0830,Clutch Pedal Switch A Circuit +P0831,Clutch Pedal Switch A Circuit Low +P0832,Clutch Pedal Switch A Circuit High +P0833,Clutch Pedal Switch B Circuit +P0834,Clutch Pedal Switch B Circuit Low +P0835,Clutch Pedal Switch B Circuit High +P0836,Four Wheel Drive (4WD) Switch Circuit +P0837,Four Wheel Drive (4WD) Switch Circuit Range/Performance +P0838,Four Wheel Drive (4WD) Switch Circuit Low +P0839,Four Wheel Drive (4WD) Switch Circuit High +P0840,Transmission Fluid Pressure Sensor/Switch A Circuit +P0841,Transmission Fluid Pressure Sensor/Switch A Circuit Range/Performance +P0842,Transmission Fluid Pressure Sensor/Switch A Circuit Low +P0843,Transmission Fluid Pressure Sensor/Switch A Circuit High +P0844,Transmission Fluid Pressure Sensor/Switch A Circuit Intermittent +P0845,Transmission Fluid Pressure Sensor/Switch B Circuit +P0846,Transmission Fluid Pressure Sensor/Switch B Circuit Range/Performance +P0847,Transmission Fluid Pressure Sensor/Switch B Circuit Low +P0848,Transmission Fluid Pressure Sensor/Switch B Circuit High +P0849,Transmission Fluid Pressure Sensor/Switch B Circuit Intermittent +P0850,Park / Neutral Switch Input Circuit +P0851,Park / Neutral Switch Input Circuit Low +P0852,Park / Neutral Switch Input Circuit High +P0853,Drive Switch Input Circuit +P0854,Drive Switch Input Circuit Low +P0855,Drive Switch Input Circuit High +P0856,Traction Control Input Signal +P0857,Traction Control Input Signal Range/Performance +P0858,Traction Control Input Signal Low +P0859,Traction Control Input Signal High +P0860,Gear Shift Module Communication Circuit +P0861,Gear Shift Module Communication Circuit Low +P0862,Gear Shift Module Communication Circuit High +P0863,TCM Communication Circuit +P0864,TCM Communication Circuit Range/Performance +P0865,TCM Communication Circuit Low +P0866,TCM Communication Circuit High +P0867,Transmission Fluid Pressure +P0868,Transmission Fluid Pressure Low +P0869,Transmission Fluid Pressure High +P0870,Transmission Fluid Pressure Sensor/Switch C Circuit +P0871,Transmission Fluid Pressure Sensor/Switch C Circuit Range/Performance +P0872,Transmission Fluid Pressure Sensor/Switch C Circuit Low +P0873,Transmission Fluid Pressure Sensor/Switch C Circuit High +P0874,Transmission Fluid Pressure Sensor/Switch C Circuit Intermittent +P0875,Transmission Fluid Pressure Sensor/Switch D Circuit +P0876,Transmission Fluid Pressure Sensor/Switch D Circuit Range/Performance +P0877,Transmission Fluid Pressure Sensor/Switch D Circuit Low +P0878,Transmission Fluid Pressure Sensor/Switch D Circuit High +P0879,Transmission Fluid Pressure Sensor/Switch D Circuit Intermittent +P0880,TCM Power Input Signal +P0881,TCM Power Input Signal Range/Performance +P0882,TCM Power Input Signal Low +P0883,TCM Power Input Signal High +P0884,TCM Power Input Signal Intermittent +P0885,TCM Power Relay Control Circuit /Open +P0886,TCM Power Relay Control Circuit Low +P0887,TCM Power Relay Control Circuit High +P0888,TCM Power Relay Sense Circuit +P0889,TCM Power Relay Sense Circuit Range/Performance +P0890,TCM Power Relay Sense Circuit Low +P0891,TCM Power Relay Sense Circuit High +P0892,TCM Power Relay Sense Circuit Intermittent +P0893,Multiple Gears Engaged +P0894,Transmission Component Slipping +P0895,Shift Time Too Short +P0896,Shift Time Too Long +P0897,Transmission Fluid Deteriorated +P0898,Transmission Control System MIL Request Circuit Low +P0899,Transmission Control System MIL Request Circuit High +P0900,Clutch Actuator Circuit / Open +P0901,Clutch Actuator Circuit Range/Performance +P0902,Clutch Actuator Circuit Low +P0903,Clutch Actuator Circuit High +P0904,Gate Select Position Circuit [senses left / right position] +P0905,Gate Select Position Circuit Range/Performance +P0906,Gate Select Position Circuit Low +P0907,Gate Select Position Circuit High +P0908,Gate Select Position Circuit Intermittent +P0909,Gate Select Control Error +P0910,Gate Select Actuator Circuit / Open [left / right motion] +P0911,Gate Select Actuator Circuit Range/Performance +P0912,Gate Select Actuator Circuit Low +P0913,Gate Select Actuator Circuit High +P0914,Gear Shift Position Circuit [senses forward / rearward position, odd / even gears] +P0915,Gear Shift Position Circuit Range/Performance +P0916,Gear Shift Position Circuit Low +P0917,Gear Shift Position Circuit High +P0918,Gear Shift Position Circuit Intermittent +P0919,Gear Shift Position Control Error +P0920,Gear Shift Forward Actuator Circuit / Open [forward motion, odd gears, 1,3,5] +P0921,Gear Shift Foward Actuator Circuit Range/Performance +P0922,Gear Shift Foward Actuator Circuit Low +P0923,Gear Shift Foward Actuator Circuit High +P0924,Gear Shift Reverse Actuator Circuit / Open [rearward motion, even gears, 2,4,6] +P0925,Gear Shift Reverse Actuator Circuit Range/Performance +P0926,Gear Shift Reverse Actuator Circuit Low +P0927,Gear Shift Reverse Actuator Circuit High +P0928,Gear Shift Lock Solenoid Circuit / Open +P0929,Gear Shift Lock Solenoid Circuit Range/Performance +P0930,Gear Shift Lock Solenoid Circuit Low +P0931,Gear Shift Lock Solenoid Circuit High +P0932,Hydraulic Pressure Sensor Circuit +P0933,Hydraulic Pressure Sensor Range/Performance +P0934,Hydraulic Pressure Sensor Circuit Low Input +P0935,Hydraulic Pressure Sensor Circuit High Input +P0936,Hydraulic Pressure Sensor Circuit Intermittent +P0937,Hydraulic Oil Temperature Sensor Circuit +P0938,Hydraulic Oil Temperature Sensor Range/Performance +P0939,Hydraulic Oil Temperature Sensor Circuit Low Input +P0940,Hydraulic Oil Temperature Sensor Circuit High Input +P0941,Hydraulic Oil Temperature Sensor Circuit Intermittent +P0942,Hydraulic Pressure Unit +P0943,Hydraulic Pressure Unit Cycling Period Too Short +P0944,Hydraulic Pressure Unit Loss of Pressure +P0945,Hydraulic Pump Relay Circuit / Open +P0946,Hydraulic Pump Relay Circuit Range/Performance +P0947,Hydraulic Pump Relay Circuit Low +P0948,Hydraulic Pump Relay Circuit High +P0949,ASM Adaptive Learning Not Done +P0950,ASM Control Circuit [Up / Down / Auto / etc] +P0951,ASM Control Circuit Range/Performance +P0952,ASM Control Circuit Low +P0953,ASM Control Circuit High +P0954,ASM Control Circuit Intermittent +P0955,ASM Mode Circuit [Perf / Winter / Sport / etc] +P0956,ASM Mode Circuit Range/Performance +P0957,ASM Mode Circuit Low +P0958,ASM Mode Circuit High +P0959,ASM Mode Circuit Intermittent +P0960,Pressure Control Solenoid A Control Circuit / Open +P0961,Pressure Control Solenoid A Control Circuit Range/Performance +P0962,Pressure Control Solenoid A Control Circuit Low +P0963,Pressure Control Solenoid A Control Circuit High +P0964,Pressure Control Solenoid B Control Circuit / Open +P0965,Pressure Control Solenoid B Control Circuit Range/Performance +P0966,Pressure Control Solenoid B Control Circuit Low +P0967,Pressure Control Solenoid B Control Circuit High +P0968,Pressure Control Solenoid C Control Circuit / Open +P0969,Pressure Control Solenoid C Control Circuit Range/Performance +P0970,Pressure Control Solenoid C Control Circuit Low +P0971,Pressure Control Solenoid C Control Circuit High +P0972,Shift Solenoid A Control Circuit Range/Performance +P0973,Shift Solenoid A Control Circuit Low +P0974,Shift Solenoid A Control Circuit High +P0975,Shift Solenoid B Control Circuit Range/Performance +P0976,Shift Solenoid B Control Circuit Low +P0977,Shift Solenoid B Control Circuit High +P0978,Shift Solenoid C Control Circuit Range/Performance +P0979,Shift Solenoid C Control Circuit Low +P0980,Shift Solenoid C Control Circuit High +P0981,Shift Solenoid D Control Circuit Range/Performance +P0982,Shift Solenoid D Control Circuit Low +P0983,Shift Solenoid D Control Circuit High +P0984,Shift Solenoid E Control Circuit Range/Performance +P0985,Shift Solenoid E Control Circuit Low +P0986,Shift Solenoid E Control Circuit High +P0987,Transmission Fluid Pressure Sensor/Switch E Circuit +P0988,Transmission Fluid Pressure Sensor/Switch E Circuit Range/Performance +P0989,Transmission Fluid Pressure Sensor/Switch E Circuit Low +P0990,Transmission Fluid Pressure Sensor/Switch E Circuit High +P0991,Transmission Fluid Pressure Sensor/Switch E Circuit Intermittent +P0992,Transmission Fluid Pressure Sensor/Switch F Circuit +P0993,Transmission Fluid Pressure Sensor/Switch F Circuit Range/Performance +P0994,Transmission Fluid Pressure Sensor/Switch F Circuit Low +P0995,Transmission Fluid Pressure Sensor/Switch F Circuit High +P0996,Transmission Fluid Pressure Sensor/Switch F Circuit Intermittent +P0997,Shift Solenoid F Control Circuit Range/Performance +P0998,Shift Solenoid F Control Circuit Low +P0999,Shift Solenoid F Control Circuit High +P1100,MAF Sensor Intermittent/ Check of all OBDII Systems Not Complete +P1101,MAF Sensor Out Of Self Test Range./KOER Not Able To Complete KOER Aborted +P1102,MAF Sensor In Range But Lower Than Expected +P1103,MAF Sensor In Range But Higher Than Expected +P1104,MAF Ground Malfunction +P1105,Dual Alternator Upper Fault +P1106,Dual Alternator Lower Fault/ Manifold Absolute Pressure (MAP) Sensor Circuit Intermittent High Voltage +P1107,Dual Alternator Lower Circuit Malfunction/ Manifold Absolute Pressure (MAP) Sensor Circuit Intermittent Low Voltage +P1108,Dual Alternator Battery Lamp Circuit Malfunction +P1109,IAT - B Sensor Intermittent +P1110,IAT Sensor (D/C) Open/Short +P1111,Intake Air Temperature (IAT) Sensor Circuit Intermittent High Voltage +P1112,Intake Air Temperature (IAT) Sensor Circuit Intermittent Low Voltage +P1113,IAT Sensor Open/Short +P1114,Engine Coolant Temperature (ECT) Sensor Circuit Intermittent Low Voltage/IAT - B Circuit Low Input +P1115,Engine Coolant Temperature (ECT) Sensor Circuit Intermittent High Voltage/IAT - B Circuit High Input +P1116,Engine Coolant sensor out of range/ECT Sensor Out Of Self Test Range +P1117,Engine Coolant Sensor intermittent/ECT Sensor Intermittent +P1118,Manifold Absolute Temperature Circuit Low Input +P1119,Manifold Absolute Temperature Circuit High Input +P1120,Throttle position sensor out of range +P1121,Throttle Position (TP) Sensor Circuit Intermittent High Voltage +P1122,Throttle Position (TP) Sensor Circuit Intermittent Low Voltage +P1123,Throttle Position Sensor In Range But Higher Than Expected +P1124,Throttle Position Sensor Out Of Self Test Range +P1125,Throttle position sensor intermittent +P1126,Throttle Position (Narrow Range) Sensor Circuit Malfunction +P1127,Exhaust Not Warm, Downstream O2 Sensor +P1128,Upstream Heated O2 Sensors Swapped +P1129,Downstream Heated O2 Sensors Swapped +P1130,Lack Of HO2S Switch - Adaptive Fuel At Limit +P1131,Lack Of HO2S Switch - Sensor Indicates Lean +P1132,Lack Of HO2S Switch - Sensor Indicates Rich +P1133,HO2S Insufficient Switching Sensor 1 +P1134,HO2S Transition Time Ratio Sensor 1 +P1135,Pedal Position Sensor A Circuit Intermittent +P1136,Fan Control Circuit Malfunction +P1137,Lack Of HO2S Switch - Sensor Indicates Lean +P1138,Lack Of HO2S12 Switch - Sensor Indicates Rich +P1139,Water In Fuel Indicator Circuit Malfunction +P1140,Water In Fuel Condition +P1141,Fuel Restriction Indicator Circuit Malfunction +P1142,Fuel Restriction Condition +P1143,Air Assist Control Valve Range/Performance +P1144,Air Assist Control Valve Circuit Malfunction +P1150,Lack Of HO2S21 Switch - Adaptive Fuel At Limit +P1151,Lack Of HO2S21 Switch - Sensor Indicates Lean +P1152,Lack Of HO2S21 Switch - Sensor Indicates Rich +P1153,Bank 2 Fuel Control Shifted Lean +P1154,Bank 2 Fuel Control Shifted Rich +P1155,Alternative Fuel Controller +P1156,Fuel Select Switch Malfunction +P1157,Lack Of HO2S22 Switch - Sensor Indicates Lean +P1158,Lack Of HO2S22 Switch - Sensor Indicates Rich +P1159,Fuel Stepper Motor Malfunction +P1166,Air/Fuel Ratio Sensor 1 harness is open or shorted +P1167,Invalid Test,throttle not depressed +P1168,Fuel Rail Sensor In-Range Low Failure +P1169,Fuel Rail Sensor In-Range High Failure +P1170,ESO - Engine Shut Off Solenoid Fault +P1171,Rotor Sensor Fault +P1172,Rotor Control Fault +P1173,Rotor Calibration Fault +P1174,Cam Sensor Fault +P1175,Cam Control Fault +P1176,Cam Calibration Fault +P1177,Synchronization Fault +P1178,( open ) +P1180,Fuel Delivery System Malfunction - Low +P1181,Fuel Delivery System Malfunction - High +P1182,Fuel Shut Off Solenoid Malfunction +P1183,Engine Oil Temperature Circuit Malfunction +P1184,Engine Oil Temperature Out Of Self Test Range +P1185,FTS High - Fuel Pump Temperature Sensor High +P1186,FTS Low - Fuel Pump Temperature Sensor Low +P1187,Variant Selection +P1188,Calibration Memory Fault +P1189,Pump Speed Signal Fault +P1190,Calibration Resistor Out Of Range +P1191,Key Line Voltage +P1192,Voltage External +P1193,EGR Drive Overcurrent +P1194,ECU A/D Converter +P1195,SCP HBCC Failed To Initialize +P1196,Key Off Voltage High +P1197,Key Off Voltage Low +P1198,Pump Rotor Control Underfueling +P1199,Fuel Level Input Circuit Low +P1200,Injector Control Circuit +P1201,Injector Circuit Open / Shorted - Cylinder #1 +P1202,Injector Circuit Open / Shorted - Cylinder #2 +P1203,Injector Circuit Open / Shorted - Cylinder #3 +P1204,Injector Circuit Open / Shorted - Cylinder #4 +P1205,Injector Circuit Open / Shorted - Cylinder #5 +P1206,Injector Circuit Open / Shorted - Cylinder #6 +P1209,Injector Control Pressure System Fault +P1210,Injector Control Pressure Above Expected Level +P1211,Injector Control Pressure Sensor Above / Below Desired +P1212,Injector Control Pressure Not Detected During Crank +P1213,Start Injector Circuit Malfunction +P1214,Pedal Position Sensor B Circuit Intermittent +P1215,Pedal Position Sensor C Circuit Low Input +P1216,Pedal Position Sensor C Circuit High Input +P1217,Pedal Position Sensor C Circuit Intermittent +P1218,CID High +P1219,CID Low +P1220,Series Throttle Control System Malfunction +P1221,Traction Control System Malfunction +P1222,Traction Control Output Circuit Malfunction +P1223,Pedal Demand Sensor B Circuit High Input +P1224,Throttle Position Sensor B Out Of Self Test Range +P1225,Needle Lift Sensor Malfunction +P1226,Control Sleeve Sensor Malfunction +P1227,Wastegate Failed Closed (Over Pressure) +P1228,Wastegate Failed Open (Under Pressure) +P1229,Intercooler Pump Driver Fault +P1230,Fuel Pump Low Speed Malfunction +P1231,Fuel Pump Secondary Circuit Low, High Speed +P1232,Fuel Pump Speed Primary Circuit Malfunction +P1233,Fuel Pump Driver Module Off Line +P1234,Fuel Pump Driver Module Off Line +P1235,Fuel Pump Control Out Of Range +P1236,Fuel Pump Control Out Of Range +P1237,Fuel Pump Secondary Circuit Malfunction +P1238,Fuel Pump Secondary Circuit Malfunction +P1239,Speed Fuel Pump Positive Feed Fault +P1240,Sensor Power Supply Malfunction +P1241,Sensor Power Supply Low Input +P1242,Sensor Power Supply High Input +P1243,Second Fuel Pump Faulty or Ground Fault +P1244,Alternator Load Input Failed High +P1245,Alternator Load Input Failed Low +P1246,Alternator Load Input Failed +P1247,Turbo Boost Pressure Low +P1248,Turbo Boost Pressure Not Detected +P1249,Wastegate Control Valve Performance +P1250,PRC Solenoid Circuit Malfunction +P1251,Air Mixture Solenoid Circuit Malfunction +P1252,Pedal Correlation PDS1 and LPDS High +P1253,Pedal Correlation PDS1 and LPDS Low +P1254,Pedal Correlation PDS2 and LPDS High +P1255,Pedal Correlation PDS2 and LPDS Low +P1256,Pedal Correlation PDS1 and HPDS +P1257,Pedal Correlation PDS2 and HPDS +P1258,Pedal Correlation PDS1 and PDS2 +P1259,Immobilizer to PCM Signal Error +P1260,THEFT Detected, Vehicle Immobilzed +P1261,Cylinder #1 High To Low Side Short +P1262,Cylinder #2 High To Low Side Short +P1263,Cylinder #3 High To Low Side Short +P1264,Cylinder #4 High To Low Side Short +P1265,Cylinder #5 High To Low Side Short +P1266,Cylinder #6 High To Low Side Short +P1267,Cylinder #7 High To Low Side Short +P1268,Cylinder #8 High To Low Side Short +P1269,Immobilizer Code Not Programmed +P1270,Engine RPM Or Speed Limiter Reached +P1271,Cylinder #1 High To Low Side Open +P1272,Cylinder #2 High To Low Side Open +P1273,Cylinder #3 High To Low Side Open +P1274,Cylinder #4 High To Low Side Open +P1275,Cylinder #5 High To Low Side Open +P1276,Cylinder #6 High To Low Side Open +P1277,Cylinder #7 High To Low Side Open +P1278,Cylinder #8 High To Low Side Open +P1280,Injection Control Pressure Out Of Range Low +P1281,Injection Control Pressure Out Of Range High +P1282,Excessive Injection Control Pressure +P1283,IPR Circuit Failure +P1284,Aborted KOER - ICP Failure +P1285,Cylinder head over temp sensed +P1286,Fuel Pulse In Range But Lower Than Expected +P1287,Fuel Pulse In Range But Higher Than Expected +P1288,Cylinder Head Temp Sensor Out Of Self Test Range +P1289,Cylinder Head Temp Sensor High Input +P1290,Cylinder Head Temp Sensor Low Input +P1291,Injector High Side Short To GND Or VBATT - Bank 1 +P1292,Injector High Side Short To GND Or VBATT - Bank 2 +P1293,Injector High Side Open - Bank 1 +P1294,Injector High Side Open - Bank 2/Target idle not reached +P1295,Multi-faults - Bank 1 - With Low Side Shorts +P1296,Multi-faults - Bank 2 - With Low Side Shorts +P1297,Injector High Sides Shorted Together +P1298,IDM Failure +P1299,Cylinder Head Overtemperature Protection Active +P1300,Boost Calibration Fault +P1301,Boost Calibration High +P1302,Boost Calibration Low +P1303,EGR Calibration Fault +P1304,EGR Calibration High +P1305,EGR Calibration Low +P1306,Kickdown Relay Pull - In Circuit Fault +P1307,Kickdown Relay Hold Circuit Fault +P1308,A/C Clutch Circuit Fault +P1309,Misfire Monitor AICE Chip Fault +P1313,Misfire Rate Catalyst Damage Fault - Bank 1 +P1314,Misfire Rate Catalyst Damage Fault - Bank 2 +P1315,Persistent Misfire +P1316,Injector Circuit / IDM Codes Detected +P1317,Injector Circuit / IDM Codes Not Updated +P1336,Crank / Cam Sensor Range / Performance +P1340,Camshaft Position Sensor B Circuit Malfunction +P1341,Camshaft Position Sensor B Range / Performance +P1345,SGC (Cam Position) Sensor Circuit Malfunction/ Crankshaft Position - Camshaft Position Correlation +P1346,Fuel Level Sensor B Circuit Malfunction +P1347,Fuel Level Sensor B Range / Performance +P1348,Fuel Level Sensor B Circuit Low +P1349,Fuel Level Sensor B Circuit High +P1350,Fuel Level Sensor B Intermittent/Bypass Line Monitor +P1351,IDM Input Circuit Malfunction/ Ignition Coil Control Circuit High Voltage +P1352,Ignition Coil A Primary Circuit Malfunction +P1353,Ignition Coil B Primary Circuit Malfunction +P1354,Ignition Coil C Primary Circuit Malfunction +P1355,Ignition Coil D Primary Circuit Malfunction +P1360,Ignition Coil A Secondary Circuit Malfunction +P1361,Ignition Control (IC) Circuit Low Voltage +P1362,Ignition Coil C Secondary Circuit Malfunction +P1363,Ignition Coil D Secondary Circuit Malfunction +P1364,Ignition Coil Primary Circuit Failure +P1365,Ignition Coil Secondary Circuit Failure +P1366,Ignition Spare +P1367,Ignition Spare +P1368,Ignition Spare +P1369,Engine Temperature Light Monitor Failure +P1370,Insufficient RMP Increase During Spark Test +P1371,Ignition Coil - Cylinder 1 - Early Activation Fault +P1372,Ignition Coil - Cylinder 2 - Early Activation Fault +P1373,Ignition Coil - Cylinder 3 - Early Activation Fault +P1374,Crankshaft Position (CKP)/Ignition Coil - Cylinder 4 - Early Activation Fault +P1375,Ignition Coil - Cylinder 5 - Early Activation Fault +P1376,Ignition Coil - Cylinder 6 - Early Activation Fault +P1380,Misfire Detected - Rough Road Data Not Available +P1381,Variable Cam Timing Overadvanced (Bank #1)/ Misfire Detected - No Communication with BCM +P1382,Variable Cam Timing Solenoid #1 Circuit Malfunction +P1383,Variable Cam Timing Overretarded (Bank #1) +P1384,VVT Solenoid A Malfunction +P1385,Variable Cam Timing Solenoid B Malfunction +P1386,Variable Cam Timing Overadvanced (Bank #2) +P1387,Variable Cam Timing Solenoid #2 Circuit Malfunction +P1388,Variable Cam Timing Overretarded (Bank #2) +P1389,Glow Plug Circuit High Side Low Input +P1390,Octane Adjust Pin Out Of Self Test Range +P1391,Glow Plug Circuit Low Input (Bank #1) +P1392,Glow Plug Circuit High Input (Bank #1) +P1393,Glow Plug Circuit Low Input (Bank #2) +P1394,Glow Plug Circuit High Input (Bank #2) +P1395,Glow Plug Monitor Fault (Bank #1) +P1396,Glow Plug Monitor Fault (Bank #2) +P1397,System Voltage Out Of Self Test Range +P1398,VVT Solenoid B Circuit High Input +P1399,Glow Plug Circuit High Side, High Input +P1400,DPFE Circuit Low Input +P1401,DPFE Circuit High Input +P1402,EGR Metering Orifice Restricted +P1403,DPFE Sensor Hoses Reversed +P1404,IAT - B Circuit Malfunction/ Exhaust Gas Recirculation Closed Position Performance +P1405,DPFE Sensor Upstream Hose Off Or Plugged +P1406,Exhaust Gas Recirculation (EGR) Position Sensor Performance +P1407,EGR No Flow Detected +P1408,EGR Flow Out Of Self Test Range +P1409,EVR Control Circuit Malfunction +P1411,SAI System Incorrect Downstream Flow Detected +P1413,SAI System Monitor Circuit Low Input +P1414,SAI System Monitor Circuit High Input +P1415,Air Pump Circuit Malfunction/ (AIR) System Bank 1 +P1416,Port Air Circuit Malfunction/ (AIR) System Bank 2 +P1417,Port Air Relief Circuit Malfunction +P1418,Split Air #1 Circuit Malfunction +P1419,Split Air #2 Circuit Malfunction +P1420,Catalyst Temperature Sensor Failure +P1421,Catalyst Damage +P1422,EGI Temperature Sensor Failure +P1423,EGI Functionality Test Failed +P1424,EGI Glow Plug Primary Failure +P1425,EGI Glow Plug Secondary Failure +P1426,EGI Mini - MAF Failed Out Of Range +P1427,EGI Mini - MAF Failed Short Circuit +P1428,EGI Mini - MAF Failed Open Circuit +P1429,Electric Air Pump Primary Failure +P1430,Electric Air Pump Secondary Failure +P1433,A/C Refrigerant Temperature Circuit Low +P1434,A/C Refrigerant Temperature Circuit High +P1435,A/C Refrigerant Temperature Circuit Range/Performance +P1436,A/C Evaporator Air Temperature Circuit Low +P1437,A/C Evaporator Air Temperature Circuit High +P1438,A/C Evaporator Air Temperature Circuit Range/Performance +P1439,Floor Temperature Switch Circuit Malfunction +P1440,Purge Valve Stuck Open +P1441,Evaporative Emission (EVAP) System Flow During Non-Purge Chevrolet Only +P1442,Evaporative Emission Control System Leak Detected +P1443,Evaporative Emission Control System Control Valve +P1444,Purge Flow Sensor Circuit Low Input +P1445,Purge Flow Sensor Circuit High Input +P1446,Evaporative Vac Solenoid Circuit Malfunction +P1447,ELC System Closure Valve Flow Fault +P1448,ELC System 2 Fault +P1449,Evaporative Check Solenoid Circuit Malfunction +P1450,Unable To Bleed Up Fuel Tank Vacuum +P1451,Evap Emission Control Sys Vent Control Valve Circuit +P1452,Unable To Bleed - Up Vacuum in Tank +P1453,Fuel Tank Pressure Relief Valve Malfunction +P1454,Evaporative System Vacuum Test Malfunction +P1455,Evap Emission Control Sys Leak Detected (Gross Leak/No Flow) +P1456,Fuel Tank Temperature Sensor Circuit Malfunction +P1457,Unable To Pull Vacuum In Tank +P1460,Wide open throttle A/C cutoff relay circuit +P1461,A/C pressure sensor circuit voltage low +P1462,A/C pressure sensor circuit voltage high +P1463,A/C Pressure Sensor Insufficient Pressure Change +P1464,A/C Demand Out of Self Test Range +P1465,A/C Relay Circuit Malfunction +P1466,A/C Refrigerant Temperature Sensor/Circuit Malfunction +P1467,A/C Compressor Temperature Sensor Malfunction +P1468,SSPOD Open Circuit or Closed Circuit Fault +P1469,Low A/C Cycling Period +P1470,A/C Cycling Period Too Short +P1471,Electrodrive Fan 1 Operational Failure (Driver Side) +P1472,Electrodrive Fan 2 Operational Failure (Passenger Side) +P1473,Fan Secondary High With Fan(s) Off +P1474,Low Fan Control Primary Circuit Malfunction +P1475,Fan Relay (Low) Circuit Malfunction +P1476,Fan Relay (High) Circuit Malfunction +P1477,Additional Fan Relay Circuit Malfunction +P1478,Cooling Fan Driver Fault +P1479,High Fan Control Primary Circuit Malfunction +P1480,Fan Secondary Low with Low Fan On +P1481,Fan Secondary Low With High Fan On +P1482,SCP +P1483,Power To Fan Circuit Overcurrent +P1484,Open Power To Ground VCRM +P1485,EGRV Circuit Malfunction +P1486,EGRA Circuit Malfunction +P1487,EGRCHK Solenoid Circuit Malfunction +P1490,Secondary Air Relief Solenoid Circuit Malfunction +P1491,Secondary Switch Solenoid Circuit Malfunction +P1492,APLSOL Solenoid Circuit Malfunction +P1493,RCNT Solenoid Circuit Malfunction +P1494,SPCUT Solenoid Circuit Malfunction +P1495,TCSPL Solenoid Circuit Malfunction +P1500,Vehicle Speed Sensor Intermittent +P1501,Vehicle Speed Sensor Out Of Self Test Range +P1502,Vehicle Speed Sensor Intermittent Malfunction +P1503,Auxillary Speed Sensor Fault +P1504,Idle Air Control Circuit Malfunction +P1505,Idle Air Control System At Adaptive Clip +P1506,Idle Air Control Overspeed Error +P1507,Idle Air Control Underspeed Error +P1508,Idle Control System Circuit Open +P1509,Idle Control System Circuit Shorted +P1510,Idle Signal Circuit Malfunction +P1511,Idle Switch (Electric Control Throttle) Circuit Malfunction +P1512,Intake Manifold Runner Control (Bank 1) Stuck Closed +P1513,Intake Manifold Runner Control (Bank 2) Stuck Closed +P1514,High Load Neutral/Drive Fault +P1515,Electric Current Circuit Malfunction +P1516,IMRC Input Error (Bank 1) +P1517,IMRC Input Error (Bank 2) +P1518,Intake Manifold Runner Control (Stuck Open) +P1519,Intake Manifold Runner Control (Stuck Closed) +P1520,Intake Manifold Runner Control Circuit Malfunction +P1521,Variable Intake Solenoid #1 Circuit Malfunction +P1522,Variable Intake Solenoid #2 Circuit Malfunction +P1523,IVC Solenoid Circuit Malfunction +P1524,Variable Intake Solenoid System +P1525,Air Bypass Valve System +P1526,Air Bypass System +P1527,Accelerate Warmup Solenoid Circuit Malfunction +P1528,Subsidiary Throttle Valve Solenoid Circuit Malfunction +P1529,SCAIR Solenoid Circuit Malfunction +P1530,A/C Clutch Circuit Malfunction +P1531,Invalid Test - Accelerator Pedal Movement +P1532,IMCC Circuit Malfunction, Bank B +P1533,AAI Circuit Malfunction +P1534,Inertia Switch Activated +P1535,Blower Fan Speed Circuit Range/Performance +P1536,Parking Brake Switch Circuit Failure +P1537,Intake Manifold Runner Control (Bank 1) Stuck Open +P1538,Intake Manifold Runner Control (Bank 2) Stuck Open +P1539,Power To A/C Clutch Circuit Overcurrent +P1540,Air Bypass Valve Circuit Malfunction +P1549,IMCC Circuit Malfunction, Bank B +P1550,PSPS Out Of Self Test Range +P1565,Speed Control Command Switch Out of Range High +P1566,Speed Control Command Switch Out of Range Low +P1567,Speed Control Output Circuit Continuity +P1568,Speed Control Unable to Hold Speed +P1571,Brake Switch Malfunction +P1572,Brake Pedal Switch Circuit Malfunction +P1573,Throttle Position Not Available +P1574,Throttle Position Sensor Disagreement btwn Sensors +P1575,Pedal Position Out of Self Test Range +P1576,Pedal Position Not Available +P1577,Pedal Position Sensor Disagreement btwn Sensors +P1578,ETC Power Less Than Demand +P1579,ETC In Power Limiting Mode +P1580,Electronic Throttle Monitor PCM Override +P1581,Electronic Throttle Monitor Malfunction +P1582,Electronic Throttle Monitor Data Available +P1583,Electronic Throttle Monitor Cruise Disable +P1584,TCU Detected IPE Circuit Malfunction +P1585,Throttle Control Unit Malfunction +P1586,Throttle Control Unit Throttle Position Malfunction +P1587,Throttle Control Unit Modulated Command Malfunction +P1588,Throttle Control Unit Detected Loss of Return Spring +P1589,TCU Unable To Control Desired Throttle Angle +P1600,Loss of KAM Power; Open Circuit +P1601,ECM/TCM Serial Communication Error +P1602,Immobilizer/ECM Communication Error +P1603,EEPROM Malfunction +P1604,Code Word Unregestered +P1605,Keep Alive Memory Test Failure +P1606,ECM Control Relay O/P Circuit Malfunction +P1607,MIL O/P Circuit Malfunction +P1608,Internal ECM Malfunction +P1609,Diagnostic Lamp Driver Fault +P1610,SBDS Interactive Codes +P1611,SBDS Interactive Codes +P1612,SBDS Interactive Codes +P1613,SBDS Interactive Codes +P1614,SBDS Interactive Codes +P1615,SBDS Interactive Codes +P1616,SBDS Interactive Codes +P1617,SBDS Interactive Codes +P1618,SBDS Interactive Codes +P1619,SBDS Interactive Codes +P1620,SBDS Interactive Codes +P1621,Control Module Long Term Memory Performance/ Immobilizer Code Words Do Not Match +P1622,Immobilizer ID Does Not Match +P1623,Immobilizer Code Word/ID Number Write Failure +P1624,Anti Theft System +P1625,B+ Supply To VCRM Fan Circuit Malfunction +P1626,Theft Deterrent Fuel Enable Signal Not Received/ B+ Supply To VCRM A/C Circuit Malfunction +P1627,Module Supply Voltage Out Of Range +P1628,Module Ignition Supply Input Malfunction +P1629,Internal Voltage Regulator Malfunction +P1630,Internal Vref Malfunction +P1631,Theft Deterrent Start Enable Signal Not Correct/ Main Relay Malfunction (Power Hold) +P1632,Smart Alternator Faults Sensor/Circuit Malfunction +P1633,KAM Voltage Too Low +P1634,Data Output Link Circuit Failure +P1635,Tire / Axle Ratio Out of Acceptable Range +P1636,Inductive Signature Chip Communication Error +P1637,Can Link ECM/ABSCM Circuit / Network Malfunction +P1638,Can Link ECM/INSTM Circuit / Network Malfunction +P1639,Vehicle ID Block Corrupted or Not Programmed +P1640,Powertrain DTCs Available in Another Module +P1641,Fuel Pump Primary Circuit Failure +P1642,Fuel Pump Monitor Circuit High Input +P1643,Fuel Pump Monitor Circuit Low Input +P1644,Fuel Pump Speed Control Circuit Malfunction +P1645,Fuel Pump Resistor Switch Circuit Malfunction +P1650,PSP Switch Out of Self Test Range +P1651,PSP Switch Input Malfunction +P1652,IAC Monitor Disabled by PSP Switch Failed On +P1653,Power Steering Output Circuit Malfunction +P1654,Recirculation Override Circuit Malfunction +P1655,Starter Disable Circuit Malfunction +P1660,Output Circuit Check Signal High +P1661,Output Circuit Check Signal Low +P1662,IDM_EN Circuit Failure +P1663,Fuel Demand Command Signal Circuit Malfunction +P1667,CI Circuit Malfunction +P1668,PCM - IDM Communications Error +P1670,Electronic Feedback Signal Not Detected +P1680,Metering Oil Pump Malfunction +P1681,Metering Oil Pump Malfunction +P1682,Metering Oil Pump Malfunction +P1683,Metering Oil Pump Temperature Sensor Circuit Malfunction +P1684,Metering Oil Pump Position Sensor Circuit Malfunction +P1685,Metering Oil Pump Stepping Motor Circuit Malfunction +P1686,Metering Oil Pump Stepping Motor Circuit Malfunction +P1687,Metering Oil Pump Stepping Motor Circuit Malfunction +P1688,Metering Oil Pump Stepping Motor Circuit Malfunction +P1689,Oil Pressure Control Solenoid Circuit Malfunction +P1690,Wastegate Solenoid Circuit Malfunction +P1691,Turbo Pressure Control Solenoid Circuit Malfunction +P1692,Turbo Control Solenoid Circuit Malfunction +P1693,Turbo Charge Control Circuit Malfunction +P1694,Turbo Charge Relief Circuit Malfunction +P1700,Transmission Indeterminate Failure (Failed to Neutral) +P1701,Reverse Engagement Error +P1702,TRS Circuit Intermittent Malfunction +P1703,Brake Switch Out Of Self Test Range +P1704,Digital TRS Failed to Transition States in KOEO / KOER +P1705,Not in P or N During KOEO / KOER +P1706,High Vehicle Speed Observed in Park +P1707,Transfer Case Neutral Indicator Hard Fault Present +P1708,Clutch Switch Circuit Malfunction +P1709,PNP Switch Out Of Self Test Range +P1711,TFT Sensor Out Of Self Test Range +P1712,Trans Torque Reduction Request Signal Malfunction +P1713,TFT Sensor In Range Failure Low Value +P1714,SSA Inductive Signature Malfunction +P1715,SSB Inductive Signature Malfunction +P1716,SSC Inductive Signature Malfunction +P1717,SSD Inductive Signature Malfunction +P1718,TFT Sensor In Range Failure High +P1720,Vehicle Speed (Meter) Circuit Malfunction +P1721,Gear 1 Incorrect Ratio +P1722,Gear 2 Incorrect Ratio +P1723,Gear 3 incorrect Ratio +P1724,Gear 4 Incorrect Ratio +P1725,Insufficient Engine Speed Increase During Self Test +P1726,Insufficient Engine Speed Decrease During Self Test +P1727,Coast Clutch Solenoid Inductive Signature Malfunction +P1728,Transmission Slip Error +P1729,4x4 Low Switch Error +P1730,Gear Control Malfunction 2,3,5 +P1731,1-2 Shift Malfunction +P1732,2-3 Shift Malfunction +P1733,3-4 Shift Malfunction +P1734,Gear Control Malfunction +P1735,First Gear Switch Circuit Malfunction +P1736,Second Gear Switch Circuit Malfunction +P1737,Lockup Solenoid System +P1738,Shift Time Error +P1739,Slip Solenoid System +P1740,Torque Converter Clutch Inductive Signature Malfunction +P1741,Torque Converter Clutch Control Error +P1742,Torque Converter Clutch Solenoid Failed On +P1743,Torque Converter Clutch Solenoid Failied On +P1744,Torque Converter Clutch System Performance +P1745,Line Pressure Solenoid System +P1746,Pressure Control Solenoid 'A' Open Circuit +P1747,Pressure Control Solenoid 'A' Short Circuit +P1748,EPC Malfunction +P1749,Pressure Control Solenoid Failed Low +P1751,Shift Solenoid A Performance +P1753,Torque Converter Clutch Solenoid Valve Circuit +P1754,Coast Clutch Solenoid Circuit Malfunction +P1755,Intermediate Speed Sensor (ISS) Malfunction +P1756,Shift Solenoid B Performance +P1760,Pressure Control Solenoid 'A' Short Circuit +P1761,Shift Solenoid C Performance +P1762,Overdrive Band Failed Off +P1765,Timing Solenoid Circuit Malfunction +P1767,Torque Converter Clutch Circuit Malfunction +P1768,Performance / Normal / Winter Mode Input Malfunction +P1769,AG4 Transmission Torque Modulation Fault +P1770,Clutch Solenoid Circuit Malfunction +P1775,Transmission System MIL Fault +P1776,Ignition Retard Request Duration Fault +P1777,Ignition Retard Request Circuit Fault +P1778,Transmission Reverse I/P Circuit Malfunction +P1779,TCIL Circuit Malfunction +P1780,Trans Control Switch (O/D Cancel) Out of Self Test Range +P1781,4X4 Switch Out of Self Test Range +P1782,P/ES Circuit Out Of Self Test Range +P1783,Transmission Overtemperature Condition +P1784,Transmission Mechanical Failure - First And Reverse +P1785,Transmission Mechanical Failure - First And Second +P1786,3-2 Downshift Error +P1787,2-1 Downshift Error +P1788,Pressure Control Solenoid 'B' Open Circuit +P1789,Pressure Control Solenoid 'B' Short Circuit +P1790,TP (Mechanical) Circuit Malfunction +P1791,TP (Electric) Circuit Malfunction +P1792,Barometer Pressure Circuit Malfunction +P1793,Intake Air Volume Circuit Malfunction +P1794,Battery Voltage Circuit Malfunction +P1795,Idle Switch Circuit Malfunction +P1796,Kick Down Switch Circuit Malfunction +P1797,Neutral Switch Circuit Malfunction +P1798,Coolant Temperature Circuit Malfunction +P1799,Hold Switch Circuit Malfunction +P1800,Transmission Clutch Interlock Safety Switch Circuit Failure +P1801,Transmission Clutch Interlock Safety Switch Open Circuit +P1802,Transmission Clutch Interlock Safety Switch Short Circuit To Battery +P1803,Transmission Clutch Interlock Safety Switch Short Circuit To Ground +P1804,Transmission 4-Wheel Drive High Indicator Circuit Failure +P1805,Transmission 4-Wheel Drive High Indicator Open Circuit +P1806,Transmission 4-Wheel Drive High Indicator Short Circuit To Battery +P1807,Transmission 4-Wheel Drive High Indicator Short Circuit To Ground +P1808,Transmission 4-Wheel Drive Low Indicator Circuit Failure +P1809,Transmission 4-Wheel Drive Low Indicator Open Circuit +P1810,TFP Valve Position Switch Circuit/ Transmission 4-Wheel Drive Low Indicator Short Circuit To Battery +P1811,Transmission 4-Wheel Drive Low Indicator Short Circuit To Ground +P1812,Transmission 4-Wheel Drive Mode Select Circuit Failure +P1813,Transmission 4-Wheel Drive Mode Select Open Circuit +P1814,Transmission 4-Wheel Drive Mode Select Short Circuit To Battery +P1815,Transmission 4-Wheel Drive Mode Select Short Circuit To Ground +P1816,Transmission Neutral Safety Switch Circuit Failure +P1817,Transmission Neutral Safety Switch Open Circuit +P1818,Transmission Neutral Safety Switch Short Circuit To Battery +P1819,Transmission Neutral Safety Switch Short Circuit To Ground +P1820,Transmission Transfer Case Clockwise Shift Relay Coil Circuit Failure +P1821,Transmission Transfer Case Clockwise Shift Relay Coil Open Circuit +P1822,Transmission Transfer Case Clockwise Shift Relay Coil Short Circuit To Battery +P1823,Transmission Transfer Case Clockwise Shift Relay Coil Short Circuit To Ground +P1824,Transmission 4-Wheel Drive Clutch Relay Circuit Failure +P1825,Transmission 4-Wheel Drive Clutch Relay Open Circuit +P1826,Transmission 4-Wheel Drive Low Clutch Relay Circuit To Battery +P1827,Transmission 4-Wheel Drive Low Clutch Relay Circuit To Ground +P1828,Transmission Transfer Case Counter Clockwise Shift Relay Coil Circuit Failure +P1829,Transmission Transfer Case Counter Clockwise Shift Relay Coil Open Circuit +P1830,Transmission Transfer Case Counter Clockwise Shift Relay Coil Short Circuit To Battery +P1831,Transmission Transfer Case Counter Clockwise Shift Relay Coil Short Circuit To Ground +P1832,Transmission Transfer Case Differential Lock-Up Solenoid Circuit Failure +P1833,Transmission Transfer Case Differential Lock-Up Solenoid Open Circuit +P1834,Transmission Transfer Case Differential Lock-Up Solenoid Short Circuit To Battery +P1835,Transmission Transfer Case Differential Lock-Up Solenoid Short Circuit To Ground +P1836,Transmission Transfer Case Front Shaft Speed Sensor Circuit Failure +P1837,Transmission Transfer Case Rear Shaft Speed Sensor Circuit Failure +P1838,Transmission Transfer Case Shift Motor Circuit Failure +P1839,Transmission Transfer Case Shift Motor Open Circuit +P1840,Transmission Transfer Case Shift Motor Short Circuit To Battery +P1841,Transmission Transfer Case Shift Motor Short Circuit To Ground +P1842,Transmission Transfer Case Differential Lock-Up Feedback Switch Circuit Failure +P1843,Transmission Transfer Case Differential Lock-Up Feedback Switch Open Circuit +P1844,Transmission Transfer Case Differential Lock-Up Feedback Switch Short Circuit To Battery +P1845,Transmission Transfer Case Differential Lock-Up Feedback Switch Short Circuit To Ground +P1846,Transmission Transfer Case Contact Plate 'A' Circuit Failure +P1847,Transmission Transfer Case Contact Plate 'A' Open Circuit +P1848,Transmission Transfer Case Contact Plate 'A' Short Circuit To Battery +P1849,Transmission Transfer Case Contact Plate 'A' Short Circuit To Ground +P1850,Transmission Transfer Case Contact Plate 'B' Circuit Failure +P1851,Transmission Transfer Case Contact Plate 'B' Open Circuit +P1852,Transmission Transfer Case Contact Plate 'B' Short Circuit To Battery +P1853,Transmission Transfer Case Contact Plate 'B' Short Circuit To Ground +P1854,Transmission Transfer Case Contact Plate 'C' Circuit Failure +P1855,Transmission Transfer Case Contact Plate 'C' Open Circuit +P1856,Transmission Transfer Case Contact Plate 'C' Short Circuit To Battery +P1857,Transmission Transfer Case Contact Plate 'C' Short Circuit To Ground +P1858,Transmission Transfer Case Contact Plate 'D' Circuit Failure +P1859,Transmission Transfer Case Contact Plate 'D' Open Circuit +P1860,TCC PWM Solenoid Circuit Electrical/ Transmission Transfer Case Contact Plate 'D' Short Circuit To Battery +P1861,Transmission Transfer Case Contact Plate 'D' Short Circuit To Ground +P1862,Transmission Transfer Case Contact Plate Power Circuit Failure +P1863,Transmission Transfer Case Contact Plate Power Open Circuit +P1864,Transmission Transfer Case Contact Plate Power Short To Battery +P1865,Transmission Transfer Case Contact Plate Power Short To Ground +P1866,Transmission Transfer Case System Concern - Servicing Required +P1867,Transmission Transfer Case Contact Plate General Circuit Failure +P1868,Transmission Automatic 4-Wheel Drive Indicator (Lamp) Circuit Failure +P1869,Transmission Automatic 4-Wheel Drive Indicator (Lamp) Circuit Short To Battery +P1870,Transmission Component Slipping/ Transmission Mechanical Transfer Case 4x4 Switch Circuit Failure +P1871,Transmission Mechanical Transfer Case 4x4 Switch Circuit Short To Battery +P1872,Transmission Mechanical 4-Wheel Drive Axle Lock Lamp Circuit Failure +P1873,Transmission Mechanical 4-Wheel Drive Axle Lock Lamp Circuit Short To Battery +P1874,Transmission Automatic Hall Effect Sensor Power Circuit Failure +P1875,Transmission Automatic Hall Effect Sensor Power Circuit Short To Battery / 4WD Low Switch Circuit Electrical +P1876,Transmission Transfer Case 2-Wheel Drive Solenoid Circuit Failure +P1877,Transmission Transfer Case 2-Wheel Drive Solenoid Circuit Short To Battery +P1878,Transmission Transfer Case Disengaged Solenoid Circuit Failure +P1879,Transmission Transfer Case Disengaged Solenoid Open Circuit +P1880,Transmission Transfer Case Disengaged Solenoid Short to Battery +P1881,Engine Coolant Level Switch Circuit Failure, GEM +P1882,Engine Coolant Level Switch Circuit Short to Ground +P1883,Engine Coolant Level Switch Circuit Failure, GEM +P1884,Engine Coolant Level Lamp Circuit Short to Ground +P1885,Transmission Transfer Case Disengaged Solenoid Short to Ground +P1886,4X4 Initialization Failure +P1890,Transmission 4WD Mode Select Return Input Circuit Failure +P1891,Transmission Transfer Case Contact Plate Ground Return Open Circuit +P1900,OSS Circuit Intermittent Malfunction +P1901,TSS Circuit Intermittent Malfunction +P1902,Pressure Control Solenoid 'B' Intermittent Short +P1903,Pressure Control Solenoid 'C' Short Circuit +P1904,Pressure Control Solenoid 'C' Open Circuit +P1905,Pressure Control Solenoid 'C' Intermittent Short +P1906,Kickdown Pull Relay Open or Short Circuit to Ground +P1907,Kickdown Hold Relay Open or Short Circuit to Ground +P1908,Transmission Pressure Circuit Solenoid Open or Short to Ground +P1909,Trans Temp Sensor Circuit Open or Shorted to Pwr or Gnd +P1910,VFS A Pressure Output Failed Low +P1911,VFS B Pressure Output Failed Low +P1912,VFS C Pressure Output Failed Low +P1913,Pressure Switch A Circuit Malfunction +P1914,Manually Shifted Automatic (MSA) Sw Circuit Malf +P1915,Reverse Switch Circuit Malfunction +P1916,High Clutch Drum Speed Sensor Malfunction +P1917,High Clutch Drum Speed Sensor Intermittent +P1918,Transmission Range Display Circuit Malfunction \ No newline at end of file diff --git a/frmOBD2Scan.cs b/frmOBD2Scan.cs new file mode 100644 index 0000000..fe684ca --- /dev/null +++ b/frmOBD2Scan.cs @@ -0,0 +1,6830 @@ +using SAE.J2534; +using System; +using System.Collections; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.Globalization; +using System.IO; +using System.IO.Ports; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading; +using System.Windows.Forms; +using DarkUI.Controls; +using DarkUI.Forms; + +public class frmOBD2Scan : DarkForm +{ + public int int_0; + public static Color color_0 = Color.PaleVioletRed; + public static Color color_1 = Color.OrangeRed; + public static Color color_2 = Color.Azure; + public static Color color_3 = Color.BlanchedAlmond; + public static Color color_4 = Color.CornflowerBlue; + public static Color color_5 = Color.Firebrick; + public static Color color_6 = Color.PaleGoldenrod; + public static int int_1 = 15; + public static bool bool_0; + public static string string_0; + public static string string_1; + private Thread thread_0; + private string[] string_2; + private string[] string_3; + private string[] string_4; + public static bool bool_1 = false; + private bool bool_2; + public static bool bool_3; + private int int_2; + private SerialPort serialPort_0; + private Channel channel_0; + private API api_0; + private Device device_0; + private APIInfo apiinfo_0; + private int int_3; + private bool bool_4; + private StringBuilder stringBuilder_0 = new StringBuilder(); + private string string_5; + private string string_6 = ""; + private int int_4; + private ArrayList arrayList_0 = new ArrayList(); + private bool bool_5 = true; + private int int_5; + private int int_6; + private int int_7; + private int int_8; + private int int_9; + private int int_10; + private int int_11; + private int int_12; + private int int_13; + private int int_14; + private int int_15; + private int int_16; + private int int_17; + private int int_18; + private int int_19; + private int int_20; + private int int_21; + private int int_22; + private int int_23; + private int int_24; + private int int_25; + private int int_26; + private int int_27; + private int int_28; + private int int_29; + private int int_30; + private int int_31; + private int int_32; + private int int_33; + private int int_34; + private int int_35; + private int int_36; + private int int_37; + private int int_38; + private int int_39; + private int int_40; + private int int_41; + private int int_42; + private int int_43; + private int int_44; + private int int_45; + private int int_46; + private int int_47; + private int int_48; + private int int_49; + private int int_50; + private int int_51; + private int int_52; + private int int_53; + private int int_54; + private int int_55; + private int int_56; + private int int_57; + private int int_58; + private int int_59; + private int int_60; + private int int_61; + private int int_62; + private int int_63; + private int int_64; + private int int_65; + private int int_66; + private int int_67; + private int int_68; + private int int_69; + private int int_70; + private int int_71; + private int int_72; + private int int_73; + private int int_74; + private int int_75; + private int int_76; + private int int_77; + private int int_78; + private int int_79; + private int int_80; + private int int_81; + private int int_82; + private int int_83; + private int int_84; + private int int_85; + private int int_86; + private int int_87; + private int int_88; + private int int_89; + private int int_90; + private int int_91; + private int int_92; + private int int_93; + private int int_94; + private int int_95; + private int int_96; + private int int_97; + private int int_98; + private int int_99; + private int int_100; + private int int_101; + private int int_102; + private int int_103; + private int int_104; + private int int_105; + private int int_106; + private int int_107; + private int int_108; + private int int_109; + private int int_110; + private int int_111; + private int int_112; + private int int_113; + private int int_114; + private int int_115; + private int int_116; + private int int_117; + private int int_118; + private int int_119; + private int int_120; + private int int_121; + private int int_122; + private int int_123; + private int int_124; + private int int_125; + private int int_126; + private int int_127; + private int int_128; + private int int_129; + private int int_130; + private int int_131; + private int int_132; + private int int_133; + private int int_134; + private int int_135; + private int int_136; + private int int_137; + private int int_138; + private int int_139; + private int int_140; + private int int_141; + private int int_142; + private int int_143; + private int int_144; + private int int_145; + private int int_146; + private int int_147; + private int int_148; + private int int_149; + private int int_150; + private int int_151; + private int int_152; + private int int_153; + private int int_154; + private int int_155; + private int int_156; + private int int_157; + private int int_158; + private int int_159; + private int int_160; + private int int_161; + private int int_162; + private int int_163; + private int int_164; + private int int_165; + private int int_166; + private int int_167; + private int int_168; + private int int_169; + private int int_170; + private int int_171; + private int int_172; + private int int_173; + private int int_174; + private int int_175; + private int int_176; + private int int_177; + private int int_178; + private int int_179; + private int int_180; + private int int_181; + private int int_182; + private string string_7 = "000"; + private string string_8 = "000"; + private string string_9; + private string string_10; + private string string_11 = "0"; + private string string_12; + private string string_13; + private string string_14; + private string string_15; + private string string_16; + private string string_17; + private string string_18; + private int int_183; + private bool bool_6; + private int int_184; + private bool bool_7 = true; + private double double_0; + private List list_0 = new List(); + private TableLayoutPanel tableLayoutPanel1; + private TabPage tabPage7; + private TabPage tabPage5; + private TabPage tabPage6; + private TableLayoutPanel tableLayoutPanel2; + private TableLayoutPanel tableLayoutPanel3; + private TableLayoutPanel tableLayoutPanel6; + private DarkGroupBox groupBox2; + private DarkButton ClearTable; + private DarkButton StopTable; + private DarkComboBox comboV; + private DarkLabel labelL; + private DarkComboBox comboY; + private DarkLabel labely; + private DarkComboBox comboX; + private DarkLabel labelx; + public DarkDataGridView dataGridView_0; + private TableLayoutPanel tableLayoutPanel5; + public DarkButton GColourLF; + private DarkButton GColourL4; + private DarkButton GColourL3; + private DarkButton GColourL2; + private DarkButton GColourL1; + public DarkButton GColour2; + private DarkLabel label4; + public DarkButton GColour1; + private TableLayoutPanel tableLayoutPanel4; + private TableLayoutPanel tableLayoutPanel7; + private IContainer icontainer_0; + private DarkButton Gstart; + private PerfChart livegraph1; + private DarkComboBox Graph4; + private DarkComboBox Graph3; + private DarkComboBox Graph2; + private DarkComboBox Graph1; + private System.Windows.Forms.Timer timer_0; + private PerfChart livegraph4; + private PerfChart livegraph3; + private DarkLabel label6; + private DarkLabel label5; + private DarkButton StartTable; + private System.Windows.Forms.Timer timer_1; + private DarkLabel label9; + private DarkLabel label8; + private DarkLabel label7; + private MaskedTextBox maskedTextBox1; + private DarkComboBox comboBox1; + private DarkLabel label10; + private DarkLabel label11; + private DarkLabel label13; + private MaskedTextBox maskedTextBox2; + private DarkLabel label12; + private DarkComboBox comboBox2; + private ColorDialog colorDialog_0; + private DarkLabel label14; + private DarkComboBox comboBox3; + private PerfChart livegraph2; + private string string_19; + private DarkCheckBox cbJ2534; + private TableLayoutPanel tableLayoutPanel11; + private TableLayoutPanel tableLayoutPanel12; + private DarkLabel G4L; + private DarkLabel G3L; + private DarkLabel G2L; + public static string string_20 = ""; + public static int int_185; + public static int int_186 = 0; + private DarkLabel G1L; + private bool bool_8; + private bool bool_9; + private static bool bool_10 = true; + public static bool bool_11; + public static float float_0; + public static float float_1; + public static float float_2; + public static int int_187; + public static float float_3; + public static float float_4; + public static float float_5; + public static float float_6; + public static int int_188; + public static float float_7; + public static float float_8; + public static float float_9; + public static float float_10; + public static int int_189; + public static float float_11; + public static float float_12; + public static float float_13; + public static float float_14; + public static float float_15; + public static int int_190; + public static int int_191; + public static int int_192; + public static int int_193; + private DarkTabControl tabControl1; + private TabPage tabPage1; + private TabPage tabPage2; + private TabPage tabPage3; + private DarkGroupBox groupBox1; + private DarkLabel label3; + private DarkLabel label2; + private DarkGroupBox gbConnection; + private DarkLabel label1; + private DarkLabel descPort; + private DarkComboBox cbBaud; + private DarkComboBox cbPort; + private DarkGroupBox groupBox4; + private DarkTextBox txtDTCD; + private DarkButton ClearDTC; + private DarkButton ButtonReadCEL; + private DarkListBox listBoxCEL; + private DarkGroupBox groupBox5; + private DarkButton button2; + private TrackBar trackBar1; + private ClassListView listViewLive; + private ColumnHeader columnHeader_0; + private ColumnHeader columnHeader_1; + private ColumnHeader columnHeader_2; + private ColumnHeader columnHeader_3; + private ColumnHeader columnHeader_4; + private DarkListBox listBoxPIDs; + private System.Windows.Forms.Timer timer_2; + private System.Windows.Forms.Timer timer_3; + private System.Windows.Forms.Timer timer_4; + private DarkButton button1; + private System.Windows.Forms.Timer timer_5; + private TabPage tabPage4; + private DarkGroupBox gbStatus; + private ListView lvLog; + private ColumnHeader columnHeader_5; + private DarkButton buttonclear; + private System.Windows.Forms.Timer timer_6; + private IContainer components; + private DarkLabel descRate; + private ToolTip toolTip_0; + + internal frmOBD2Scan() + { + color_0 = Color.PaleVioletRed; + color_1 = Color.OrangeRed; + color_2 = Color.Azure; + color_3 = Color.BlanchedAlmond; + color_4 = Color.CornflowerBlue; + color_5 = Color.Firebrick; + color_6 = Color.PaleGoldenrod; + this.InitializeComponent(); + this.method_0(); + + NewInitit(); + + if (bool_3) + { + base.FormBorderStyle = FormBorderStyle.None; + this.Dock = DockStyle.Fill; + } + this.method_18(); + this.label1.Text = "To identify the correct port, Unplug device && note available ports" + Environment.NewLine + "Connect device & select the new entry. Then Click Connect button down the bottom."; + + } + + private void button1_Click(object sender, EventArgs e) + { + if (!this.bool_8) + { + if (this.int_2 == 0) + { + this.int_2 = 3; + this.method_18(); + this.bool_4 = true; + try + { + this.serialPort_0 = new SerialPort(this.cbPort.Text, int.Parse(this.cbBaud.Text), Parity.None, 8, StopBits.One); + this.serialPort_0.Open(); + this.int_3 = 0; + this.stringBuilder_0.Clear(); + this.timer_2.Enabled = true; + this.serialPort_0.Write("ATWS\r"); + this.timer_5.Enabled = true; + this.method_11(); + } + catch + { + MessageBox.Show("Something Went Wrong Trying To Open Port."); + this.int_2 = 0; + this.method_18(); + } + } + else if (this.int_2 == 1) + { + if (!this.bool_8) + { + this.method_9(); + this.int_2 = 0; + this.method_18(); + } + else + { + this.int_2 = 0; + this.method_18(); + bool_11 = false; + this.bool_4 = false; + this.method_21("Connection closed automatically."); + this.int_2 = 0; + this.method_18(); + } + } + else + { + this.method_9(); + this.int_2 = 0; + this.method_18(); + } + } + else if (this.int_2 == 0) + { + this.int_2 = 3; + this.bool_4 = true; + if (!bool_10) + { + using (API api = APIFactory.GetAPI(this.string_19)) + { + using (Device device = api.GetDevice("")) + { + using (Channel channel = device.GetChannel(Protocol.CAN, Baud.CAN, ConnectFlag.NONE, false)) + { + byte[] match = new byte[4]; + match[2] = 7; + match[3] = 0xe8; + channel.StartMsgFilter(new MessageFilter(UserFilterType.PASS, match)); + SConfig[] sConfig = new SConfig[] { new SConfig(Parameter.LOOP_BACK, 1) }; + channel.SetConfig(sConfig); + } + } + } + } + this.timer_2.Enabled = true; + this.bool_4 = false; + this.int_2 = 1; + this.method_18(); + } + else if (this.int_2 == 1) + { + this.int_2 = 0; + this.method_18(); + bool_11 = false; + this.timer_6.Enabled = false; + this.timer_2.Enabled = false; + Thread.Sleep(0x4b0); + this.bool_4 = false; + this.thread_0.Abort(); + this.thread_0 = null; + this.method_21("Connection closed automatically."); + this.int_2 = 0; + this.method_18(); + } + } + + private void button2_Click(object sender, EventArgs e) + { + this.timer_4.Interval = int_1; + if (this.listViewLive.Items.Count != 0) + { + if (!this.timer_4.Enabled) + { + if (!bool_10) + { + int num = 0; + foreach (ListViewItem item1 in this.listViewLive.Items) + { + this.list_0.Add(this.listViewLive.Items[num].SubItems[0].Text); + num++; + } + this.int_184 = 0; + } + this.timer_4.Enabled = true; + this.timer_6.Enabled = true; + this.listBoxPIDs.Enabled = false; + this.button2.Text = "Stop Logging"; + } + else + { + this.int_184 = 0; + this.timer_4.Enabled = false; + this.timer_6.Enabled = false; + this.button2.Text = "Start Logging"; + if (!bool_10) + { + this.listBoxPIDs.Enabled = true; + } + } + } + } + + private void buttonclear_Click(object sender, EventArgs e) + { + this.lvLog.Clear(); + } + + private void ButtonReadCEL_Click(object sender, EventArgs e) + { + this.txtDTCD.Text = ""; + this.listBoxCEL.Items.Clear(); + this.method_19("03"); + } + + private void cbJ2534_CheckStateChanged(object sender, EventArgs e) + { + if (!this.cbJ2534.Checked) + { + this.cbJ2534.Checked = false; + this.bool_8 = false; + } + else + { + this.bool_8 = true; + GForm_J2534Select select = new GForm_J2534Select(); + if (select.ShowDialog() != DialogResult.OK) + { + this.cbJ2534.Checked = false; + } + else + { + try + { + this.string_19 = select.APIInfo_0.Filename; + } + catch + { + this.cbJ2534.Checked = false; + } + } + select.Dispose(); + } + bool_0 = this.cbJ2534.Checked; + } + + private void cbPort_SelectedValueChanged(object sender, EventArgs e) + { + string_1 = this.cbPort.Text; + string_0 = this.cbBaud.Text; + } + + private void ClearDTC_Click(object sender, EventArgs e) + { + this.method_19("04"); + } + + private void frmOBD2Scan_FormClosing(object sender, FormClosingEventArgs e) + { + if ((this.serialPort_0 != null) && this.serialPort_0.IsOpen) + { + bool_1 = false; + this.serialPort_0.Close(); + } + if (bool_11) + { + bool_11 = false; + this.int_2 = 0; + this.timer_6.Enabled = false; + this.timer_2.Enabled = false; + this.method_18(); + this.bool_4 = false; + this.method_21("Connection closed automatically."); + this.int_2 = 0; + this.method_18(); + } + } + + private void frmOBD2Scan_Load(object sender, EventArgs e) + { + this.cbBaud.Text = string_0; + this.method_2(); + this.method_1(); + this.groupBox5.Text = "Refresh rate: " + int_1.ToString() + "ms"; + this.trackBar1.Value = int_1; + this.cbJ2534.Checked = bool_0; + } + + private void GColour1_Click(object sender, EventArgs e) + { + if (this.colorDialog_0.ShowDialog() == DialogResult.OK) + { + this.GColour1.BackColor = this.colorDialog_0.Color; + this.method_1(); + } + } + + private void GColour2_Click(object sender, EventArgs e) + { + if (this.colorDialog_0.ShowDialog() == DialogResult.OK) + { + this.GColour2.BackColor = this.colorDialog_0.Color; + this.method_1(); + } + } + + private void GColourL1_Click(object sender, EventArgs e) + { + if (this.colorDialog_0.ShowDialog() == DialogResult.OK) + { + this.GColourL1.BackColor = this.colorDialog_0.Color; + this.method_1(); + } + } + + private void GColourL2_Click(object sender, EventArgs e) + { + if (this.colorDialog_0.ShowDialog() == DialogResult.OK) + { + this.GColourL2.BackColor = this.colorDialog_0.Color; + this.method_1(); + } + } + + private void GColourL3_Click(object sender, EventArgs e) + { + if (this.colorDialog_0.ShowDialog() == DialogResult.OK) + { + this.GColourL3.BackColor = this.colorDialog_0.Color; + this.method_1(); + } + } + + private void GColourL4_Click(object sender, EventArgs e) + { + if (this.colorDialog_0.ShowDialog() == DialogResult.OK) + { + this.GColourL4.BackColor = this.colorDialog_0.Color; + this.method_1(); + } + } + + private void GColourLF_Click(object sender, EventArgs e) + { + if (this.colorDialog_0.ShowDialog() == DialogResult.OK) + { + this.GColourLF.BackColor = this.colorDialog_0.Color; + this.method_1(); + } + } + + private void Graph1_SelectedIndexChanged(object sender, EventArgs e) + { + this.G1L.Text = this.Graph1.Text; + } + + private void Graph2_SelectedIndexChanged(object sender, EventArgs e) + { + this.G2L.Text = this.Graph2.Text; + } + + private void Graph3_SelectedIndexChanged(object sender, EventArgs e) + { + this.G3L.Text = this.Graph3.Text; + } + + private void Graph4_SelectedIndexChanged(object sender, EventArgs e) + { + this.G4L.Text = this.Graph4.Text; + } + + private void Gstart_Click(object sender, EventArgs e) + { + if (this.Gstart.Text == "Start") + { + this.timer_0.Enabled = true; + this.Gstart.Text = "Stop"; + } + else + { + this.Gstart.Text = "Start"; + this.timer_0.Enabled = false; + } + } + + private void NewInitit() + { + GClass4 class2 = new GClass4(); + GClass4 class3 = new GClass4(); + GClass4 class4 = new GClass4(); + GClass4 class5 = new GClass4(); + GClass4 class6 = new GClass4(); + GClass4 class7 = new GClass4(); + GClass4 class8 = new GClass4(); + GClass4 class9 = new GClass4(); + GClass4 class10 = new GClass4(); + GClass4 class11 = new GClass4(); + GClass4 class12 = new GClass4(); + GClass4 class13 = new GClass4(); + GClass4 class14 = new GClass4(); + GClass4 class15 = new GClass4(); + GClass4 class16 = new GClass4(); + GClass4 class17 = new GClass4(); + + class2.Color_0 = Color.FromArgb(0xc0, 0xc0, 0); + class2.DashStyle_0 = DashStyle.Solid; + class2.Single_0 = 2f; + class3.Color_0 = Color.Black; + class3.DashStyle_0 = DashStyle.Solid; + class3.Single_0 = 5f; + class4.Color_0 = Color.Black; + class4.DashStyle_0 = DashStyle.Solid; + class4.Single_0 = 1f; + class5.Color_0 = Color.Black; + class5.DashStyle_0 = DashStyle.Solid; + class5.Single_0 = 1f; + class6.Color_0 = Color.Fuchsia; + class6.DashStyle_0 = DashStyle.Solid; + class6.Single_0 = 2f; + class7.Color_0 = Color.Fuchsia; + class7.DashStyle_0 = DashStyle.Solid; + class7.Single_0 = 5f; + class8.Color_0 = Color.Black; + class8.DashStyle_0 = DashStyle.Solid; + class8.Single_0 = 1f; + class9.Color_0 = Color.Black; + class9.DashStyle_0 = DashStyle.Solid; + class9.Single_0 = 1f; + class10.Color_0 = Color.Blue; + class10.DashStyle_0 = DashStyle.Solid; + class10.Single_0 = 2f; + class11.Color_0 = Color.Blue; + class11.DashStyle_0 = DashStyle.Solid; + class11.Single_0 = 5f; + class12.Color_0 = Color.Black; + class12.DashStyle_0 = DashStyle.Solid; + class12.Single_0 = 1f; + class13.Color_0 = Color.Black; + class13.DashStyle_0 = DashStyle.Solid; + class13.Single_0 = 1f; + class14.Color_0 = Color.Turquoise; + class14.DashStyle_0 = DashStyle.Solid; + class14.Single_0 = 2f; + class15.Color_0 = Color.Red; + class15.DashStyle_0 = DashStyle.Solid; + class15.Single_0 = 5f; + class16.Color_0 = Color.Black; + class16.DashStyle_0 = DashStyle.Solid; + class16.Single_0 = 1f; + class17.Color_0 = Color.Black; + class17.DashStyle_0 = DashStyle.Solid; + class17.Single_0 = 1f; + + this.livegraph4 = new PerfChart(); + this.livegraph3 = new PerfChart(); + this.livegraph2 = new PerfChart(); + this.livegraph1 = new PerfChart(); + + this.tableLayoutPanel11.Controls.Add(this.livegraph4, 1, 3); + this.tableLayoutPanel11.Controls.Add(this.G4L, 0, 3); + this.tableLayoutPanel11.Controls.Add(this.tableLayoutPanel12, 1, 4); + this.tableLayoutPanel11.Controls.Add(this.G3L, 0, 2); + this.tableLayoutPanel11.Controls.Add(this.livegraph3, 1, 2); + this.tableLayoutPanel11.Controls.Add(this.G2L, 0, 1); + this.tableLayoutPanel11.Controls.Add(this.livegraph2, 1, 1); + this.tableLayoutPanel11.Controls.Add(this.G1L, 0, 0); + this.tableLayoutPanel11.Controls.Add(this.livegraph1, 1, 0); + + this.livegraph4.Border3DStyle_0 = Border3DStyle.Flat; + this.livegraph4.Dock = DockStyle.Fill; + this.livegraph4.Font = new Font("Comic Sans MS", 12f, FontStyle.Bold); + this.livegraph4.Location = new Point(0x3b, 0xf1); + this.livegraph4.Margin = new Padding(3, 4, 3, 4); + this.livegraph4.Name = "livegraph4"; + this.livegraph4.GClass3_0.Boolean_3 = true; + this.livegraph4.GClass3_0.Color_1 = Color.DarkGreen; + this.livegraph4.GClass3_0.Color_0 = Color.YellowGreen; + this.livegraph4.GClass3_0.Boolean_2 = false; + this.livegraph4.GClass3_0.Boolean_1 = true; + this.livegraph4.GClass3_0.Boolean_0 = true; + this.livegraph4.GEnum0_0 = GEnum0.Relative; + this.livegraph4.Size = new Size(0x1f2, 0x47); + this.livegraph4.TabIndex = 0x11; + this.livegraph4.Int32_0 = 100; + this.livegraph4.GEnum1_0 = GEnum1.Disabled; + this.livegraph4.DoubleClick += new EventHandler(this.livegraph4_DoubleClick); + + this.livegraph3.Border3DStyle_0 = Border3DStyle.Flat; + this.livegraph3.Dock = DockStyle.Fill; + this.livegraph3.Font = new Font("Comic Sans MS", 12f, FontStyle.Bold); + this.livegraph3.Location = new Point(0x3b, 0xa2); + this.livegraph3.Margin = new Padding(3, 4, 3, 4); + this.livegraph3.Name = "livegraph3"; + this.livegraph3.GClass3_0.Boolean_3 = true; + this.livegraph3.GClass3_0.Color_1 = Color.DarkGreen; + this.livegraph3.GClass3_0.Color_0 = Color.YellowGreen; + this.livegraph3.GClass3_0.Boolean_2 = false; + this.livegraph3.GClass3_0.Boolean_1 = true; + this.livegraph3.GClass3_0.Boolean_0 = true; + this.livegraph3.GEnum0_0 = GEnum0.Relative; + this.livegraph3.Size = new Size(0x1f2, 0x47); + this.livegraph3.TabIndex = 0x10; + this.livegraph3.Int32_0 = 100; + this.livegraph3.GEnum1_0 = GEnum1.Disabled; + this.livegraph3.DoubleClick += new EventHandler(this.livegraph3_DoubleClick); + + this.livegraph2.Border3DStyle_0 = Border3DStyle.Flat; + this.livegraph2.Dock = DockStyle.Fill; + this.livegraph2.Font = new Font("Comic Sans MS", 12f, FontStyle.Bold); + this.livegraph2.Location = new Point(0x3b, 0x53); + this.livegraph2.Margin = new Padding(3, 4, 3, 4); + this.livegraph2.Name = "livegraph2"; + this.livegraph2.GClass3_0.Boolean_3 = true; + this.livegraph2.GClass3_0.Color_1 = Color.DarkGreen; + this.livegraph2.GClass3_0.Color_0 = Color.YellowGreen; + this.livegraph2.GClass3_0.Boolean_2 = false; + this.livegraph2.GClass3_0.Boolean_1 = true; + this.livegraph2.GClass3_0.Boolean_0 = true; + this.livegraph2.GEnum0_0 = GEnum0.Relative; + this.livegraph2.Size = new Size(0x1f2, 0x47); + this.livegraph2.TabIndex = 15; + this.livegraph2.Int32_0 = 100; + this.livegraph2.GEnum1_0 = GEnum1.Disabled; + this.livegraph2.DoubleClick += new EventHandler(this.livegraph2_DoubleClick); + + this.livegraph1.Border3DStyle_0 = Border3DStyle.Flat; + this.livegraph1.Dock = DockStyle.Fill; + this.livegraph1.Font = new Font("Comic Sans MS", 12f, FontStyle.Bold, GraphicsUnit.Point, 0); + this.livegraph1.Location = new Point(0x3b, 4); + this.livegraph1.Margin = new Padding(3, 4, 3, 4); + this.livegraph1.Name = "livegraph1"; + this.livegraph1.GClass3_0.Boolean_3 = true; + this.livegraph1.GClass3_0.Color_1 = Color.DarkGreen; + this.livegraph1.GClass3_0.Color_0 = Color.YellowGreen; + this.livegraph1.GClass3_0.Boolean_2 = false; + this.livegraph1.GClass3_0.Boolean_1 = true; + this.livegraph1.GClass3_0.Boolean_0 = true; + this.livegraph1.GEnum0_0 = GEnum0.Relative; + this.livegraph1.Size = new Size(0x1f2, 0x47); + this.livegraph1.TabIndex = 10; + this.livegraph1.Int32_0 = 100; + this.livegraph1.GEnum1_0 = GEnum1.Disabled; + this.livegraph1.DoubleClick += new EventHandler(this.livegraph1_DoubleClick); + + this.livegraph4.GClass3_0.GClass4_2 = class2; + this.livegraph4.GClass3_0.GClass4_3 = class3; + this.livegraph4.GClass3_0.GClass4_1 = class4; + this.livegraph4.GClass3_0.GClass4_0 = class5; + this.livegraph3.GClass3_0.GClass4_2 = class6; + this.livegraph3.GClass3_0.GClass4_3 = class7; + this.livegraph3.GClass3_0.GClass4_1 = class8; + this.livegraph3.GClass3_0.GClass4_0 = class9; + this.livegraph2.GClass3_0.GClass4_2 = class10; + this.livegraph2.GClass3_0.GClass4_3 = class11; + this.livegraph2.GClass3_0.GClass4_1 = class12; + this.livegraph2.GClass3_0.GClass4_0 = class13; + this.livegraph1.GClass3_0.GClass4_2 = class14; + this.livegraph1.GClass3_0.GClass4_3 = class15; + this.livegraph1.GClass3_0.GClass4_1 = class16; + this.livegraph1.GClass3_0.GClass4_0 = class17; + + //################## + this.listViewLive = new ClassListView(); + ColumnHeader[] values = new ColumnHeader[] { this.columnHeader_0, this.columnHeader_1, this.columnHeader_2, this.columnHeader_3, this.columnHeader_4 }; + this.listViewLive.Columns.AddRange(values); + this.listViewLive.Dock = DockStyle.Fill; + this.listViewLive.HeaderStyle = ColumnHeaderStyle.Nonclickable; + this.listViewLive.HideSelection = false; + this.listViewLive.Location = new Point(0x9b, 3); + this.listViewLive.Margin = new Padding(2, 3, 2, 3); + this.listViewLive.Name = "listViewLive"; + this.listViewLive.Size = new Size(0x193, 0x11c); + this.listViewLive.TabIndex = 3; + this.listViewLive.UseCompatibleStateImageBehavior = false; + this.listViewLive.View = View.Details; + this.listViewLive.KeyDown += new KeyEventHandler(this.listViewLive_KeyDown); + this.listViewLive.MouseDoubleClick += new MouseEventHandler(this.listViewLive_MouseDoubleClick); + + this.tableLayoutPanel3.Controls.Add(this.button2, 0, 1); + this.tableLayoutPanel3.Controls.Add(this.listViewLive, 1, 0); + this.tableLayoutPanel3.Controls.Add(this.listBoxPIDs, 0, 0); + this.tableLayoutPanel3.Controls.Add(this.groupBox5, 1, 1); + } + + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.Windows.Forms.ListViewItem listViewItem3 = new System.Windows.Forms.ListViewItem("Honda OBD2 Scan Tools Initializing..", 2); + this.G4L = new DarkUI.Controls.DarkLabel(); + this.G3L = new DarkUI.Controls.DarkLabel(); + this.G2L = new DarkUI.Controls.DarkLabel(); + this.G1L = new DarkUI.Controls.DarkLabel(); + this.Graph4 = new DarkUI.Controls.DarkComboBox(); + this.Graph3 = new DarkUI.Controls.DarkComboBox(); + this.Graph2 = new DarkUI.Controls.DarkComboBox(); + this.Graph1 = new DarkUI.Controls.DarkComboBox(); + this.Gstart = new DarkUI.Controls.DarkButton(); + this.tabControl1 = new DarkUI.Controls.DarkTabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.gbConnection = new DarkUI.Controls.DarkGroupBox(); + this.descRate = new DarkUI.Controls.DarkLabel(); + this.label1 = new DarkUI.Controls.DarkLabel(); + this.descPort = new DarkUI.Controls.DarkLabel(); + this.cbJ2534 = new DarkUI.Controls.DarkCheckBox(); + this.cbBaud = new DarkUI.Controls.DarkComboBox(); + this.cbPort = new DarkUI.Controls.DarkComboBox(); + this.button1 = new DarkUI.Controls.DarkButton(); + this.groupBox1 = new DarkUI.Controls.DarkGroupBox(); + this.label3 = new DarkUI.Controls.DarkLabel(); + this.label2 = new DarkUI.Controls.DarkLabel(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel2 = new System.Windows.Forms.TableLayoutPanel(); + this.txtDTCD = new DarkUI.Controls.DarkTextBox(); + this.groupBox4 = new DarkUI.Controls.DarkGroupBox(); + this.tableLayoutPanel7 = new System.Windows.Forms.TableLayoutPanel(); + this.ButtonReadCEL = new DarkUI.Controls.DarkButton(); + this.listBoxCEL = new DarkUI.Controls.DarkListBox(this.components); + this.ClearDTC = new DarkUI.Controls.DarkButton(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel3 = new System.Windows.Forms.TableLayoutPanel(); + this.tabPage7 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel11 = new System.Windows.Forms.TableLayoutPanel(); + this.tabPage5 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel6 = new System.Windows.Forms.TableLayoutPanel(); + this.groupBox2 = new DarkUI.Controls.DarkGroupBox(); + this.label6 = new DarkUI.Controls.DarkLabel(); + this.label5 = new DarkUI.Controls.DarkLabel(); + this.ClearTable = new DarkUI.Controls.DarkButton(); + this.StopTable = new DarkUI.Controls.DarkButton(); + this.StartTable = new DarkUI.Controls.DarkButton(); + this.comboV = new DarkUI.Controls.DarkComboBox(); + this.labelL = new DarkUI.Controls.DarkLabel(); + this.comboY = new DarkUI.Controls.DarkComboBox(); + this.labely = new DarkUI.Controls.DarkLabel(); + this.comboX = new DarkUI.Controls.DarkComboBox(); + this.labelx = new DarkUI.Controls.DarkLabel(); + this.dataGridView_0 = new DarkUI.Controls.DarkDataGridView(); + this.tabPage6 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel5 = new System.Windows.Forms.TableLayoutPanel(); + this.label9 = new DarkUI.Controls.DarkLabel(); + this.label8 = new DarkUI.Controls.DarkLabel(); + this.GColourLF = new DarkUI.Controls.DarkButton(); + this.GColourL4 = new DarkUI.Controls.DarkButton(); + this.GColourL3 = new DarkUI.Controls.DarkButton(); + this.GColourL2 = new DarkUI.Controls.DarkButton(); + this.GColourL1 = new DarkUI.Controls.DarkButton(); + this.GColour2 = new DarkUI.Controls.DarkButton(); + this.label4 = new DarkUI.Controls.DarkLabel(); + this.GColour1 = new DarkUI.Controls.DarkButton(); + this.label7 = new DarkUI.Controls.DarkLabel(); + this.maskedTextBox1 = new System.Windows.Forms.MaskedTextBox(); + this.comboBox1 = new DarkUI.Controls.DarkComboBox(); + this.label10 = new DarkUI.Controls.DarkLabel(); + this.label11 = new DarkUI.Controls.DarkLabel(); + this.label13 = new DarkUI.Controls.DarkLabel(); + this.maskedTextBox2 = new System.Windows.Forms.MaskedTextBox(); + this.label12 = new DarkUI.Controls.DarkLabel(); + this.comboBox2 = new DarkUI.Controls.DarkComboBox(); + this.label14 = new DarkUI.Controls.DarkLabel(); + this.comboBox3 = new DarkUI.Controls.DarkComboBox(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.tableLayoutPanel4 = new System.Windows.Forms.TableLayoutPanel(); + this.buttonclear = new DarkUI.Controls.DarkButton(); + this.gbStatus = new DarkUI.Controls.DarkGroupBox(); + this.lvLog = new System.Windows.Forms.ListView(); + this.columnHeader_5 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.button2 = new DarkUI.Controls.DarkButton(); + this.columnHeader_0 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader_1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader_2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader_3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.columnHeader_4 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); + this.listBoxPIDs = new DarkUI.Controls.DarkListBox(this.components); + this.groupBox5 = new DarkUI.Controls.DarkGroupBox(); + this.trackBar1 = new System.Windows.Forms.TrackBar(); + this.tableLayoutPanel12 = new System.Windows.Forms.TableLayoutPanel(); + this.colorDialog_0 = new System.Windows.Forms.ColorDialog(); + this.timer_2 = new System.Windows.Forms.Timer(this.components); + this.timer_3 = new System.Windows.Forms.Timer(this.components); + this.timer_4 = new System.Windows.Forms.Timer(this.components); + this.timer_5 = new System.Windows.Forms.Timer(this.components); + this.timer_6 = new System.Windows.Forms.Timer(this.components); + this.toolTip_0 = new System.Windows.Forms.ToolTip(this.components); + this.timer_1 = new System.Windows.Forms.Timer(this.components); + this.timer_0 = new System.Windows.Forms.Timer(this.components); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); + this.gbConnection.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tableLayoutPanel2.SuspendLayout(); + this.groupBox4.SuspendLayout(); + this.tableLayoutPanel7.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.tabPage7.SuspendLayout(); + this.tabPage5.SuspendLayout(); + this.tableLayoutPanel6.SuspendLayout(); + this.groupBox2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView_0)).BeginInit(); + this.tabPage6.SuspendLayout(); + this.tableLayoutPanel5.SuspendLayout(); + this.tabPage4.SuspendLayout(); + this.tableLayoutPanel4.SuspendLayout(); + this.gbStatus.SuspendLayout(); + this.groupBox5.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).BeginInit(); + this.tableLayoutPanel12.SuspendLayout(); + this.SuspendLayout(); + // + // G4L + // + this.G4L.AutoSize = true; + this.G4L.BackColor = System.Drawing.Color.YellowGreen; + this.G4L.Dock = System.Windows.Forms.DockStyle.Fill; + this.G4L.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F); + this.G4L.ForeColor = System.Drawing.Color.Black; + this.G4L.Location = new System.Drawing.Point(2, 237); + this.G4L.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.G4L.Name = "G4L"; + this.G4L.Size = new System.Drawing.Size(52, 79); + this.G4L.TabIndex = 25; + this.G4L.Text = "."; + // + // G3L + // + this.G3L.AutoSize = true; + this.G3L.BackColor = System.Drawing.Color.YellowGreen; + this.G3L.Dock = System.Windows.Forms.DockStyle.Fill; + this.G3L.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F); + this.G3L.ForeColor = System.Drawing.Color.Fuchsia; + this.G3L.Location = new System.Drawing.Point(2, 158); + this.G3L.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.G3L.Name = "G3L"; + this.G3L.Size = new System.Drawing.Size(52, 79); + this.G3L.TabIndex = 24; + this.G3L.Text = "."; + // + // G2L + // + this.G2L.AutoSize = true; + this.G2L.BackColor = System.Drawing.Color.YellowGreen; + this.G2L.Dock = System.Windows.Forms.DockStyle.Fill; + this.G2L.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F); + this.G2L.ForeColor = System.Drawing.Color.Blue; + this.G2L.Location = new System.Drawing.Point(2, 79); + this.G2L.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.G2L.Name = "G2L"; + this.G2L.Size = new System.Drawing.Size(52, 79); + this.G2L.TabIndex = 23; + this.G2L.Text = "."; + // + // G1L + // + this.G1L.AutoSize = true; + this.G1L.BackColor = System.Drawing.Color.YellowGreen; + this.G1L.Dock = System.Windows.Forms.DockStyle.Fill; + this.G1L.Font = new System.Drawing.Font("Microsoft Sans Serif", 14F); + this.G1L.ForeColor = System.Drawing.Color.Red; + this.G1L.Location = new System.Drawing.Point(2, 0); + this.G1L.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.G1L.Name = "G1L"; + this.G1L.Size = new System.Drawing.Size(52, 79); + this.G1L.TabIndex = 22; + this.G1L.Text = "."; + // + // Graph4 + // + this.Graph4.Dock = System.Windows.Forms.DockStyle.Fill; + this.Graph4.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.Graph4.FormattingEnabled = true; + this.Graph4.Location = new System.Drawing.Point(302, 2); + this.Graph4.Margin = new System.Windows.Forms.Padding(2); + this.Graph4.Name = "Graph4"; + this.Graph4.Size = new System.Drawing.Size(96, 21); + this.Graph4.TabIndex = 14; + this.Graph4.SelectedIndexChanged += new System.EventHandler(this.Graph4_SelectedIndexChanged); + // + // Graph3 + // + this.Graph3.Dock = System.Windows.Forms.DockStyle.Fill; + this.Graph3.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.Graph3.FormattingEnabled = true; + this.Graph3.Location = new System.Drawing.Point(202, 2); + this.Graph3.Margin = new System.Windows.Forms.Padding(2); + this.Graph3.Name = "Graph3"; + this.Graph3.Size = new System.Drawing.Size(96, 21); + this.Graph3.TabIndex = 13; + this.Graph3.SelectedIndexChanged += new System.EventHandler(this.Graph3_SelectedIndexChanged); + // + // Graph2 + // + this.Graph2.Dock = System.Windows.Forms.DockStyle.Fill; + this.Graph2.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.Graph2.FormattingEnabled = true; + this.Graph2.Location = new System.Drawing.Point(102, 2); + this.Graph2.Margin = new System.Windows.Forms.Padding(2); + this.Graph2.Name = "Graph2"; + this.Graph2.Size = new System.Drawing.Size(96, 21); + this.Graph2.TabIndex = 12; + this.Graph2.SelectedIndexChanged += new System.EventHandler(this.Graph2_SelectedIndexChanged); + // + // Graph1 + // + this.Graph1.Dock = System.Windows.Forms.DockStyle.Fill; + this.Graph1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.Graph1.FormattingEnabled = true; + this.Graph1.Location = new System.Drawing.Point(2, 2); + this.Graph1.Margin = new System.Windows.Forms.Padding(2); + this.Graph1.Name = "Graph1"; + this.Graph1.Size = new System.Drawing.Size(96, 21); + this.Graph1.TabIndex = 11; + this.Graph1.SelectedIndexChanged += new System.EventHandler(this.Graph1_SelectedIndexChanged); + // + // Gstart + // + this.Gstart.Checked = false; + this.Gstart.Dock = System.Windows.Forms.DockStyle.Fill; + this.Gstart.Location = new System.Drawing.Point(402, 2); + this.Gstart.Margin = new System.Windows.Forms.Padding(2); + this.Gstart.Name = "Gstart"; + this.Gstart.Size = new System.Drawing.Size(96, 28); + this.Gstart.TabIndex = 0; + this.Gstart.Text = "Start"; + this.toolTip_0.SetToolTip(this.Gstart, "Start or Stop live graphs"); + this.Gstart.Click += new System.EventHandler(this.Gstart_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Controls.Add(this.tabPage7); + this.tabControl1.Controls.Add(this.tabPage5); + this.tabControl1.Controls.Add(this.tabPage6); + this.tabControl1.Controls.Add(this.tabPage4); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.tabControl1.ItemSize = new System.Drawing.Size(330, 30); + this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Margin = new System.Windows.Forms.Padding(2); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(568, 381); + this.tabControl1.TabIndex = 0; + // + // tabPage1 + // + this.tabPage1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(60)))), ((int)(((byte)(62))))); + this.tabPage1.Controls.Add(this.tableLayoutPanel1); + this.tabPage1.Location = new System.Drawing.Point(4, 34); + this.tabPage1.Margin = new System.Windows.Forms.Padding(2); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(2); + this.tabPage1.Size = new System.Drawing.Size(560, 343); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Connection"; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 1; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.gbConnection, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.button1, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.groupBox1, 0, 1); + this.tableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel1.Location = new System.Drawing.Point(2, 2); + this.tableLayoutPanel1.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 54F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(556, 339); + this.tableLayoutPanel1.TabIndex = 12; + // + // gbConnection + // + this.gbConnection.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.gbConnection.Controls.Add(this.descRate); + this.gbConnection.Controls.Add(this.label1); + this.gbConnection.Controls.Add(this.descPort); + this.gbConnection.Controls.Add(this.cbJ2534); + this.gbConnection.Controls.Add(this.cbBaud); + this.gbConnection.Controls.Add(this.cbPort); + this.gbConnection.Dock = System.Windows.Forms.DockStyle.Fill; + this.gbConnection.Location = new System.Drawing.Point(2, 3); + this.gbConnection.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.gbConnection.Name = "gbConnection"; + this.gbConnection.Padding = new System.Windows.Forms.Padding(11, 12, 11, 12); + this.gbConnection.Size = new System.Drawing.Size(552, 136); + this.gbConnection.TabIndex = 8; + this.gbConnection.TabStop = false; + this.gbConnection.Text = "Connection"; + this.gbConnection.Enter += new System.EventHandler(this.gbConnection_Enter); + // + // descRate + // + this.descRate.AutoSize = true; + this.descRate.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.descRate.Location = new System.Drawing.Point(182, 26); + this.descRate.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.descRate.Name = "descRate"; + this.descRate.Size = new System.Drawing.Size(58, 13); + this.descRate.TabIndex = 7; + this.descRate.Text = "Baud Rate"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label1.Location = new System.Drawing.Point(18, 54); + this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(0, 13); + this.label1.TabIndex = 5; + // + // descPort + // + this.descPort.AutoSize = true; + this.descPort.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.descPort.Location = new System.Drawing.Point(13, 26); + this.descPort.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.descPort.Name = "descPort"; + this.descPort.Size = new System.Drawing.Size(26, 13); + this.descPort.TabIndex = 2; + this.descPort.Text = "Port"; + // + // cbJ2534 + // + this.cbJ2534.AutoSize = true; + this.cbJ2534.Location = new System.Drawing.Point(385, 25); + this.cbJ2534.Margin = new System.Windows.Forms.Padding(2); + this.cbJ2534.Name = "cbJ2534"; + this.cbJ2534.Size = new System.Drawing.Size(55, 17); + this.cbJ2534.TabIndex = 6; + this.cbJ2534.Text = "J2534"; + this.cbJ2534.CheckStateChanged += new System.EventHandler(this.cbJ2534_CheckStateChanged); + // + // cbBaud + // + this.cbBaud.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.cbBaud.FormattingEnabled = true; + this.cbBaud.Items.AddRange(new object[] { + "9600", + "19200", + "38400", + "57600", + "115200"}); + this.cbBaud.Location = new System.Drawing.Point(266, 23); + this.cbBaud.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.cbBaud.Name = "cbBaud"; + this.cbBaud.Size = new System.Drawing.Size(106, 21); + this.cbBaud.TabIndex = 1; + this.cbBaud.SelectedValueChanged += new System.EventHandler(this.cbPort_SelectedValueChanged); + // + // cbPort + // + this.cbPort.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.cbPort.FormattingEnabled = true; + this.cbPort.Location = new System.Drawing.Point(54, 23); + this.cbPort.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.cbPort.Name = "cbPort"; + this.cbPort.Size = new System.Drawing.Size(106, 21); + this.cbPort.TabIndex = 0; + this.cbPort.SelectedValueChanged += new System.EventHandler(this.cbPort_SelectedValueChanged); + // + // button1 + // + this.button1.Checked = false; + this.button1.Location = new System.Drawing.Point(2, 286); + this.button1.Margin = new System.Windows.Forms.Padding(2); + this.button1.Name = "button1"; + this.button1.Size = new System.Drawing.Size(171, 49); + this.button1.TabIndex = 11; + this.button1.Text = "Connect"; + this.button1.Click += new System.EventHandler(this.button1_Click); + // + // groupBox1 + // + this.groupBox1.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.groupBox1.Controls.Add(this.label3); + this.groupBox1.Controls.Add(this.label2); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox1.Location = new System.Drawing.Point(2, 145); + this.groupBox1.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(11, 12, 11, 12); + this.groupBox1.Size = new System.Drawing.Size(552, 136); + this.groupBox1.TabIndex = 10; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Device"; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label3.Location = new System.Drawing.Point(6, 49); + this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(51, 13); + this.label3.TabIndex = 8; + this.label3.Text = "Features:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label2.Location = new System.Drawing.Point(6, 20); + this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(50, 13); + this.label2.TabIndex = 7; + this.label2.Text = "Adapter: "; + // + // tabPage2 + // + this.tabPage2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(60)))), ((int)(((byte)(62))))); + this.tabPage2.Controls.Add(this.tableLayoutPanel2); + this.tabPage2.Location = new System.Drawing.Point(4, 34); + this.tabPage2.Margin = new System.Windows.Forms.Padding(2); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(2); + this.tabPage2.Size = new System.Drawing.Size(560, 343); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Codes"; + // + // tableLayoutPanel2 + // + this.tableLayoutPanel2.ColumnCount = 2; + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 153F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel2.Controls.Add(this.txtDTCD, 1, 0); + this.tableLayoutPanel2.Controls.Add(this.groupBox4, 0, 0); + this.tableLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel2.Location = new System.Drawing.Point(2, 2); + this.tableLayoutPanel2.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel2.Name = "tableLayoutPanel2"; + this.tableLayoutPanel2.RowCount = 1; + this.tableLayoutPanel2.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel2.Size = new System.Drawing.Size(556, 339); + this.tableLayoutPanel2.TabIndex = 13; + // + // txtDTCD + // + this.txtDTCD.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtDTCD.Location = new System.Drawing.Point(155, 3); + this.txtDTCD.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.txtDTCD.Multiline = true; + this.txtDTCD.Name = "txtDTCD"; + this.txtDTCD.ReadOnly = true; + this.txtDTCD.Size = new System.Drawing.Size(406, 333); + this.txtDTCD.TabIndex = 3; + // + // groupBox4 + // + this.groupBox4.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.groupBox4.Controls.Add(this.tableLayoutPanel7); + this.groupBox4.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox4.Location = new System.Drawing.Point(2, 3); + this.groupBox4.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Padding = new System.Windows.Forms.Padding(11, 12, 11, 12); + this.groupBox4.Size = new System.Drawing.Size(149, 333); + this.groupBox4.TabIndex = 12; + this.groupBox4.TabStop = false; + // + // tableLayoutPanel7 + // + this.tableLayoutPanel7.ColumnCount = 1; + this.tableLayoutPanel7.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel7.Controls.Add(this.ButtonReadCEL, 0, 0); + this.tableLayoutPanel7.Controls.Add(this.listBoxCEL, 0, 2); + this.tableLayoutPanel7.Controls.Add(this.ClearDTC, 0, 1); + this.tableLayoutPanel7.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel7.Location = new System.Drawing.Point(11, 25); + this.tableLayoutPanel7.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel7.Name = "tableLayoutPanel7"; + this.tableLayoutPanel7.RowCount = 3; + this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 33F)); + this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 33F)); + this.tableLayoutPanel7.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel7.Size = new System.Drawing.Size(127, 296); + this.tableLayoutPanel7.TabIndex = 3; + // + // ButtonReadCEL + // + this.ButtonReadCEL.Checked = false; + this.ButtonReadCEL.Dock = System.Windows.Forms.DockStyle.Fill; + this.ButtonReadCEL.Location = new System.Drawing.Point(2, 3); + this.ButtonReadCEL.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.ButtonReadCEL.Name = "ButtonReadCEL"; + this.ButtonReadCEL.Size = new System.Drawing.Size(123, 27); + this.ButtonReadCEL.TabIndex = 1; + this.ButtonReadCEL.Text = "Read"; + this.ButtonReadCEL.ClientSizeChanged += new System.EventHandler(this.ButtonReadCEL_Click); + this.ButtonReadCEL.Click += new System.EventHandler(this.ButtonReadCEL_Click); + // + // listBoxCEL + // + this.listBoxCEL.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(69)))), ((int)(((byte)(73)))), ((int)(((byte)(74))))); + this.listBoxCEL.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listBoxCEL.Dock = System.Windows.Forms.DockStyle.Fill; + this.listBoxCEL.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; + this.listBoxCEL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.listBoxCEL.FormattingEnabled = true; + this.listBoxCEL.ItemHeight = 18; + this.listBoxCEL.Location = new System.Drawing.Point(2, 69); + this.listBoxCEL.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.listBoxCEL.Name = "listBoxCEL"; + this.listBoxCEL.Size = new System.Drawing.Size(123, 224); + this.listBoxCEL.TabIndex = 0; + this.listBoxCEL.SelectedIndexChanged += new System.EventHandler(this.listBoxCEL_SelectedIndexChanged); + // + // ClearDTC + // + this.ClearDTC.Checked = false; + this.ClearDTC.Dock = System.Windows.Forms.DockStyle.Fill; + this.ClearDTC.Location = new System.Drawing.Point(2, 36); + this.ClearDTC.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.ClearDTC.Name = "ClearDTC"; + this.ClearDTC.Size = new System.Drawing.Size(123, 27); + this.ClearDTC.TabIndex = 2; + this.ClearDTC.Text = "Clear"; + this.ClearDTC.Click += new System.EventHandler(this.ClearDTC_Click); + // + // tabPage3 + // + this.tabPage3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(60)))), ((int)(((byte)(62))))); + this.tabPage3.Controls.Add(this.tableLayoutPanel3); + this.tabPage3.Location = new System.Drawing.Point(4, 34); + this.tabPage3.Margin = new System.Windows.Forms.Padding(2); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(560, 343); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "Live Data"; + // + // tableLayoutPanel3 + // + this.tableLayoutPanel3.ColumnCount = 2; + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 153F)); + this.tableLayoutPanel3.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel3.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel3.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel3.Name = "tableLayoutPanel3"; + this.tableLayoutPanel3.RowCount = 2; + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel3.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 65F)); + this.tableLayoutPanel3.Size = new System.Drawing.Size(560, 343); + this.tableLayoutPanel3.TabIndex = 14; + // + // tabPage7 + // + this.tabPage7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(60)))), ((int)(((byte)(62))))); + this.tabPage7.Controls.Add(this.tableLayoutPanel11); + this.tabPage7.Location = new System.Drawing.Point(4, 34); + this.tabPage7.Margin = new System.Windows.Forms.Padding(2); + this.tabPage7.Name = "tabPage7"; + this.tabPage7.Size = new System.Drawing.Size(560, 343); + this.tabPage7.TabIndex = 6; + this.tabPage7.Text = "Graphing"; + // + // tableLayoutPanel11 + // + this.tableLayoutPanel11.BackColor = System.Drawing.Color.Transparent; + this.tableLayoutPanel11.ColumnCount = 2; + this.tableLayoutPanel11.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 10F)); + this.tableLayoutPanel11.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 90F)); + this.tableLayoutPanel11.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel11.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel11.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel11.Name = "tableLayoutPanel11"; + this.tableLayoutPanel11.RowCount = 5; + this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 22.44898F)); + this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 22.44898F)); + this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 22.44898F)); + this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 22.44898F)); + this.tableLayoutPanel11.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10.20408F)); + this.tableLayoutPanel11.Size = new System.Drawing.Size(560, 343); + this.tableLayoutPanel11.TabIndex = 26; + // + // tabPage5 + // + this.tabPage5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(60)))), ((int)(((byte)(62))))); + this.tabPage5.Controls.Add(this.tableLayoutPanel6); + this.tabPage5.Location = new System.Drawing.Point(4, 34); + this.tabPage5.Margin = new System.Windows.Forms.Padding(2); + this.tabPage5.Name = "tabPage5"; + this.tabPage5.Size = new System.Drawing.Size(560, 343); + this.tabPage5.TabIndex = 4; + this.tabPage5.Text = "Datalogging"; + // + // tableLayoutPanel6 + // + this.tableLayoutPanel6.ColumnCount = 1; + this.tableLayoutPanel6.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel6.Controls.Add(this.groupBox2, 0, 1); + this.tableLayoutPanel6.Controls.Add(this.dataGridView_0, 0, 0); + this.tableLayoutPanel6.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel6.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel6.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel6.Name = "tableLayoutPanel6"; + this.tableLayoutPanel6.RowCount = 2; + this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel6.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 76F)); + this.tableLayoutPanel6.Size = new System.Drawing.Size(560, 343); + this.tableLayoutPanel6.TabIndex = 5; + // + // groupBox2 + // + this.groupBox2.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.groupBox2.Controls.Add(this.label6); + this.groupBox2.Controls.Add(this.label5); + this.groupBox2.Controls.Add(this.ClearTable); + this.groupBox2.Controls.Add(this.StopTable); + this.groupBox2.Controls.Add(this.StartTable); + this.groupBox2.Controls.Add(this.comboV); + this.groupBox2.Controls.Add(this.labelL); + this.groupBox2.Controls.Add(this.comboY); + this.groupBox2.Controls.Add(this.labely); + this.groupBox2.Controls.Add(this.comboX); + this.groupBox2.Controls.Add(this.labelx); + this.groupBox2.Location = new System.Drawing.Point(2, 269); + this.groupBox2.Margin = new System.Windows.Forms.Padding(2); + this.groupBox2.Name = "groupBox2"; + this.groupBox2.Padding = new System.Windows.Forms.Padding(2); + this.groupBox2.Size = new System.Drawing.Size(520, 70); + this.groupBox2.TabIndex = 3; + this.groupBox2.TabStop = false; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 26.14286F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.label6.ForeColor = System.Drawing.Color.DarkRed; + this.label6.Location = new System.Drawing.Point(51, 17); + this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(108, 39); + this.label6.TabIndex = 13; + this.label6.Text = "20.90"; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label5.Location = new System.Drawing.Point(3, 8); + this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(28, 13); + this.label5.TabIndex = 12; + this.label5.Text = "AFR"; + // + // ClearTable + // + this.ClearTable.Checked = false; + this.ClearTable.Enabled = false; + this.ClearTable.Location = new System.Drawing.Point(198, 45); + this.ClearTable.Margin = new System.Windows.Forms.Padding(2); + this.ClearTable.Name = "ClearTable"; + this.ClearTable.Size = new System.Drawing.Size(90, 20); + this.ClearTable.TabIndex = 11; + this.ClearTable.Text = "Clear Table"; + // + // StopTable + // + this.StopTable.Checked = false; + this.StopTable.Enabled = false; + this.StopTable.Location = new System.Drawing.Point(292, 45); + this.StopTable.Margin = new System.Windows.Forms.Padding(2); + this.StopTable.Name = "StopTable"; + this.StopTable.Size = new System.Drawing.Size(89, 20); + this.StopTable.TabIndex = 10; + this.StopTable.Text = "Start Trace"; + this.StopTable.Click += new System.EventHandler(this.StopTable_Click); + // + // StartTable + // + this.StartTable.Checked = false; + this.StartTable.Location = new System.Drawing.Point(386, 45); + this.StartTable.Margin = new System.Windows.Forms.Padding(2); + this.StartTable.Name = "StartTable"; + this.StartTable.Size = new System.Drawing.Size(120, 20); + this.StartTable.TabIndex = 9; + this.StartTable.Text = "Load Template"; + this.StartTable.Click += new System.EventHandler(this.StartTable_Click); + // + // comboV + // + this.comboV.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.comboV.Enabled = false; + this.comboV.FormattingEnabled = true; + this.comboV.Items.AddRange(new object[] { + "O2 (Internal)", + "Knock (Internal)", + "Final Ignition Timing", + "MAF g/s", + "HP", + "Torque", + "Commanded AFR", + "O2 (External)", + "Knock (External)", + "EGT (External)"}); + this.comboV.Location = new System.Drawing.Point(386, 21); + this.comboV.Margin = new System.Windows.Forms.Padding(2); + this.comboV.Name = "comboV"; + this.comboV.Size = new System.Drawing.Size(120, 21); + this.comboV.TabIndex = 5; + // + // labelL + // + this.labelL.AutoSize = true; + this.labelL.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.labelL.Location = new System.Drawing.Point(383, 8); + this.labelL.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.labelL.Name = "labelL"; + this.labelL.Size = new System.Drawing.Size(70, 13); + this.labelL.TabIndex = 4; + this.labelL.Text = "Value Sensor"; + // + // comboY + // + this.comboY.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.comboY.Enabled = false; + this.comboY.FormattingEnabled = true; + this.comboY.Items.AddRange(new object[] { + "RPM", + "SPEED"}); + this.comboY.Location = new System.Drawing.Point(292, 21); + this.comboY.Margin = new System.Windows.Forms.Padding(2); + this.comboY.Name = "comboY"; + this.comboY.Size = new System.Drawing.Size(89, 21); + this.comboY.TabIndex = 3; + // + // labely + // + this.labely.AutoSize = true; + this.labely.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.labely.Location = new System.Drawing.Point(289, 8); + this.labely.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.labely.Name = "labely"; + this.labely.Size = new System.Drawing.Size(50, 13); + this.labely.TabIndex = 2; + this.labely.Text = "Y Sensor"; + // + // comboX + // + this.comboX.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.comboX.Enabled = false; + this.comboX.FormattingEnabled = true; + this.comboX.Items.AddRange(new object[] { + "MAP", + "TPS", + "LOAD %"}); + this.comboX.Location = new System.Drawing.Point(198, 21); + this.comboX.Margin = new System.Windows.Forms.Padding(2); + this.comboX.Name = "comboX"; + this.comboX.Size = new System.Drawing.Size(89, 21); + this.comboX.TabIndex = 1; + // + // labelx + // + this.labelx.AutoSize = true; + this.labelx.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.labelx.Location = new System.Drawing.Point(195, 8); + this.labelx.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.labelx.Name = "labelx"; + this.labelx.Size = new System.Drawing.Size(48, 13); + this.labelx.TabIndex = 0; + this.labelx.Text = "X sensor"; + // + // dataGridView_0 + // + this.dataGridView_0.AllowUserToAddRows = false; + this.dataGridView_0.AllowUserToDeleteRows = false; + this.dataGridView_0.ColumnHeadersHeight = 40; + this.dataGridView_0.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; + this.dataGridView_0.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView_0.Enabled = false; + this.dataGridView_0.Location = new System.Drawing.Point(4, 5); + this.dataGridView_0.Margin = new System.Windows.Forms.Padding(4, 5, 4, 5); + this.dataGridView_0.Name = "dataGridView_0"; + this.dataGridView_0.ReadOnly = true; + this.dataGridView_0.RowHeadersWidth = 72; + this.dataGridView_0.RowTemplate.Height = 24; + this.dataGridView_0.Size = new System.Drawing.Size(552, 257); + this.dataGridView_0.TabIndex = 4; + // + // tabPage6 + // + this.tabPage6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(60)))), ((int)(((byte)(62))))); + this.tabPage6.Controls.Add(this.tableLayoutPanel5); + this.tabPage6.Location = new System.Drawing.Point(4, 34); + this.tabPage6.Margin = new System.Windows.Forms.Padding(2); + this.tabPage6.Name = "tabPage6"; + this.tabPage6.Size = new System.Drawing.Size(560, 343); + this.tabPage6.TabIndex = 5; + this.tabPage6.Text = "Settings"; + // + // tableLayoutPanel5 + // + this.tableLayoutPanel5.ColumnCount = 8; + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 16F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12F)); + this.tableLayoutPanel5.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 12F)); + this.tableLayoutPanel5.Controls.Add(this.label9, 3, 1); + this.tableLayoutPanel5.Controls.Add(this.label8, 1, 1); + this.tableLayoutPanel5.Controls.Add(this.GColourLF, 7, 0); + this.tableLayoutPanel5.Controls.Add(this.GColourL4, 6, 0); + this.tableLayoutPanel5.Controls.Add(this.GColourL3, 5, 0); + this.tableLayoutPanel5.Controls.Add(this.GColourL2, 4, 0); + this.tableLayoutPanel5.Controls.Add(this.GColourL1, 3, 0); + this.tableLayoutPanel5.Controls.Add(this.GColour2, 2, 0); + this.tableLayoutPanel5.Controls.Add(this.label4, 0, 0); + this.tableLayoutPanel5.Controls.Add(this.GColour1, 1, 0); + this.tableLayoutPanel5.Controls.Add(this.label7, 0, 1); + this.tableLayoutPanel5.Controls.Add(this.maskedTextBox1, 2, 1); + this.tableLayoutPanel5.Controls.Add(this.comboBox1, 4, 1); + this.tableLayoutPanel5.Controls.Add(this.label10, 0, 2); + this.tableLayoutPanel5.Controls.Add(this.label11, 0, 3); + this.tableLayoutPanel5.Controls.Add(this.label13, 1, 3); + this.tableLayoutPanel5.Controls.Add(this.maskedTextBox2, 2, 3); + this.tableLayoutPanel5.Controls.Add(this.label12, 3, 3); + this.tableLayoutPanel5.Controls.Add(this.comboBox2, 4, 3); + this.tableLayoutPanel5.Controls.Add(this.label14, 1, 2); + this.tableLayoutPanel5.Controls.Add(this.comboBox3, 2, 2); + this.tableLayoutPanel5.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel5.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel5.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel5.Name = "tableLayoutPanel5"; + this.tableLayoutPanel5.RowCount = 5; + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel5.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel5.Size = new System.Drawing.Size(560, 343); + this.tableLayoutPanel5.TabIndex = 0; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Dock = System.Windows.Forms.DockStyle.Right; + this.label9.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label9.Location = new System.Drawing.Point(254, 68); + this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(34, 68); + this.label9.TabIndex = 46; + this.label9.Text = "Type:"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Dock = System.Windows.Forms.DockStyle.Right; + this.label8.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label8.Location = new System.Drawing.Point(111, 68); + this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(43, 68); + this.label8.TabIndex = 44; + this.label8.Text = "CANID:"; + // + // GColourLF + // + this.GColourLF.BackColor = System.Drawing.Color.AntiqueWhite; + this.GColourLF.Checked = false; + this.GColourLF.ForeColor = System.Drawing.Color.Black; + this.GColourLF.Location = new System.Drawing.Point(493, 2); + this.GColourLF.Margin = new System.Windows.Forms.Padding(2); + this.GColourLF.Name = "GColourLF"; + this.GColourLF.Size = new System.Drawing.Size(54, 21); + this.GColourLF.TabIndex = 36; + this.GColourLF.Text = "FullLine"; + this.GColourLF.Click += new System.EventHandler(this.GColourLF_Click); + // + // GColourL4 + // + this.GColourL4.BackColor = System.Drawing.Color.AntiqueWhite; + this.GColourL4.Checked = false; + this.GColourL4.ForeColor = System.Drawing.Color.White; + this.GColourL4.Location = new System.Drawing.Point(426, 2); + this.GColourL4.Margin = new System.Windows.Forms.Padding(2); + this.GColourL4.Name = "GColourL4"; + this.GColourL4.Size = new System.Drawing.Size(51, 21); + this.GColourL4.TabIndex = 39; + this.GColourL4.Text = "Line4"; + this.GColourL4.Click += new System.EventHandler(this.GColourL4_Click); + // + // GColourL3 + // + this.GColourL3.BackColor = System.Drawing.Color.AntiqueWhite; + this.GColourL3.Checked = false; + this.GColourL3.ForeColor = System.Drawing.Color.White; + this.GColourL3.Location = new System.Drawing.Point(359, 2); + this.GColourL3.Margin = new System.Windows.Forms.Padding(2); + this.GColourL3.Name = "GColourL3"; + this.GColourL3.Size = new System.Drawing.Size(51, 21); + this.GColourL3.TabIndex = 38; + this.GColourL3.Text = "Line3"; + this.GColourL3.Click += new System.EventHandler(this.GColourL3_Click); + // + // GColourL2 + // + this.GColourL2.BackColor = System.Drawing.Color.AntiqueWhite; + this.GColourL2.Checked = false; + this.GColourL2.ForeColor = System.Drawing.Color.White; + this.GColourL2.Location = new System.Drawing.Point(292, 2); + this.GColourL2.Margin = new System.Windows.Forms.Padding(2); + this.GColourL2.Name = "GColourL2"; + this.GColourL2.Size = new System.Drawing.Size(51, 21); + this.GColourL2.TabIndex = 37; + this.GColourL2.Text = "Line2"; + this.GColourL2.Click += new System.EventHandler(this.GColourL2_Click); + // + // GColourL1 + // + this.GColourL1.BackColor = System.Drawing.Color.AntiqueWhite; + this.GColourL1.Checked = false; + this.GColourL1.ForeColor = System.Drawing.Color.White; + this.GColourL1.Location = new System.Drawing.Point(225, 2); + this.GColourL1.Margin = new System.Windows.Forms.Padding(2); + this.GColourL1.Name = "GColourL1"; + this.GColourL1.Size = new System.Drawing.Size(51, 21); + this.GColourL1.TabIndex = 35; + this.GColourL1.Text = "Line"; + this.GColourL1.Click += new System.EventHandler(this.GColourL1_Click); + // + // GColour2 + // + this.GColour2.BackColor = System.Drawing.Color.AntiqueWhite; + this.GColour2.Checked = false; + this.GColour2.ForeColor = System.Drawing.Color.White; + this.GColour2.Location = new System.Drawing.Point(158, 2); + this.GColour2.Margin = new System.Windows.Forms.Padding(2); + this.GColour2.Name = "GColour2"; + this.GColour2.Size = new System.Drawing.Size(46, 21); + this.GColour2.TabIndex = 34; + this.GColour2.Text = "Top"; + this.GColour2.Click += new System.EventHandler(this.GColour2_Click); + // + // label4 + // + this.label4.AutoSize = true; + this.label4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label4.Location = new System.Drawing.Point(2, 0); + this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(77, 13); + this.label4.TabIndex = 32; + this.label4.Text = "Graph Colours:"; + // + // GColour1 + // + this.GColour1.BackColor = System.Drawing.Color.AntiqueWhite; + this.GColour1.Checked = false; + this.GColour1.ForeColor = System.Drawing.Color.White; + this.GColour1.Location = new System.Drawing.Point(91, 2); + this.GColour1.Margin = new System.Windows.Forms.Padding(2); + this.GColour1.Name = "GColour1"; + this.GColour1.Size = new System.Drawing.Size(50, 21); + this.GColour1.TabIndex = 33; + this.GColour1.Text = "Bottom"; + this.GColour1.Click += new System.EventHandler(this.GColour1_Click); + // + // label7 + // + this.label7.AutoSize = true; + this.label7.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label7.Location = new System.Drawing.Point(2, 68); + this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(59, 26); + this.label7.TabIndex = 42; + this.label7.Text = "External Wideband:"; + // + // maskedTextBox1 + // + this.maskedTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.maskedTextBox1.Location = new System.Drawing.Point(158, 70); + this.maskedTextBox1.Margin = new System.Windows.Forms.Padding(2); + this.maskedTextBox1.Name = "maskedTextBox1"; + this.maskedTextBox1.Size = new System.Drawing.Size(63, 20); + this.maskedTextBox1.TabIndex = 45; + // + // comboBox1 + // + this.comboBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.comboBox1.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.comboBox1.FormattingEnabled = true; + this.comboBox1.Items.AddRange(new object[] { + "Spartan3", + ":Link"}); + this.comboBox1.Location = new System.Drawing.Point(292, 70); + this.comboBox1.Margin = new System.Windows.Forms.Padding(2); + this.comboBox1.Name = "comboBox1"; + this.comboBox1.Size = new System.Drawing.Size(63, 21); + this.comboBox1.TabIndex = 43; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label10.Location = new System.Drawing.Point(2, 136); + this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(82, 13); + this.label10.TabIndex = 47; + this.label10.Text = "External Knock:"; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label11.Location = new System.Drawing.Point(2, 204); + this.label11.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(73, 13); + this.label11.TabIndex = 48; + this.label11.Text = "External EGT:"; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Dock = System.Windows.Forms.DockStyle.Right; + this.label13.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label13.Location = new System.Drawing.Point(111, 204); + this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(43, 68); + this.label13.TabIndex = 50; + this.label13.Text = "CANID:"; + // + // maskedTextBox2 + // + this.maskedTextBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.maskedTextBox2.Location = new System.Drawing.Point(158, 206); + this.maskedTextBox2.Margin = new System.Windows.Forms.Padding(2); + this.maskedTextBox2.Name = "maskedTextBox2"; + this.maskedTextBox2.Size = new System.Drawing.Size(63, 20); + this.maskedTextBox2.TabIndex = 51; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Dock = System.Windows.Forms.DockStyle.Right; + this.label12.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label12.Location = new System.Drawing.Point(254, 204); + this.label12.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(34, 68); + this.label12.TabIndex = 52; + this.label12.Text = "Type:"; + // + // comboBox2 + // + this.comboBox2.Dock = System.Windows.Forms.DockStyle.Fill; + this.comboBox2.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.comboBox2.FormattingEnabled = true; + this.comboBox2.Location = new System.Drawing.Point(292, 206); + this.comboBox2.Margin = new System.Windows.Forms.Padding(2); + this.comboBox2.Name = "comboBox2"; + this.comboBox2.Size = new System.Drawing.Size(63, 21); + this.comboBox2.TabIndex = 49; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Dock = System.Windows.Forms.DockStyle.Right; + this.label14.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.label14.Location = new System.Drawing.Point(98, 136); + this.label14.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(56, 68); + this.label14.TabIndex = 53; + this.label14.Text = "COM Port:"; + // + // comboBox3 + // + this.comboBox3.Dock = System.Windows.Forms.DockStyle.Fill; + this.comboBox3.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawVariable; + this.comboBox3.FormattingEnabled = true; + this.comboBox3.Location = new System.Drawing.Point(158, 138); + this.comboBox3.Margin = new System.Windows.Forms.Padding(2); + this.comboBox3.Name = "comboBox3"; + this.comboBox3.Size = new System.Drawing.Size(63, 21); + this.comboBox3.TabIndex = 54; + // + // tabPage4 + // + this.tabPage4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(57)))), ((int)(((byte)(60)))), ((int)(((byte)(62))))); + this.tabPage4.Controls.Add(this.tableLayoutPanel4); + this.tabPage4.Location = new System.Drawing.Point(4, 34); + this.tabPage4.Margin = new System.Windows.Forms.Padding(2); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Size = new System.Drawing.Size(560, 343); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "Status"; + // + // tableLayoutPanel4 + // + this.tableLayoutPanel4.ColumnCount = 1; + this.tableLayoutPanel4.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel4.Controls.Add(this.buttonclear, 0, 1); + this.tableLayoutPanel4.Controls.Add(this.gbStatus, 0, 0); + this.tableLayoutPanel4.Dock = System.Windows.Forms.DockStyle.Fill; + this.tableLayoutPanel4.Location = new System.Drawing.Point(0, 0); + this.tableLayoutPanel4.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel4.Name = "tableLayoutPanel4"; + this.tableLayoutPanel4.RowCount = 2; + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel4.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 43F)); + this.tableLayoutPanel4.Size = new System.Drawing.Size(560, 343); + this.tableLayoutPanel4.TabIndex = 11; + // + // buttonclear + // + this.buttonclear.Checked = false; + this.buttonclear.Location = new System.Drawing.Point(2, 303); + this.buttonclear.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.buttonclear.Name = "buttonclear"; + this.buttonclear.Size = new System.Drawing.Size(87, 37); + this.buttonclear.TabIndex = 4; + this.buttonclear.Text = "Clear"; + this.buttonclear.Click += new System.EventHandler(this.buttonclear_Click); + // + // gbStatus + // + this.gbStatus.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.gbStatus.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.gbStatus.Controls.Add(this.lvLog); + this.gbStatus.Location = new System.Drawing.Point(2, 3); + this.gbStatus.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.gbStatus.Name = "gbStatus"; + this.gbStatus.Padding = new System.Windows.Forms.Padding(11, 12, 11, 12); + this.gbStatus.Size = new System.Drawing.Size(556, 294); + this.gbStatus.TabIndex = 10; + this.gbStatus.TabStop = false; + this.gbStatus.Text = "Status"; + // + // lvLog + // + this.lvLog.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(69)))), ((int)(((byte)(73)))), ((int)(((byte)(74))))); + this.lvLog.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { + this.columnHeader_5}); + this.lvLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.lvLog.ForeColor = System.Drawing.Color.Gainsboro; + this.lvLog.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.Nonclickable; + this.lvLog.HideSelection = false; + this.lvLog.Items.AddRange(new System.Windows.Forms.ListViewItem[] { + listViewItem3}); + this.lvLog.Location = new System.Drawing.Point(11, 25); + this.lvLog.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.lvLog.Name = "lvLog"; + this.lvLog.Size = new System.Drawing.Size(534, 257); + this.lvLog.TabIndex = 1; + this.lvLog.UseCompatibleStateImageBehavior = false; + this.lvLog.View = System.Windows.Forms.View.Details; + // + // columnHeader_5 + // + this.columnHeader_5.Text = "Log Details"; + this.columnHeader_5.Width = 466; + // + // button2 + // + this.button2.Checked = false; + this.button2.Dock = System.Windows.Forms.DockStyle.Fill; + this.button2.Location = new System.Drawing.Point(2, 293); + this.button2.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.button2.Name = "button2"; + this.button2.Size = new System.Drawing.Size(149, 59); + this.button2.TabIndex = 4; + this.button2.Text = "Start Log"; + this.button2.Click += new System.EventHandler(this.button2_Click); + // + // columnHeader_0 + // + this.columnHeader_0.Text = "PID"; + // + // columnHeader_1 + // + this.columnHeader_1.Text = "Description"; + this.columnHeader_1.Width = 101; + // + // columnHeader_2 + // + this.columnHeader_2.Text = "Current"; + this.columnHeader_2.Width = 92; + // + // columnHeader_3 + // + this.columnHeader_3.Text = "Min"; + // + // columnHeader_4 + // + this.columnHeader_4.Text = "Max"; + // + // listBoxPIDs + // + this.listBoxPIDs.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(69)))), ((int)(((byte)(73)))), ((int)(((byte)(74))))); + this.listBoxPIDs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.listBoxPIDs.Dock = System.Windows.Forms.DockStyle.Fill; + this.listBoxPIDs.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; + this.listBoxPIDs.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(220)))), ((int)(((byte)(220))))); + this.listBoxPIDs.FormattingEnabled = true; + this.listBoxPIDs.ItemHeight = 18; + this.listBoxPIDs.Location = new System.Drawing.Point(2, 3); + this.listBoxPIDs.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.listBoxPIDs.Name = "listBoxPIDs"; + this.listBoxPIDs.Size = new System.Drawing.Size(149, 284); + this.listBoxPIDs.TabIndex = 0; + this.listBoxPIDs.KeyDown += new System.Windows.Forms.KeyEventHandler(this.listBoxPIDs_KeyDown); + this.listBoxPIDs.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.listBoxPIDs_MouseDoubleClick); + // + // groupBox5 + // + this.groupBox5.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(51)))), ((int)(((byte)(51)))), ((int)(((byte)(51))))); + this.groupBox5.Controls.Add(this.trackBar1); + this.groupBox5.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox5.Location = new System.Drawing.Point(155, 293); + this.groupBox5.Margin = new System.Windows.Forms.Padding(2, 3, 2, 3); + this.groupBox5.Name = "groupBox5"; + this.groupBox5.Padding = new System.Windows.Forms.Padding(11, 12, 11, 12); + this.groupBox5.Size = new System.Drawing.Size(403, 59); + this.groupBox5.TabIndex = 13; + this.groupBox5.TabStop = false; + this.groupBox5.Text = "Refresh rate:"; + // + // trackBar1 + // + this.trackBar1.BackColor = System.Drawing.Color.White; + this.trackBar1.Location = new System.Drawing.Point(0, 16); + this.trackBar1.Margin = new System.Windows.Forms.Padding(2); + this.trackBar1.Maximum = 300; + this.trackBar1.Minimum = 5; + this.trackBar1.Name = "trackBar1"; + this.trackBar1.Size = new System.Drawing.Size(159, 45); + this.trackBar1.TabIndex = 8; + this.trackBar1.Value = 250; + this.trackBar1.Scroll += new System.EventHandler(this.trackBar1_Scroll); + // + // tableLayoutPanel12 + // + this.tableLayoutPanel12.ColumnCount = 5; + this.tableLayoutPanel12.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel12.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel12.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel12.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel12.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 20F)); + this.tableLayoutPanel12.Controls.Add(this.Graph1, 0, 0); + this.tableLayoutPanel12.Controls.Add(this.Graph2, 1, 0); + this.tableLayoutPanel12.Controls.Add(this.Graph4, 3, 0); + this.tableLayoutPanel12.Controls.Add(this.Gstart, 4, 0); + this.tableLayoutPanel12.Controls.Add(this.Graph3, 2, 0); + this.tableLayoutPanel12.Dock = System.Windows.Forms.DockStyle.Bottom; + this.tableLayoutPanel12.Location = new System.Drawing.Point(58, 321); + this.tableLayoutPanel12.Margin = new System.Windows.Forms.Padding(2); + this.tableLayoutPanel12.Name = "tableLayoutPanel12"; + this.tableLayoutPanel12.RowCount = 1; + this.tableLayoutPanel12.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel12.Size = new System.Drawing.Size(500, 32); + this.tableLayoutPanel12.TabIndex = 18; + // + // timer_2 + // + this.timer_2.Interval = 250; + this.timer_2.Tick += new System.EventHandler(this.timer_2_Tick); + // + // timer_3 + // + this.timer_3.Enabled = true; + this.timer_3.Interval = 1000; + this.timer_3.Tick += new System.EventHandler(this.timer_3_Tick); + // + // timer_4 + // + this.timer_4.Interval = 200; + this.timer_4.Tick += new System.EventHandler(this.timer_4_Tick); + // + // timer_5 + // + this.timer_5.Interval = 5000; + // + // timer_6 + // + this.timer_6.Interval = 1000; + this.timer_6.Tick += new System.EventHandler(this.timer_6_Tick); + // + // timer_0 + // + this.timer_0.Interval = 50; + this.timer_0.Tick += new System.EventHandler(this.timer_0_Tick); + // + // frmOBD2Scan + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(568, 381); + this.Controls.Add(this.tabControl1); + this.Margin = new System.Windows.Forms.Padding(2); + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "frmOBD2Scan"; + this.ShowIcon = false; + this.Text = "Honda OBD2 Scan Tools"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmOBD2Scan_FormClosing); + this.Load += new System.EventHandler(this.frmOBD2Scan_Load); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tableLayoutPanel1.ResumeLayout(false); + this.gbConnection.ResumeLayout(false); + this.gbConnection.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.tabPage2.ResumeLayout(false); + this.tableLayoutPanel2.ResumeLayout(false); + this.tableLayoutPanel2.PerformLayout(); + this.groupBox4.ResumeLayout(false); + this.tableLayoutPanel7.ResumeLayout(false); + this.tabPage3.ResumeLayout(false); + this.tabPage7.ResumeLayout(false); + this.tabPage5.ResumeLayout(false); + this.tableLayoutPanel6.ResumeLayout(false); + this.groupBox2.ResumeLayout(false); + this.groupBox2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView_0)).EndInit(); + this.tabPage6.ResumeLayout(false); + this.tableLayoutPanel5.ResumeLayout(false); + this.tableLayoutPanel5.PerformLayout(); + this.tabPage4.ResumeLayout(false); + this.tableLayoutPanel4.ResumeLayout(false); + this.gbStatus.ResumeLayout(false); + this.groupBox5.ResumeLayout(false); + this.groupBox5.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.trackBar1)).EndInit(); + this.tableLayoutPanel12.ResumeLayout(false); + this.ResumeLayout(false); + + } + + private void listBoxCEL_SelectedIndexChanged(object sender, EventArgs e) + { + try + { + this.txtDTCD.Text = this.method_36(this.listBoxCEL.SelectedItem.ToString()); + if (this.txtDTCD.Text == "Unknown Code") + { + this.listBoxCEL.Items.Remove(this.listBoxCEL.SelectedItem); + this.txtDTCD.Text = "No Codes"; + } + } + catch + { + } + } + + private void listBoxPIDs_KeyDown(object sender, KeyEventArgs e) + { + } + + private void listBoxPIDs_MouseDoubleClick(object sender, MouseEventArgs e) + { + this.method_26(); + } + + private void listViewLive_KeyDown(object sender, KeyEventArgs e) + { + if ((e.KeyCode == Keys.Enter) || (e.KeyCode == Keys.Enter)) + { + this.method_20(); + } + } + + private void listViewLive_MouseDoubleClick(object sender, MouseEventArgs e) + { + this.method_27(); + } + + private void livegraph1_DoubleClick(object sender, EventArgs e) + { + this.method_15(this.Graph1.Text, 1); + } + + private void livegraph2_DoubleClick(object sender, EventArgs e) + { + this.method_15(this.Graph2.Text, 2); + } + + private void livegraph3_DoubleClick(object sender, EventArgs e) + { + this.method_15(this.Graph3.Text, 3); + } + + private void livegraph4_DoubleClick(object sender, EventArgs e) + { + this.method_15(this.Graph4.Text, 4); + } + + private void method_0() + { + color_0 = this.GColour1.BackColor = color_0; + color_1 = this.GColour2.BackColor = color_1; + color_2 = this.GColourLF.BackColor = color_2; + color_3 = this.GColourL1.BackColor = color_3; + color_4 = this.GColourL2.BackColor = color_4; + color_5 = this.GColourL3.BackColor = color_5; + color_6 = this.GColourL4.BackColor = color_6; + } + + private void method_1() + { + this.livegraph1.GClass3_0.Color_1 = this.GColour1.BackColor; + this.livegraph1.GClass3_0.Color_0 = this.GColour2.BackColor; + this.livegraph2.GClass3_0.Color_1 = this.GColour1.BackColor; + this.livegraph2.GClass3_0.Color_0 = this.GColour2.BackColor; + this.livegraph3.GClass3_0.Color_1 = this.GColour1.BackColor; + this.livegraph3.GClass3_0.Color_0 = this.GColour2.BackColor; + this.livegraph4.GClass3_0.Color_1 = this.GColour1.BackColor; + this.livegraph4.GClass3_0.Color_0 = this.GColour2.BackColor; + this.livegraph1.GClass3_0.GClass4_3.Color_0 = this.GColourL1.BackColor; + this.livegraph2.GClass3_0.GClass4_3.Color_0 = this.GColourL2.BackColor; + this.livegraph3.GClass3_0.GClass4_3.Color_0 = this.GColourL3.BackColor; + this.livegraph4.GClass3_0.GClass4_3.Color_0 = this.GColourL4.BackColor; + color_0 = this.GColour1.BackColor; + color_1 = this.GColour2.BackColor; + color_2 = this.GColourLF.BackColor; + color_3 = this.GColourL1.BackColor; + color_4 = this.GColourL2.BackColor; + color_5 = this.GColourL3.BackColor; + color_6 = this.GColourL4.BackColor; + } + + private void method_10() + { + this.cbBaud.Visible = true; + this.cbPort.Visible = true; + this.label1.Visible = true; + this.descPort.Text = "Port Name"; + this.descRate.Text = "Baud Rate"; + } + + private void method_11() + { + this.cbBaud.Visible = false; + this.cbPort.Visible = false; + this.label1.Visible = false; + } + + public void method_12(string string_21) + { + try + { + string[] strArray = Regex.Split(string_21, "43"); + for (int i = 1; i < strArray.Length; i++) + { + this.method_16(strArray[i]); + } + } + catch + { + } + } + + public string method_13(string string_21, string string_22) => + Regex.Split(string_21, string_22)[1].Replace(" ", string.Empty).Replace(" ", string.Empty).Substring(0, 8).Replace("0", "0000").Replace("1", "0001").Replace("2", "0010").Replace("3", "0011").Replace("4", "0100").Replace("5", "0101").Replace("6", "0110").Replace("7", "0111").Replace("8", "1000").Replace("9", "1001").Replace("A", "1010").Replace("B", "1011").Replace("C", "1100").Replace("D", "1101").Replace("E", "1110").Replace("F", "1111"); + + public void method_14(string string_21, int int_194) + { + if (int_194 == 0) + { + try + { + string str = this.method_13(string_21, "41 00 "); + this.int_6 = int.Parse(str.Substring(0, 1)); + this.int_7 = int.Parse(str.Substring(1, 1)); + this.int_8 = int.Parse(str.Substring(2, 1)); + this.int_9 = int.Parse(str.Substring(3, 1)); + this.int_10 = int.Parse(str.Substring(4, 1)); + this.int_11 = int.Parse(str.Substring(5, 1)); + this.int_12 = int.Parse(str.Substring(6, 1)); + this.int_13 = int.Parse(str.Substring(7, 1)); + this.int_14 = int.Parse(str.Substring(8, 1)); + this.int_15 = int.Parse(str.Substring(9, 1)); + this.int_16 = int.Parse(str.Substring(10, 1)); + this.int_17 = int.Parse(str.Substring(11, 1)); + this.int_18 = int.Parse(str.Substring(12, 1)); + this.int_19 = int.Parse(str.Substring(13, 1)); + this.int_20 = int.Parse(str.Substring(14, 1)); + this.int_21 = int.Parse(str.Substring(15, 1)); + this.int_22 = int.Parse(str.Substring(0x10, 1)); + this.int_23 = int.Parse(str.Substring(0x11, 1)); + this.int_24 = int.Parse(str.Substring(0x12, 1)); + this.int_25 = int.Parse(str.Substring(0x13, 1)); + this.int_26 = int.Parse(str.Substring(20, 1)); + this.int_27 = int.Parse(str.Substring(0x15, 1)); + this.int_28 = int.Parse(str.Substring(0x16, 1)); + this.int_29 = int.Parse(str.Substring(0x17, 1)); + this.int_30 = int.Parse(str.Substring(0x18, 1)); + this.int_31 = int.Parse(str.Substring(0x19, 1)); + this.int_32 = int.Parse(str.Substring(0x1a, 1)); + this.int_33 = int.Parse(str.Substring(0x1b, 1)); + this.int_34 = int.Parse(str.Substring(0x1c, 1)); + this.int_35 = int.Parse(str.Substring(0x1d, 1)); + this.int_36 = int.Parse(str.Substring(30, 1)); + } + catch + { + } + } + if (int_194 == 1) + { + try + { + string str2 = this.method_13(string_21, "41 20 "); + this.int_38 = int.Parse(str2.Substring(0, 1)); + this.int_39 = int.Parse(str2.Substring(1, 1)); + this.int_40 = int.Parse(str2.Substring(2, 1)); + this.int_41 = int.Parse(str2.Substring(3, 1)); + this.int_42 = int.Parse(str2.Substring(4, 1)); + this.int_43 = int.Parse(str2.Substring(5, 1)); + this.int_44 = int.Parse(str2.Substring(6, 1)); + this.int_45 = int.Parse(str2.Substring(7, 1)); + this.int_46 = int.Parse(str2.Substring(8, 1)); + this.int_47 = int.Parse(str2.Substring(9, 1)); + this.int_48 = int.Parse(str2.Substring(10, 1)); + this.int_49 = int.Parse(str2.Substring(11, 1)); + this.int_50 = int.Parse(str2.Substring(12, 1)); + this.int_51 = int.Parse(str2.Substring(13, 1)); + this.int_52 = int.Parse(str2.Substring(14, 1)); + this.int_53 = int.Parse(str2.Substring(15, 1)); + this.int_54 = int.Parse(str2.Substring(0x10, 1)); + this.int_55 = int.Parse(str2.Substring(0x11, 1)); + this.int_56 = int.Parse(str2.Substring(0x12, 1)); + this.int_57 = int.Parse(str2.Substring(0x13, 1)); + this.int_58 = int.Parse(str2.Substring(20, 1)); + this.int_59 = int.Parse(str2.Substring(0x15, 1)); + this.int_60 = int.Parse(str2.Substring(0x16, 1)); + this.int_61 = int.Parse(str2.Substring(0x17, 1)); + this.int_62 = int.Parse(str2.Substring(0x18, 1)); + this.int_63 = int.Parse(str2.Substring(0x19, 1)); + this.int_64 = int.Parse(str2.Substring(0x1a, 1)); + this.int_65 = int.Parse(str2.Substring(0x1b, 1)); + this.int_66 = int.Parse(str2.Substring(0x1c, 1)); + this.int_67 = int.Parse(str2.Substring(0x1d, 1)); + this.int_68 = int.Parse(str2.Substring(30, 1)); + } + catch + { + } + } + if (int_194 == 2) + { + try + { + string str3 = this.method_13(string_21, "41 40 "); + this.int_70 = int.Parse(str3.Substring(0, 1)); + this.int_71 = int.Parse(str3.Substring(1, 1)); + this.int_72 = int.Parse(str3.Substring(2, 1)); + this.int_73 = int.Parse(str3.Substring(3, 1)); + this.int_74 = int.Parse(str3.Substring(4, 1)); + this.int_75 = int.Parse(str3.Substring(5, 1)); + this.int_76 = int.Parse(str3.Substring(6, 1)); + this.int_77 = int.Parse(str3.Substring(7, 1)); + this.int_78 = int.Parse(str3.Substring(8, 1)); + this.int_79 = int.Parse(str3.Substring(9, 1)); + this.int_80 = int.Parse(str3.Substring(10, 1)); + this.int_81 = int.Parse(str3.Substring(11, 1)); + this.int_82 = int.Parse(str3.Substring(12, 1)); + this.int_83 = int.Parse(str3.Substring(13, 1)); + this.int_84 = int.Parse(str3.Substring(14, 1)); + this.int_85 = int.Parse(str3.Substring(15, 1)); + this.int_86 = int.Parse(str3.Substring(0x10, 1)); + this.int_87 = int.Parse(str3.Substring(0x11, 1)); + this.int_88 = int.Parse(str3.Substring(0x12, 1)); + this.int_89 = int.Parse(str3.Substring(0x13, 1)); + this.int_90 = int.Parse(str3.Substring(20, 1)); + this.int_91 = int.Parse(str3.Substring(0x15, 1)); + this.int_92 = int.Parse(str3.Substring(0x16, 1)); + this.int_93 = int.Parse(str3.Substring(0x17, 1)); + this.int_94 = int.Parse(str3.Substring(0x18, 1)); + this.int_95 = int.Parse(str3.Substring(0x19, 1)); + this.int_96 = int.Parse(str3.Substring(0x1a, 1)); + this.int_97 = int.Parse(str3.Substring(0x1b, 1)); + this.int_98 = int.Parse(str3.Substring(0x1c, 1)); + this.int_99 = int.Parse(str3.Substring(0x1d, 1)); + this.int_100 = int.Parse(str3.Substring(30, 1)); + } + catch + { + } + } + if (int_194 == 3) + { + try + { + string str4 = this.method_13(string_21, "41 60 "); + this.int_102 = int.Parse(str4.Substring(0, 1)); + this.int_103 = int.Parse(str4.Substring(1, 1)); + this.int_104 = int.Parse(str4.Substring(2, 1)); + this.int_105 = int.Parse(str4.Substring(3, 1)); + this.int_106 = int.Parse(str4.Substring(4, 1)); + this.int_107 = int.Parse(str4.Substring(5, 1)); + this.int_108 = int.Parse(str4.Substring(6, 1)); + this.int_109 = int.Parse(str4.Substring(7, 1)); + this.int_110 = int.Parse(str4.Substring(8, 1)); + this.int_111 = int.Parse(str4.Substring(9, 1)); + this.int_112 = int.Parse(str4.Substring(10, 1)); + this.int_113 = int.Parse(str4.Substring(11, 1)); + this.int_114 = int.Parse(str4.Substring(12, 1)); + this.int_115 = int.Parse(str4.Substring(13, 1)); + this.int_116 = int.Parse(str4.Substring(14, 1)); + this.int_117 = int.Parse(str4.Substring(15, 1)); + this.int_118 = int.Parse(str4.Substring(0x10, 1)); + this.int_119 = int.Parse(str4.Substring(0x11, 1)); + this.int_120 = int.Parse(str4.Substring(0x12, 1)); + this.int_121 = int.Parse(str4.Substring(0x13, 1)); + this.int_122 = int.Parse(str4.Substring(20, 1)); + this.int_123 = int.Parse(str4.Substring(0x15, 1)); + this.int_124 = int.Parse(str4.Substring(0x16, 1)); + this.int_125 = int.Parse(str4.Substring(0x17, 1)); + this.int_126 = int.Parse(str4.Substring(0x18, 1)); + this.int_127 = int.Parse(str4.Substring(0x19, 1)); + this.int_128 = int.Parse(str4.Substring(0x1a, 1)); + this.int_129 = int.Parse(str4.Substring(0x1b, 1)); + this.int_130 = int.Parse(str4.Substring(0x1c, 1)); + this.int_131 = int.Parse(str4.Substring(0x1d, 1)); + this.int_132 = int.Parse(str4.Substring(30, 1)); + } + catch + { + } + } + if (int_194 == 4) + { + try + { + string str5 = this.method_13(string_21, "41 80 "); + this.int_134 = int.Parse(str5.Substring(0, 1)); + this.int_135 = int.Parse(str5.Substring(1, 1)); + this.int_136 = int.Parse(str5.Substring(2, 1)); + this.int_137 = int.Parse(str5.Substring(3, 1)); + this.int_138 = int.Parse(str5.Substring(4, 1)); + this.int_139 = int.Parse(str5.Substring(5, 1)); + this.int_140 = int.Parse(str5.Substring(6, 1)); + this.int_141 = int.Parse(str5.Substring(7, 1)); + this.int_142 = int.Parse(str5.Substring(8, 1)); + this.int_143 = int.Parse(str5.Substring(9, 1)); + this.int_144 = int.Parse(str5.Substring(10, 1)); + this.int_145 = int.Parse(str5.Substring(11, 1)); + this.int_146 = int.Parse(str5.Substring(12, 1)); + this.int_147 = int.Parse(str5.Substring(13, 1)); + this.int_148 = int.Parse(str5.Substring(14, 1)); + this.int_149 = int.Parse(str5.Substring(15, 1)); + this.int_150 = int.Parse(str5.Substring(0x10, 1)); + this.int_151 = int.Parse(str5.Substring(0x11, 1)); + this.int_152 = int.Parse(str5.Substring(0x12, 1)); + this.int_153 = int.Parse(str5.Substring(0x13, 1)); + this.int_154 = int.Parse(str5.Substring(20, 1)); + this.int_155 = int.Parse(str5.Substring(0x15, 1)); + this.int_156 = int.Parse(str5.Substring(0x16, 1)); + this.int_157 = int.Parse(str5.Substring(0x17, 1)); + this.int_158 = int.Parse(str5.Substring(0x18, 1)); + this.int_159 = int.Parse(str5.Substring(0x19, 1)); + this.int_160 = int.Parse(str5.Substring(0x1a, 1)); + this.int_161 = int.Parse(str5.Substring(0x1b, 1)); + this.int_162 = int.Parse(str5.Substring(0x1c, 1)); + this.int_163 = int.Parse(str5.Substring(0x1d, 1)); + this.int_164 = int.Parse(str5.Substring(30, 1)); + } + catch + { + } + } + if (int_194 == 5) + { + try + { + string str6 = this.method_13(string_21, "41 A0 "); + this.int_166 = int.Parse(str6.Substring(0, 1)); + this.int_167 = int.Parse(str6.Substring(1, 1)); + this.int_168 = int.Parse(str6.Substring(2, 1)); + this.int_169 = int.Parse(str6.Substring(3, 1)); + this.int_170 = int.Parse(str6.Substring(4, 1)); + this.int_171 = int.Parse(str6.Substring(5, 1)); + this.int_172 = int.Parse(str6.Substring(6, 1)); + this.int_173 = int.Parse(str6.Substring(7, 1)); + this.int_174 = int.Parse(str6.Substring(8, 1)); + this.int_175 = int.Parse(str6.Substring(9, 1)); + this.int_176 = int.Parse(str6.Substring(10, 1)); + this.int_177 = int.Parse(str6.Substring(11, 1)); + this.int_178 = int.Parse(str6.Substring(12, 1)); + this.int_179 = int.Parse(str6.Substring(13, 1)); + this.int_180 = int.Parse(str6.Substring(14, 1)); + } + catch + { + } + } + } + + private void method_15(string string_21, int int_194) + { + if (this.timer_0.Enabled && (int_186 == 0)) + { + string_20 = string_21; + int_186 = int_194; + LineG eg1 = new LineG(); + eg1.StartPosition = FormStartPosition.Manual; + eg1.Location = new Point(base.Location.X, base.Location.Y); + eg1.Show(); + } + } + + private void method_16(string string_21) + { + char[] separator = new char[] { ' ' }; + string[] strArray = string_21.Split(separator); + string str = "NO DATA"; + string str2 = "NO DATA"; + string str3 = "NO DATA"; + try + { + str = "P" + strArray[1] + strArray[2]; + } + catch + { + str = "P0000"; + } + try + { + str2 = "P" + strArray[3] + strArray[4]; + } + catch + { + str2 = "P0000"; + } + try + { + str3 = "P" + strArray[5] + strArray[6]; + } + catch + { + str3 = "P0000"; + } + if (!this.listBoxCEL.Items.Contains(str) && !str.Contains("P0000")) + { + this.listBoxCEL.Items.Add(str); + } + if (!this.listBoxCEL.Items.Contains(str2) && !str2.Contains("P0000")) + { + this.listBoxCEL.Items.Add(str2); + } + if (!this.listBoxCEL.Items.Contains(str3) && !str3.Contains("P0000")) + { + this.listBoxCEL.Items.Add(str3); + } + } + + private void method_17() + { + this.bool_5 = true; + this.int_5 = 0; + this.int_37 = 0; + this.int_69 = 0; + this.int_101 = 0; + this.int_133 = 0; + this.int_165 = 0; + this.int_181 = 0; + this.int_182 = 0; + this.int_6 = 0; + this.int_7 = 0; + this.int_8 = 0; + this.int_9 = 0; + this.int_10 = 0; + this.int_11 = 0; + this.int_12 = 0; + this.int_13 = 0; + this.int_14 = 0; + this.int_15 = 0; + this.int_16 = 0; + this.int_17 = 0; + this.int_18 = 0; + this.int_19 = 0; + this.int_20 = 0; + this.int_21 = 0; + this.int_22 = 0; + this.int_23 = 0; + this.int_24 = 0; + this.int_25 = 0; + this.int_26 = 0; + this.int_27 = 0; + this.int_28 = 0; + this.int_29 = 0; + this.int_30 = 0; + this.int_31 = 0; + this.int_32 = 0; + this.int_33 = 0; + this.int_34 = 0; + this.int_35 = 0; + this.int_36 = 0; + this.int_38 = 0; + this.int_39 = 0; + this.int_40 = 0; + this.int_41 = 0; + this.int_42 = 0; + this.int_43 = 0; + this.int_44 = 0; + this.int_45 = 0; + this.int_46 = 0; + this.int_47 = 0; + this.int_48 = 0; + this.int_49 = 0; + this.int_50 = 0; + this.int_51 = 0; + this.int_52 = 0; + this.int_53 = 0; + this.int_54 = 0; + this.int_55 = 0; + this.int_56 = 0; + this.int_57 = 0; + this.int_58 = 0; + this.int_59 = 0; + this.int_60 = 0; + this.int_61 = 0; + this.int_62 = 0; + this.int_63 = 0; + this.int_64 = 0; + this.int_65 = 0; + this.int_66 = 0; + this.int_67 = 0; + this.int_68 = 0; + this.int_70 = 0; + this.int_71 = 0; + this.int_72 = 0; + this.int_73 = 0; + this.int_74 = 0; + this.int_75 = 0; + this.int_76 = 0; + this.int_77 = 0; + this.int_78 = 0; + this.int_79 = 0; + this.int_80 = 0; + this.int_81 = 0; + this.int_82 = 0; + this.int_83 = 0; + this.int_84 = 0; + this.int_85 = 0; + this.int_86 = 0; + this.int_87 = 0; + this.int_88 = 0; + this.int_89 = 0; + this.int_90 = 0; + this.int_91 = 0; + this.int_92 = 0; + this.int_93 = 0; + this.int_94 = 0; + this.int_95 = 0; + this.int_96 = 0; + this.int_97 = 0; + this.int_98 = 0; + this.int_99 = 0; + this.int_100 = 0; + this.int_102 = 0; + this.int_103 = 0; + this.int_104 = 0; + this.int_105 = 0; + this.int_106 = 0; + this.int_107 = 0; + this.int_108 = 0; + this.int_109 = 0; + this.int_110 = 0; + this.int_111 = 0; + this.int_112 = 0; + this.int_113 = 0; + this.int_114 = 0; + this.int_115 = 0; + this.int_116 = 0; + this.int_117 = 0; + this.int_118 = 0; + this.int_119 = 0; + this.int_120 = 0; + this.int_121 = 0; + this.int_122 = 0; + this.int_123 = 0; + this.int_124 = 0; + this.int_125 = 0; + this.int_126 = 0; + this.int_127 = 0; + this.int_128 = 0; + this.int_129 = 0; + this.int_130 = 0; + this.int_131 = 0; + this.int_132 = 0; + this.int_134 = 0; + this.int_135 = 0; + this.int_136 = 0; + this.int_137 = 0; + this.int_138 = 0; + this.int_139 = 0; + this.int_140 = 0; + this.int_141 = 0; + this.int_142 = 0; + this.int_143 = 0; + this.int_144 = 0; + this.int_145 = 0; + this.int_146 = 0; + this.int_147 = 0; + this.int_148 = 0; + this.int_149 = 0; + this.int_150 = 0; + this.int_151 = 0; + this.int_152 = 0; + this.int_153 = 0; + this.int_154 = 0; + this.int_155 = 0; + this.int_156 = 0; + this.int_157 = 0; + this.int_158 = 0; + this.int_159 = 0; + this.int_160 = 0; + this.int_161 = 0; + this.int_162 = 0; + this.int_163 = 0; + this.int_164 = 0; + this.int_166 = 0; + this.int_167 = 0; + this.int_168 = 0; + this.int_169 = 0; + this.int_170 = 0; + this.int_171 = 0; + this.int_172 = 0; + this.int_173 = 0; + this.int_174 = 0; + this.int_175 = 0; + this.int_176 = 0; + this.int_177 = 0; + this.int_178 = 0; + this.int_179 = 0; + this.int_180 = 0; + this.int_181 = 0; + this.int_182 = 0; + } + + private void method_18() + { + if (this.int_2 == 0) + { + this.cbBaud.Enabled = true; + this.cbPort.Enabled = true; + this.button1.Text = "Connect"; + this.cbJ2534.Visible = true; + this.Text = "OBD2 Scan Tool: Disconnected: "; + this.timer_6.Enabled = false; + this.timer_4.Enabled = false; + this.method_17(); + } + else if (this.int_2 == 1) + { + this.button1.Text = "Disconnect"; + this.gbStatus.Visible = true; + this.cbJ2534.Visible = false; + this.Text = "OBD2 Scan Tool: Connected: "; + } + else + { + this.button1.Text = "Connecting"; + this.gbStatus.Visible = true; + this.Text = "OBD2 Scan Tool: Connecting...."; + this.method_17(); + } + } + + private void method_19(string string_21) + { + if (!this.bool_8) + { + this.string_6 = string_21 + "\r"; + if (string_21 != null) + { + if (!(string_21 == "03")) + { + if (string_21 == "04") + { + this.string_6 = "CLEARDTC"; + } + } + else + { + this.string_6 = "CEL"; + } + } + try + { + this.serialPort_0.Write(string_21 + "\r"); + return; + } + catch (Exception) + { + return; + } + } + try + { + byte[] array = frmOBD2Scan.smethod_1(string_21); + Channel channel = this.channel_0; + byte[] array2 = new byte[] + { + 0, + 0, + 7, + 224, + 2, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + }; + array2[5] = array[0]; + array2[6] = array[1]; + channel.SendMessage(array2); + } + catch + { + } + } + + private void method_2() + { + this.Graph1.Items.Clear(); + this.Graph2.Items.Clear(); + this.Graph3.Items.Clear(); + this.Graph4.Items.Clear(); + this.comboV.Items.Clear(); + try + { + if (bool_10) + { + for (int i = 0; i < this.listViewLive.Items.Count; i++) + { + this.Graph1.Items.Add(this.listViewLive.Items[i].SubItems[0].Text); + this.Graph2.Items.Add(this.listViewLive.Items[i].SubItems[0].Text); + this.Graph3.Items.Add(this.listViewLive.Items[i].SubItems[0].Text); + this.Graph4.Items.Add(this.listViewLive.Items[i].SubItems[0].Text); + this.comboV.Items.Add(this.listViewLive.Items[i].SubItems[0].Text); + } + } + else + { + for (int i = 0; i < this.listViewLive.Items.Count; i++) + { + this.Graph1.Items.Add(this.listViewLive.Items[i].SubItems[1].Text); + this.Graph2.Items.Add(this.listViewLive.Items[i].SubItems[1].Text); + this.Graph3.Items.Add(this.listViewLive.Items[i].SubItems[1].Text); + this.Graph4.Items.Add(this.listViewLive.Items[i].SubItems[1].Text); + this.comboV.Items.Add(this.listViewLive.Items[i].SubItems[1].Text); + } + } + } + catch + { + } + } + + private void method_20() + { + int num = 0; + foreach (ListViewItem item1 in this.listViewLive.Items) + { + this.listViewLive.Items[num].SubItems[3].Text = "000"; + this.listViewLive.Items[num].SubItems[4].Text = "000"; + num++; + } + } + + private void method_21(string string_21) + { + this.lvLog.Items.Add(new ListViewItem(string_21, 2)); + } + + private void method_22(string string_21) + { + this.lvLog.Items.Add(new ListViewItem(string_21, 1)); + } + + private void method_23(string string_21) + { + this.lvLog.Items.Add(new ListViewItem(string_21, 0)); + } + + private void method_24(string string_21, int int_194) + { + this.lvLog.Items.Add(new ListViewItem(string_21, int_194)); + } + + private void method_25(string string_21) + { + this.lvLog.Items.Add(new ListViewItem(string_21, 3)); + } + + private void method_26() + { + if (!this.timer_4.Enabled) + { + int num = 0; + foreach (object obj in this.listViewLive.Items) + { + ListViewItem listViewItem = (ListViewItem)obj; + StringBuilder stringBuilder = new StringBuilder(this.listViewLive.Items[num].SubItems[1].Text); + string value = stringBuilder.Replace("BTDC", "Timing Advance").Replace("Load%", "Engine Load").Replace("STFT", "Short Term Fuel").ToString(); + if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem).Contains(value)) + { + return; + } + num++; + } + if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "MAP") + { + string[] items = new string[] + { + "MAP", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("0B").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "RPM") + { + string[] items2 = new string[] + { + "RPM", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("0C").SubItems.AddRange(items2); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "TPS") + { + string[] items3 = new string[] + { + "TPS", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("11").SubItems.AddRange(items3); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Speed") + { + string[] items4 = new string[] + { + "Speed", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("0D").SubItems.AddRange(items4); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "O2") + { + string[] items5 = new string[] + { + "O2", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("14").SubItems.AddRange(items5); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "IAT") + { + string[] items6 = new string[] + { + "IAT", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("0F").SubItems.AddRange(items6); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "ECT") + { + string[] items7 = new string[] + { + "ECT", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("05").SubItems.AddRange(items7); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Short Term Fuel Trim") + { + string[] items8 = new string[] + { + "STFT", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("06").SubItems.AddRange(items8); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Timing Advance") + { + string[] items9 = new string[] + { + "BTDC", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("0E").SubItems.AddRange(items9); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Engine Load") + { + string[] items10 = new string[] + { + "Load%", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("04").SubItems.AddRange(items10); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Battery") + { + string[] items11 = new string[] + { + "Battery", + "000", + "000", + "000" + }; + this.listViewLive.Items.Add("9A").SubItems.AddRange(items11); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Fuel System Status") + { + this.bool_6 = true; + this.method_19("0103"); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Oxygen Sensors Present") + { + this.bool_6 = true; + this.method_19("0113"); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "OBD Compliance") + { + this.bool_6 = true; + this.method_19("011C"); + } + } + this.method_2(); + } + + private void method_27() + { + if (!this.timer_4.Enabled) + { + try + { + this.listViewLive.SelectedItems[0].Remove(); + } + catch + { + } + } + } + + private void method_28(object sender, EventArgs e) + { + this.method_27(); + } + + private void method_29() + { + this.timer_6.Enabled = true; + SAE.J2534.Message message = new SAE.J2534.Message(new byte[] { 0x18, 0xda, 0x10, 0xf1, 0x22, 0x26, 0x10 }, TxFlag.CAN_29BIT_ID | TxFlag.ISO15765_FRAME_PAD); + SAE.J2534.Message message2 = new SAE.J2534.Message(new byte[] { 0x18, 0xda, 0x10, 0xf1, 0x22, 0x26, 0x11 }, TxFlag.CAN_29BIT_ID | TxFlag.ISO15765_FRAME_PAD); + SAE.J2534.Message message3 = new SAE.J2534.Message(new byte[] { 0x18, 0xda, 0x10, 0xf1, 0x22, 0x26, 0x12 }, TxFlag.CAN_29BIT_ID | TxFlag.ISO15765_FRAME_PAD); + SAE.J2534.Message message4 = new SAE.J2534.Message(new byte[] { 0x18, 0xda, 0x10, 0xf1, 0x22, 0x26, 0x62 }, TxFlag.CAN_29BIT_ID | TxFlag.ISO15765_FRAME_PAD); + SAE.J2534.Message message5 = new SAE.J2534.Message(new byte[] { 0x18, 0xda, 0x10, 0xf1, 0x22, 0x26, 0x68 }, TxFlag.CAN_29BIT_ID | TxFlag.ISO15765_FRAME_PAD); + if (!bool_10) + { + while (bool_11) + { + GetMessageResults messages = this.channel_0.GetMessages(2, 5); + if (!messages.Result.IsOK()) + { + Thread.Sleep(5); + continue; + } + foreach (SAE.J2534.Message message6 in messages.Messages) + { + this.int_0++; + string str = smethod_2(message6.Data); + this.method_32(str); + this.method_35(str); + } + } + } + else + { + using (API api = APIFactory.GetAPI(this.string_19)) + { + using (Device device = api.GetDevice("")) + { + using (Channel channel = device.GetChannel(Protocol.ISO15765, Baud.CAN, ConnectFlag.CAN_29BIT_ID, false)) + { + MessageFilter filter = new MessageFilter { + FilterType = Filter.FLOW_CONTROL_FILTER, + Mask = new byte[] { + 0xff, + 0xff, + 0xff, + 0xff + }, + Pattern = new byte[] { + 0x18, + 0xda, + 0xf1, + 0x10 + }, + FlowControl = new byte[] { + 0x18, + 0xda, + 0x10, + 0xf1 + } + }; + channel.StartMsgFilter(filter); + SConfig[] sConfig = new SConfig[] { new SConfig(Parameter.LOOP_BACK, 1), new SConfig(Parameter.DATA_RATE, 0x7a120) }; + channel.SetConfig(sConfig); + while (bool_11) + { + Application.DoEvents(); + try + { + channel.SendMessage(message); + if (!channel.IsDisposed) + { + GetMessageResults messages = channel.GetMessages(5, 50); + if (messages.Result.IsOK()) + { + foreach (SAE.J2534.Message message7 in messages.Messages) + { + string str2 = smethod_2(message7.Data).TrimEnd(new char[0]); + if (str2.Length > 0x18) + { + this.int_0++; + this.method_44(str2); + } + } + } + channel.SendMessage(message2); + if (!channel.IsDisposed) + { + messages = channel.GetMessages(5, 50); + if (messages.Result.IsOK()) + { + foreach (SAE.J2534.Message message8 in messages.Messages) + { + string str3 = smethod_2(message8.Data).TrimEnd(new char[0]); + if (str3.Length > 0x18) + { + this.int_0++; + this.method_44(str3); + } + } + } + channel.SendMessage(message3); + if (!channel.IsDisposed) + { + messages = channel.GetMessages(5, 50); + if (messages.Result.IsOK()) + { + foreach (SAE.J2534.Message message9 in messages.Messages) + { + string str4 = smethod_2(message9.Data).TrimEnd(new char[0]); + if (str4.Length > 0x18) + { + this.int_0++; + this.method_44(str4); + } + } + } + channel.SendMessage(message4); + if (!channel.IsDisposed) + { + messages = channel.GetMessages(5, 50); + if (messages.Result.IsOK()) + { + foreach (SAE.J2534.Message message10 in messages.Messages) + { + string str5 = smethod_2(message10.Data).TrimEnd(new char[0]); + if (str5.Length > 0x18) + { + this.int_0++; + this.method_44(str5); + } + } + } + channel.SendMessage(message5); + if (!channel.IsDisposed) + { + messages = channel.GetMessages(5, 50); + if (messages.Result.IsOK()) + { + foreach (SAE.J2534.Message message11 in messages.Messages) + { + string str6 = smethod_2(message11.Data).TrimEnd(new char[0]); + if (str6.Length > 0x18) + { + this.int_0++; + this.method_44(str6); + } + } + } + continue; + } + } + } + } + } + } + catch (Exception) + { + continue; + } + break; + } + } + } + } + } + } + + private void method_3() + { + int num = 0; + foreach (ListViewItem item1 in this.listViewLive.Items) + { + string text = this.listViewLive.Items[num].SubItems[0].Text; + if (text != null) + { + uint num2 = ClassDecryptString.DecryptThisString(text); + if (num2 <= 0x1ded6c01) + { + if (num2 <= 0x1bed68db) + { + if (num2 != 0x17eb23f8) + { + if ((num2 == 0x1bed68db) && (text == "06")) + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_17; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (text == "14") + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_12; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (num2 == 0x1ceb2bd7) + { + if (text == "11") + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_9; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (num2 != 0x1ced6a6e) + { + if ((num2 == 0x1ded6c01) && (text == "04")) + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_16; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (text == "05") + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_14; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (num2 <= 0x6cede85e) + { + if (num2 != 0x6bede6cb) + { + if ((num2 == 0x6cede85e) && (text == "0E")) + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_15; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (text == "0F") + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_13; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (num2 == 0x6dede9f1) + { + if (text == "0D") + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_10; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (num2 != 0x6eedeb84) + { + if ((num2 == 0x6feded17) && (text == "0B")) + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_7; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + else if (text == "0C") + { + try + { + this.listViewLive.Items[num].SubItems[2].Text = this.string_8; + if ((this.listViewLive.Items[num].SubItems[3].Text == "000") || (this.listViewLive.Items[num].SubItems[3].Text == "")) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) <= int.Parse(this.listViewLive.Items[num].SubItems[3].Text)) + { + this.listViewLive.Items[num].SubItems[3].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + if (int.Parse(this.listViewLive.Items[num].SubItems[2].Text) >= int.Parse(this.listViewLive.Items[num].SubItems[4].Text)) + { + this.listViewLive.Items[num].SubItems[4].Text = this.listViewLive.Items[num].SubItems[2].Text; + } + } + catch + { + } + } + } + num++; + } + } + + private void method_30() + { + while (this.serialPort_0.IsOpen) + { + while (this.serialPort_0.IsOpen && this.serialPort_0.BytesToRead > 0) + { + this.method_11(); + string text = Encoding.ASCII.GetChars(new byte[] + { + (byte)this.serialPort_0.ReadByte() + })[0].ToString(); + if (text == ">") + { + this.method_33(this.stringBuilder_0.ToString()); + this.stringBuilder_0.Clear(); + } + else + { + this.stringBuilder_0.Append(text); + } + string a = Regex.Replace(this.stringBuilder_0.ToString(), "\\t|\\n|\\r", ""); + if (this.stringBuilder_0.ToString().Length > 1) + { + if (!this.bool_5) + { + this.method_34(); + } + if (a == this.string_5) + { + this.int_0++; + this.method_22(this.stringBuilder_0.ToString()); + this.method_32(this.stringBuilder_0.ToString()); + this.method_35(this.stringBuilder_0.ToString()); + this.string_5 = ""; + } + else + { + this.string_5 = a; + } + } + } + Thread.Sleep(200); + } + } + + private void method_31() + { + string[] items = new string[] { "Battery", "000", "000", "000" }; + ListViewItem item = new ListViewItem(items, -1); + string[] textArray2 = new string[] { "RPM", "000", "000", "000" }; + ListViewItem item2 = new ListViewItem(textArray2, -1); + string[] textArray3 = new string[] { "RPM2", "000", "000", "000" }; + ListViewItem item3 = new ListViewItem(textArray3, -1); + string[] textArray4 = new string[] { "RPMRAW", "000", "000", "000" }; + ListViewItem item4 = new ListViewItem(textArray4, -1); + string[] textArray5 = new string[] { "AFM", "000", "000", "000" }; + ListViewItem item5 = new ListViewItem(textArray5, -1); + string[] textArray6 = new string[] { "Map", "000", "000", "000" }; + ListViewItem item6 = new ListViewItem(textArray6, -1); + string[] textArray7 = new string[] { "Ignition Timing", "000", "000", "000" }; + ListViewItem item7 = new ListViewItem(textArray7, -1); + string[] textArray8 = new string[] { "Pulsewidth", "000", "000", "000" }; + ListViewItem item8 = new ListViewItem(textArray8, -1); + string[] textArray9 = new string[] { "IAT", "000", "000", "000" }; + ListViewItem item9 = new ListViewItem(textArray9, -1); + string[] textArray10 = new string[] { "ECT", "000", "000", "000" }; + ListViewItem item10 = new ListViewItem(textArray10, -1); + string[] textArray11 = new string[] { "VTS", "000", "000", "000" }; + ListViewItem item11 = new ListViewItem(textArray11, -1); + string[] textArray12 = new string[] { "Wideband", "000", "000", "000" }; + ListViewItem item12 = new ListViewItem(textArray12, -1); + string[] textArray13 = new string[] { "Target AFR", "000", "000", "000" }; + ListViewItem item13 = new ListViewItem(textArray13, -1); + string[] textArray14 = new string[] { "STFT", "000", "000", "000" }; + ListViewItem item14 = new ListViewItem(textArray14, -1); + string[] textArray15 = new string[] { "LTFT", "000", "000", "000" }; + ListViewItem item15 = new ListViewItem(textArray15, -1); + string[] textArray16 = new string[] { "TPlate", "000", "000", "000" }; + ListViewItem item16 = new ListViewItem(textArray16, -1); + string[] textArray17 = new string[] { "VSS", "000", "000", "000" }; + ListViewItem item17 = new ListViewItem(textArray17, -1); + string[] textArray18 = new string[] { "Target Cam Angle", "000", "000", "000" }; + ListViewItem item18 = new ListViewItem(textArray18, -1); + string[] textArray19 = new string[] { "Cam Angle", "000", "000", "000" }; + ListViewItem item19 = new ListViewItem(textArray19, -1); + string[] textArray20 = new string[] { "Knock 1", "000", "000", "000" }; + ListViewItem item20 = new ListViewItem(textArray20, -1); + string[] textArray21 = new string[] { "Knock 2", "000", "000", "000" }; + ListViewItem item21 = new ListViewItem(textArray21, -1); + string[] textArray22 = new string[] { "Knock 3", "000", "000", "000" }; + ListViewItem item22 = new ListViewItem(textArray22, -1); + string[] textArray23 = new string[] { "Knock 4", "000", "000", "000" }; + ListViewItem item23 = new ListViewItem(textArray23, -1); + string[] textArray24 = new string[] { "Knock Sum", "000", "000", "000" }; + ListViewItem item24 = new ListViewItem(textArray24, -1); + this.listViewLive.Items.Add(item); + this.listViewLive.Items.Add(item2); + this.listViewLive.Items.Add(item5); + this.listViewLive.Items.Add(item6); + this.listViewLive.Items.Add(item7); + this.listViewLive.Items.Add(item8); + this.listViewLive.Items.Add(item9); + this.listViewLive.Items.Add(item10); + this.listViewLive.Items.Add(item11); + this.listViewLive.Items.Add(item12); + this.listViewLive.Items.Add(item13); + this.listViewLive.Items.Add(item14); + this.listViewLive.Items.Add(item15); + this.listViewLive.Items.Add(item16); + this.listViewLive.Items.Add(item17); + this.listViewLive.Items.Add(item18); + this.listViewLive.Items.Add(item19); + this.listViewLive.Items.Add(item20); + this.listViewLive.Items.Add(item21); + this.listViewLive.Items.Add(item22); + this.listViewLive.Items.Add(item23); + this.listViewLive.Items.Add(item24); + this.listViewLive.Items.Add(item3); + this.listViewLive.Items.Add(item4); + } + + public void method_32(string string_21) + { + string_21 = string_21.ToUpper(); + try + { + if (string_21.ToString().Contains("ELM327")) + { + this.string_6 = "ELM"; + } + if (string_21.ToString().Contains("V")) + { + this.string_11 = string_21.Replace("V", "").ToString(); + this.string_11 = float.Parse(Regex.Match(this.string_11, @"\d+").Value).ToString(); + } + if (string_21.ToString().Contains("41 0B")) + { + this.string_6 = "MAP"; + } + if (string_21.ToString().Contains("41 0C")) + { + this.string_6 = "RPM"; + } + if (string_21.ToString().Contains("41 11")) + { + this.string_6 = "TPS"; + } + if (string_21.ToString().Contains("41 0D")) + { + this.string_6 = "Speed"; + } + if (string_21.ToString().Contains("41 14")) + { + this.string_6 = "O2"; + } + if (string_21.ToString().Contains("41 05")) + { + this.string_6 = "ECT"; + } + if (string_21.ToString().Contains("41 0F")) + { + this.string_6 = "IAT"; + } + if (string_21.ToString().Contains("41 01")) + { + this.string_6 = "CEL"; + } + if (string_21.ToString().Contains("41 0E")) + { + this.string_6 = "TA"; + } + if (string_21.ToString().Contains("41 04")) + { + this.string_6 = "EL"; + } + if (string_21.ToString().Contains("41 03")) + { + this.string_6 = "FSS"; + } + if (string_21.ToString().Contains("41 13")) + { + this.string_6 = "OSP"; + } + if (string_21.ToString().Contains("41 1C")) + { + this.string_6 = "OC"; + } + if (string_21.ToString().Contains("41 06")) + { + this.string_6 = "FT"; + } + if (string_21.ToString().Contains("STOPPED")) + { + this.string_6 = "BUFFEROF"; + } + if (string_21.ToString().Contains("41 00")) + { + this.string_6 = "PIDLIST"; + } + if (string_21.ToString().Contains("41 20")) + { + this.string_6 = "PIDLIST2"; + } + if (string_21.ToString().Contains("41 40")) + { + this.string_6 = "PIDLIST4"; + } + if (string_21.ToString().Contains("41 60")) + { + this.string_6 = "PIDLIST6"; + } + if (string_21.ToString().Contains("41 80")) + { + this.string_6 = "PIDLIST8"; + } + if (string_21.ToString().Contains("41 A0")) + { + this.string_6 = "PIDLISTA"; + } + if (string_21.ToString().Contains("41 C0")) + { + this.string_6 = "PIDLISTC"; + } + if (string_21.ToString().Contains("41 E0")) + { + this.string_6 = "PIDLISTE"; + } + } + catch + { + } + } + + public void method_33(string string_21) + { + this.bool_5 = true; + this.int_3++; + if (this.int_3 == 1) + { + this.serialPort_0.Write("ATZ\r"); + } + else if (this.int_3 == 2) + { + if (string_21.ToString().Contains("ELM327")) + { + this.timer_5.Enabled = false; + this.serialPort_0.Write("ATE0\r"); + } + } + else if (this.int_3 == 3) + { + this.serialPort_0.Write("ATL0\r"); + } + else if (this.int_3 == 4) + { + this.serialPort_0.Write("ATH1\r"); + } + else if (this.int_3 == 5) + { + this.serialPort_0.Write("ATSP0\r"); + } + else if (this.int_3 == 6) + { + this.serialPort_0.Write("ATI\r"); + } + else if (this.int_3 == 7) + { + if (string_21.ToString().Contains("ELM327")) + { + this.method_21("Connected to " + string_21.ToString()); + this.serialPort_0.Write("AT@1\r"); + } + else + { + this.method_25("No compatible ELM327 device available on " + this.cbPort.Text); + this.method_9(); + } + } + else if (this.int_3 == 8) + { + this.method_21("Device Description: " + string_21.ToString()); + this.descPort.Text = "ECU: " + string_21.ToString(); + this.serialPort_0.Write("ATRV\r"); + } + else if (this.int_3 == 9) + { + this.method_21("Vehicle Voltage: " + string_21.ToString()); + this.descRate.Text = "Voltage: " + string_21.ToString(); + this.method_19("0100"); + } + else if (this.int_3 == 10) + { + if (string_21.ToString().Contains("UNABLE TO CONNECT")) + { + this.method_25("ECU not detected! Check OBD2 connection, or if vehicle is switched ON"); + this.method_9(); + } + else + { + this.method_21("ECU Ready for OBD actions"); + this.int_2 = 1; + this.method_18(); + this.serialPort_0.Write("ATDP\r"); + } + } + else if (this.int_3 == 11) + { + this.method_21("Communicating with ECU via " + string_21.ToString()); + this.Text = "Connected: Protocol " + smethod_0(string_21.ToString()); + this.serialPort_0.Write("0101\r"); + } + else if (this.int_3 == 12) + { + string str = string_21.ToString().Replace("\r", " ").Trim(); + char[] separator = new char[] { ' ' }; + string[] strArray = str.Split(separator); + if (strArray.Length != 8) + { + this.method_22("MIL Data could not be parsed"); + this.method_22("log: " + str); + } + else + { + byte num = byte.Parse(strArray[4], (NumberStyles) NumberStyles.HexNumber); + int num2 = num & 0x7f; + if ((num & 0x80) > 0) + { + this.method_22("MIL (Check Engine Light) is ON. Number of Errors: " + num2.ToString()); + } + else + { + this.method_23("MIL (Check Engine Light) is OFF"); + } + } + this.bool_5 = false; + this.method_19("0100"); + } + } + + public void method_34() + { + if (this.int_5 == 0) + { + this.int_5 = 1; + this.method_19("0100"); + } + else if (this.int_37 == 0) + { + this.int_37 = 1; + this.method_19("0120"); + } + else if (this.int_69 == 0) + { + this.int_69 = 1; + this.method_19("0140"); + } + else if (this.int_101 == 0) + { + this.int_101 = 1; + this.method_19("0160"); + } + else if (this.int_133 == 0) + { + this.int_133 = 1; + this.method_19("0180"); + } + else if (this.int_165 == 0) + { + this.int_165 = 1; + this.method_19("01A0"); + } + else if (this.int_181 == 0) + { + this.int_181 = 1; + this.method_19("01C0"); + } + else if (this.int_182 == 0) + { + this.int_182 = 1; + this.method_19("01E0"); + } + if (((this.int_5 == 1) && ((this.int_37 == 1) && ((this.int_69 == 1) && ((this.int_101 == 1) && ((this.int_133 == 1) && ((this.int_165 == 1) && (this.int_181 == 1))))))) && (this.int_182 == 1)) + { + this.bool_5 = true; + } + } + + public void method_35(string string_21) + { + string_21 = string_21.ToUpper(); + try + { + string text = this.string_6; + if (text != null) + { + uint num = ClassDecryptString.DecryptThisString(text); + if (num <= 2380580039U) + { + if (num <= 516690212U) + { + if (num <= 401953830U) + { + if (num != 145730807U) + { + if (num != 174817312U) + { + if (num == 401953830U) + { + if (text == "TA") + { + string[] array = Regex.Split(string_21.ToString(), "41 0E "); + this.string_15 = int.Parse(array[1].Substring(0, 2), NumberStyles.HexNumber).ToString(); + this.string_15 = (int.Parse(this.string_15) / 2 - 64).ToString(); + } + } + } + else if (text == "Speed") + { + string[] array2 = Regex.Split(string_21.ToString(), "41 0D "); + this.string_10 = array2[1].Substring(0, 2); + this.string_10 = Convert.ToInt32(this.string_10, 16).ToString(); + } + } + else if (text == "FSS") + { + string[] array3 = Regex.Split(string_21.ToString(), "41 03 "); + if (this.bool_6) + { + this.bool_6 = false; + string text2 = array3[1].Substring(0, 2); + if (text2 != null) + { + if (!(text2 == "01")) + { + if (!(text2 == "02")) + { + if (!(text2 == "04")) + { + if (!(text2 == "08")) + { + if (text2 == "16") + { + MessageBox.Show("Closed loop, using at least one oxygen sensor but there is a fault in the feedback system."); + } + } + else + { + MessageBox.Show("Open loop due to system failure."); + } + } + else + { + MessageBox.Show("Open loop due to engine load OR fuel cut due to deceleration."); + } + } + else + { + MessageBox.Show("Closed loop, using oxygen sensor feedback to determine fuel mix."); + } + } + else + { + MessageBox.Show("Open loop due to insufficient engine temperature."); + } + } + } + } + } + else if (num != 448213361U) + { + if (num != 484709092U) + { + if (num == 516690212U) + { + if (text == "EL") + { + string[] array4 = Regex.Split(string_21.ToString(), "41 04 "); + this.string_16 = int.Parse(array4[1].Substring(0, 2), NumberStyles.HexNumber).ToString(); + this.string_16 = ((double)float.Parse(this.string_16) / 2.55).ToString("0.##"); + } + } + } + else if (text == "O2") + { + string[] array5 = Regex.Split(string_21.ToString(), "41 14 "); + this.string_12 = int.Parse(array5[1].Substring(0, 2), NumberStyles.HexNumber).ToString(); + this.string_12 = ((double)float.Parse(this.string_12) / 200.0).ToString(); + } + } + else if (text == "IAT") + { + string[] array6 = Regex.Split(string_21.ToString(), "41 0F "); + this.string_13 = array6[1].Substring(0, 2); + this.string_13 = (Convert.ToInt32(this.string_13, 16) - 40).ToString(); + } + } + else + { + if (num <= 878530254U) + { + if (num != 609853201U) + { + if (num != 795761117U) + { + if (num != 878530254U) + { + goto IL_C78; + } + if (!(text == "TPS")) + { + goto IL_C78; + } + } + else if (!(text == "TPlate")) + { + goto IL_C78; + } + string[] array7 = Regex.Split(string_21.ToString(), "41 11 "); + this.string_9 = array7[1].Substring(0, 2); + this.string_9 = (Convert.ToInt32(this.string_9, 16) * 100 / 255).ToString(); + goto IL_C78; + } + if (!(text == "MAP")) + { + goto IL_C78; + } + } + else if (num <= 1364790555U) + { + if (num != 1151856721U) + { + if (num != 1364790555U) + { + goto IL_C78; + } + if (!(text == "CEL")) + { + goto IL_C78; + } + if (this.string_5 == "NO DATA") + { + this.listBoxCEL.Items.Clear(); + this.listBoxCEL.Items.Add("No CEL Codes"); + goto IL_C78; + } + this.method_12(string_21.ToString()); + goto IL_C78; + } + else if (!(text == "Map")) + { + goto IL_C78; + } + } + else if (num != 2027117207U) + { + if (num != 2380580039U) + { + goto IL_C78; + } + if (!(text == "OC")) + { + goto IL_C78; + } + string[] array8 = Regex.Split(string_21.ToString(), "41 1C "); + if (this.bool_6) + { + this.bool_6 = false; + MessageBox.Show("OBD Compliance: " + array8[1].Substring(0, 2)); + goto IL_C78; + } + goto IL_C78; + } + else + { + if (text == "FT") + { + string[] array9 = Regex.Split(string_21.ToString(), "41 06 "); + this.string_17 = int.Parse(array9[1].Substring(0, 2), NumberStyles.HexNumber).ToString(); + this.string_17 = ((double)int.Parse(this.string_17) / 1.28 - 100.0).ToString(); + goto IL_C78; + } + goto IL_C78; + } + string[] array10 = Regex.Split(string_21.ToString(), "41 0B "); + this.string_7 = array10[1].Substring(0, 2); + this.string_7 = Convert.ToInt32(this.string_7, 16).ToString(); + } + } + else if (num <= 3353824088U) + { + if (num <= 3169270279U) + { + if (num != 2595094142U) + { + if (num != 3135715041U) + { + if (num == 3169270279U) + { + if (text == "PIDLISTC" && string_21.ToString().Length > 7) + { + this.listBoxPIDs.Items.Clear(); + this.method_14(string_21.ToString(), 6); + this.method_5(); + } + } + } + else if (text == "PIDLISTE" && string_21.ToString().Length > 7) + { + this.listBoxPIDs.Items.Clear(); + this.method_14(string_21.ToString(), 7); + this.method_5(); + } + } + else if (text == "PIDLIST" && string_21.ToString().Length > 7) + { + this.listBoxPIDs.Items.Clear(); + this.method_14(string_21.ToString(), 0); + this.method_5(); + } + } + else if (num != 3202825517U) + { + if (num != 3320268850U) + { + if (num == 3353824088U) + { + if (text == "PIDLIST6" && string_21.ToString().Length > 7) + { + this.listBoxPIDs.Items.Clear(); + this.method_14(string_21.ToString(), 3); + this.method_5(); + } + } + } + else if (text == "PIDLIST8" && string_21.ToString().Length > 7) + { + this.listBoxPIDs.Items.Clear(); + this.method_14(string_21.ToString(), 4); + this.method_5(); + } + } + else if (text == "PIDLISTA" && string_21.ToString().Length > 7) + { + this.listBoxPIDs.Items.Clear(); + this.method_14(string_21.ToString(), 5); + this.method_5(); + } + } + else if (num <= 3427275971U) + { + if (num != 3387379326U) + { + if (num != 3420934564U) + { + if (num == 3427275971U) + { + if (text == "CLEARDTC") + { + this.method_23("Erase acknowledged by ECU"); + this.method_22("Restart vehicle to reflect changes"); + this.txtDTCD.Text = "Codes Cleared"; + this.listBoxCEL.Items.Clear(); + } + } + } + else if (text == "PIDLIST2" && string_21.ToString().Length > 7) + { + this.listBoxPIDs.Items.Clear(); + this.method_14(string_21.ToString(), 1); + this.method_5(); + } + } + else if (text == "PIDLIST4" && string_21.ToString().Length > 7) + { + this.listBoxPIDs.Items.Clear(); + this.method_14(string_21.ToString(), 2); + this.method_5(); + } + } + else if (num <= 3829360715U) + { + if (num != 3501406902U) + { + if (num == 3829360715U) + { + if (text == "ELM") + { + if (string_21.ToString().Contains("ELM327 v1.0")) + { + this.double_0 = 1.0; + } + else if (string_21.ToString().Contains("ELM327 v1.3a")) + { + this.double_0 = 1.3; + } + else if (string_21.ToString().Contains("ELM327 v1.4b")) + { + this.double_0 = 1.4; + } + else if (string_21.ToString().Contains("ELM327 v1.5")) + { + this.double_0 = 1.5; + } + else if (string_21.ToString().Contains("ELM327 v2.1")) + { + this.double_0 = 2.1; + } + else if (string_21.ToString().Contains("ELM327 v2.2")) + { + this.double_0 = 2.2; + } + else + { + this.double_0 = 1.1; + } + string str = ""; + double num2 = this.double_0; + if (num2 != 1.0) + { + if (num2 != 1.1) + { + if (num2 != 1.3) + { + if (num2 != 1.4) + { + if (num2 != 1.5) + { + if (num2 != 2.1) + { + if (num2 == 2.2) + { + str = " (Genuine ELM 2.2 should work with 100ms refresh rate)"; + } + } + else + { + str = " (Genuine ELM 2.1 should work with 100ms refresh rate)"; + } + } + else + { + str = " (Chinese Clone dont exceed 300ms refresh rate)"; + } + } + else + { + str = "b (Old ELM dont exceed 250ms refresh rate)"; + } + } + else + { + str = "a (Old ELM dont exceed 250ms refresh rate)"; + } + } + else + { + str = " (Chinese Clone dont exceed 300ms refresh rate)"; + } + } + else + { + str = " (Orignal ELM dont exceed 250ms refresh rate)"; + } + this.label2.Text = "ELM Adapter: " + this.double_0.ToString() + str; + this.label3.Text = "Features: Scan Only"; + this.string_6 = ""; + } + } + } + else if (text == "RPM") + { + string[] array11 = Regex.Split(string_21.ToString(), "41 0C "); + int num3 = Convert.ToInt32(array11[1].Substring(0, 2), 16) * 256 + Convert.ToInt32(array11[1].Substring(3, 2), 16); + this.string_8 = (num3 / 4).ToString(); + } + } + else if (num != 4126829125U) + { + if (num == 4247270999U) + { + if (text == "ECT") + { + string[] array12 = Regex.Split(string_21.ToString(), "41 05 "); + this.string_14 = array12[1].Substring(0, 2); + this.string_14 = (Convert.ToInt32(this.string_14, 16) - 40).ToString(); + } + } + } + else if (text == "OSP") + { + string[] array13 = Regex.Split(string_21.ToString(), "41 13 "); + if (this.bool_6) + { + this.bool_6 = false; + MessageBox.Show("Number of O2 sensors: " + array13[1].Substring(0, 2)); + } + } + } + IL_C78:; + } + catch + { + } + } + + private string GetOBD2_Text() + { + string ReturnStr = ""; + string Filename = "OBD2.txt"; + /*string ZipFolder = "Others"; + string WholePath = Application.StartupPath + @"\" + ZipFolder + @"\" + Filename; + if (!File.Exists(WholePath)) this.Class34_Zip_0.UnZipFile(Application.StartupPath, ZipFolder); + if (File.Exists(WholePath)) ReturnStr = File.ReadAllText(WholePath);*/ + + string WholePath = Application.StartupPath + @"\" + Filename; + if (File.Exists(WholePath)) ReturnStr = File.ReadAllText(WholePath); + return ReturnStr; + } + + private string method_36(string string_21) + { + string str; + Dictionary dictionary = new Dictionary(); + try + { + string[] textArray1 = new string[] { "\r\n", "\r", "\n" }; + string[] strArray = GetOBD2_Text().Split(textArray1, (StringSplitOptions) StringSplitOptions.None); + int index = 0; + string[] strArray2 = strArray; + for (int i = 0; i < strArray2.Length; i++) + { + string[] textArray2 = new string[] { "," }; + string[] strArray3 = strArray[index].Split(textArray2, (StringSplitOptions) StringSplitOptions.None); + dictionary.Add(strArray3[0], strArray3[1]); + index++; + } + } + catch + { + } + return (!dictionary.TryGetValue(string_21, out str) ? "Unknown Code" : str); + } + + private void method_37() + { + foreach (object obj in ((IEnumerable) this.dataGridView_0.Rows)) + { + DataGridViewRow dataGridViewRow = (DataGridViewRow)obj; + foreach (object obj2 in dataGridViewRow.Cells) + { + DataGridViewCell dataGridViewCell = (DataGridViewCell)obj2; + dataGridViewCell.Value = 0; + } + } + } + + private void method_4(int int_194) + { + frmOBD2Scan.Class35 Class35_0 = new frmOBD2Scan.Class35(); + Class35_0.frmOBD2Scan_0 = this; + Class35_0.int_0 = int_194; + this.gbStatus.Invoke(new MethodInvoker(Class35_0.method_0)); + } + + private void method_40(int int_194, int int_195, double double_1) + { + try + { + if (int_195 == 0x3e7) + { + foreach (DataGridViewRow row in (IEnumerable) dataGridView_0.Rows) + { + double_1 = double.Parse(row.Cells[int_194].Value.ToString()); + if (double_1 < double.Parse(this.string_4[0])) + { + row.Cells[int_194].Style.BackColor = Color.AliceBlue; + continue; + } + if (double_1 < int.Parse(this.string_4[1])) + { + row.Cells[int_194].Style.BackColor = Color.LightBlue; + continue; + } + if (double_1 < int.Parse(this.string_4[2])) + { + row.Cells[int_194].Style.BackColor = Color.LightGreen; + continue; + } + if (double_1 < int.Parse(this.string_4[3])) + { + row.Cells[int_194].Style.BackColor = Color.LightGoldenrodYellow; + continue; + } + if (double_1 < int.Parse(this.string_4[4])) + { + row.Cells[int_194].Style.BackColor = Color.LightPink; + continue; + } + if (double_1 < int.Parse(this.string_4[5])) + { + row.Cells[int_194].Style.BackColor = Color.LightSalmon; + } + } + } + else if (double_1 < int.Parse(this.string_4[0])) + { + dataGridView_0.Rows[int_195].Cells[int_194].Style.BackColor = Color.AliceBlue; + } + else if (double_1 < int.Parse(this.string_4[1])) + { + dataGridView_0.Rows[int_195].Cells[int_194].Style.BackColor = Color.LightBlue; + } + else if (double_1 < int.Parse(this.string_4[2])) + { + dataGridView_0.Rows[int_195].Cells[int_194].Style.BackColor = Color.LightGreen; + } + else if (double_1 < int.Parse(this.string_4[3])) + { + dataGridView_0.Rows[int_195].Cells[int_194].Style.BackColor = Color.LightGoldenrodYellow; + } + else if (double_1 < int.Parse(this.string_4[4])) + { + dataGridView_0.Rows[int_195].Cells[int_194].Style.BackColor = Color.LightPink; + } + else if (double_1 < int.Parse(this.string_4[5])) + { + dataGridView_0.Rows[int_195].Cells[int_194].Style.BackColor = Color.LightSalmon; + } + } + catch + { + } + } + + private void method_41() + { + while (bool_1) + { + try + { + int num = 0; + int num2 = 0; + int num3 = 0; + int num4 = 0; + if (bool_10) + { + num4 = (this.comboX.Text != "MAP") ? ((this.comboX.Text != "Tplate") ? int.Parse(this.string_7) : ((int) Math.Round(double.Parse(this.string_9)))) : ((int) Math.Round((double) (double.Parse(this.string_11) * 70.0))); + if (this.comboY.Text == "RPM") + { + num3 = int.Parse(Math.Round((double) (Convert.ToDouble(this.string_11) * 500.0)).ToString()); + } + } + else + { + if (this.comboX.Text == "Map") + { + num4 = int.Parse(Math.Round((double) (Convert.ToDouble(this.string_7) * 10.0)).ToString()); + } + else if (this.comboX.Text == "Tplate") + { + num4 = int.Parse(Math.Round(Convert.ToDouble(this.string_9)).ToString()); + } + else + { + num4 = int.Parse(this.string_7); + } + if (this.comboY.Text == "RPM") + { + num3 = int.Parse(Math.Round(Convert.ToDouble(this.string_8)).ToString()); + } + } + int num5 = 0; + bool flag = false; + string[] strArray = this.string_3; + int index = 0; + while (true) + { + if (index >= strArray.Length) + { + num5 = 0; + bool flag2 = false; + string[] strArray2 = this.string_2; + int num10 = 0; + while (true) + { + if (num10 >= strArray2.Length) + { + dataGridView_0.CurrentCell = dataGridView_0.Rows[num2].Cells[num]; + double num6 = double.Parse(dataGridView_0.Rows[num2].Cells[num].Value.ToString()); + if (num6 == 0.0) + { + num6 = Math.Round(this.method_42(this.comboV.Text), 2); + } + double num7 = (Math.Round(this.method_42(this.comboV.Text), 2) + num6) / 2.0; + dataGridView_0.Rows[num2].Cells[num].Value = Math.Round(num7, 2); + this.label6.Text = (num7 * 14.7).ToString(); + this.method_40(num, num2, num7 * 14.7); + break; + } + string str2 = strArray2[num10]; + if ((num4 <= int.Parse(str2)) && !flag2) + { + num = num5; + flag2 = true; + } + num5++; + num10++; + } + break; + } + string s = strArray[index]; + if ((num3 <= int.Parse(s)) && !flag) + { + num2 = num5; + flag = true; + } + num5++; + index++; + } + } + catch + { + } + } + } + + private double method_42(string string_21) + { + double num3; + try + { + double result = 0.0; + if (string_21 == null) + { + goto TR_0002; + } + else + { + uint num2 = ClassDecryptString.DecryptThisString(string_21); + if (num2 > 0x44a7f051) + { + if (num2 > 0xce8f3e48) + { + if (num2 > 0xeef6e76e) + { + if (num2 == 0xf87c4b44) + { + if (string_21 == "Load%") + { + return (double.TryParse(this.string_16, out result) ? result : 0.0); + } + } + else if ((num2 == 0xfd283657) && (string_21 == "ECT")) + { + return (double.TryParse(this.string_14, out result) ? result : 0.0); + } + } + else if (num2 == 0xd0b33ab6) + { + if (string_21 == "RPM") + { + return (double.TryParse(this.string_8, out result) ? result : 0.0); + } + } + else if ((num2 == 0xeef6e76e) && (string_21 == "BATTERY")) + { + return (double.TryParse(this.string_11, out result) ? result : 0.0); + } + } + else if (num2 == 0x670409f2) + { + if (string_21 == "BTDC") + { + return (double.TryParse(this.string_15, out result) ? result : 0.0); + } + } + else if (num2 == 0x840ae12e) + { + if (string_21 == "Battery") + { + return (double.TryParse(this.string_11, out result) ? result : 0.0); + } + } + else if ((num2 == 0xce8f3e48) && (string_21 == "STFT")) + { + return (double.TryParse(this.string_17, out result) ? result : 0.0); + } + } + else if (num2 > 0x1ce412e4) + { + if (num2 > 0x2f6e59dd) + { + if (num2 == 0x345d4ece) + { + if (string_21 == "TPS") + { + goto TR_000C; + } + } + else if ((num2 == 0x44a7f051) && (string_21 == "Map")) + { + goto TR_000F; + } + } + else if (num2 == 0x24599f11) + { + if (string_21 == "MAP") + { + goto TR_000F; + } + } + else if ((num2 == 0x2f6e59dd) && (string_21 == "TPlate")) + { + goto TR_000C; + } + } + else if (num2 == 0xa6b8020) + { + if (string_21 == "Speed") + { + return (double.TryParse(this.string_10, out result) ? result : 0.0); + } + } + else if (num2 == 0x1ab73171) + { + if (string_21 == "IAT") + { + return (double.TryParse(this.string_13, out result) ? result : 0.0); + } + } + else if ((num2 == 0x1ce412e4) && (string_21 == "O2")) + { + return (double.TryParse(this.string_12, out result) ? result : 0.0); + } + goto TR_0002; + } + goto TR_000F; + TR_0002: + return double.Parse("00"); + TR_000C: + return (double.TryParse(this.string_9, out result) ? result : 0.0); + TR_000F: + num3 = double.TryParse(this.string_7, out result) ? result : 0.0; + } + catch + { + num3 = double.Parse("00"); + } + return num3; + } + + private void method_43() + { + if (base.InvokeRequired) + { + try + { + base.Invoke((Delegate) new MethodInvoker(this.method_52)); + } + catch (Exception) + { + } + } + else + { + Application.DoEvents(); + foreach (ListViewItem item in this.listViewLive.Items) + { + string text = item.Text; + if (text != null) + { + uint num = ClassDecryptString.DecryptThisString(text); + if (num <= 0x712db33a) + { + if (num <= 0x414daa91) + { + if (num <= 0x2f6e59dd) + { + if (num == 0xe251dcc) + { + if (text != "RPM2") + { + continue; + } + try + { + item.SubItems[1].Text = int_188.ToString("F0"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0x1ab73171) + { + if (text != "IAT") + { + continue; + } + try + { + item.SubItems[1].Text = float_9.ToString("F1"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num != 0x2f6e59dd) + { + continue; + } + if (text != "TPlate") + { + continue; + } + try + { + item.SubItems[1].Text = float_4.ToString("F2"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0x309a9e94) + { + if (text != "Ignition Timing") + { + continue; + } + try + { + item.SubItems[1].Text = float_7.ToString("F1"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0x398852df) + { + if (text != "Cam Angle") + { + continue; + } + try + { + item.SubItems[1].Text = float_14.ToString("F1"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num != 0x414daa91) + { + continue; + } + if (text != "Wideband") + { + continue; + } + try + { + item.SubItems[1].Text = float_2.ToString("F2"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num <= 0x6c2dab5b) + { + if (num == 0x418b28c8) + { + if (text != "Target Cam Angle") + { + continue; + } + try + { + item.SubItems[1].Text = int_187.ToString("F1"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0x44a7f051) + { + if (text != "Map") + { + continue; + } + try + { + item.SubItems[1].Text = float_0.ToString("F1"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num != 0x6c2dab5b) + { + continue; + } + if (text != "Knock 4") + { + continue; + } + try + { + item.SubItems[1].Text = int_193.ToString(); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0x6d4873af) + { + if (text != "Target AFR") + { + continue; + } + try + { + item.SubItems[1].Text = float_3.ToString("F2"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0x6f2db014) + { + if (text != "Knock 1") + { + continue; + } + try + { + item.SubItems[1].Text = int_190.ToString(); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num != 0x712db33a) + { + continue; + } + if (text != "Knock 3") + { + continue; + } + try + { + item.SubItems[1].Text = int_192.ToString(); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num <= 0xc635623c) + { + if (num <= 0x8c46c47f) + { + if (num == 0x722db4cd) + { + if (text != "Knock 2") + { + continue; + } + try + { + item.SubItems[1].Text = int_191.ToString(); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0x840ae12e) + { + if (text != "Battery") + { + continue; + } + try + { + item.SubItems[1].Text = float_1.ToString("F2"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num != 0x8c46c47f) + { + continue; + } + if (text != "LTFT") + { + continue; + } + try + { + item.SubItems[1].Text = float_12.ToString("F2"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0xa413489a) + { + if (text != "Pulsewidth") + { + continue; + } + try + { + item.SubItems[1].Text = float_8.ToString("F2"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0xba7a3609) + { + if (text != "AFM") + { + continue; + } + try + { + item.SubItems[1].Text = float_15.ToString("F2"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num != 0xc635623c) + { + continue; + } + if (text != "VTS") + { + continue; + } + try + { + item.SubItems[1].Text = int_189.ToString(); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num <= 0xd62d2ca7) + { + if (num == 0xce8f3e48) + { + if (text != "STFT") + { + continue; + } + try + { + item.SubItems[1].Text = float_11.ToString("F2"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0xd0b33ab6) + { + if (text != "RPM") + { + continue; + } + try + { + item.SubItems[1].Text = float_5.ToString("F0"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num != 0xd62d2ca7) + { + continue; + } + if (text != "VSS") + { + continue; + } + try + { + item.SubItems[1].Text = float_13.ToString("F0"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0xe5eb0400) + { + if (text != "RPMRAW") + { + continue; + } + try + { + item.SubItems[1].Text = float_6.ToString("F0"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if (num == 0xfcb427b0) + { + if (text != "Knock Sum") + { + continue; + } + try + { + item.SubItems[1].Text = this.int_183.ToString(); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + continue; + } + if ((num == 0xfd283657) && (text == "ECT")) + { + try + { + item.SubItems[1].Text = float_10.ToString("F1"); + if ((item.SubItems[2].Text == "000") || (item.SubItems[2].Text == "")) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) <= float.Parse(item.SubItems[2].Text)) + { + item.SubItems[2].Text = item.SubItems[1].Text; + } + if (float.Parse(item.SubItems[1].Text) >= float.Parse(item.SubItems[3].Text)) + { + item.SubItems[3].Text = item.SubItems[1].Text; + } + } + catch + { + } + } + } + } + } + } + + private void method_44(string string_21) + { + try + { + int num = 0; + if (string_21.Length >= 0x18) + { + char[] separator = new char[] { ' ' }; + byte[] buffer = string_21.Replace(",", "").Split(separator).Select((TestClass.Testval2 ?? (TestClass.Testval2 = new Func(TestClass.Testval.method_1)))).ToArray(); + num = int.Parse(buffer[5].ToString("X2") + buffer[6].ToString("X2")); + if (num > 0xa64) + { + if (num == 0xa66) + { + this.method_50(buffer); + } + else if (num == 0xa6c) + { + this.method_51(buffer); + } + } + else + { + switch (num) + { + case 0xa32: + this.method_45(buffer); + break; + + case 0xa33: + this.method_46(buffer); + break; + + case 0xa34: + this.method_47(buffer); + break; + + case 0xa35: + this.method_48(buffer); + break; + + default: + if (num == 0xa64) + { + this.method_49(buffer); + } + break; + } + } + this.method_43(); + } + } + catch + { + } + } + + private void method_45(byte[] byte_0) + { + byte[] buffer1 = new byte[] { byte_0[14], byte_0[13] }; + float_5 = ((BitConverter.ToInt16(buffer1, 0) * 4) * 0.667f) / 10f; + byte[] buffer2 = new byte[] { byte_0[14], byte_0[13] }; + float_6 = BitConverter.ToInt16(buffer2, 0) / 10; + this.string_8 = float_5.ToString("F0"); + float_13 = ((float) byte_0[0x19]) / 1.609f; + float_1 = (byte_0[0x1d] * 10f) / 100f; + this.string_11 = float_1.ToString("00.0"); + float_10 = (((byte_0[0x12] - 40f) * 9f) / 5f) + 32f; + this.string_14 = float_10.ToString("F1"); + float_9 = (((byte_0[20] - 40f) * 9f) / 5f) + 32f; + this.string_13 = float_9.ToString("F1"); + float_0 = (byte_0[0x16] * 100f) / 100f; + this.string_7 = float_0.ToString("F1"); + float_7 = ((byte_0[0x1c] * 2f) - 128f) / 10f; + byte[] buffer3 = new byte[] { byte_0[0x20], byte_0[0x1f] }; + float_8 = (BitConverter.ToInt16(buffer3, 0) * 250f) / 1000f; + byte[] buffer4 = new byte[] { byte_0[0x2a], byte_0[0x29] }; + float_15 = BitConverter.ToInt16(buffer4, 0); + } + + private void method_46(byte[] byte_0) + { + byte[] buffer1 = new byte[] { byte_0[14], byte_0[13] }; + float single1 = BitConverter.ToInt16(buffer1, 0) * 32768f; + byte[] buffer2 = new byte[] { byte_0[0x10], byte_0[15] }; + float_2 = (((float) BitConverter.ToInt16(buffer2, 0)) / 32768f) * 14.7f; + float_11 = (byte_0[0x11] * 1.28f) - 128f; + float_12 = (byte_0[0x12] * 1.28f) - 128f; + byte[] buffer3 = new byte[] { byte_0[20], byte_0[0x13] }; + float_3 = (((float) BitConverter.ToInt16(buffer3, 0)) / 32768f) * 14.7f; + } + + private void method_47(byte[] byte_0) + { + byte[] buffer1 = new byte[] { byte_0[0x10], byte_0[15] }; + float single1 = ((float) BitConverter.ToInt16(buffer1, 0)) / 234f; + byte[] buffer2 = new byte[] { byte_0[20], byte_0[0x13] }; + float_4 = ((float) BitConverter.ToInt16(buffer2, 0)) / 164f; + this.string_9 = float_4.ToString(); + byte[] buffer3 = new byte[] { byte_0[0x16], byte_0[0x15] }; + int_188 = BitConverter.ToInt16(buffer3, 0); + int.TryParse(new BitArray(byte_0[30])[0].ToString(), out int_189); + float_14 = byte_0[0x1f]; + int_187 = byte_0[0x20]; + } + + private void method_48(byte[] byte_0) + { + } + + private void method_49(byte[] byte_0) + { + } + + private void method_5() + { + this.listBoxPIDs.Items.Clear(); + if (this.int_16 == 1) + { + this.listBoxPIDs.Items.Add("MAP"); + } + if (this.int_17 == 1) + { + this.listBoxPIDs.Items.Add("RPM"); + } + if (this.int_25 == 1) + { + this.listBoxPIDs.Items.Add("O2"); + } + if (this.int_22 == 1) + { + this.listBoxPIDs.Items.Add("TPS"); + } + if (this.int_18 == 1) + { + this.listBoxPIDs.Items.Add("Speed"); + } + if (this.int_20 == 1) + { + this.listBoxPIDs.Items.Add("IAT"); + } + if (this.int_10 == 1) + { + this.listBoxPIDs.Items.Add("ECT"); + } + if (this.int_19 == 1) + { + this.listBoxPIDs.Items.Add("Timing Advance"); + } + if (this.int_9 == 1) + { + this.listBoxPIDs.Items.Add("Engine Load"); + } + if (this.int_11 == 1) + { + this.listBoxPIDs.Items.Add("Short Term Fuel Trim"); + } + this.listBoxPIDs.Items.Add("--Status--"); + if (this.int_6 == 1) + { + this.listBoxPIDs.Items.Add("DTC Status"); + } + if (this.int_7 == 1) + { + this.listBoxPIDs.Items.Add("Freeze DTC"); + } + if (this.int_8 == 1) + { + this.listBoxPIDs.Items.Add("Fuel System Status"); + } + if (this.int_12 == 1) + { + this.listBoxPIDs.Items.Add("Long term fuel trim—Bank 1"); + } + if (this.int_13 == 1) + { + this.listBoxPIDs.Items.Add("Short term fuel trim—Bank 2"); + } + if (this.int_14 == 1) + { + this.listBoxPIDs.Items.Add("Long term fuel trim—Bank 2 "); + } + if (this.int_15 == 1) + { + this.listBoxPIDs.Items.Add("Fuel pressure"); + } + if (this.int_21 == 1) + { + this.listBoxPIDs.Items.Add("Air flow rate "); + } + if (this.int_23 == 1) + { + this.listBoxPIDs.Items.Add("Commanded secondary air status "); + } + if (this.int_24 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensors Present"); + } + if (this.int_26 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 2"); + } + if (this.int_27 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 3"); + } + if (this.int_28 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 4"); + } + if (this.int_29 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 5"); + } + if (this.int_30 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 6"); + } + if (this.int_31 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 7"); + } + if (this.int_32 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 8"); + } + if (this.int_33 == 1) + { + this.listBoxPIDs.Items.Add("OBD Compliance"); + } + if (this.int_34 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen sensors present"); + } + if (this.int_35 == 1) + { + this.listBoxPIDs.Items.Add("Auxiliary input status"); + } + if (this.int_36 == 1) + { + this.listBoxPIDs.Items.Add("Run time since engine start"); + } + if (this.int_38 == 1) + { + this.listBoxPIDs.Items.Add("Distance traveled with malfunction indicator lamp (MIL) on"); + } + if (this.int_39 == 1) + { + this.listBoxPIDs.Items.Add("Fuel Rail Pressure (relative to manifold vacuum)"); + } + if (this.int_40 == 1) + { + this.listBoxPIDs.Items.Add("Fuel Rail Gauge Pressure (diesel, or gasoline direct injection) "); + } + if (this.int_41 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 1 AB: Fuel–Air Equivalence Ratio CD: Voltage "); + } + if (this.int_42 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 2 AB: Fuel–Air Equivalence Ratio CD: Voltage "); + } + if (this.int_43 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 3 AB: Fuel–Air Equivalence Ratio CD: Voltage"); + } + if (this.int_44 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 4 AB: Fuel–Air Equivalence Ratio CD: Voltage "); + } + if (this.int_45 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 5 AB: Fuel–Air Equivalence Ratio CD: Voltage "); + } + if (this.int_46 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 6 AB: Fuel–Air Equivalence Ratio CD: Voltage"); + } + if (this.int_47 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 7 AB: Fuel–Air Equivalence Ratio CD: Voltage "); + } + if (this.int_48 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 8 AB: Fuel–Air Equivalence Ratio CD: Voltage "); + } + if (this.int_49 == 1) + { + this.listBoxPIDs.Items.Add("Commanded EGR"); + } + if (this.int_50 == 1) + { + this.listBoxPIDs.Items.Add("EGR Error "); + } + if (this.int_51 == 1) + { + this.listBoxPIDs.Items.Add("Commanded evaporative purge"); + } + if (this.int_52 == 1) + { + this.listBoxPIDs.Items.Add("Fuel Tank Level Input"); + } + if (this.int_53 == 1) + { + this.listBoxPIDs.Items.Add("Warm-ups since codes cleared"); + } + if (this.int_54 == 1) + { + this.listBoxPIDs.Items.Add("Distance traveled since codes cleared"); + } + if (this.int_55 == 1) + { + this.listBoxPIDs.Items.Add("Evap. System Vapor Pressure"); + } + if (this.int_56 == 1) + { + this.listBoxPIDs.Items.Add("Absolute Barometric Pressure"); + } + if (this.int_57 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 1 AB: Fuel–Air Equivalence Ratio CD: Current"); + } + if (this.int_58 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 2 AB: Fuel–Air Equivalence Ratio CD: Current"); + } + if (this.int_59 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 3 AB: Fuel–Air Equivalence Ratio CD: Current"); + } + if (this.int_60 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 4 AB: Fuel–Air Equivalence Ratio CD: Current"); + } + if (this.int_61 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 5 AB: Fuel–Air Equivalence Ratio CD: Current"); + } + if (this.int_62 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 6 AB: Fuel–Air Equivalence Ratio CD: Current"); + } + if (this.int_63 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 7 AB: Fuel–Air Equivalence Ratio CD: Current"); + } + if (this.int_64 == 1) + { + this.listBoxPIDs.Items.Add("Oxygen Sensor 8 AB: Fuel–Air Equivalence Ratio CD: Current"); + } + if (this.int_65 == 1) + { + this.listBoxPIDs.Items.Add("Catalyst Temperature: Bank 1, Sensor 1"); + } + if (this.int_66 == 1) + { + this.listBoxPIDs.Items.Add("Catalyst Temperature: Bank 2, Sensor 1"); + } + if (this.int_67 == 1) + { + this.listBoxPIDs.Items.Add("Catalyst Temperature: Bank 1, Sensor 2"); + } + if (this.int_68 == 1) + { + this.listBoxPIDs.Items.Add("Catalyst Temperature: Bank 2, Sensor 2"); + } + if (this.int_70 == 1) + { + this.listBoxPIDs.Items.Add("Monitor status this drive cycle"); + } + if (this.int_71 == 1) + { + this.listBoxPIDs.Items.Add("Control module voltage "); + } + if (this.int_72 == 1) + { + this.listBoxPIDs.Items.Add("Absolute load value"); + } + if (this.int_73 == 1) + { + this.listBoxPIDs.Items.Add("Fuel–Air commanded equivalence ratio"); + } + if (this.int_74 == 1) + { + this.listBoxPIDs.Items.Add("Relative throttle position"); + } + if (this.int_75 == 1) + { + this.listBoxPIDs.Items.Add("Ambient air temperature"); + } + if (this.int_76 == 1) + { + this.listBoxPIDs.Items.Add("Absolute throttle position B"); + } + if (this.int_77 == 1) + { + this.listBoxPIDs.Items.Add("Absolute throttle position C"); + } + if (this.int_78 == 1) + { + this.listBoxPIDs.Items.Add("Accelerator pedal position D"); + } + if (this.int_79 == 1) + { + this.listBoxPIDs.Items.Add("Accelerator pedal position E"); + } + if (this.int_80 == 1) + { + this.listBoxPIDs.Items.Add("Accelerator pedal position F"); + } + if (this.int_81 == 1) + { + this.listBoxPIDs.Items.Add("Commanded throttle actuator"); + } + if (this.int_82 == 1) + { + this.listBoxPIDs.Items.Add("Time run with MIL on"); + } + if (this.int_83 == 1) + { + this.listBoxPIDs.Items.Add("Time since trouble codes cleared"); + } + if (this.int_84 == 1) + { + this.listBoxPIDs.Items.Add("Maximum value for Fuel–Air equivalence ratio, oxygen sensor voltage, oxygen sensor current, and intake manifold absolute pressure"); + } + if (this.int_85 == 1) + { + this.listBoxPIDs.Items.Add("Maximum value for air flow rate from mass air flow sensor"); + } + if (this.int_86 == 1) + { + this.listBoxPIDs.Items.Add("Fuel Type"); + } + if (this.int_87 == 1) + { + this.listBoxPIDs.Items.Add("Ethanol fuel %"); + } + if (this.int_88 == 1) + { + this.listBoxPIDs.Items.Add("Absolute Evap system Vapor Pressure"); + } + if (this.int_89 == 1) + { + this.listBoxPIDs.Items.Add("Evap system vapor pressure"); + } + if (this.int_90 == 1) + { + this.listBoxPIDs.Items.Add("Short term secondary oxygen sensor trim, A: bank 1, B: bank 3"); + } + if (this.int_91 == 1) + { + this.listBoxPIDs.Items.Add("Long term secondary oxygen sensor trim, A: bank 1, B: bank 3"); + } + if (this.int_92 == 1) + { + this.listBoxPIDs.Items.Add("Short term secondary oxygen sensor trim, A: bank 2, B: bank 4"); + } + if (this.int_93 == 1) + { + this.listBoxPIDs.Items.Add("Long term secondary oxygen sensor trim, A: bank 2, B: bank 4"); + } + if (this.int_94 == 1) + { + this.listBoxPIDs.Items.Add("Fuel rail absolute pressure"); + } + if (this.int_95 == 1) + { + this.listBoxPIDs.Items.Add("Relative accelerator pedal position"); + } + if (this.int_96 == 1) + { + this.listBoxPIDs.Items.Add("Hybrid battery pack remaining life"); + } + if (this.int_97 == 1) + { + this.listBoxPIDs.Items.Add("Engine oil temperature"); + } + if (this.int_98 == 1) + { + this.listBoxPIDs.Items.Add("Fuel injection timing"); + } + if (this.int_99 == 1) + { + this.listBoxPIDs.Items.Add("Engine fuel rate"); + } + if (this.int_100 == 1) + { + this.listBoxPIDs.Items.Add("Emission requirements to which vehicle is designed"); + } + if (this.int_102 == 1) + { + this.listBoxPIDs.Items.Add("Driver's demand engine - percent torque"); + } + if (this.int_103 == 1) + { + this.listBoxPIDs.Items.Add("Actual engine - percent torque"); + } + if (this.int_104 == 1) + { + this.listBoxPIDs.Items.Add("Engine reference torque"); + } + if (this.int_105 == 1) + { + this.listBoxPIDs.Items.Add("Engine percent torque data"); + } + if (this.int_106 == 1) + { + this.listBoxPIDs.Items.Add("Auxiliary input / output supported"); + } + if (this.int_107 == 1) + { + this.listBoxPIDs.Items.Add("Mass air flow sensor"); + } + if (this.int_108 == 1) + { + this.listBoxPIDs.Items.Add("Engine coolant temperature"); + } + if (this.int_109 == 1) + { + this.listBoxPIDs.Items.Add("Intake air temperature sensor"); + } + if (this.int_110 == 1) + { + this.listBoxPIDs.Items.Add("Commanded EGR and EGR Error"); + } + if (this.int_111 == 1) + { + this.listBoxPIDs.Items.Add("Commanded Diesel intake air flow control and relative intake air flow position"); + } + if (this.int_112 == 1) + { + this.listBoxPIDs.Items.Add("Exhaust gas recirculation temperature"); + } + if (this.int_113 == 1) + { + this.listBoxPIDs.Items.Add("Commanded throttle actuator control and relative throttle position"); + } + if (this.int_114 == 1) + { + this.listBoxPIDs.Items.Add("Fuel pressure control system"); + } + if (this.int_115 == 1) + { + this.listBoxPIDs.Items.Add("Injection pressure control system"); + } + if (this.int_116 == 1) + { + this.listBoxPIDs.Items.Add("Turbocharger compressor inlet pressure"); + } + if (this.int_117 == 1) + { + this.listBoxPIDs.Items.Add("Boost pressure control"); + } + if (this.int_118 == 1) + { + this.listBoxPIDs.Items.Add("Variable Geometry turbo (VGT) control"); + } + if (this.int_119 == 1) + { + this.listBoxPIDs.Items.Add("Wastegate control"); + } + if (this.int_120 == 1) + { + this.listBoxPIDs.Items.Add("Exhaust pressure"); + } + if (this.int_121 == 1) + { + this.listBoxPIDs.Items.Add("Turbocharger RPM"); + } + if (this.int_122 == 1) + { + this.listBoxPIDs.Items.Add("Turbocharger temperature"); + } + if (this.int_123 == 1) + { + this.listBoxPIDs.Items.Add("Turbocharger temperature"); + } + if (this.int_124 == 1) + { + this.listBoxPIDs.Items.Add("Charge air cooler temperature (CACT)"); + } + if (this.int_125 == 1) + { + this.listBoxPIDs.Items.Add("Exhaust Gas temperature (EGT) Bank 1"); + } + if (this.int_126 == 1) + { + this.listBoxPIDs.Items.Add("Exhaust Gas temperature (EGT) Bank 2"); + } + if (this.int_127 == 1) + { + this.listBoxPIDs.Items.Add("Diesel particulate filter (DPF)"); + } + if (this.int_128 == 1) + { + this.listBoxPIDs.Items.Add("Diesel particulate filter (DPF)"); + } + if (this.int_129 == 1) + { + this.listBoxPIDs.Items.Add("Diesel Particulate filter (DPF) temperature"); + } + if (this.int_130 == 1) + { + this.listBoxPIDs.Items.Add("NOx NTE (Not-To-Exceed) control area status"); + } + if (this.int_131 == 1) + { + this.listBoxPIDs.Items.Add("PM NTE (Not-To-Exceed) control area status"); + } + if (this.int_132 == 1) + { + this.listBoxPIDs.Items.Add("Engine run time"); + } + if (this.int_134 == 1) + { + this.listBoxPIDs.Items.Add("Engine run time for Auxiliary Emissions Control Device(AECD)"); + } + if (this.int_135 == 1) + { + this.listBoxPIDs.Items.Add("Engine run time for Auxiliary Emissions Control Device(AECD)"); + } + if (this.int_136 == 1) + { + this.listBoxPIDs.Items.Add("NOx sensor"); + } + if (this.int_137 == 1) + { + this.listBoxPIDs.Items.Add("Manifold surface temperature"); + } + if (this.int_138 == 1) + { + this.listBoxPIDs.Items.Add("NOx reagent system"); + } + if (this.int_139 == 1) + { + this.listBoxPIDs.Items.Add("Particulate matter (PM) sensor"); + } + if (this.int_140 == 1) + { + this.listBoxPIDs.Items.Add("Intake manifold absolute pressure"); + } + if (this.int_141 == 1) + { + this.listBoxPIDs.Items.Add("SCR Induce System"); + } + if (this.int_142 == 1) + { + this.listBoxPIDs.Items.Add("Run Time for AECD #11-#15"); + } + if (this.int_143 == 1) + { + this.listBoxPIDs.Items.Add("Run Time for AECD #16-#20"); + } + if (this.int_144 == 1) + { + this.listBoxPIDs.Items.Add("Diesel Aftertreatment"); + } + if (this.int_145 == 1) + { + this.listBoxPIDs.Items.Add("O2 Sensor (Wide Range)"); + } + if (this.int_146 == 1) + { + this.listBoxPIDs.Items.Add("Throttle Position G"); + } + if (this.int_147 == 1) + { + this.listBoxPIDs.Items.Add("Engine Friction - Percent Torque"); + } + if (this.int_148 == 1) + { + this.listBoxPIDs.Items.Add("PM Sensor Bank 1 & 2"); + } + if (this.int_149 == 1) + { + this.listBoxPIDs.Items.Add("WWH-OBD Vehicle OBD System Information"); + } + if (this.int_150 == 1) + { + this.listBoxPIDs.Items.Add("WWH-OBD Vehicle OBD System Information"); + } + if (this.int_151 == 1) + { + this.listBoxPIDs.Items.Add("Fuel System Control"); + } + if (this.int_152 == 1) + { + this.listBoxPIDs.Items.Add("WWH-OBD Vehicle OBD Counters support"); + } + if (this.int_153 == 1) + { + this.listBoxPIDs.Items.Add("NOx Warning And Inducement System"); + } + if (this.int_154 == 1) + { + this.listBoxPIDs.Items.Add("PID95"); + } + if (this.int_155 == 1) + { + this.listBoxPIDs.Items.Add("PID96"); + } + if (this.int_156 == 1) + { + this.listBoxPIDs.Items.Add("PID97"); + } + if (this.int_157 == 1) + { + this.listBoxPIDs.Items.Add("Exhaust Gas Temperature Sensor"); + } + if (this.int_158 == 1) + { + this.listBoxPIDs.Items.Add("Exhaust Gas Temperature Sensor"); + } + if (this.int_159 == 1) + { + this.listBoxPIDs.Items.Add("Hybrid/EV Vehicle System Data, Battery, Voltage"); + } + if (this.int_160 == 1) + { + this.listBoxPIDs.Items.Add("Diesel Exhaust Fluid Sensor Data"); + } + if (this.int_161 == 1) + { + this.listBoxPIDs.Items.Add("O2 Sensor Data"); + } + if (this.int_162 == 1) + { + this.listBoxPIDs.Items.Add("Engine Fuel Rate"); + } + if (this.int_163 == 1) + { + this.listBoxPIDs.Items.Add("Engine Exhaust Flow Rate"); + } + if (this.int_164 == 1) + { + this.listBoxPIDs.Items.Add("Fuel System Percentage Use"); + } + if (this.int_166 == 1) + { + this.listBoxPIDs.Items.Add("NOx Sensor Corrected Data"); + } + if (this.int_167 == 1) + { + this.listBoxPIDs.Items.Add("Cylinder Fuel Rate"); + } + if (this.int_168 == 1) + { + this.listBoxPIDs.Items.Add("Evap System Vapor Pressure"); + } + if (this.int_169 == 1) + { + this.listBoxPIDs.Items.Add("Transmission Actual Gear"); + } + if (this.int_170 == 1) + { + this.listBoxPIDs.Items.Add("Diesel Exhaust Fluid Dosing"); + } + if (this.int_171 == 1) + { + this.listBoxPIDs.Items.Add("Odometer"); + } + } + + private void method_50(byte[] byte_0) + { + } + + private void method_51(byte[] byte_0) + { + this.string_12 = float_2.ToString("F1"); + byte[] buffer1 = new byte[] { byte_0[0x17], byte_0[0x16] }; + int_190 = BitConverter.ToInt16(buffer1, 0); + byte[] buffer2 = new byte[] { byte_0[0x19], byte_0[0x18] }; + int_191 = BitConverter.ToInt16(buffer2, 0); + byte[] buffer3 = new byte[] { byte_0[0x1a], byte_0[0x19] }; + int_192 = BitConverter.ToInt16(buffer3, 0); + byte[] buffer4 = new byte[] { byte_0[0x1c], byte_0[0x1b] }; + int_193 = BitConverter.ToInt16(buffer4, 0); + this.int_183 = ((int_190 + int_191) + int_192) + int_193; + this.string_18 = this.int_183.ToString(); + byte[] buffer5 = new byte[] { byte_0[0x2d], byte_0[0x2c] }; + int num1 = BitConverter.ToInt16(buffer5, 0) * 10; + } + + [CompilerGenerated] + private void method_52() + { + this.method_43(); + } + + private void method_6(object sender, EventArgs e) + { + this.list_0.Clear(); + int num = 0; + foreach (object obj in this.listViewLive.Items) + { + ListViewItem listViewItem = (ListViewItem)obj; + if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem).Contains(this.listViewLive.Items[num].SubItems[1].Text)) + { + return; + } + num++; + } + if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "MAP") + { + string[] items = new string[] { "MAP", "000", "000", "000" }; + this.listViewLive.Items.Add("0B").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "RPM") + { + string[] items = new string[] { "RPM", "000", "000", "000" }; + this.listViewLive.Items.Add("0C").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "TPS") + { + string[] items = new string[] { "TPS", "000", "000", "000" }; + this.listViewLive.Items.Add("11").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Speed") + { + string[] items = new string[] { "Speed", "000", "000", "000" }; + this.listViewLive.Items.Add("0D").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "O2") + { + string[] items = new string[] { "O2", "000", "000", "000" }; + this.listViewLive.Items.Add("14").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "IAT") + { + string[] items = new string[] { "IAT", "000", "000", "000" }; + this.listViewLive.Items.Add("0F").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "ECT") + { + string[] items = new string[] { "ECT", "000", "000", "000" }; + this.listViewLive.Items.Add("05").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Short Term Fuel Trim") + { + string[] items = new string[] { "STFT", "000", "000", "000" }; + this.listViewLive.Items.Add("06").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Timing Advance") + { + string[] items = new string[] { "BTDC", "000", "000", "000" }; + this.listViewLive.Items.Add("0E").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Engine Load") + { + string[] items = new string[] { "Load%", "000", "000", "000" }; + this.listViewLive.Items.Add("04").SubItems.AddRange(items); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Fuel System Status") + { + this.bool_6 = true; + this.method_19("0103"); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "Oxygen Sensors Present") + { + this.bool_6 = true; + this.method_19("0113"); + } + else if (this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) == "OBD Compliance") + { + this.bool_6 = true; + this.method_19("011C"); + } + else + { + MessageBox.Show(this.listBoxPIDs.GetItemText(this.listBoxPIDs.SelectedItem) + " Doesnt Support logging at the moment"); + } + } + + private void method_7(object sender, EventArgs e) + { + this.list_0.Clear(); + try + { + this.listViewLive.SelectedItems[0].Remove(); + } + catch + { + } + } + + private void method_9() + { + if (!this.bool_8) + { + this.serialPort_0.Close(); + this.stringBuilder_0.Clear(); + this.bool_4 = false; + this.method_21("Connection closed automatically."); + this.int_2 = 0; + this.method_18(); + this.method_10(); + } + } + + public static string smethod_0(string string_21) + { + StringBuilder builder = new StringBuilder(); + foreach (char ch in string_21) + { + if ((((ch >= '0') && (ch <= '9')) || (((ch >= 'A') && (ch <= 'Z')) || (((ch >= 'a') && (ch <= 'z')) || (ch == '.')))) || (ch == '_')) + { + builder.Append(ch); + } + } + return builder.ToString(); + } + + public static byte[] smethod_1(string string_21) + { + Class36 class2 = new Class36 { + string_0 = string_21 + }; + return Enumerable.Range(0, class2.string_0.Length).Where((TestClass.Testval1 ?? (TestClass.Testval1 = new Func(TestClass.Testval.method_0)))).Select(new Func(class2.method_0)).ToArray(); + } + + public static string smethod_2(byte[] byte_0) + { + StringBuilder builder = new StringBuilder(byte_0.Length * 2); + foreach (byte num2 in byte_0) + { + builder.AppendFormat("{0:x2} ", num2); + } + return builder.ToString(); + } + + private void StartTable_Click(object sender, EventArgs e) + { + if (this.bool_2) + { + this.ClearTable.Enabled = false; + this.StopTable.Enabled = false; + this.comboX.Enabled = false; + this.comboY.Enabled = false; + this.comboV.Enabled = false; + dataGridView_0.Enabled = true; + this.StartTable.Text = "Load Template"; + this.bool_2 = false; + dataGridView_0.DataSource = null; + dataGridView_0.Rows.Clear(); + dataGridView_0.Refresh(); + } + else + { + OpenFileDialog dialog1 = new OpenFileDialog(); + dialog1.Filter = "Scan Template File|*.STEMPLATE"; + dialog1.Title = "Load table template"; + OpenFileDialog dialog = dialog1; + if (dialog.ShowDialog() == DialogResult.OK) + { + this.comboV.SelectedIndex = 0; + this.comboX.SelectedIndex = 0; + this.comboY.SelectedIndex = 0; + DataTable table = new DataTable(); + string[] textArray1 = new string[] { "\r\n", "\r", "\n" }; + string[] strArray = File.ReadAllText(dialog.FileName).Split(textArray1, (StringSplitOptions) StringSplitOptions.None); + char[] separator = new char[] { '|' }; + this.string_2 = strArray[0].Split(separator); + char[] chArray2 = new char[] { '|' }; + this.string_3 = strArray[1].Split(chArray2); + char[] chArray3 = new char[] { '|' }; + this.string_4 = strArray[2].Split(chArray3); + int index = 0; + string[] strArray2 = this.string_2; + for (int i = 0; i < strArray2.Length; i++) + { + table.Columns.Add(new DataColumn(this.string_2[index], typeof(string))); + index++; + } + index = 0; + string[] strArray3 = this.string_3; + for (int j = 0; j < strArray3.Length; j++) + { + object[] values = new object[] { "0" }; + table.Rows.Add(values); + index++; + } + dataGridView_0.DataSource = table; + dataGridView_0.RowHeadersWidth = 90; + index = 0; + string[] strArray4 = this.string_3; + for (int k = 0; k < strArray4.Length; k++) + { + dataGridView_0.Rows[index].HeaderCell.Value = this.string_3[index]; + index++; + } + foreach (DataGridViewColumn column in dataGridView_0.Columns) + { + column.SortMode = DataGridViewColumnSortMode.NotSortable; + column.Width = 0x23; + } + this.ClearTable.Enabled = true; + this.StopTable.Enabled = true; + this.comboX.Enabled = true; + this.comboY.Enabled = true; + this.comboV.Enabled = true; + dataGridView_0.Enabled = true; + this.method_37(); + foreach (DataGridViewColumn column2 in dataGridView_0.Columns) + { + column2.SortMode = DataGridViewColumnSortMode.NotSortable; + } + dataGridView_0.TopLeftHeaderCell.Value = "RPM/MAP"; + index = 0; + string[] strArray5 = this.string_2; + for (int m = 0; m < strArray5.Length; m++) + { + this.method_40(index, 0x3e7, 0.0); + index++; + } + this.StartTable.Text = "Save and Close"; + this.bool_2 = true; + } + } + } + + private void StopTable_Click(object sender, EventArgs e) + { + if (bool_1) + { + this.timer_1.Enabled = false; + this.StartTable.Enabled = true; + this.StopTable.Text = "Start Trace"; + bool_1 = false; + } + else + { + this.StartTable.Enabled = false; + this.StopTable.Text = "Stop Trace"; + bool_1 = true; + this.thread_0 = new Thread(new ThreadStart(this.method_41)); + this.thread_0.Start(); + } + } + + protected override void Dispose(bool disposing) + { + if (disposing && (this.icontainer_0 != null)) + { + this.icontainer_0.Dispose(); + } + base.Dispose(disposing); + } + + private void timer_0_Tick(object sender, EventArgs e) + { + try + { + this.livegraph1.method_1(Convert.ToInt32(this.method_42(this.Graph1.Text))); + } + catch + { + } + try + { + this.livegraph2.method_1(Convert.ToInt32(this.method_42(this.Graph2.Text))); + } + catch + { + } + try + { + this.livegraph3.method_1(Convert.ToInt32(this.method_42(this.Graph3.Text))); + } + catch + { + } + try + { + this.livegraph4.method_1(Convert.ToInt32(this.method_42(this.Graph4.Text))); + } + catch + { + } + switch (frmOBD2Scan.int_186) + { + case 1: + try + { + frmOBD2Scan.int_185 = Convert.ToInt32(this.method_42(this.Graph1.Text)); + return; + } + catch + { + return; + } + break; + case 2: + break; + case 3: + goto IL_110; + case 4: + goto IL_131; + default: + return; + } + try + { + frmOBD2Scan.int_185 = Convert.ToInt32(this.method_42(this.Graph2.Text)); + return; + } + catch + { + return; + } + IL_110: + try + { + frmOBD2Scan.int_185 = Convert.ToInt32(this.method_42(this.Graph3.Text)); + return; + } + catch + { + return; + } + IL_131: + try + { + frmOBD2Scan.int_185 = Convert.ToInt32(this.method_42(this.Graph4.Text)); + } + catch + { + } + } + + private void timer_2_Tick(object sender, EventArgs e) + { + if (!this.bool_8) + { + if (this.serialPort_0 == null) + { + this.method_10(); + } + else if (!this.serialPort_0.IsOpen) + { + this.method_10(); + } + else + { + this.timer_2.Enabled = false; + if (this.thread_0 == null) + { + this.thread_0 = new Thread(new ThreadStart(this.method_30)); + this.thread_0.Start(); + } + } + } + else if (bool_10) + { + this.label2.Text = "J2534 Adapter: OpenPort 2.0"; + this.label3.Text = "Features: Extended CANBUS"; + if (!this.bool_9) + { + ColumnHeader column = this.listViewLive.Columns[0]; + this.listViewLive.Columns.Remove(column); + this.method_31(); + this.method_2(); + this.bool_9 = true; + } + this.listBoxPIDs.Enabled = false; + bool_11 = true; + this.timer_6.Enabled = true; + if (this.thread_0 == null) + { + this.thread_0 = new Thread(new ThreadStart(this.method_29)); + this.thread_0.Start(); + } + this.timer_2.Enabled = false; + } + else + { + if (!bool_11) + { + this.label2.Text = "J2534 Adapter: OpenPort 2.0"; + this.label3.Text = "Features: ALL SUPPORTED"; + this.method_10(); + this.method_19("0100"); + } + try + { + GetMessageResults messages = this.channel_0.GetMessages(2, 5); + if (messages.Result.IsOK()) + { + foreach (SAE.J2534.Message message in messages.Messages) + { + string str = smethod_2(message.Data); + if (str.Contains("41 00")) + { + this.bool_5 = false; + bool_11 = true; + this.timer_2.Interval = 50; + } + if (!this.bool_5) + { + this.method_34(); + } + else + { + this.timer_2.Enabled = false; + if (this.thread_0 == null) + { + this.thread_0 = new Thread(new ThreadStart(this.method_29)); + this.thread_0.Start(); + } + } + } + } + } + catch + { + } + } + } + + private void timer_3_Tick(object sender, EventArgs e) + { + List list = new List(SerialPort.GetPortNames()); + list.Sort(); + bool flag = false; + if (list.Count != this.cbPort.Items.Count) + { + flag = true; + } + else + { + for (int i = 0; i < list.Count; i++) + { + if (list[i] != this.cbPort.Items[i].ToString()) + { + flag = true; + } + } + } + if (flag) + { + this.cbPort.Items.Clear(); + this.cbPort.Items.AddRange(list.ToArray()); + this.cbPort.SelectedIndex = this.cbPort.Items.Count - 1; + } + } + + private void timer_4_Tick(object sender, EventArgs e) + { + if (this.int_184 > (this.listViewLive.Items.Count - 1)) + { + this.bool_7 = !this.bool_7; + this.int_184 = 0; + } + string text = this.listViewLive.Items[this.int_184].SubItems[0].Text; + if (this.bool_7) + { + this.method_19("01" + text); + this.method_3(); + } + else if ((!this.bool_7 && ((text != "05") && (text != "0A"))) && (text != "0F")) + { + this.method_19("01" + text); + this.method_3(); + } + this.int_184++; + } + + private void timer_6_Tick(object sender, EventArgs e) + { + try + { + this.method_4(this.int_0); + this.int_0 = 0; + } + catch + { + this.timer_6.Enabled = false; + } + } + + private void trackBar1_Scroll(object sender, EventArgs e) + { + this.groupBox5.Text = "Refresh Rate: " + this.trackBar1.Value.ToString(); + frmOBD2Scan.int_1 = this.trackBar1.Value; + this.timer_4.Interval = frmOBD2Scan.int_1; + } + + [Serializable, CompilerGenerated] + private sealed class TestClass //<>c + { + public static readonly frmOBD2Scan.TestClass Testval = new frmOBD2Scan.TestClass(); //<>9 + public static Func Testval1; //<>9__413_0 + public static Func Testval2; //<>9__452_0 + + internal bool method_0(int int_0) => + ((int_0 % 2) == 0); + + internal byte method_1(string string_0) => + Convert.ToByte(string_0, 0x10); + } + + [CompilerGenerated] + private sealed class Class35 + { + public frmOBD2Scan frmOBD2Scan_0; + public int int_0; + + internal void method_0() + { + this.frmOBD2Scan_0.gbStatus.Text = "Status: FPS " + this.int_0.ToString(); + } + } + + [CompilerGenerated] + private sealed class Class36 + { + public string string_0; + + internal byte method_0(int int_0) => + Convert.ToByte(this.string_0.Substring(int_0, 2), 0x10); + } + + private void gbConnection_Enter(object sender, EventArgs e) + { + + } +} + diff --git a/frmOBD2Scan.resx b/frmOBD2Scan.resx new file mode 100644 index 0000000..9524506 --- /dev/null +++ b/frmOBD2Scan.resx @@ -0,0 +1,150 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 603, 17 + + + 17, 17 + + + 143, 17 + + + 235, 17 + + + 327, 17 + + + 419, 17 + + + 511, 17 + + + 603, 17 + + + 705, 17 + + + 797, 17 + + \ No newline at end of file