433 lines
20 KiB
C#
433 lines
20 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
|
|
internal class parmKnockProtection : UserControl
|
|
{
|
|
private Class18 class18_0;
|
|
private ErrorProvider errorProvider_0;
|
|
private IContainer icontainer_0;
|
|
private bool bool_1;
|
|
private IContainer icontainer_1;
|
|
private GroupBox groupBox4;
|
|
private ComboBox lstInput;
|
|
private CheckBox checkBox1;
|
|
private Label label1;
|
|
private IContainer components;
|
|
private ctrlAdvTable ctrlAdvTableIgnClose;
|
|
private Label label10;
|
|
private Label label11;
|
|
private Panel panel1;
|
|
|
|
public parmKnockProtection(ref Class18 class18_1)
|
|
{
|
|
this.InitializeComponent();
|
|
|
|
this.class18_0 = class18_1;
|
|
this.class18_0.delegate55_0 += new Class18.Delegate55(this.method_5);
|
|
this.class18_0.delegate58_0 += new Class18.Delegate58(this.method_5);
|
|
|
|
//this.ctrlAdvTableIgnClose = new ctrlAdvTable();
|
|
//this.ctrlAdvTableIgnClose.Font = new Font("Lucida Sans", 8.25f, FontStyle.Regular, GraphicsUnit.Point, 0);
|
|
//this.ctrlAdvTableIgnClose.Location = new Point(0x23, 0x99);
|
|
//this.ctrlAdvTableIgnClose.Name = "ctrlAdvTableIgnClose";
|
|
//this.ctrlAdvTableIgnClose.Size = new Size(520, 0x52);
|
|
//this.ctrlAdvTableIgnClose.Enabled = false;
|
|
//this.groupBox4.Controls.Add(this.ctrlAdvTableIgnClose);
|
|
|
|
foreach (Control control in base.Controls)
|
|
{
|
|
float emSize = control.Font.Size * (class18_0.class10_settings_0.scaleRate / 100f);
|
|
control.Font = new Font(control.Font.Name, emSize, control.Font.Style, control.Font.Unit);
|
|
}
|
|
}
|
|
|
|
private void checkBox1_CheckedChanged(object sender, EventArgs e)
|
|
{
|
|
if (this.checkBox1.Checked)
|
|
{
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_512, 0x45);
|
|
if (this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_512 + 1L) != 0x45)
|
|
{
|
|
int num = 0;
|
|
while (true)
|
|
{
|
|
if (num >= 4)
|
|
{
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_512 + 1L, 0x45);
|
|
break;
|
|
}
|
|
float num2 = this.class18_0.method_189(this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_79 + num));
|
|
string s = num2.ToString("0.00");
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_79 + num, this.class18_0.method_221(float.Parse(s) - 10f));
|
|
num++;
|
|
}
|
|
}
|
|
this.lstInput.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
if (this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_512 + 1L) == 0x45)
|
|
{
|
|
int num3 = 0;
|
|
while (true)
|
|
{
|
|
if (num3 >= 4)
|
|
{
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_512 + 1L, 0xff);
|
|
break;
|
|
}
|
|
string s = this.class18_0.method_189(this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_79 + num3)).ToString("0.00");
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_79 + num3, this.class18_0.method_221(float.Parse(s) + 10f));
|
|
num3++;
|
|
}
|
|
}
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_512, 0xff);
|
|
this.lstInput.Enabled = false;
|
|
this.lstInput.SelectedIndex = 0;
|
|
}
|
|
}
|
|
|
|
private void parmKnockProtection_Load(object sender, EventArgs e)
|
|
{
|
|
bool flag = false;
|
|
byte num = this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_466);
|
|
if ((num != 0xff) && (num != 0))
|
|
{
|
|
if (this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_512) == 0x45)
|
|
{
|
|
flag = false;
|
|
this.lstInput.Enabled = true;
|
|
}
|
|
else
|
|
{
|
|
flag = true;
|
|
this.lstInput.Enabled = false;
|
|
}
|
|
}
|
|
if (this.class18_0.RomVersion >= 115 && !flag)
|
|
{
|
|
this.groupBox4.Enabled = true;
|
|
this.checkBox1.Checked = this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_512) == 0x45;
|
|
}
|
|
else
|
|
{
|
|
this.groupBox4.Text = "Knock Protection - Rom 1.15+ feature only";
|
|
if (flag)
|
|
{
|
|
this.groupBox4.Text = "Knock Protection - Can't use with Flex fuel!";
|
|
}
|
|
this.groupBox4.Enabled = false;
|
|
}
|
|
this.method_3(this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_466));
|
|
|
|
this.ctrlAdvTableIgnClose.method_HeaderGrayed(true);
|
|
this.ctrlAdvTableIgnClose.method_HasHeader(false);
|
|
this.ctrlAdvTableIgnClose.method_RowsNumber(2);
|
|
this.ctrlAdvTableIgnClose.method_ColumnsNumber(6);
|
|
this.ctrlAdvTableIgnClose.int_2 = 0x2a;
|
|
this.ctrlAdvTableIgnClose.delegate2_0 += new ctrlAdvTable.Delegate2(this.method_2);
|
|
this.ctrlAdvTableIgnClose.delegate1_0 += new ctrlAdvTable.Delegate1(this.method_1);
|
|
this.ctrlAdvTableIgnClose.delegate4_0 += new ctrlAdvTable.Delegate4(this.method_0);
|
|
this.ctrlAdvTableIgnClose.method_1(ref this.class18_0);
|
|
this.ctrlAdvTableIgnClose.method_SetIncreaser(0.25);
|
|
this.ctrlAdvTableIgnClose.method_Load();
|
|
if (this.lstInput.SelectedIndex == 0)
|
|
{
|
|
this.ctrlAdvTableIgnClose.Enabled = false;
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_466, (byte) this.lstInput.SelectedIndex);
|
|
}
|
|
else
|
|
{
|
|
this.ctrlAdvTableIgnClose.Enabled = true;
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_466, (byte) (this.lstInput.SelectedIndex + 1));
|
|
}
|
|
this.class18_0.method_153();
|
|
}
|
|
|
|
private void InitializeComponent()
|
|
{
|
|
this.components = new System.ComponentModel.Container();
|
|
this.errorProvider_0 = new System.Windows.Forms.ErrorProvider(this.components);
|
|
this.panel1 = new System.Windows.Forms.Panel();
|
|
this.groupBox4 = new System.Windows.Forms.GroupBox();
|
|
this.ctrlAdvTableIgnClose = new ctrlAdvTable();
|
|
this.label10 = new System.Windows.Forms.Label();
|
|
this.label1 = new System.Windows.Forms.Label();
|
|
this.label11 = new System.Windows.Forms.Label();
|
|
this.lstInput = new System.Windows.Forms.ComboBox();
|
|
this.checkBox1 = new System.Windows.Forms.CheckBox();
|
|
((System.ComponentModel.ISupportInitialize)(this.errorProvider_0)).BeginInit();
|
|
this.panel1.SuspendLayout();
|
|
this.groupBox4.SuspendLayout();
|
|
this.SuspendLayout();
|
|
//
|
|
// errorProvider_0
|
|
//
|
|
this.errorProvider_0.ContainerControl = this;
|
|
//
|
|
// panel1
|
|
//
|
|
this.panel1.AutoScroll = true;
|
|
this.panel1.Controls.Add(this.groupBox4);
|
|
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
|
this.panel1.Location = new System.Drawing.Point(0, 0);
|
|
this.panel1.Margin = new System.Windows.Forms.Padding(2);
|
|
this.panel1.Name = "panel1";
|
|
this.panel1.Size = new System.Drawing.Size(384, 162);
|
|
this.panel1.TabIndex = 1;
|
|
//
|
|
// groupBox4
|
|
//
|
|
this.groupBox4.Controls.Add(this.ctrlAdvTableIgnClose);
|
|
this.groupBox4.Controls.Add(this.label10);
|
|
this.groupBox4.Controls.Add(this.label1);
|
|
this.groupBox4.Controls.Add(this.label11);
|
|
this.groupBox4.Controls.Add(this.lstInput);
|
|
this.groupBox4.Controls.Add(this.checkBox1);
|
|
this.groupBox4.Location = new System.Drawing.Point(2, 2);
|
|
this.groupBox4.Margin = new System.Windows.Forms.Padding(2);
|
|
this.groupBox4.Name = "groupBox4";
|
|
this.groupBox4.Padding = new System.Windows.Forms.Padding(2);
|
|
this.groupBox4.Size = new System.Drawing.Size(369, 144);
|
|
this.groupBox4.TabIndex = 12;
|
|
this.groupBox4.TabStop = false;
|
|
this.groupBox4.Text = "Knock Protection:";
|
|
//
|
|
// ctrlAdvTableIgnClose
|
|
//
|
|
this.ctrlAdvTableIgnClose.Font = new System.Drawing.Font("Lucida Sans", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
|
this.ctrlAdvTableIgnClose.Location = new System.Drawing.Point(69, 87);
|
|
this.ctrlAdvTableIgnClose.Name = "ctrlAdvTableIgnClose";
|
|
this.ctrlAdvTableIgnClose.Size = new System.Drawing.Size(289, 42);
|
|
this.ctrlAdvTableIgnClose.TabIndex = 11;
|
|
//
|
|
// label10
|
|
//
|
|
this.label10.AutoSize = true;
|
|
this.label10.Location = new System.Drawing.Point(5, 112);
|
|
this.label10.Name = "label10";
|
|
this.label10.Size = new System.Drawing.Size(35, 13);
|
|
this.label10.TabIndex = 4;
|
|
this.label10.Text = "Ign(°):";
|
|
//
|
|
// label1
|
|
//
|
|
this.label1.AutoSize = true;
|
|
this.label1.Location = new System.Drawing.Point(17, 51);
|
|
this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0);
|
|
this.label1.Name = "label1";
|
|
this.label1.Size = new System.Drawing.Size(68, 13);
|
|
this.label1.TabIndex = 10;
|
|
this.label1.Text = "Knock Input:";
|
|
//
|
|
// label11
|
|
//
|
|
this.label11.AutoSize = true;
|
|
this.label11.Location = new System.Drawing.Point(5, 90);
|
|
this.label11.Name = "label11";
|
|
this.label11.Size = new System.Drawing.Size(59, 13);
|
|
this.label11.TabIndex = 3;
|
|
this.label11.Text = "Voltage(V):";
|
|
//
|
|
// lstInput
|
|
//
|
|
this.lstInput.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
|
this.lstInput.Enabled = false;
|
|
this.lstInput.FormattingEnabled = true;
|
|
this.lstInput.Items.AddRange(new object[] {
|
|
"Disabled",
|
|
"Analog D10 (ELD)",
|
|
"Analog D12 (EGR)",
|
|
"Analog B6 (B6)"});
|
|
this.lstInput.Location = new System.Drawing.Point(92, 50);
|
|
this.lstInput.Margin = new System.Windows.Forms.Padding(2);
|
|
this.lstInput.Name = "lstInput";
|
|
this.lstInput.Size = new System.Drawing.Size(153, 21);
|
|
this.lstInput.TabIndex = 4;
|
|
this.lstInput.SelectedIndexChanged += new System.EventHandler(this.lstInput_SelectedIndexChanged);
|
|
//
|
|
// checkBox1
|
|
//
|
|
this.checkBox1.AutoSize = true;
|
|
this.checkBox1.Location = new System.Drawing.Point(11, 23);
|
|
this.checkBox1.Margin = new System.Windows.Forms.Padding(2);
|
|
this.checkBox1.Name = "checkBox1";
|
|
this.checkBox1.Size = new System.Drawing.Size(108, 17);
|
|
this.checkBox1.TabIndex = 9;
|
|
this.checkBox1.Text = "Knock Protection";
|
|
this.checkBox1.UseVisualStyleBackColor = true;
|
|
this.checkBox1.CheckedChanged += new System.EventHandler(this.checkBox1_CheckedChanged);
|
|
//
|
|
// parmKnockProtection
|
|
//
|
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
|
this.Controls.Add(this.panel1);
|
|
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
|
this.Margin = new System.Windows.Forms.Padding(2);
|
|
this.Name = "parmKnockProtection";
|
|
this.Size = new System.Drawing.Size(384, 162);
|
|
this.Load += new System.EventHandler(this.parmKnockProtection_Load);
|
|
((System.ComponentModel.ISupportInitialize)(this.errorProvider_0)).EndInit();
|
|
this.panel1.ResumeLayout(false);
|
|
this.groupBox4.ResumeLayout(false);
|
|
this.groupBox4.PerformLayout();
|
|
this.ResumeLayout(false);
|
|
|
|
}
|
|
|
|
private void lstInput_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (!this.bool_1)
|
|
{
|
|
if (this.lstInput.SelectedIndex == 0)
|
|
{
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_466, (byte) this.lstInput.SelectedIndex);
|
|
}
|
|
else
|
|
{
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_466, (byte) (this.lstInput.SelectedIndex + 1));
|
|
}
|
|
if ((this.lstInput.SelectedIndex != 0) && (MessageBox.Show(Form.ActiveForm, "Do you want to set defaults values to knock Tables?", "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes))
|
|
{
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_510, 0xff);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_510 + 2L, 180);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_510 + 4L, 0x54);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_510 + 6L, 0);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_510 + 1L, 0xff);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_510 + 3L, 180);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_510 + 5L, 0x54);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_510 + 7L, 0);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_511, 0xff);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_511 + 3L, 0xcc);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_511 + 6L, 0x99);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_511 + 9L, 0x66);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_511 + 12L, 0x33);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_511 + 15L, 0);
|
|
this.class18_0.method_151(this.class18_0.class13_u_0.long_511 + 1L, 0L);
|
|
this.class18_0.method_151((this.class18_0.class13_u_0.long_511 + 3L) + 1L, 0L);
|
|
this.class18_0.method_151((this.class18_0.class13_u_0.long_511 + 6L) + 1L, 0L);
|
|
this.class18_0.method_151((this.class18_0.class13_u_0.long_511 + 9L) + 1L, 0L);
|
|
this.class18_0.method_151((this.class18_0.class13_u_0.long_511 + 12L) + 1L, 0L);
|
|
this.class18_0.method_151((this.class18_0.class13_u_0.long_511 + 15L) + 1L, 0L);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_514, 0xff);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_514 + 2L, 0xcc);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_514 + 4L, 0x99);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_514 + 6L, 0x66);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_514 + 8L, 0x33);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_514 + 10L, 0);
|
|
this.class18_0.SetByteAt((this.class18_0.class13_u_0.long_514 + 10L) + 1L, 40);
|
|
this.class18_0.SetByteAt((this.class18_0.class13_u_0.long_514 + 8L) + 1L, 0x23);
|
|
this.class18_0.SetByteAt((this.class18_0.class13_u_0.long_514 + 6L) + 1L, 30);
|
|
this.class18_0.SetByteAt((this.class18_0.class13_u_0.long_514 + 4L) + 1L, 0x19);
|
|
this.class18_0.SetByteAt((this.class18_0.class13_u_0.long_514 + 2L) + 1L, 15);
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_514 + 1L, 0);
|
|
}
|
|
this.class18_0.method_153();
|
|
this.method_4();
|
|
}
|
|
}
|
|
|
|
private void method_0(DataGridViewCellValidatingEventArgs dataGridViewCellValidatingEventArgs_0)
|
|
{
|
|
dataGridViewCellValidatingEventArgs_0.Cancel = !this.class18_0.method_252(dataGridViewCellValidatingEventArgs_0.FormattedValue.ToString());
|
|
if (!dataGridViewCellValidatingEventArgs_0.Cancel)
|
|
{
|
|
this.ctrlAdvTableIgnClose.grid.CurrentCell.ErrorText = "";
|
|
}
|
|
else
|
|
{
|
|
this.ctrlAdvTableIgnClose.grid.CurrentCell.ErrorText = "Invalid input";
|
|
dataGridViewCellValidatingEventArgs_0.Cancel = false;
|
|
}
|
|
}
|
|
|
|
private void method_1(DataGridViewCellValueEventArgs dataGridViewCellValueEventArgs_0)
|
|
{
|
|
this.class18_0.method_155("Knock Table");
|
|
if (dataGridViewCellValueEventArgs_0.RowIndex == 0)
|
|
{
|
|
string s = smethod_0(float.Parse(dataGridViewCellValueEventArgs_0.Value.ToString()), 0f, 5f, 0f, 100f).ToString();
|
|
this.class18_0.SetByteAt(this.class18_0.class13_u_0.long_514 + ((5 - dataGridViewCellValueEventArgs_0.ColumnIndex) * 2), this.class18_0.method_189_EthanolByte(double.Parse(s)));
|
|
}
|
|
else if (dataGridViewCellValueEventArgs_0.RowIndex == 1)
|
|
{
|
|
string s = smethod_0(float.Parse(dataGridViewCellValueEventArgs_0.Value.ToString()), 0f, -10f, 10f, 0f).ToString();
|
|
this.class18_0.SetByteAt((this.class18_0.class13_u_0.long_514 + ((5 - dataGridViewCellValueEventArgs_0.ColumnIndex) * 2)) + 1L, (byte) (float.Parse(s) * 4f));
|
|
}
|
|
this.class18_0.method_153();
|
|
}
|
|
|
|
private void method_2(DataGridViewCellValueEventArgs dataGridViewCellValueEventArgs_0)
|
|
{
|
|
if (dataGridViewCellValueEventArgs_0.RowIndex == 0)
|
|
{
|
|
float num = float.Parse(this.class18_0.method_189_Ethanol(this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_514 + ((5 - dataGridViewCellValueEventArgs_0.ColumnIndex) * 2))).ToString("0"));
|
|
dataGridViewCellValueEventArgs_0.Value = smethod_0(num, 100f, 0f, 5f, 0f).ToString("0.00");
|
|
}
|
|
else if (dataGridViewCellValueEventArgs_0.RowIndex == 1)
|
|
{
|
|
float num4 = float.Parse(this.class18_0.method_223(this.class18_0.GetByteAt((this.class18_0.class13_u_0.long_514 + ((5 - dataGridViewCellValueEventArgs_0.ColumnIndex) * 2)) + 1L)).ToString("0.00"));
|
|
dataGridViewCellValueEventArgs_0.Value = smethod_0(num4, 0f, 10f, -10f, 0f).ToString("0.00");
|
|
}
|
|
}
|
|
|
|
public void method_3(byte byte_0)
|
|
{
|
|
this.bool_1 = true;
|
|
switch (byte_0)
|
|
{
|
|
case 0:
|
|
this.lstInput.SelectedIndex = 0;
|
|
break;
|
|
|
|
case 1:
|
|
break;
|
|
|
|
case 2:
|
|
this.lstInput.SelectedIndex = 1;
|
|
break;
|
|
|
|
case 3:
|
|
this.lstInput.SelectedIndex = 2;
|
|
break;
|
|
|
|
case 4:
|
|
this.lstInput.SelectedIndex = 3;
|
|
break;
|
|
|
|
default:
|
|
if (byte_0 == 0xff)
|
|
{
|
|
this.lstInput.SelectedIndex = 0;
|
|
}
|
|
break;
|
|
}
|
|
this.bool_1 = false;
|
|
}
|
|
|
|
private void method_4()
|
|
{
|
|
this.parmKnockProtection_Load(null, null);
|
|
}
|
|
|
|
private void method_5()
|
|
{
|
|
}
|
|
|
|
public static float smethod_0(float float_0, float float_1, float float_2, float float_3, float float_4) =>
|
|
((((float_0 - float_1) / (float_2 - float_1)) * (float_4 - float_3)) + float_3);
|
|
|
|
protected override void Dispose(bool disposing)
|
|
{
|
|
if (disposing && (this.icontainer_0 != null))
|
|
{
|
|
this.icontainer_0.Dispose();
|
|
}
|
|
base.Dispose(disposing);
|
|
}
|
|
}
|
|
|