5125 lines
197 KiB
C#
5125 lines
197 KiB
C#
using Data;
|
|
//using PropertiesRes;
|
|
using Microsoft.Win32;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Diagnostics;
|
|
using System.Globalization;
|
|
using System.IO;
|
|
using System.IO.Compression;
|
|
using System.IO.Ports;
|
|
using System.Runtime.CompilerServices;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Timers;
|
|
using System.Windows.Forms;
|
|
|
|
internal class Class17
|
|
{
|
|
private BackgroundWorker backgroundWorker_0 = new BackgroundWorker();
|
|
private BackgroundWorker backgroundWorker_1 = new BackgroundWorker();
|
|
private BackgroundWorker backgroundWorker_2;
|
|
private BinaryReader binaryReader_0;
|
|
private bool bool_0;
|
|
private bool bool_1;
|
|
private bool IsUSBConnected = true;
|
|
private bool bool_11;
|
|
private bool bool_12;
|
|
private bool bool_13;
|
|
private bool bool_15 = true;
|
|
private bool bool_16;
|
|
private bool bool_17;
|
|
private bool bool_2;
|
|
private bool bool_3;
|
|
private bool bool_4;
|
|
private bool bool_5;
|
|
private bool bool_6;
|
|
private bool bool_7 = false;
|
|
private bool bool_71;
|
|
private bool bool_72;
|
|
private bool bool_8;
|
|
private bool bool_9;
|
|
private byte byte_0;
|
|
private Class10_settings class10_settings_0;
|
|
private Class18 class18_0;
|
|
internal Class33_Sensors class33_Sensors;
|
|
internal Class2_serialWB class2_serialWB_0;
|
|
private Class25 class25_0;
|
|
private DataloggingState dataloggingState_0 = DataloggingState.Disconnected;
|
|
private DataloggingState dataloggingState_1;
|
|
internal Enum10 enum10_0;
|
|
internal Enum9 enum9_0;
|
|
private FileStream fileStream_0;
|
|
public FrmMain frmMain_0;
|
|
private int int_0;
|
|
private int int_1;
|
|
private int int_2;
|
|
private List<Struct12> list_0;
|
|
internal List<Struct22> list_1 = new List<Struct22>();
|
|
private long long_0;
|
|
public long long_1;
|
|
private long long_2;
|
|
private long long_3;
|
|
private long long_4;
|
|
private Queue<Struct12> queue_0 = new Queue<Struct12>();
|
|
public SerialPort serialPort_0;
|
|
private Stopwatch stopwatch_0 = new Stopwatch();
|
|
private Stopwatch stopwatch_1 = new Stopwatch();
|
|
private Stopwatch stopwatch_2 = new Stopwatch();
|
|
private string string_0 = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\~tmp.bml";
|
|
private string string_1 = string.Empty;
|
|
public string string_2;
|
|
private Struct12 struct12_0 = new Struct12();
|
|
private Struct17 struct17_0 = new Struct17();
|
|
private Struct20 struct20_0 = new Struct20();
|
|
private Struct23 struct23_0 = new Struct23();
|
|
private Thread thread_0;
|
|
private Thread thread_1;
|
|
private Thread thread_2;
|
|
private System.Timers.Timer timer_0 = new System.Timers.Timer(10.0);
|
|
private System.Timers.Timer timer_1 = new System.Timers.Timer(100.0);
|
|
private System.Windows.Forms.Timer timer_2;
|
|
private long FrameCounts = 0;
|
|
private int ConnectRetry = 0;
|
|
|
|
private DateTime LastCheck = DateTime.Now;
|
|
private bool FakeDatalog = false;
|
|
public bool TryingtoConnect = false;
|
|
|
|
public event Delegate46 delegate46_0;
|
|
public event Delegate54 delegate54_0;
|
|
public event Delegate50 delegate50_0;
|
|
public event Delegate48 delegate48_0;
|
|
public event Delegate49 delegate49_0;
|
|
public event Delegate47 delegate47_0;
|
|
public event Delegate45 delegate45_0;
|
|
public event Delegate53 delegate53_0; //event only running on datalog log file loading
|
|
|
|
internal Class17() //refer to Class11 in HTS
|
|
{
|
|
this.backgroundWorker_0.WorkerSupportsCancellation = true;
|
|
this.backgroundWorker_0.WorkerReportsProgress = false;
|
|
this.backgroundWorker_0.DoWork += new DoWorkEventHandler(this.backgroundWorker_0_DoWork);
|
|
this.backgroundWorker_1.WorkerReportsProgress = false;
|
|
this.backgroundWorker_1.WorkerSupportsCancellation = true;
|
|
this.backgroundWorker_1.DoWork += new DoWorkEventHandler(this.backgroundWorker_1_DoWork);
|
|
this.backgroundWorker_1.RunWorkerCompleted += new RunWorkerCompletedEventHandler(this.backgroundWorker_1_RunWorkerCompleted);
|
|
this.timer_0.Elapsed += new ElapsedEventHandler(this.timer_0_Elapsed);
|
|
this.timer_1.Elapsed += new ElapsedEventHandler(this.timer_1_Elapsed);
|
|
Control.CheckForIllegalCrossThreadCalls = false;
|
|
SystemEvents.PowerModeChanged += new PowerModeChangedEventHandler(this.method_6);
|
|
}
|
|
|
|
private void backgroundWorker_0_DoWork(object sender, DoWorkEventArgs e)
|
|
{
|
|
if (!FakeDatalog)
|
|
{
|
|
try
|
|
{
|
|
this.method_18();
|
|
}
|
|
catch (ArgumentOutOfRangeException)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, "Can't open port:" + this.class10_settings_0.string_1, "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
goto Label_0C1E;
|
|
}
|
|
}
|
|
int num = 0x33; //<- 51 to 56
|
|
int num2 = 0x10;
|
|
int num3 = 0x19;
|
|
byte[] buffer_0 = new byte[num + 1];
|
|
int num4 = 0;
|
|
this.long_1 = 0L;
|
|
/*if (!this.method_28())
|
|
{
|
|
goto Label_0C1E;
|
|
}*/
|
|
if (this.class10_settings_0.bool_25) //WidebandSerialInput
|
|
{
|
|
try
|
|
{
|
|
if (!this.class2_serialWB_0.method_2())
|
|
{
|
|
goto Label_0C1E;
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, exception.Message, "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
goto Label_0C1E;
|
|
}
|
|
}
|
|
this.method_35(true); //set connected
|
|
if (this.class10_settings_0.bool_8 || this.method_23())
|
|
{
|
|
this.method_4(DataloggingState.Recording);
|
|
}
|
|
|
|
//############
|
|
Label_00F3:
|
|
if (this.serialPort_0 != null) this.serialPort_0.WriteTimeout = 300;
|
|
while (this.bool_4)
|
|
{
|
|
//this.LogThis("in wait for emulator");
|
|
this.DiscardBuffer();
|
|
this.bool_3 = true;
|
|
DataloggingState state = this.method_3();
|
|
this.method_4(DataloggingState.Waiting);
|
|
while (this.class25_0.method_11())
|
|
{
|
|
Thread.Sleep(20);
|
|
}
|
|
this.method_4(state);
|
|
this.bool_4 = false;
|
|
this.bool_3 = false;
|
|
}
|
|
this.int_0 = 0;
|
|
ConnectRetry = 0;
|
|
|
|
//############
|
|
Label_0105:
|
|
if (this.bool_9)
|
|
{
|
|
this.LogThis("Mil reset request");
|
|
try
|
|
{
|
|
byte num5 = 80;
|
|
if (this.int_0 == this.class10_settings_0.int_21)
|
|
{
|
|
this.LogThis("Reset MIL Failed");
|
|
MessageBox.Show(Form.ActiveForm, "Reset MIL Failed", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
}
|
|
if (this.class10_settings_0.dataloggingMode_0 == DataloggingMode.datalogDemon)
|
|
{
|
|
this.method_47();
|
|
this.method_48();
|
|
buffer_0 = new byte[4];
|
|
this.method_11(buffer_0, 4);
|
|
num5 = buffer_0[1];
|
|
}
|
|
else
|
|
{
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
this.serialPort_0.Write('P'.ToString());
|
|
num5 = (byte)this.serialPort_0.ReadByte();
|
|
}
|
|
}
|
|
if (num5 != 80)
|
|
{
|
|
this.LogThis("Mil reset failed");
|
|
if (this.serialPort_0 != null) this.serialPort_0.DiscardInBuffer();
|
|
this.int_0++;
|
|
goto Label_0105;
|
|
}
|
|
this.LogThis("Mil reset finished");
|
|
}
|
|
catch (Exception)
|
|
{
|
|
if (this.serialPort_0 != null) this.serialPort_0.DiscardInBuffer();
|
|
this.int_0++;
|
|
goto Label_0105;
|
|
}
|
|
this.bool_9 = false;
|
|
goto Label_00F3;
|
|
}
|
|
if (!this.method_28())
|
|
{
|
|
goto Label_0C1E;
|
|
}
|
|
if (this.class10_settings_0.dataloggingMode_0 == DataloggingMode.datalogDemon)
|
|
{
|
|
this.method_46();
|
|
}
|
|
this.stopwatch_1.Start();
|
|
if ((this.class10_settings_0.dataloggingMode_0 != DataloggingMode.datalogMultiByteX) && (this.class10_settings_0.dataloggingMode_0 != DataloggingMode.datalogMultiByteT))
|
|
{
|
|
goto Label_070C;
|
|
}
|
|
|
|
//############
|
|
Label_027C:
|
|
if (this.backgroundWorker_0.CancellationPending)
|
|
{
|
|
goto Label_0C1E;
|
|
}
|
|
if (this.bool_4 || this.bool_9)
|
|
{
|
|
goto Label_00F3;
|
|
}
|
|
if (this.class10_settings_0.bool_28)
|
|
{
|
|
this.class10_settings_0.method_10();
|
|
}
|
|
this.stopwatch_0.Start();
|
|
this.stopwatch_1.Start();
|
|
num4++;
|
|
try
|
|
{
|
|
if (!FakeDatalog) this.serialPort_0.Write(this.GetDatalogCommand());
|
|
//this.LogThis("Send datalogging command: '" + this.method_31() + "'");
|
|
//if (this.serialPort_0 != null) this.serialPort_0.Write(this.GetDatalogCommand());
|
|
if (this.int_0 == this.class10_settings_0.int_21)
|
|
{
|
|
this.LogThis("Timeout");
|
|
this.method_4(DataloggingState.Timeout);
|
|
this.stopwatch_0.Stop();
|
|
this.stopwatch_1.Stop();
|
|
while (!this.backgroundWorker_0.CancellationPending)
|
|
{
|
|
try
|
|
{
|
|
if (!this.method_18() || !this.method_29(false))
|
|
{
|
|
continue;
|
|
}
|
|
this.LogThis("Timeout but found ISR");
|
|
bool flag = false;
|
|
if (this.method_50())
|
|
{
|
|
flag = true;
|
|
this.timer_0.Stop();
|
|
}
|
|
this.method_4(DataloggingState.Connected);
|
|
if (flag)
|
|
{
|
|
this.timer_0.Start();
|
|
this.method_4(DataloggingState.Recording);
|
|
}
|
|
num4 = 0;
|
|
goto Label_00F3;
|
|
}
|
|
catch (Exception exception2)
|
|
{
|
|
this.LogThis("Timeout Error " + exception2.Message);
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.method_42(); //clear checksum
|
|
int NLenght = 0;
|
|
if (this.class10_settings_0.method_8() == DataloggingTable.tableMain) NLenght = num;
|
|
else if (this.class10_settings_0.method_8() == DataloggingTable.tableMinimal) NLenght = num2;
|
|
else if (this.class10_settings_0.method_8() == DataloggingTable.table3) NLenght = num3;
|
|
|
|
//###############
|
|
//read datalog bytes array
|
|
if (FakeDatalog)
|
|
{
|
|
buffer_0 = FakeThisDatalog(NLenght);
|
|
}
|
|
else
|
|
{
|
|
for (int i = 0; i < NLenght; i++)
|
|
{
|
|
buffer_0[i] = this.method_7();
|
|
this.method_43(buffer_0[i]); //add to cheksum
|
|
}
|
|
}
|
|
//###############
|
|
|
|
if (!FakeDatalog)
|
|
{
|
|
//compare array with checksum
|
|
if (this.method_7() != this.method_41())
|
|
{
|
|
this.LogThis("Bad checksum on packet");
|
|
if (this.serialPort_0 != null) this.serialPort_0.DiscardInBuffer();
|
|
goto Label_027C;
|
|
}
|
|
}
|
|
if ((buffer_0[6] == 0) && (buffer_0[7] == 0))
|
|
{
|
|
this.LogThis("Received buffer is empty");
|
|
goto Label_027C;
|
|
}
|
|
this.struct12_0 = this.method_38(buffer_0);
|
|
this.method_49(this.struct12_0);
|
|
if (this.method_50())
|
|
{
|
|
this.queue_0.Enqueue(this.struct12_0);
|
|
}
|
|
if ((!FakeDatalog && num4 == (this.class10_settings_0.int_25 + 1)) || (FakeDatalog && num4 == 20))
|
|
{
|
|
num4 = 0;
|
|
this.method_40_SendBytes_Delegate();
|
|
}
|
|
if (!this.backgroundWorker_0.CancellationPending)
|
|
{
|
|
this.long_1 += 1L;
|
|
goto Label_027C;
|
|
}
|
|
}
|
|
goto Label_0C1E;
|
|
}
|
|
catch (TimeoutException)
|
|
{
|
|
this.LogThis("Read Timeout! (set the timeout higher in the setting to possibly avoid this issue)");
|
|
this.int_0++;
|
|
num4 = 0;
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
this.serialPort_0.DiscardOutBuffer();
|
|
this.serialPort_0.DiscardInBuffer();
|
|
}
|
|
goto Label_027C;
|
|
}
|
|
catch (Exception exception3)
|
|
{
|
|
if (exception3.Message == "Innovate Connection Error detected")
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, exception3.Message);
|
|
goto Label_0C1E;
|
|
}
|
|
this.LogThis("Read Error " + exception3.Message);
|
|
if (this.class10_settings_0.IsBluetooth)
|
|
{
|
|
this.int_0++;
|
|
num4 = 0;
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
if (this.serialPort_0.IsOpen)
|
|
{
|
|
this.serialPort_0.DiscardOutBuffer();
|
|
this.serialPort_0.DiscardInBuffer();
|
|
}
|
|
}
|
|
if (this.int_0 != this.class10_settings_0.int_21) goto Label_027C;
|
|
|
|
//bluetooth disconnect
|
|
this.method_4(DataloggingState.Timeout);
|
|
/*if (!this.class10_settings_0.bool_31)
|
|
{
|
|
try
|
|
{
|
|
if (this.serialPort_0 != null) this.serialPort_0.Close();
|
|
if (this.serialPort_0 != null) this.serialPort_0.Dispose();
|
|
}
|
|
catch { }
|
|
this.serialPort_0 = null;
|
|
}
|
|
else if (this.class10_settings_0.bool_31)
|
|
{
|
|
this.class25_0.EmulatorDisconnect();
|
|
}*/
|
|
this.method_35(false);
|
|
this.LogThis("Bluetooth might be unpowered!");
|
|
//this.method_2()
|
|
this.method_20();
|
|
//goto Label_0C1E;
|
|
}
|
|
else if (!this.IsUSBConnected)
|
|
{
|
|
if (!this.class10_settings_0.bool_31)
|
|
{
|
|
try
|
|
{
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
if (this.serialPort_0.IsOpen) this.serialPort_0.Close();
|
|
this.serialPort_0.Dispose();
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
this.serialPort_0 = null;
|
|
}
|
|
else if (this.class10_settings_0.bool_31)
|
|
{
|
|
this.class25_0.EmulatorDisconnect();
|
|
}
|
|
this.timer_1.Stop();
|
|
this.LogThis("Read Error Port unavailable");
|
|
MessageBox.Show(Form.ActiveForm, "USB error port not available", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
|
|
//this.method_2();
|
|
this.method_20();
|
|
}
|
|
|
|
//##################
|
|
//new disconnect code
|
|
if (this.int_0 == this.class10_settings_0.int_21)
|
|
{
|
|
//this.method_2();
|
|
//this.method_20();
|
|
goto Label_0C1E;
|
|
}
|
|
//######################
|
|
|
|
this.int_0++;
|
|
num4 = 0;
|
|
goto Label_027C;
|
|
}
|
|
Label_070C:
|
|
if (this.class10_settings_0.dataloggingMode_0 != DataloggingMode.datalogDemon)
|
|
{
|
|
goto Label_0BAF;
|
|
}
|
|
//Datlogging for demon
|
|
Label_071D:
|
|
if (this.backgroundWorker_0.CancellationPending)
|
|
{
|
|
goto Label_0C1E;
|
|
}
|
|
if (this.bool_4 || this.bool_9)
|
|
{
|
|
goto Label_00F3;
|
|
}
|
|
if (this.class10_settings_0.bool_28)
|
|
{
|
|
this.class10_settings_0.method_10();
|
|
}
|
|
this.stopwatch_0.Start();
|
|
this.stopwatch_1.Start();
|
|
num4++;
|
|
try
|
|
{
|
|
buffer_0 = new byte[0x37];
|
|
byte[] buffer2 = new byte[0x33];
|
|
this.method_48();
|
|
if (this.int_0 == this.class10_settings_0.int_21)
|
|
{
|
|
this.LogThis("Timeout");
|
|
this.method_4(DataloggingState.Timeout);
|
|
this.stopwatch_0.Stop();
|
|
this.stopwatch_1.Stop();
|
|
while (!this.backgroundWorker_0.CancellationPending)
|
|
{
|
|
try
|
|
{
|
|
//this.LogThis("Timeout - Cancellation Pending");
|
|
if (!this.method_18())
|
|
{
|
|
continue;
|
|
}
|
|
//this.LogThis("comm open");
|
|
if (!this.method_29(false))
|
|
{
|
|
continue;
|
|
}
|
|
bool flag2 = false;
|
|
if (this.method_50())
|
|
{
|
|
flag2 = true;
|
|
this.timer_0.Stop();
|
|
}
|
|
this.method_4(DataloggingState.Connected);
|
|
if (flag2)
|
|
{
|
|
this.timer_0.Start();
|
|
this.method_4(DataloggingState.Recording);
|
|
}
|
|
num4 = 0;
|
|
goto Label_00F3;
|
|
}
|
|
catch (Exception exception4)
|
|
{
|
|
this.LogThis("Error " + exception4.Message);
|
|
continue;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.method_42();
|
|
if (this.class10_settings_0.method_8() != DataloggingTable.tableMain)
|
|
{
|
|
this.class18_0.class17_0.frmMain_0.LogThis(this.class25_0.emulatorMoatesType_0 + " does not support multi tables yet");
|
|
goto Label_0C1E;
|
|
//return;
|
|
//throw new Exception(this.class25_0.emulatorMoatesType_0 + " does not support multi tables yet");
|
|
}
|
|
this.method_11(buffer_0, 0x36);
|
|
this.method_44(buffer_0, 0x36);
|
|
if (this.method_7() != this.method_41())
|
|
{
|
|
this.LogThis("Bad checksum on packet from " + this.class25_0.emulatorMoatesType_0); //demon
|
|
goto Label_071D;
|
|
}
|
|
if (buffer_0[1] == 0x54)
|
|
{
|
|
this.LogThis("ecu to demon Read timeout!");
|
|
this.int_0++;
|
|
num4 = 0;
|
|
this.DiscardBuffer();
|
|
goto Label_071D;
|
|
}
|
|
for (int m = 0; m < 0x33; m++)
|
|
{
|
|
buffer2[m] = buffer_0[m + 1];
|
|
}
|
|
this.method_42();
|
|
this.method_44(buffer2, 0x33);
|
|
byte num12 = buffer_0[0x34];
|
|
if (num12 == this.method_41())
|
|
{
|
|
this.struct12_0 = this.method_38(buffer2);
|
|
}
|
|
this.method_49(this.struct12_0);
|
|
if (this.method_50())
|
|
{
|
|
this.queue_0.Enqueue(this.struct12_0);
|
|
}
|
|
if (num4 == (this.class10_settings_0.int_25 + 1))
|
|
{
|
|
num4 = 0;
|
|
this.method_40_SendBytes_Delegate();
|
|
}
|
|
if (!this.backgroundWorker_0.CancellationPending)
|
|
{
|
|
this.long_1 += 1L;
|
|
goto Label_071D;
|
|
}
|
|
}
|
|
goto Label_0C1E;
|
|
}
|
|
catch (TimeoutException)
|
|
{
|
|
this.LogThis(this.class25_0.emulatorMoatesType_0 + " Read Timeout (set the timeout higher in the setting to possibly avoid this issue)");
|
|
this.int_0++;
|
|
num4 = 0;
|
|
this.DiscardBuffer();
|
|
goto Label_071D;
|
|
}
|
|
catch (Exception exception5)
|
|
{
|
|
if (exception5.Message == "Innovate Connection Error detected")
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, exception5.Message);
|
|
goto Label_0C1E;
|
|
}
|
|
this.LogThis("Error " + exception5.Message);
|
|
/*if (((exception5.Message == "Access to the port is denied.") || (exception5.Message == "The port is closed.")) || (exception5.Message == "A device attached to the system is not functioning.\r" + Environment.NewLine + ""))
|
|
{
|
|
this.serialPort_0 = null;
|
|
goto Label_0C1E;
|
|
}*/
|
|
if (!this.IsUSBConnected)
|
|
{
|
|
this.serialPort_0 = null;
|
|
//this.method_2();
|
|
//this.method_20();
|
|
this.LogThis("Port unavailable");
|
|
MessageBox.Show(Form.ActiveForm, "USB port not available", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
goto Label_0C1E;
|
|
}
|
|
this.int_0++;
|
|
num4 = 0;
|
|
goto Label_071D;
|
|
}
|
|
Label_0BAF:
|
|
this.class18_0.class17_0.frmMain_0.LogThis(this.class25_0.emulatorMoatesType_0 + " datalog protocol not selected");
|
|
return;
|
|
//throw new Exception(this.class25_0.emulatorMoatesType_0 + " datalog protocol not selected");
|
|
Label_0C1E:
|
|
if (this.class10_settings_0.bool_25 && (this.class2_serialWB_0 != null))
|
|
{
|
|
this.class2_serialWB_0.method_3();
|
|
}
|
|
if (this.timer_1.Enabled)
|
|
{
|
|
this.timer_1.Stop();
|
|
}
|
|
this.bool_3 = false;
|
|
this.bool_4 = false;
|
|
this.long_1 = 0L;
|
|
this.stopwatch_1.Reset();
|
|
this.method_20();
|
|
this.method_51(false);
|
|
LogThis(string_1);
|
|
}
|
|
|
|
private byte[] FakeThisDatalog(int num)
|
|
{
|
|
byte[] buffer_0 = { 0X7E, 0X8F, 0XA7, 0XF9, 0X2E, 0X2E, 0X1B, 0X03, 0X01, 0X08, 0X03, 0X00, 0X00, 0X20, 0X00, 0X04, 0X00, 0X55, 0X04, 0XAE, 0X97, 0X08, 0X6D, 0X20, 0X00, 0X82, 0X95, 0X8F, 0X82, 0X00, 0X80, 0XA6, 0X81, 0X80, 0X80, 0X97, 0X80, 0X80, 0X01, 0X00, 0X00, 0X00, 0X00, 0X00, 0X00, 0X7F, 0X3B, 0XAA, 0X00, 0XCC, 0X02, 0X23 };
|
|
|
|
Random rnd = new Random();
|
|
buffer_0[0] = (byte) rnd.Next(0,255);
|
|
buffer_0[1] = (byte)rnd.Next(0, 255);
|
|
buffer_0[5] = (byte)rnd.Next(0, 255);
|
|
/*byte[] buffer_0 = new byte[num + 1];
|
|
for (int i = 0; i < num; i++)
|
|
{
|
|
if (i == 0) buffer_0[i] = 180;
|
|
else if (i == 1) buffer_0[i] = 90;
|
|
else if (i == 2) buffer_0[i] = 127;
|
|
else if (i == 4) buffer_0[i] = 20;
|
|
else if (i == 5) buffer_0[i] = 0; //tps
|
|
else if (i == 6) buffer_0[i] = 0xb0; //rpm1
|
|
else if (i == 7) buffer_0[i] = 0x04; //rpm2
|
|
else if (i == 8) buffer_0[i] = 65;
|
|
|
|
else buffer_0[i] = this.method_7();
|
|
this.method_43(buffer_0[i]);
|
|
}*/
|
|
return buffer_0;
|
|
}
|
|
|
|
private void backgroundWorker_1_DoWork(object sender, DoWorkEventArgs e)
|
|
{
|
|
while ((this.queue_0.Count != 0) && !this.backgroundWorker_1.CancellationPending)
|
|
{
|
|
this.method_52(this.queue_0.Dequeue());
|
|
}
|
|
}
|
|
|
|
private void backgroundWorker_1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
|
|
{
|
|
this.timer_0.Start();
|
|
}
|
|
|
|
public void SetDemonDatalogCheck(bool bool_16_0)
|
|
{
|
|
this.bool_16 = bool_16_0;
|
|
}
|
|
|
|
private void backgroundWorker_2_DoWork(object sender, DoWorkEventArgs e)
|
|
{
|
|
if ((this.class10_settings_0.dataloggingMode_0 != DataloggingMode.datalogDemon) || !this.class10_settings_0.bool_31)
|
|
{
|
|
goto Label_0500;
|
|
}
|
|
|
|
//###################################################################################
|
|
//###################################################################################
|
|
//###################################################################################
|
|
//Section for Demon Datalogging!! trying on cached port!
|
|
if (this.method_34_GetConnected())
|
|
{
|
|
this.bool_11 = true;
|
|
return;
|
|
}
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " detection started");
|
|
if ((this.class10_settings_0.Datalog_Baud != 921600) && (this.class10_settings_0.Datalog_Baud != 115200)) this.LogThis("The baudrate is not compatible for the Demon" + Environment.NewLine + "Please set baudrate to 921600 (or 115200)");
|
|
int dtCommCache = 1;
|
|
string[] portNames = SerialPort.GetPortNames();
|
|
try
|
|
{
|
|
if (this.class10_settings_0.dtCommCache != 0)
|
|
{
|
|
dtCommCache = this.class10_settings_0.dtCommCache;
|
|
this.bool_11 = false;
|
|
LogThis("Cached port: COM" + dtCommCache.ToString() + " (baud: " + this.class10_settings_0.Datalog_Baud.ToString() + ")");
|
|
try //not used
|
|
{
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
if (this.serialPort_0.IsOpen)
|
|
{
|
|
this.serialPort_0.Close();
|
|
}
|
|
this.serialPort_0.Dispose();
|
|
this.serialPort_0 = null;
|
|
}
|
|
}
|
|
catch { }
|
|
bool flag = false;
|
|
if (!this.class10_settings_0.IsBluetooth)
|
|
{
|
|
for (int i = 0; i < portNames.Length; i++)
|
|
{
|
|
if (portNames[i] == ("COM" + dtCommCache.ToString()))
|
|
{
|
|
flag = true;
|
|
}
|
|
}
|
|
}
|
|
else flag = true;
|
|
|
|
|
|
if (flag)
|
|
{
|
|
this.serialPort_0 = new SerialPort("COM" + dtCommCache.ToString(), this.class10_settings_0.Datalog_Baud);
|
|
this.serialPort_0.ReadTimeout = this.class10_settings_0.int_20;
|
|
this.serialPort_0.WriteTimeout = 300;
|
|
//if (this.class10_settings_0.emulatorMode_0 != EmulatorMode.Demon && this.class10_settings_0.IsBluetooth) this.serialPort_0.WriteTimeout = 300;
|
|
this.serialPort_0.ReadBufferSize = 0x1100;
|
|
this.serialPort_0.Encoding = Encoding.Default;
|
|
this.serialPort_0.Open();
|
|
LogThis("Cached port: COM" + dtCommCache.ToString() + " open" + " (baud: " + this.class10_settings_0.Datalog_Baud.ToString() + ")");
|
|
bool flagT = this.class25_0.IsEmulatorConnected(false);
|
|
if (flagT)
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " found");
|
|
if (this.bool_16)
|
|
{
|
|
if (this.method_29(false))
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " and ecu found");
|
|
this.class10_settings_0.string_1 = "COM" + dtCommCache.ToString();
|
|
this.bool_11 = true;
|
|
}
|
|
else
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " found but ecu not detected. Check connection between ecu and demon");
|
|
this.bool_11 = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.class10_settings_0.string_1 = "COM" + dtCommCache.ToString();
|
|
this.bool_11 = true;
|
|
}
|
|
|
|
this.serialPort_0.Close();
|
|
this.serialPort_0.Dispose();
|
|
return;
|
|
}
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " not found on cached port: COM" + dtCommCache.ToString());
|
|
}
|
|
else
|
|
{
|
|
LogThis("Cached port failed to open");
|
|
}
|
|
dtCommCache = 1;
|
|
this.bool_11 = false;
|
|
goto Label_02B4;
|
|
}
|
|
else
|
|
{
|
|
LogThis("Cached port is COM0 or not saved");
|
|
dtCommCache = 1;
|
|
this.bool_11 = false;
|
|
goto Label_02B4;
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
LogThis("Cached port failed with error:" + Environment.NewLine + "" + exception.Message);
|
|
}
|
|
dtCommCache = 1;
|
|
this.bool_11 = false;
|
|
|
|
//###################################################################################
|
|
//###################################################################################
|
|
//###################################################################################
|
|
//Section for Demon datalogging trying to auto-scan port!
|
|
Label_02B4:
|
|
try
|
|
{
|
|
if (dtCommCache == 41)
|
|
{
|
|
LogThis("Port Scan Failed");
|
|
this.bool_11 = false;
|
|
if (this.class25_0.Report_Error)
|
|
{
|
|
LogThis("If you try to datalog on a chip you must change the emulator to:" + Environment.NewLine + "Moates Ostrich in the settings!");
|
|
MessageBox.Show(Form.ActiveForm, "Can't connect with demon" + Environment.NewLine + "See the debug logs for the issue", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
}
|
|
return;
|
|
}
|
|
if ((this.serialPort_0 != null) && this.serialPort_0.IsOpen)
|
|
{
|
|
this.serialPort_0.Close();
|
|
}
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
this.serialPort_0.Dispose();
|
|
this.serialPort_0 = null;
|
|
}
|
|
string str = "COM" + dtCommCache.ToString();
|
|
bool flag2 = false;
|
|
if (!this.class10_settings_0.IsBluetooth)
|
|
{
|
|
for (int j = 0; j < portNames.Length; j++)
|
|
if (portNames[j] == str) flag2 = true;
|
|
}
|
|
else flag2 = true;
|
|
//flag2 = true;
|
|
|
|
|
|
if (flag2)
|
|
{
|
|
this.serialPort_0 = new SerialPort("COM" + dtCommCache.ToString(), this.class10_settings_0.Datalog_Baud);
|
|
this.serialPort_0.ReadTimeout = this.class10_settings_0.int_20;
|
|
this.serialPort_0.WriteTimeout = 300;
|
|
//if (this.class10_settings_0.emulatorMode_0 != EmulatorMode.Demon && this.class10_settings_0.IsBluetooth) this.serialPort_0.WriteTimeout = 300;
|
|
this.serialPort_0.ReadBufferSize = 0x1100;
|
|
this.serialPort_0.Encoding = Encoding.Default;
|
|
this.serialPort_0.Open();
|
|
LogThis("Port open: COM" + dtCommCache.ToString() + " (baud: " + this.class10_settings_0.Datalog_Baud.ToString() + ")");
|
|
bool flag3 = this.class25_0.IsEmulatorConnected(false);
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " replied=" + flag3.ToString());
|
|
if (flag3)
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " found");
|
|
if (this.bool_16)
|
|
{
|
|
if (this.method_29(false))
|
|
{
|
|
this.class10_settings_0.string_1 = "COM" + dtCommCache.ToString();
|
|
this.class10_settings_0.dtCommCache = dtCommCache;
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " found on port: COM" + dtCommCache.ToString());
|
|
this.bool_11 = true;
|
|
}
|
|
else
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " found but ecu not detected. Check connection between ecu and demon");
|
|
this.bool_11 = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.class10_settings_0.string_1 = "COM" + dtCommCache.ToString();
|
|
this.class10_settings_0.dtCommCache = dtCommCache;
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " found on port: COM" + dtCommCache.ToString());
|
|
this.bool_11 = true;
|
|
}
|
|
return;
|
|
}
|
|
}
|
|
dtCommCache++;
|
|
goto Label_02B4;
|
|
}
|
|
catch
|
|
{
|
|
dtCommCache++;
|
|
goto Label_02B4;
|
|
}
|
|
|
|
//###################################################################################
|
|
//###################################################################################
|
|
//###################################################################################
|
|
// Section for Ostrich/Chips datalogging!! trying on cached port
|
|
Label_0500:
|
|
LogThis("Ecu detection started");
|
|
int num4 = 1;
|
|
string[] strArray2 = SerialPort.GetPortNames();
|
|
try
|
|
{
|
|
if (this.class10_settings_0.dtCommCache != 0)
|
|
{
|
|
num4 = this.class10_settings_0.dtCommCache;
|
|
this.bool_11 = false;
|
|
LogThis("Cached port: COM" + num4.ToString() + " (baud: " + this.class10_settings_0.Datalog_Baud.ToString() + ")");
|
|
try //not used!!
|
|
{
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
if (this.serialPort_0.IsOpen)
|
|
{
|
|
this.serialPort_0.Close();
|
|
}
|
|
this.serialPort_0.Dispose();
|
|
this.serialPort_0 = null;
|
|
}
|
|
}
|
|
catch { }
|
|
bool flag4 = false;
|
|
if (!this.class10_settings_0.IsBluetooth)
|
|
{
|
|
for (int k = 0; k < strArray2.Length; k++)
|
|
{
|
|
if (strArray2[k] == ("COM" + num4.ToString()))
|
|
{
|
|
flag4 = true;
|
|
}
|
|
}
|
|
}
|
|
else flag4 = true;
|
|
|
|
if (flag4)
|
|
{
|
|
this.serialPort_0 = new SerialPort("COM" + num4.ToString(), this.class10_settings_0.Datalog_Baud);
|
|
this.serialPort_0.ReadTimeout = this.class10_settings_0.int_20;
|
|
this.serialPort_0.WriteTimeout = 300;
|
|
//if (this.class10_settings_0.emulatorMode_0 != EmulatorMode.Demon && this.class10_settings_0.IsBluetooth) this.serialPort_0.WriteTimeout = 300;
|
|
this.serialPort_0.Encoding = Encoding.Default;
|
|
this.serialPort_0.Open();
|
|
LogThis("Cached port: COM" + num4.ToString() + " open" + " (baud: " + this.class10_settings_0.Datalog_Baud.ToString() + ")");
|
|
if (this.method_29(false))
|
|
{
|
|
this.class10_settings_0.string_1 = "COM" + num4.ToString();
|
|
this.class10_settings_0.dtCommCache = num4;
|
|
if (!this.class10_settings_0.IsBluetooth)
|
|
{
|
|
this.serialPort_0.Close();
|
|
this.serialPort_0.Dispose();
|
|
}
|
|
this.bool_11 = true;
|
|
LogThis("Ecu found");
|
|
return;
|
|
}
|
|
LogThis("Ecu not found on cached port!");
|
|
}
|
|
else
|
|
{
|
|
LogThis("Cached port failed to open");
|
|
}
|
|
num4 = 1;
|
|
this.bool_11 = false;
|
|
goto Label_06FE;
|
|
}
|
|
else
|
|
{
|
|
LogThis("Cached port is COM0 or not saved");
|
|
}
|
|
num4 = 1;
|
|
this.bool_11 = false;
|
|
goto Label_06FE;
|
|
}
|
|
catch (Exception exception2)
|
|
{
|
|
LogThis("Cached port failed with error:" + Environment.NewLine + "" + exception2.Message);
|
|
}
|
|
num4 = 1;
|
|
this.bool_11 = false;
|
|
|
|
//###################################################################################
|
|
//###################################################################################
|
|
//###################################################################################
|
|
//Section for Ostrich/Chips datalogging!! trying to auto-scan port!
|
|
Label_06FE:
|
|
try
|
|
{
|
|
if (num4 == 41)
|
|
{
|
|
LogThis("Port Scan Failed");
|
|
this.bool_11 = false;
|
|
MessageBox.Show(Form.ActiveForm, "Can't connect with ECU" + Environment.NewLine + "See the debug logs for the issue", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
}
|
|
else
|
|
{
|
|
if ((this.serialPort_0 != null) && this.serialPort_0.IsOpen)
|
|
{
|
|
this.serialPort_0.Close();
|
|
}
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
this.serialPort_0.Dispose();
|
|
this.serialPort_0 = null;
|
|
}
|
|
string str2 = "COM" + num4.ToString();
|
|
bool flag5 = false;
|
|
if (!this.class10_settings_0.IsBluetooth)
|
|
{
|
|
for (int m = 0; m < strArray2.Length; m++)
|
|
{
|
|
if (strArray2[m] == str2)
|
|
{
|
|
flag5 = true;
|
|
}
|
|
}
|
|
}
|
|
else flag5 = true;
|
|
|
|
if (!flag5)
|
|
{
|
|
num4++;
|
|
goto Label_06FE;
|
|
}
|
|
this.serialPort_0 = new SerialPort("COM" + num4.ToString(), this.class10_settings_0.Datalog_Baud);
|
|
this.serialPort_0.ReadTimeout = this.class10_settings_0.int_20;
|
|
this.serialPort_0.WriteTimeout = 300;
|
|
//if (this.class10_settings_0.emulatorMode_0 != EmulatorMode.Demon && this.class10_settings_0.IsBluetooth) this.serialPort_0.WriteTimeout = 300;
|
|
this.serialPort_0.Encoding = Encoding.Default;
|
|
this.serialPort_0.Open();
|
|
LogThis("Port open: COM" + num4.ToString() + " (baud: " + this.class10_settings_0.Datalog_Baud.ToString() + ")");
|
|
bool flag6 = this.method_29(false);
|
|
LogThis("ECU replied=" + flag6.ToString());
|
|
if (flag6)
|
|
{
|
|
this.class10_settings_0.string_1 = "COM" + num4.ToString();
|
|
this.class10_settings_0.dtCommCache = num4;
|
|
LogThis("Ecu found on port: COM" + num4.ToString());
|
|
this.bool_11 = true;
|
|
}
|
|
else
|
|
{
|
|
num4++;
|
|
goto Label_06FE;
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
num4++;
|
|
goto Label_06FE;
|
|
}
|
|
}
|
|
|
|
internal void method_0(ref Class18 class18_1, ref Class10_settings class10_1, ref Class25 class25_1, ref FrmMain frmMain_1)
|
|
{
|
|
this.class18_0 = class18_1;
|
|
this.class18_0.delegate58_0 += new Class18.Delegate58(this.method_1);
|
|
this.class10_settings_0 = class10_1;
|
|
this.class25_0 = class25_1;
|
|
this.frmMain_0 = frmMain_1;
|
|
|
|
this.class2_serialWB_0 = new Class2_serialWB(ref this.class18_0, ref this.frmMain_0);
|
|
//this.class2_serialWB_0.method_0();
|
|
//##########
|
|
try
|
|
{
|
|
this.class2_serialWB_0.method_0();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
MessageBox.Show(ex.Message);
|
|
try
|
|
{
|
|
Process process = new Process();
|
|
string environmentVariable = Environment.GetEnvironmentVariable("systemroot");
|
|
process.StartInfo.FileName = environmentVariable + "\\system32\\regsvr32.exe";
|
|
process.StartInfo.Arguments = "\"" + Application.StartupPath + "\\mtssdk.ocx\"";
|
|
process.StartInfo.UseShellExecute = false;
|
|
process.StartInfo.RedirectStandardOutput = true;
|
|
process.StartInfo.CreateNoWindow = true;
|
|
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
|
|
process.Start();
|
|
process.StandardOutput.ReadToEnd();
|
|
process.WaitForExit();
|
|
int exitCode = process.ExitCode;
|
|
if (exitCode != 0)
|
|
{
|
|
MessageBox.Show("failed to register innovate ocx, Innovate widebands wont work.");
|
|
Application.Exit();
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
}
|
|
}
|
|
this.class2_serialWB_0.method_0();
|
|
//###############
|
|
|
|
//this.Class14_Display_0 = new Class14_Display(ref this.class18_0);
|
|
this.class33_Sensors = new Class33_Sensors(ref this.class18_0);
|
|
}
|
|
|
|
private void method_1()
|
|
{
|
|
if ((!this.class18_0.method_30_HasFileLoadedInBMTune() && (this.backgroundWorker_0 != null)) && this.backgroundWorker_0.IsBusy)
|
|
{
|
|
this.backgroundWorker_0.CancelAsync();
|
|
}
|
|
}
|
|
|
|
public void method_10(int int_3)
|
|
{
|
|
this.serialPort_0.ReadTimeout = int_3;
|
|
}
|
|
|
|
public void method_11(byte[] byte_1, int int_3)
|
|
{
|
|
//if (this.method_12(int_3)) this.serialPort_0.Read(byte_1, 0, int_3);
|
|
|
|
//Old system is just this
|
|
this.method_12(int_3);
|
|
this.serialPort_0.Read(byte_1, 0, int_3);
|
|
}
|
|
|
|
private void method_12(int int_3)
|
|
{
|
|
this.timer_2 = new System.Windows.Forms.Timer();
|
|
this.timer_2.Interval = this.serialPort_0.ReadTimeout;
|
|
this.timer_2.Tick += new EventHandler(this.timer_2_Tick);
|
|
this.bool_13 = false;
|
|
this.timer_2.Start();
|
|
|
|
while (this.serialPort_0.BytesToRead < int_3)
|
|
{
|
|
if (this.bool_13)
|
|
{
|
|
this.timer_2.Stop();
|
|
throw new TimeoutException("Chunk timeout");
|
|
}
|
|
Application.DoEvents();
|
|
}
|
|
this.timer_2.Stop();
|
|
}
|
|
|
|
/*private bool method_12(int int_3)
|
|
{
|
|
int ThisTries = 0;
|
|
while (this.serialPort_0.BytesToRead < int_3 && ThisTries < 30)
|
|
{
|
|
Application.DoEvents();
|
|
Thread.Sleep((this.serialPort_0.ReadTimeout / 2) / 30);
|
|
ThisTries++;
|
|
}
|
|
if (this.serialPort_0.BytesToRead >= int_3) return true;
|
|
else return false;
|
|
}*/
|
|
|
|
public void DiscardBuffer()
|
|
{
|
|
if (!FakeDatalog)
|
|
{
|
|
if (this.serialPort_0.IsOpen)
|
|
{
|
|
try
|
|
{
|
|
this.serialPort_0.DiscardInBuffer();
|
|
this.serialPort_0.DiscardOutBuffer();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void method_14(byte byte_1)
|
|
{
|
|
try
|
|
{
|
|
this.serialPort_0.Write(((char) byte_1).ToString());
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw exception;
|
|
}
|
|
}
|
|
|
|
public void method_15(string string_3)
|
|
{
|
|
try
|
|
{
|
|
this.serialPort_0.Write(string_3);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw exception;
|
|
}
|
|
}
|
|
|
|
public void method_16(byte[] byte_1, int int_3, int int_4)
|
|
{
|
|
try
|
|
{
|
|
this.serialPort_0.Write(byte_1, int_3, int_4);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw exception;
|
|
}
|
|
}
|
|
|
|
public bool method_17()
|
|
{
|
|
return ((this.serialPort_0 != null) && this.serialPort_0.IsOpen);
|
|
}
|
|
|
|
public bool method_18()
|
|
{
|
|
return this.method_19(false);
|
|
}
|
|
|
|
public bool method_19(bool bool_18)
|
|
{
|
|
bool flag;
|
|
|
|
if (FakeDatalog)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
if ((this.serialPort_0 != null) && this.serialPort_0.IsOpen)
|
|
{
|
|
if (bool_18) LogThis("port: " + this.class10_settings_0.string_1.ToString() + " is already open!");
|
|
|
|
//###
|
|
//Close and Reopen Port to try
|
|
if (ConnectRetry >= this.class10_settings_0.int_21)
|
|
{
|
|
DisposeSerial();
|
|
return false;
|
|
}
|
|
else
|
|
{
|
|
return true;
|
|
}
|
|
//return true;
|
|
}
|
|
this.serialPort_0 = new SerialPort(this.class10_settings_0.string_1, this.class10_settings_0.Datalog_Baud);
|
|
this.serialPort_0.ReadTimeout = this.class10_settings_0.int_20;
|
|
//this.serialPort_0.WriteTimeout = 300;
|
|
if (this.class10_settings_0.emulatorMode_0 != EmulatorMode.Demon && this.class10_settings_0.IsBluetooth) this.serialPort_0.WriteTimeout = 300;
|
|
this.serialPort_0.ReadBufferSize = 0x1100;
|
|
this.serialPort_0.Encoding = Encoding.Default;
|
|
try
|
|
{
|
|
LogThis("try to open port: " + this.class10_settings_0.string_1.ToString() + " (baud: " + this.serialPort_0.BaudRate.ToString() + ")");
|
|
this.serialPort_0.Open();
|
|
LogThis("port: " + this.class10_settings_0.string_1.ToString() + " open: " + this.method_17().ToString());
|
|
if (bool_18 && this.method_17())
|
|
{
|
|
if (this.class10_settings_0.emulatorMode_0 != EmulatorMode.Demon)
|
|
{
|
|
this.method_4(DataloggingState.Link);
|
|
flag = this.method_17();
|
|
}
|
|
else
|
|
{
|
|
bool flagT = this.class25_0.IsEmulatorConnected(false);
|
|
if (flagT)
|
|
{
|
|
if (this.bool_16)
|
|
{
|
|
if (this.method_29(false))
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " and ecu found");
|
|
this.method_4(DataloggingState.Link);
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " found but ecu not detected. Check connection between ecu and " + this.class25_0.emulatorMoatesType_0);
|
|
flag = false;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " found");
|
|
this.method_4(DataloggingState.Link);
|
|
flag = true;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
flag = false;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
flag = this.method_17();
|
|
}
|
|
}
|
|
catch (Exception exception2)
|
|
{
|
|
LogThis("Failed to open port:" + this.class10_settings_0.string_1 + " with error:" + Environment.NewLine + "" + exception2.Message);
|
|
throw new ArgumentOutOfRangeException("Failed to open port:" + this.class10_settings_0.string_1, "BMTune");
|
|
}
|
|
if (!flag)
|
|
{
|
|
//method_20();
|
|
DisposeSerial();
|
|
}
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
private void DisposeSerial()
|
|
{
|
|
try
|
|
{
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
if (this.serialPort_0.IsOpen) this.serialPort_0.Close();
|
|
this.serialPort_0.Dispose();
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, exception.Message);
|
|
}
|
|
this.serialPort_0 = null;
|
|
}
|
|
|
|
public void method_2()
|
|
{
|
|
if (this.method_63_HasLogsFileOpen())
|
|
{
|
|
this.method_75();
|
|
}
|
|
if (this.method_54())
|
|
{
|
|
if (MessageBox.Show("Temporary datalog file found. " + Environment.NewLine + "" + Environment.NewLine + " Save the temporary file?", "Datalog", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly, false) == DialogResult.Yes)
|
|
{
|
|
this.method_SaveDatalog();
|
|
}
|
|
else
|
|
{
|
|
File.Delete(this.string_0);
|
|
}
|
|
}
|
|
if (this.method_34_GetConnected())
|
|
{
|
|
this.method_36();
|
|
}
|
|
if (this.backgroundWorker_1 != null)
|
|
{
|
|
while (this.backgroundWorker_1.IsBusy)
|
|
{
|
|
Application.DoEvents();
|
|
}
|
|
this.backgroundWorker_1.Dispose();
|
|
this.backgroundWorker_1 = null;
|
|
}
|
|
if (this.backgroundWorker_0 != null)
|
|
{
|
|
if (this.backgroundWorker_0.IsBusy) this.backgroundWorker_0.CancelAsync();
|
|
while (this.backgroundWorker_0.IsBusy)
|
|
{
|
|
Application.DoEvents();
|
|
}
|
|
this.backgroundWorker_0.Dispose();
|
|
this.backgroundWorker_0 = null;
|
|
}
|
|
this.method_20();
|
|
}
|
|
|
|
public void method_20()
|
|
{
|
|
this.method_35(false);
|
|
if (this.serialPort_0 != null)
|
|
{
|
|
if (this.class25_0.method_10())
|
|
{
|
|
if (this.class25_0.GetConnected()) this.method_4(DataloggingState.Link);
|
|
}
|
|
else
|
|
{
|
|
DisposeSerial();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.method_4(DataloggingState.Disconnected);
|
|
if (this.class25_0.GetConnected()) this.class25_0.EmulatorDisconnect();
|
|
}
|
|
}
|
|
|
|
public bool method_21()
|
|
{
|
|
return this.bool_3;
|
|
}
|
|
|
|
public void method_22(bool bool_18)
|
|
{
|
|
this.bool_4 = bool_18;
|
|
}
|
|
|
|
public bool method_23()
|
|
{
|
|
return this.bool_5;
|
|
}
|
|
|
|
public void method_24(bool bool_18)
|
|
{
|
|
this.bool_5 = bool_18;
|
|
}
|
|
|
|
public bool method_25()
|
|
{
|
|
return (!string.IsNullOrEmpty(this.string_1));
|
|
}
|
|
|
|
public bool method_27()
|
|
{
|
|
if (!FakeDatalog)
|
|
{
|
|
//Do not run 2x Threads!
|
|
if (this.backgroundWorker_2 != null)
|
|
{
|
|
this.backgroundWorker_2.Dispose();
|
|
this.backgroundWorker_2 = null;
|
|
}
|
|
|
|
this.LogThis("Auto-scan started");
|
|
TryingtoConnect = true; //TryingtoConnect are Only used for FrmMain Title bar
|
|
this.method_4(DataloggingState.Connecting);
|
|
this.backgroundWorker_2 = new BackgroundWorker();
|
|
this.backgroundWorker_2.DoWork += new DoWorkEventHandler(this.backgroundWorker_2_DoWork);
|
|
this.backgroundWorker_2.WorkerReportsProgress = false;
|
|
this.backgroundWorker_2.WorkerSupportsCancellation = false;
|
|
this.backgroundWorker_2.RunWorkerAsync();
|
|
while (this.backgroundWorker_2.IsBusy)
|
|
{
|
|
Application.DoEvents();
|
|
}
|
|
if (!this.method_34_GetConnected()) this.method_4(DataloggingState.Disconnected); //method_34_GetConnected return value of bool_1
|
|
TryingtoConnect = false;
|
|
}
|
|
else
|
|
{
|
|
this.bool_11 = true;
|
|
}
|
|
return this.bool_11;
|
|
}
|
|
|
|
public bool method_28()
|
|
{
|
|
if (!FakeDatalog)
|
|
{
|
|
return this.method_29(true);
|
|
}
|
|
else
|
|
{
|
|
this.long_0 = 0x20L;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
public bool method_29(bool bool_18)
|
|
{
|
|
int num6;
|
|
bool flag2;
|
|
|
|
if ((this.class10_settings_0.dataloggingMode_0 != DataloggingMode.datalogDemon) || !this.class10_settings_0.bool_31)
|
|
{
|
|
goto Label_02D0;
|
|
}
|
|
if (this.class25_0.emulatorMoatesType_0 == EmulatorMoatesType.neptuneRTP)
|
|
{
|
|
return true;
|
|
}
|
|
//######################################################################################################
|
|
//######################################################################################################
|
|
//######################################################################################################
|
|
// Section for Demon datalogging
|
|
int num = this.class10_settings_0.int_21;
|
|
int num2 = 0;
|
|
try
|
|
{
|
|
if (!this.method_17())
|
|
{
|
|
this.method_18();
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
this.DiscardBuffer();
|
|
Label_004E:
|
|
if ((num2 == num) && bool_18)
|
|
{
|
|
LogThis("If you try to datalog on a chip you must change the emulator to:" + Environment.NewLine + "Moates Ostrich in the settings!");
|
|
MessageBox.Show(Form.ActiveForm, "Can't connect with demon on " + this.class10_settings_0.string_1 + "" + Environment.NewLine + "See the debug logs for the issue", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
return false;
|
|
}
|
|
this.method_42();
|
|
byte[] buffer_0 = new byte[0x11];
|
|
byte num3 = 0;
|
|
buffer_0[0] = 0x44; //D
|
|
buffer_0[1] = 0x52; //R
|
|
buffer_0[2] = 0; //0
|
|
buffer_0[3] = 0x17; //
|
|
buffer_0[4] = 0;
|
|
buffer_0[5] = 0;
|
|
buffer_0[6] = 3;
|
|
buffer_0[7] = 1;
|
|
buffer_0[8] = 1;
|
|
buffer_0[9] = 0x10;
|
|
buffer_0[10] = 1;
|
|
buffer_0[11] = 1;
|
|
buffer_0[12] = 0x10;
|
|
buffer_0[13] = 1;
|
|
buffer_0[14] = 1;
|
|
buffer_0[15] = 0x10;
|
|
this.method_44(buffer_0, 0x10);
|
|
num3 = this.method_41();
|
|
buffer_0[0x10] = num3;
|
|
try
|
|
{
|
|
this.method_16(buffer_0, 0, 0x11);
|
|
byte num4 = this.method_7();
|
|
if (num4 == 0x4f)
|
|
{
|
|
num2 = 0;
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " detected and replied success");
|
|
}
|
|
else
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " detected and replied: " + num4.ToString("X2") + " " + ((char)num4).ToString());
|
|
num2++;
|
|
goto Label_004E;
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
LogThis("Error message " + exception.Message + " retry #:" + num2.ToString());
|
|
num2++;
|
|
goto Label_004E;
|
|
}
|
|
Label_0196:
|
|
this.DiscardBuffer();
|
|
if (num2 == num)
|
|
{
|
|
if (bool_18)
|
|
{
|
|
LogThis("If you try to datalog on a chip you must change the emulator to:" + Environment.NewLine + "Moates Ostrich in the settings!");
|
|
MessageBox.Show(Form.ActiveForm, "Can't connect with demon on " + this.class10_settings_0.string_1 + "" + Environment.NewLine + "See the debug logs for the issue", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
}
|
|
return false;
|
|
}
|
|
buffer_0 = new byte[1];
|
|
buffer_0[0] = 100;
|
|
byte[] buffer2 = new byte[6];
|
|
try
|
|
{
|
|
this.method_16(buffer_0, 0, 1);
|
|
this.method_11(buffer2, 6);
|
|
this.method_42();
|
|
this.method_44(buffer2, 5);
|
|
num3 = this.method_41();
|
|
byte num5 = buffer2[5];
|
|
if (num5 == num3)
|
|
{
|
|
if (buffer2[1] == 0xcd)
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " detected and we have ecu reply");
|
|
buffer2 = null;
|
|
buffer_0 = null;
|
|
num5 = 0;
|
|
num3 = 0;
|
|
return true;
|
|
}
|
|
if (buffer2[1] == 84 || buffer2[1] == 0x84)
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " detected but the ecu doesn't have power, please put the ignition key On.");
|
|
this.frmMain_0.SetStatuDatalog("No power to ecu");
|
|
num2++;
|
|
//return false;
|
|
}
|
|
if (buffer2[1] != 0xcd && buffer2[1] != 84 && buffer2[1] != 0x84) LogThis(this.class25_0.emulatorMoatesType_0 + " detected but we have timeout between demon and ecu" + Environment.NewLine + "Check Wiring and components and retry");
|
|
this.DiscardBuffer();
|
|
num2++;
|
|
}
|
|
else
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " detected but we have a checksum error");
|
|
num2++;
|
|
}
|
|
goto Label_0196;
|
|
}
|
|
catch (Exception exception2)
|
|
{
|
|
LogThis(exception2.Message);
|
|
num2++;
|
|
goto Label_0196;
|
|
}
|
|
|
|
//######################################################################################################
|
|
//######################################################################################################
|
|
//######################################################################################################
|
|
// Section for Ostrich/Chips Datalogging
|
|
Label_02D0:
|
|
num6 = this.class10_settings_0.int_21;
|
|
int num7 = 0;
|
|
byte num8 = 0;
|
|
byte num9 = 0;
|
|
ConnectRetry = 0;
|
|
switch (this.class10_settings_0.dataloggingMode_0)
|
|
{
|
|
case DataloggingMode.datalogMultiByteT: //this one for ostrich, chips, etc
|
|
num8 = 0x10;
|
|
this.long_0 = 0x20L;
|
|
break;
|
|
|
|
case DataloggingMode.datalogDemon:
|
|
if (this.class25_0.emulatorMoatesType_0 == EmulatorMoatesType.neptuneRTP)
|
|
{
|
|
num8 = 0x10;
|
|
this.long_0 = 0x20L;
|
|
break;
|
|
//return true;
|
|
}
|
|
else
|
|
{
|
|
this.class18_0.class17_0.frmMain_0.LogThis("datalogging error: demon");
|
|
num8 = 0x10;
|
|
this.long_0 = 0x20L;
|
|
break;
|
|
//throw new Exception("datalogging error: demon");
|
|
}
|
|
|
|
case DataloggingMode.datalogMultiByteX:
|
|
num8 = 0xab;
|
|
this.long_0 = 0x90L;
|
|
break;
|
|
|
|
case DataloggingMode.datalogSingleByte:
|
|
num8 = 0xab;
|
|
this.long_0 = 0x90L;
|
|
break;
|
|
|
|
default:
|
|
this.class18_0.class17_0.frmMain_0.LogThis("datalogging error: unknow datalog type");
|
|
num8 = 0x10;
|
|
this.long_0 = 0x20L;
|
|
break;
|
|
//throw new Exception("datalogging error: demon");
|
|
}
|
|
Label_035F:
|
|
if (!this.method_17())
|
|
{
|
|
this.method_18();
|
|
}
|
|
this.DiscardBuffer();
|
|
try
|
|
{
|
|
if (num7 == num6)
|
|
{
|
|
if (bool_18)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, "Can't connect with ecu on " + this.class10_settings_0.string_1 + "" + Environment.NewLine + "See the debug logs for the issue", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
}
|
|
return false;
|
|
}
|
|
this.serialPort_0.Write(((char)num8).ToString()); //here too
|
|
byte num10 = (byte)this.serialPort_0.ReadByte();
|
|
//ConnectRetry = 0;
|
|
|
|
if ((num10 == num9) && (num10 != 0xcd))
|
|
{
|
|
//flag2 = false;
|
|
if (this.class10_settings_0.bool_CheckJ12)
|
|
{
|
|
flag2 = true;
|
|
}
|
|
else
|
|
{
|
|
flag2 = false;
|
|
}
|
|
MessageBox.Show(Form.ActiveForm, "J12/J4 not removed in the ecu?", "BMTune");
|
|
LogThis("Received byte is same as send byte");
|
|
LogThis("J12/J4 inplace detect");
|
|
LogThis("remove J12(USDM ecu) or J4(JDM ecu) to be able to datalog");
|
|
}
|
|
num9 = num10;
|
|
if (num10 == 0xcd)
|
|
{
|
|
LogThis("Ecu replied correct handshake byte");
|
|
this.bool_11 = true;
|
|
flag2 = true;
|
|
}
|
|
else
|
|
{
|
|
LogThis("Ecu DIDN'T Replied correct handshake byte!" + Environment.NewLine + "Replied: " + num10.ToString("X2") + "(expected is: 0xCD)");
|
|
if (this.class10_settings_0.bool_CheckJ12)
|
|
{
|
|
this.bool_11 = true;
|
|
flag2 = true;
|
|
}
|
|
else
|
|
{
|
|
ConnectRetry++;
|
|
num7++;
|
|
goto Label_035F;
|
|
}
|
|
}
|
|
}
|
|
catch (Exception exception3)
|
|
{
|
|
ConnectRetry++;
|
|
LogThis(exception3.Message);
|
|
num7++;
|
|
goto Label_035F;
|
|
}
|
|
return flag2;
|
|
}
|
|
|
|
public DataloggingState method_3()
|
|
{
|
|
return this.dataloggingState_0;
|
|
}
|
|
|
|
public void method_30()
|
|
{
|
|
this.bool_9 = true;
|
|
}
|
|
|
|
private string GetDatalogCommand()
|
|
{
|
|
switch (this.class10_settings_0.method_8())
|
|
{
|
|
case DataloggingTable.tableMain:
|
|
{
|
|
if (this.class10_settings_0.dataloggingMode_0 == DataloggingMode.datalogMultiByteT)
|
|
{
|
|
char ch2 = ' ';
|
|
return ch2.ToString();
|
|
}
|
|
char ch = '\x0090';
|
|
return ch.ToString();
|
|
}
|
|
case DataloggingTable.tableMinimal:
|
|
{
|
|
if (this.class10_settings_0.dataloggingMode_0 != DataloggingMode.datalogMultiByteT)
|
|
{
|
|
this.class18_0.class17_0.frmMain_0.LogThis("Error: DatalogginCommand");
|
|
//throw new Exception("DatalogginCommand");
|
|
}
|
|
char ch4 = '0';
|
|
return ch4.ToString();
|
|
//char ch3 = '\x0090';
|
|
//return ch3.ToString();
|
|
}
|
|
case DataloggingTable.table3:
|
|
{
|
|
if (this.class10_settings_0.dataloggingMode_0 != DataloggingMode.datalogMultiByteT)
|
|
{
|
|
this.class18_0.class17_0.frmMain_0.LogThis("Error: DatalogginCommand");
|
|
//throw new Exception("DatalogginCommand");
|
|
}
|
|
char ch6 = '0';
|
|
return ch6.ToString();
|
|
//char ch5 = '\x0090';
|
|
//return ch5.ToString();
|
|
}
|
|
}
|
|
this.class18_0.class17_0.frmMain_0.LogThis("Error: DatalogginCommand");
|
|
char chx = ' ';
|
|
return chx.ToString();
|
|
//throw new Exception("DatalogginCommand");
|
|
}
|
|
|
|
private void LogThis(string string_1)
|
|
{
|
|
frmMain_0.LogThis("Datalog - " + string_1);
|
|
}
|
|
|
|
public bool method_34_GetConnected()
|
|
{
|
|
return this.bool_1;
|
|
}
|
|
|
|
public void method_35(bool bool_18)
|
|
{
|
|
this.bool_1 = bool_18;
|
|
if (bool_18)
|
|
{
|
|
this.method_4(DataloggingState.Connected);
|
|
}
|
|
else
|
|
{
|
|
this.method_4(DataloggingState.Disconnected);
|
|
}
|
|
}
|
|
|
|
//Datalog connect button clic from main menu
|
|
public void method_36()
|
|
{
|
|
//bool_27 = autoscan
|
|
//method_34_GetConnected = bool_1
|
|
if (!this.class10_settings_0.bool_27 || this.method_34_GetConnected())
|
|
{
|
|
this.method_37();
|
|
}
|
|
else if (this.class10_settings_0.bool_27 && !this.method_34_GetConnected())
|
|
{
|
|
//method_27 = autoscan thread backgroundWorker_2
|
|
//method_37 = connect to device!
|
|
LogThis("Auto scan enabled");
|
|
if (this.method_27())
|
|
{
|
|
this.method_37();
|
|
}
|
|
}
|
|
}
|
|
|
|
public void method_37()
|
|
{
|
|
/*Console.WriteLine("1." + this.backgroundWorker_0.IsBusy);
|
|
Console.WriteLine("2." + this.method_34_GetConnected());
|
|
Console.WriteLine("3." + this.bool_11);
|
|
Console.WriteLine("4." + serialPort_0.IsOpen);*/
|
|
|
|
this.int_0 = 0;
|
|
|
|
if (!this.backgroundWorker_0.IsBusy)
|
|
{
|
|
//Console.WriteLine("restart");
|
|
if (this.method_63_HasLogsFileOpen())
|
|
{
|
|
this.method_75();
|
|
}
|
|
//TryingtoConnect = true; //
|
|
//this.method_4(DataloggingState.Connecting); //this is not called
|
|
this.stopwatch_1.Reset();
|
|
this.FrameCounts = 0L;
|
|
if (this.list_0 != null) this.list_0 = null;
|
|
this.backgroundWorker_0.RunWorkerAsync();
|
|
if (this.class10_settings_0.bool_8 || this.method_23())
|
|
{
|
|
this.method_StartRecord();
|
|
}
|
|
//if (!this.method_34_GetConnected()) this.method_4(DataloggingState.Disconnected); //this is not called
|
|
//TryingtoConnect = false; //
|
|
}
|
|
else if (this.method_34_GetConnected())
|
|
{
|
|
if (this.method_50())
|
|
{
|
|
this.method_StartRecord();
|
|
}
|
|
if (this.method_23() && this.method_54())
|
|
{
|
|
string destFileName = (this.string_1 + @"\log_") + DateTime.Now.ToString("ddMMyyyy_HHmm") + ".bml";
|
|
FileInfo info = new FileInfo(this.string_0);
|
|
try
|
|
{
|
|
info.CopyTo(destFileName);
|
|
byte[] byte_99_0 = this.class18_0.method_92(File.ReadAllBytes(destFileName));
|
|
File.WriteAllBytes(destFileName, byte_99_0);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
finally
|
|
{
|
|
info.Delete();
|
|
info = null;
|
|
}
|
|
}
|
|
this.backgroundWorker_0.CancelAsync();
|
|
method_35(false);
|
|
}
|
|
}
|
|
|
|
private Struct12 method_38(byte[] byte_1)
|
|
{
|
|
this.stopwatch_0.Stop();
|
|
if (this.class10_settings_0.method_8() == DataloggingTable.tableMain)
|
|
{
|
|
this.struct12_0 = new Struct12();
|
|
this.struct12_0.byte_0 = byte_1[0];
|
|
this.struct12_0.byte_1 = byte_1[1];
|
|
this.struct12_0.byte_2 = byte_1[2];
|
|
this.struct12_0.byte_3 = byte_1[3];
|
|
this.struct12_0.byte_4 = byte_1[4];
|
|
this.struct12_0.byte_5 = byte_1[5];
|
|
this.struct12_0.ushort_0_E6_7 = this.class18_0.method_146(byte_1[6], byte_1[7]);
|
|
this.struct12_0.byte_6_E8 = byte_1[8];
|
|
this.struct12_0.byte_7_E9 = byte_1[9];
|
|
this.struct12_0.byte_8_E10 = byte_1[10];
|
|
this.struct12_0.byte_9_E11 = byte_1[11];
|
|
this.struct12_0.byte_10_E12 = byte_1[12];
|
|
this.struct12_0.byte_11_E13 = byte_1[13];
|
|
this.struct12_0.byte_12_E14 = byte_1[14];
|
|
this.struct12_0.byte_13_E15 = byte_1[15];
|
|
this.struct12_0.byte_14_E16 = byte_1[0x10];
|
|
this.struct12_0.ushort_1_E17_18 = this.class18_0.method_146(byte_1[0x11], byte_1[0x12]);
|
|
this.struct12_0.byte_15_E19 = byte_1[0x13];
|
|
this.struct12_0.byte_16_E20 = byte_1[20];
|
|
this.struct12_0.byte_20 = this.class18_0.method_215(this.struct12_0.byte_14_E16, (long) this.struct12_0.ushort_0_E6_7);
|
|
this.struct12_0.byte_21_E21 = byte_1[0x15];
|
|
this.struct12_0.byte_22_E22 = byte_1[0x16];
|
|
this.struct12_0.byte_23_E23 = byte_1[0x17];
|
|
this.struct12_0.byte_24_E24 = byte_1[0x18];
|
|
this.struct12_0.byte_27_E25 = byte_1[0x19];
|
|
this.struct12_0.byte_28_E26 = byte_1[0x1a];
|
|
this.struct12_0.long_0_E27_28 = this.class18_0.method_146(byte_1[0x1b], byte_1[0x1c]);
|
|
this.struct12_0.long_1_E29_30 = this.class18_0.method_146(byte_1[0x1d], byte_1[30]);
|
|
this.struct12_0.long_2_E31_32 = this.class18_0.method_146(byte_1[0x1f], byte_1[0x20]);
|
|
this.struct12_0.byte_29_E33 = byte_1[0x21];
|
|
this.struct12_0.byte_30_E34 = byte_1[0x22];
|
|
this.struct12_0.byte_31_E35 = byte_1[0x23];
|
|
this.struct12_0.byte_32_E36 = byte_1[0x24];
|
|
this.struct12_0.byte_33_E37 = byte_1[0x25];
|
|
this.struct12_0.byte_34_E38 = byte_1[0x26];
|
|
this.struct12_0.byte_35_E39 = byte_1[0x27];
|
|
this.struct12_0.byte_37_E40 = byte_1[40];
|
|
this.struct12_0.byte_38_E41 = byte_1[0x29];
|
|
this.struct12_0.byte_39_E42 = byte_1[0x2a];
|
|
this.struct12_0.byte_36_E43 = byte_1[0x2b];
|
|
this.struct12_0.byte_25_E44 = byte_1[0x2c];
|
|
this.struct12_0.byte_26_E45 = byte_1[0x2d];
|
|
this.struct12_0.byte_44_E46 = byte_1[0x2e];
|
|
this.struct12_0.byte_45_E47 = byte_1[0x2f];
|
|
this.struct12_0.byte_46_E48 = byte_1[0x30];
|
|
this.struct12_0.ushort_2_E49_50 = this.class18_0.method_146(byte_1[0x31], byte_1[50]);
|
|
}
|
|
else if (this.class10_settings_0.method_8() == DataloggingTable.tableMinimal)
|
|
{
|
|
this.struct12_0 = new Struct12();
|
|
this.struct12_0.byte_0 = byte_1[0];
|
|
this.struct12_0.byte_1 = byte_1[1];
|
|
this.struct12_0.byte_2 = byte_1[2];
|
|
this.struct12_0.byte_4 = byte_1[3];
|
|
this.struct12_0.byte_5 = byte_1[4];
|
|
this.struct12_0.byte_14_E16 = byte_1[5];
|
|
this.struct12_0.byte_7_E9 = byte_1[6];
|
|
this.struct12_0.byte_8_E10 = byte_1[7];
|
|
this.struct12_0.byte_9_E11 = byte_1[8];
|
|
this.struct12_0.ushort_0_E6_7 = this.class18_0.method_146(byte_1[9], byte_1[10]);
|
|
this.struct12_0.ushort_1_E17_18 = this.class18_0.method_146(byte_1[11], byte_1[12]);
|
|
this.struct12_0.byte_15_E19 = byte_1[13];
|
|
this.struct12_0.byte_6_E8 = byte_1[14];
|
|
this.struct12_0.byte_35_E39 = byte_1[15];
|
|
this.struct12_0.byte_20 = this.class18_0.method_215(this.struct12_0.byte_14_E16, (long) this.struct12_0.ushort_0_E6_7);
|
|
}
|
|
else if (this.class10_settings_0.method_8() == DataloggingTable.table3)
|
|
{
|
|
this.struct12_0 = new Struct12();
|
|
this.struct12_0.byte_0 = byte_1[0];
|
|
this.struct12_0.byte_1 = byte_1[1];
|
|
this.struct12_0.byte_2 = byte_1[2];
|
|
this.struct12_0.byte_4 = byte_1[3];
|
|
this.struct12_0.byte_5 = byte_1[4];
|
|
this.struct12_0.byte_14_E16 = byte_1[5];
|
|
this.struct12_0.ushort_0_E6_7 = this.class18_0.method_146(byte_1[6], byte_1[7]);
|
|
this.struct12_0.long_6 = this.class18_0.method_146(byte_1[8], byte_1[9]);
|
|
this.struct12_0.long_7 = this.class18_0.method_146(byte_1[10], byte_1[11]);
|
|
this.struct12_0.byte_47 = byte_1[12];
|
|
this.struct12_0.byte_20 = this.class18_0.method_215(this.struct12_0.byte_14_E16, (long) this.struct12_0.ushort_0_E6_7);
|
|
this.struct12_0.byte_7_E9 = byte_1[13];
|
|
this.struct12_0.byte_8_E10 = byte_1[14];
|
|
this.struct12_0.byte_9_E11 = byte_1[15];
|
|
this.struct12_0.ushort_1_E17_18 = this.class18_0.method_146(byte_1[0x10], byte_1[0x11]);
|
|
this.struct12_0.byte_15_E19 = byte_1[0x12];
|
|
this.struct12_0.byte_24_E24 = byte_1[0x13];
|
|
this.struct12_0.byte_38_E41 = byte_1[20];
|
|
this.struct12_0.byte_25_E44 = byte_1[0x15];
|
|
this.struct12_0.byte_26_E45 = byte_1[0x16];
|
|
this.struct12_0.byte_6_E8 = byte_1[0x17];
|
|
this.struct12_0.byte_35_E39 = byte_1[0x18];
|
|
}
|
|
FrameCounts++;
|
|
if (this.method_34_GetConnected() && !this.method_63_HasLogsFileOpen())
|
|
{
|
|
this.struct12_0.long_3 = FrameCounts;
|
|
this.struct12_0.long_4 = 10;
|
|
}
|
|
else
|
|
{
|
|
this.struct12_0.long_3 = this.stopwatch_1.ElapsedMilliseconds;
|
|
this.struct12_0.long_4 = this.stopwatch_0.ElapsedMilliseconds;
|
|
}
|
|
this.stopwatch_0.Reset();
|
|
this.struct12_0.long_5 = this.long_1;
|
|
this.struct12_0.byte_40 = this.struct12_0.byte_24_E24;
|
|
this.struct12_0.byte_41 = this.struct12_0.byte_25_E44;
|
|
this.struct12_0.byte_42 = this.struct12_0.byte_26_E45;
|
|
if (this.class10_settings_0.bool_25)
|
|
{
|
|
try
|
|
{
|
|
this.struct12_0.byte_43 = this.class18_0.method_213(this.class18_0.method_241(this.class2_serialWB_0.method_1()));
|
|
goto Label_07C3;
|
|
}
|
|
catch
|
|
{
|
|
throw;
|
|
}
|
|
}
|
|
switch (this.class10_settings_0.wbinput_0)
|
|
{
|
|
case WBinput.o2Input:
|
|
this.struct12_0.byte_43 = this.struct12_0.byte_2;
|
|
break;
|
|
|
|
case WBinput.eldInput:
|
|
this.struct12_0.byte_43 = this.struct12_0.byte_24_E24;
|
|
break;
|
|
|
|
case WBinput.egrInput:
|
|
this.struct12_0.byte_43 = this.struct12_0.byte_25_E44;
|
|
break;
|
|
|
|
case WBinput.b6Input:
|
|
this.struct12_0.byte_43 = this.struct12_0.byte_26_E45;
|
|
break;
|
|
|
|
default:
|
|
this.struct12_0.byte_43 = this.struct12_0.byte_2;
|
|
this.class18_0.class17_0.frmMain_0.LogThis("wideband input error in selection");
|
|
break;
|
|
//throw new Exception("wideband input error in selection");
|
|
}
|
|
Label_07C3:
|
|
if (this.class10_settings_0.bool_23 && (this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_50) == 0))
|
|
{
|
|
if (this.struct12_0.byte_3 != 0)
|
|
{
|
|
int num = (int) Math.Round((double) ((((this.struct12_0.byte_3 / 2) + 0x18) * 7.221) - 59.0), 0);
|
|
if (this.class10_settings_0.int_6 != num)
|
|
{
|
|
this.class10_settings_0.int_6 = num;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.class10_settings_0.int_6 = 0x3f2;
|
|
}
|
|
}
|
|
this.struct23_0.bool_0 = this.class18_0.method_258(this.struct12_0.byte_6_E8, 3);
|
|
this.struct23_0.bool_1 = this.class18_0.method_258(this.struct12_0.byte_35_E39, 5);
|
|
this.frmMain_0.method_2(ref this.struct12_0);
|
|
if (this.struct12_0.byte_7_E9 > (this.class18_0.method_32_GetRPM_RowsNumber() - 1))
|
|
{
|
|
this.struct12_0.byte_7_E9 = (byte) (this.class18_0.method_32_GetRPM_RowsNumber() - 1);
|
|
}
|
|
if (this.struct12_0.byte_8_E10 > (this.class18_0.method_32_GetRPM_RowsNumber() - 1))
|
|
{
|
|
this.struct12_0.byte_8_E10 = (byte) (this.class18_0.method_32_GetRPM_RowsNumber() - 1);
|
|
}
|
|
if (this.struct12_0.byte_9_E11 > (this.class10_settings_0.method_11_GetMAP_ColumnsNumber() - 1))
|
|
{
|
|
if (!this.class18_0.method_42())
|
|
{
|
|
if (((this.struct12_0.byte_9_E11 > 0x17) && !this.bool_12) && (this.class18_0.class15_0.method_22() != BMTuneVersions.datalogger))
|
|
{
|
|
if (this.struct12_0.byte_4 < this.class18_0.method_165(0))
|
|
{
|
|
this.bool_12 = true;
|
|
if (MessageBox.Show(Form.ActiveForm, string.Concat(new object[] { "Error!" + Environment.NewLine + "Current mbar is lower then column1.", Environment.NewLine, "Current mbar is ", this.class18_0.method_206(this.struct12_0.byte_4), " and colomn 1 mbar is ", this.class18_0.method_163(0), Environment.NewLine, "Would like to lower column 1 mbar to ", this.class18_0.method_206(this.struct12_0.byte_4 - 3), "?" }), "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Hand) == DialogResult.Yes)
|
|
{
|
|
int num2 = this.class18_0.method_206(this.struct12_0.byte_4 - 3);
|
|
this.class18_0.method_173(0, num2);
|
|
this.class18_0.method_53();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.bool_12 = true;
|
|
MessageBox.Show(Form.ActiveForm, "Error!" + Environment.NewLine + "Current load is higher then load of last column!");
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.bool_12 = true;
|
|
MessageBox.Show(Form.ActiveForm, "Error!" + Environment.NewLine + "Set the TPS range indexing properly!");
|
|
}
|
|
this.struct12_0.byte_9_E11 = (byte) (this.class10_settings_0.method_11_GetMAP_ColumnsNumber() - 1);
|
|
}
|
|
if (this.struct23_0.bool_0)
|
|
{
|
|
this.struct23_0.struct24_0.int_0 = this.struct12_0.byte_8_E10;
|
|
this.struct23_0.float_0 = 0f;
|
|
if (this.struct23_0.struct24_0.int_0 < this.class18_0.method_32_GetRPM_RowsNumber())
|
|
{
|
|
int num3 = this.class18_0.method_159(this.struct12_0.byte_8_E10);
|
|
int num4 = this.class18_0.method_159((byte) (this.struct12_0.byte_8_E10 + 1));
|
|
this.struct23_0.float_0 = ((float) this.class18_0.method_218((long) this.struct12_0.ushort_0_E6_7)) / ((float) (num3 + num4));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.struct23_0.struct24_0.int_0 = this.struct12_0.byte_7_E9;
|
|
this.struct23_0.float_0 = 0f;
|
|
if (this.struct23_0.struct24_0.int_0 < this.class18_0.method_32_GetRPM_RowsNumber())
|
|
{
|
|
int num5 = this.class18_0.method_159(this.struct12_0.byte_7_E9);
|
|
int num6 = this.class18_0.method_159((byte) (this.struct12_0.byte_7_E9 + 1));
|
|
this.struct23_0.float_0 = ((float) this.class18_0.method_218((long) this.struct12_0.ushort_0_E6_7)) / ((float) (num5 + num6));
|
|
}
|
|
}
|
|
this.struct23_0.float_1 = 0f;
|
|
if (this.struct12_0.byte_9_E11 < ((byte) (this.class10_settings_0.method_11_GetMAP_ColumnsNumber() - 1)))
|
|
{
|
|
int num7 = this.class18_0.method_165(this.struct12_0.byte_9_E11);
|
|
int num8 = this.class18_0.method_165((byte) (this.struct12_0.byte_9_E11 + 1));
|
|
this.struct23_0.float_1 = ((float) this.struct12_0.byte_4) / ((float) (num7 + num8));
|
|
}
|
|
this.struct23_0.struct24_0.int_1 = this.struct12_0.byte_9_E11;
|
|
this.struct23_0.struct24_1 = this.struct23_0.struct24_0;
|
|
if (this.struct23_0.float_0 >= 0.5) this.struct23_0.struct24_1.int_0++;
|
|
if (this.struct23_0.float_1 >= 0.5) this.struct23_0.struct24_1.int_1++;
|
|
this.struct12_0.struct24_0 = this.struct23_0.struct24_1;
|
|
this.struct23_0.struct24_2 = this.struct23_0.struct24_0;
|
|
this.struct23_0.method_0(this.struct23_0.struct24_0, ref this.class10_settings_0);
|
|
this.struct23_0.byte_0 = this.struct12_0.byte_43;
|
|
bool flag = this.class18_0.method_258(this.struct12_0.byte_6_E8, 4) || this.class18_0.method_258(this.struct12_0.byte_6_E8, 5);
|
|
this.struct17_0.bool_0 = this.struct23_0.bool_0;
|
|
this.struct12_0.bool_11 = this.struct23_0.bool_0;
|
|
this.struct17_0.bool_1 = this.struct23_0.bool_1;
|
|
this.struct12_0.bool_12 = this.struct23_0.bool_1;
|
|
if (this.class10_settings_0.bool_48) this.struct17_0.bool_2 = flag;
|
|
else this.struct17_0.bool_2 = false;
|
|
this.struct17_0.struct24_0.int_0 = this.struct23_0.struct24_0.int_0;
|
|
this.struct17_0.struct24_0.int_1 = this.struct23_0.struct24_0.int_1;
|
|
this.struct17_0.float_0 = this.struct23_0.float_0;
|
|
this.struct17_0.float_1 = this.struct23_0.float_1;
|
|
this.struct17_0.method_1(this.struct17_0.struct24_0, ref this.class18_0);
|
|
this.struct17_0.struct24_1 = this.struct23_0.struct24_1;
|
|
this.struct17_0.byte_0 = this.struct12_0.byte_43;
|
|
this.struct17_0.long_1 = this.struct12_0.ushort_0_E6_7;
|
|
this.struct17_0.byte_2 = this.struct12_0.byte_4;
|
|
this.struct17_0.byte_1 = this.struct12_0.byte_5;
|
|
this.struct17_0.byte_3 = this.struct12_0.byte_0;
|
|
this.struct17_0.byte_4 = this.struct12_0.byte_1;
|
|
this.struct17_0.byte_5 = this.struct12_0.byte_20;
|
|
this.struct17_0.long_0 = this.struct12_0.long_3;
|
|
float num9 = 0f;
|
|
this.struct12_0.bool_0 = this.class10_settings_0.bool_36 && !this.method_88(AnalogInputs.analog1);
|
|
this.struct12_0.bool_1 = this.class10_settings_0.bool_38 && !this.method_88(AnalogInputs.analog2);
|
|
this.struct12_0.bool_2 = this.class10_settings_0.bool_40 && !this.method_88(AnalogInputs.analog3);
|
|
this.struct12_0.bool_3 = this.method_86(SensorsX.egt_cht1);
|
|
if (this.method_87(SensorsX.egt_cht1))
|
|
{
|
|
if (this.class10_settings_0.int_55 == 1)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog1, this.struct12_0.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_55 == 2)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog2, this.struct12_0.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_55 == 3)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog3, this.struct12_0.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_0 = num9;
|
|
this.struct12_0.bool_4 = this.method_86(SensorsX.egt_cht2);
|
|
if (this.method_87(SensorsX.egt_cht2))
|
|
{
|
|
if (this.class10_settings_0.int_56 == 1)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog1, this.struct12_0.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_56 == 2)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog2, this.struct12_0.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_56 == 3)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog3, this.struct12_0.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_1 = num9;
|
|
this.struct12_0.bool_5 = this.method_86(SensorsX.egt_cht3);
|
|
if (this.method_87(SensorsX.egt_cht3))
|
|
{
|
|
if (this.class10_settings_0.int_57 == 1)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog1, this.struct12_0.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_57 == 2)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog2, this.struct12_0.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_57 == 3)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog3, this.struct12_0.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_2 = num9;
|
|
this.struct12_0.bool_6 = this.method_86(SensorsX.egt_cht4);
|
|
if (this.method_87(SensorsX.egt_cht4))
|
|
{
|
|
if (this.class10_settings_0.int_58 == 1)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog1, this.struct12_0.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_58 == 2)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog2, this.struct12_0.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_58 == 3)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog3, this.struct12_0.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_3 = num9;
|
|
this.struct12_0.bool_7 = this.method_86(SensorsX.egt_chtAvg);
|
|
if (this.method_87(SensorsX.egt_chtAvg))
|
|
{
|
|
if (this.class10_settings_0.int_59 == 1)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog1, this.struct12_0.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_59 == 2)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog2, this.struct12_0.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_59 == 3)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog3, this.struct12_0.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_4 = num9;
|
|
this.struct12_0.bool_8 = this.method_86(SensorsX.backPres);
|
|
if (this.method_87(SensorsX.backPres))
|
|
{
|
|
if (this.class10_settings_0.int_60 == 1)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog1, this.struct12_0.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_60 == 2)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog2, this.struct12_0.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_60 == 3)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog3, this.struct12_0.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_5 = num9;
|
|
this.struct12_0.bool_9 = this.method_86(SensorsX.fuelPres);
|
|
if (this.method_87(SensorsX.fuelPres))
|
|
{
|
|
if (this.class10_settings_0.int_61 == 1)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog1, this.struct12_0.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_61 == 2)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog2, this.struct12_0.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_61 == 3)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog3, this.struct12_0.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_6 = num9;
|
|
this.struct12_0.bool_10 = this.method_86(SensorsX.iat2);
|
|
if (this.method_87(SensorsX.iat2))
|
|
{
|
|
if (this.class10_settings_0.int_62 == 1)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog1, this.struct12_0.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_62 == 2)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog2, this.struct12_0.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_62 == 3)
|
|
{
|
|
num9 = this.class18_0.method_201(AnalogInputs.analog3, this.struct12_0.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_7 = num9;
|
|
if (this.delegate47_0 != null)
|
|
{
|
|
this.delegate47_0(this.struct17_0);
|
|
}
|
|
if (this.delegate50_0 != null)
|
|
{
|
|
this.delegate50_0(this.struct12_0);
|
|
}
|
|
this.struct20_0.byte_0 = this.struct12_0.byte_10_E12;
|
|
this.struct20_0.byte_1 = this.struct12_0.byte_11_E13;
|
|
this.struct20_0.byte_2 = this.struct12_0.byte_12_E14;
|
|
this.struct20_0.byte_3 = this.struct12_0.byte_13_E15;
|
|
if (((this.struct20_0.byte_0 != 0) || (this.struct20_0.byte_1 != 0)) || ((this.struct20_0.byte_2 != 0) || (this.struct20_0.byte_3 != 0)))
|
|
{
|
|
this.struct12_0.byte_19 = 1;
|
|
}
|
|
else
|
|
{
|
|
this.struct12_0.byte_19 = 0;
|
|
}
|
|
return this.struct12_0;
|
|
}
|
|
|
|
private void method_39()
|
|
{
|
|
this.thread_1 = new Thread(new ThreadStart(this.method_40_SendBytes_Delegate));
|
|
this.thread_1.Priority = ThreadPriority.Normal;
|
|
this.thread_1.Start();
|
|
}
|
|
|
|
public void method_4(DataloggingState dataloggingState_2)
|
|
{
|
|
this.dataloggingState_0 = dataloggingState_2;
|
|
if (this.delegate46_0 != null)
|
|
{
|
|
this.delegate46_0(this.dataloggingState_0, this.method_34_GetConnected());
|
|
}
|
|
}
|
|
|
|
private void method_40_SendBytes_Delegate()
|
|
{
|
|
if ((Application.OpenForms[0].WindowState != FormWindowState.Minimized) && this.class18_0.method_30_HasFileLoadedInBMTune())
|
|
{
|
|
if (this.delegate49_0 != null)
|
|
{
|
|
this.delegate49_0(this.struct23_0);
|
|
}
|
|
if (this.delegate45_0 != null)
|
|
{
|
|
this.delegate45_0(this.struct20_0);
|
|
}
|
|
if (this.delegate54_0 != null)
|
|
{
|
|
//this.class18_Sensors.LoadSensorsData(this.struct12_0);
|
|
this.delegate54_0(this.struct12_0);
|
|
}
|
|
}
|
|
}
|
|
|
|
private byte method_41()
|
|
{
|
|
return this.byte_0;
|
|
}
|
|
|
|
private void method_42()
|
|
{
|
|
this.byte_0 = 0;
|
|
}
|
|
|
|
private void method_43(byte byte_1)
|
|
{
|
|
this.byte_0 = (byte) (this.byte_0 + byte_1);
|
|
}
|
|
|
|
private void method_44(byte[] byte_1, int int_3)
|
|
{
|
|
this.byte_0 = 0;
|
|
for (int i = 0; i < int_3; i++)
|
|
{
|
|
this.byte_0 = (byte) (this.byte_0 + byte_1[i]);
|
|
}
|
|
}
|
|
|
|
/*private bool method_45()
|
|
{
|
|
bool flag;
|
|
int num = this.class10_0.int_21;
|
|
int num2 = 0;
|
|
Label_0013:
|
|
if (num2 == num)
|
|
{
|
|
return false;
|
|
}
|
|
this.method_42();
|
|
byte[] buffer_0 = new byte[0x11];
|
|
buffer_0[0] = 0x44;
|
|
buffer_0[1] = 0x52;
|
|
buffer_0[2] = 0;
|
|
buffer_0[3] = 0x17;
|
|
buffer_0[4] = 0;
|
|
buffer_0[5] = 0;
|
|
buffer_0[6] = 3;
|
|
buffer_0[7] = 1;
|
|
buffer_0[8] = 1;
|
|
buffer_0[9] = 0x10;
|
|
buffer_0[10] = 1;
|
|
buffer_0[11] = 1;
|
|
buffer_0[12] = 0x10;
|
|
buffer_0[13] = 1;
|
|
buffer_0[14] = 1;
|
|
buffer_0[15] = 0x10;
|
|
this.method_44(buffer_0, 0x10);
|
|
byte num3 = this.method_41();
|
|
buffer_0[0x10] = num3;
|
|
try
|
|
{
|
|
this.method_16(buffer_0, 0, 0x11);
|
|
byte num4 = this.method_7();
|
|
if (num4 == 0x4f)
|
|
{
|
|
num2 = 0;
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " detected and replied succes");
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
LogThis(this.class25_0.emulatorMoatesType_0 + " detected and replied: " + num4.ToString("X2") + " " + ((char) num4).ToString());
|
|
num2++;
|
|
goto Label_0013;
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
LogThis("Error message " + exception.Message + " retry #:" + num2.ToString());
|
|
MessageBox.Show(new Form {TopMost = true}, exception.Message);
|
|
num2++;
|
|
goto Label_0013;
|
|
}
|
|
return flag;
|
|
}*/
|
|
|
|
private bool method_46()
|
|
{
|
|
bool flag;
|
|
int num = this.class10_settings_0.int_21;
|
|
int num2 = 0;
|
|
Label_0013:
|
|
if (!this.method_17())
|
|
{
|
|
this.method_18();
|
|
}
|
|
this.DiscardBuffer();
|
|
if (num2 == num)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, "Failed to set datalog command", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
return false;
|
|
}
|
|
this.method_42();
|
|
byte[] buffer_0 = new byte[11];
|
|
buffer_0[0] = 0x44;
|
|
buffer_0[1] = 0x52;
|
|
buffer_0[2] = 0;
|
|
buffer_0[3] = 0x17;
|
|
buffer_0[4] = 0;
|
|
buffer_0[5] = 0;
|
|
buffer_0[6] = 1;
|
|
buffer_0[7] = 1;
|
|
buffer_0[8] = 0x34;
|
|
buffer_0[9] = 0x20;
|
|
this.method_44(buffer_0, 10);
|
|
byte num3 = this.method_41();
|
|
buffer_0[10] = num3;
|
|
try
|
|
{
|
|
this.method_16(buffer_0, 0, 11);
|
|
if (this.method_7() == 0x4f)
|
|
{
|
|
num2 = 0;
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
num2++;
|
|
goto Label_0013;
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, exception.Message);
|
|
num2++;
|
|
goto Label_0013;
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
private bool method_47()
|
|
{
|
|
bool flag;
|
|
int num = this.class10_settings_0.int_21;
|
|
int num2 = 0;
|
|
Label_0013:
|
|
if (!this.method_17())
|
|
{
|
|
this.method_18();
|
|
}
|
|
this.DiscardBuffer();
|
|
if (num2 == num)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, "Failed to set datalog command:" + Environment.NewLine + "MIL CLEAR", "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
return false;
|
|
}
|
|
this.method_42();
|
|
byte[] buffer_0 = new byte[11];
|
|
buffer_0[0] = 0x44;
|
|
buffer_0[1] = 0x52;
|
|
buffer_0[2] = 0;
|
|
buffer_0[3] = 0x17;
|
|
buffer_0[4] = 0;
|
|
buffer_0[5] = 0;
|
|
buffer_0[6] = 1;
|
|
buffer_0[7] = 1;
|
|
buffer_0[8] = 1;
|
|
buffer_0[9] = 80;
|
|
this.method_44(buffer_0, 10);
|
|
byte num3 = this.method_41();
|
|
buffer_0[10] = num3;
|
|
try
|
|
{
|
|
this.method_16(buffer_0, 0, 11);
|
|
if (this.method_7() == 0x4f)
|
|
{
|
|
num2 = 0;
|
|
flag = true;
|
|
}
|
|
else
|
|
{
|
|
num2++;
|
|
goto Label_0013;
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, exception.Message);
|
|
num2++;
|
|
goto Label_0013;
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
private void method_48()
|
|
{
|
|
try
|
|
{
|
|
byte[] buffer_0 = new byte[] { 100 };
|
|
this.serialPort_0.Write(buffer_0, 0, 1);
|
|
buffer_0 = null;
|
|
}
|
|
catch (Exception)
|
|
{
|
|
throw;
|
|
}
|
|
}
|
|
|
|
private void method_49(Struct12 struct12_1)
|
|
{
|
|
if (this.method_34_GetConnected() && !this.method_63_HasLogsFileOpen())
|
|
{
|
|
if (this.list_0 == null) this.list_0 = new List<Struct12>();
|
|
struct12_1.long_3 = FrameCounts;
|
|
this.list_0.Add(struct12_1);
|
|
}
|
|
if (!this.method_25())
|
|
{
|
|
return;
|
|
}
|
|
this.enum9_0 = (Enum9)0;
|
|
this.enum10_0 = (Enum10)0;
|
|
bool flag = false;
|
|
bool flag2 = false;
|
|
bool flag3 = false;
|
|
flag = ((this.class18_0.method_198(struct12_1.byte_5) >= 0) && (struct12_1.byte_14_E16 >= 0)) && (this.class18_0.method_218((long)struct12_1.ushort_0_E6_7) >= 0);
|
|
flag3 = flag;
|
|
switch (this.enum9_0)
|
|
{
|
|
case Enum9.const_0:
|
|
goto Label_01C5;
|
|
}
|
|
if (this.enum10_0 == Enum10.const_0)
|
|
{
|
|
flag3 = flag && flag2;
|
|
}
|
|
else if (flag2 || flag)
|
|
{
|
|
flag3 = true;
|
|
}
|
|
else
|
|
{
|
|
flag3 = false;
|
|
}
|
|
Label_01C5:
|
|
this.bool_15 = flag3;
|
|
if (!flag3)
|
|
{
|
|
this.dataloggingState_1 = this.method_3();
|
|
}
|
|
if (flag3)
|
|
{
|
|
if (this.method_25() && (this.method_3() != DataloggingState.Recording))
|
|
{
|
|
this.method_4(DataloggingState.Recording);
|
|
this.method_StartRecord();
|
|
}
|
|
}
|
|
else if (this.method_50())
|
|
{
|
|
this.method_StartRecord();
|
|
if (this.method_25() && this.method_54())
|
|
{
|
|
string destFileName = (this.string_1 + @"\log_") + DateTime.Now.ToString("ddMMyyyy_HHmmss") + ".bml";
|
|
FileInfo info = new FileInfo(this.string_0);
|
|
try
|
|
{
|
|
info.CopyTo(destFileName);
|
|
byte[] byte_99_0 = this.class18_0.method_92(File.ReadAllBytes(destFileName));
|
|
File.WriteAllBytes(destFileName, byte_99_0);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
finally
|
|
{
|
|
info.Delete();
|
|
info = null;
|
|
}
|
|
this.method_4(this.method_3());
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool method_50()
|
|
{
|
|
return this.bool_2;
|
|
}
|
|
|
|
public void method_51(bool bool_18)
|
|
{
|
|
this.bool_2 = bool_18;
|
|
if (bool_18)
|
|
{
|
|
this.method_4(DataloggingState.Recording);
|
|
}
|
|
}
|
|
|
|
private void method_52(Struct12 struct12_1)
|
|
{
|
|
BinaryWriter writer;
|
|
FileStream output = new FileStream(this.string_0, FileMode.OpenOrCreate, FileAccess.Write);
|
|
writer = new BinaryWriter(output);
|
|
writer.BaseStream.Position = writer.BaseStream.Length;
|
|
|
|
this.long_2 = ((int)((writer.BaseStream.Length - 0x7b) - 0x10L)) / (0x7b + 1);
|
|
this.long_3 = struct12_1.long_3;
|
|
|
|
int num = 0;
|
|
int num2 = 6;
|
|
int num3 = 0x7b;
|
|
if (writer.BaseStream.Position == 0L)
|
|
{
|
|
writer.Write((byte) 0x42);
|
|
writer.Write((byte) 0x4d);
|
|
writer.Write((byte) 0x54);
|
|
writer.Write((byte) 0x75);
|
|
writer.Write((byte) 0x6e);
|
|
writer.Write((byte) 0x65);
|
|
writer.Write((byte) 0x2e);
|
|
writer.Write((byte) 0x62);
|
|
writer.Write((byte) 0x6d);
|
|
writer.Write((byte) 0x6c);
|
|
writer.Write((ushort) num2);
|
|
writer.Write((byte) num3);
|
|
writer.Write(num);
|
|
}
|
|
writer.Write(struct12_1.byte_0);
|
|
writer.Write(struct12_1.byte_1);
|
|
writer.Write(struct12_1.byte_2);
|
|
writer.Write(struct12_1.byte_3);
|
|
writer.Write(struct12_1.byte_4);
|
|
writer.Write(struct12_1.byte_5);
|
|
writer.Write(struct12_1.ushort_0_E6_7);
|
|
writer.Write(struct12_1.byte_6_E8);
|
|
writer.Write(struct12_1.byte_7_E9);
|
|
writer.Write(struct12_1.byte_8_E10);
|
|
writer.Write(struct12_1.byte_9_E11);
|
|
writer.Write(struct12_1.byte_10_E12);
|
|
writer.Write(struct12_1.byte_11_E13);
|
|
writer.Write(struct12_1.byte_12_E14);
|
|
writer.Write(struct12_1.byte_13_E15);
|
|
writer.Write(struct12_1.byte_14_E16);
|
|
writer.Write(struct12_1.ushort_1_E17_18);
|
|
writer.Write(struct12_1.byte_15_E19);
|
|
writer.Write(struct12_1.byte_16_E20);
|
|
writer.Write(struct12_1.byte_21_E21);
|
|
writer.Write(struct12_1.byte_22_E22);
|
|
writer.Write(struct12_1.byte_23_E23);
|
|
writer.Write(struct12_1.byte_24_E24);
|
|
writer.Write(struct12_1.byte_27_E25);
|
|
writer.Write(struct12_1.long_3);
|
|
writer.Write(struct12_1.long_4);
|
|
writer.Write(struct12_1.byte_28_E26);
|
|
writer.Write((ushort)struct12_1.long_0_E27_28);
|
|
writer.Write((ushort)struct12_1.long_1_E29_30);
|
|
writer.Write((ushort)struct12_1.long_2_E31_32);
|
|
writer.Write(struct12_1.byte_29_E33);
|
|
writer.Write(struct12_1.byte_30_E34);
|
|
writer.Write(struct12_1.byte_31_E35);
|
|
writer.Write(struct12_1.byte_32_E36);
|
|
writer.Write(struct12_1.byte_33_E37);
|
|
writer.Write(struct12_1.byte_34_E38);
|
|
writer.Write(struct12_1.byte_35_E39);
|
|
writer.Write(struct12_1.byte_37_E40);
|
|
writer.Write(struct12_1.byte_38_E41);
|
|
writer.Write(struct12_1.byte_39_E42);
|
|
writer.Write(struct12_1.byte_36_E43);
|
|
writer.Write(struct12_1.byte_25_E44);
|
|
writer.Write(struct12_1.byte_26_E45);
|
|
writer.Write(struct12_1.byte_44_E46);
|
|
writer.Write(struct12_1.byte_45_E47);
|
|
writer.Write(struct12_1.byte_46_E48);
|
|
writer.Write(struct12_1.ushort_2_E49_50);
|
|
writer.Write(struct12_1.byte_43);
|
|
writer.Write((ushort)struct12_1.long_6);
|
|
writer.Write((ushort)struct12_1.long_7);
|
|
writer.Write(struct12_1.bool_0);
|
|
writer.Write(struct12_1.bool_1);
|
|
writer.Write(struct12_1.bool_2);
|
|
writer.Write(struct12_1.bool_3);
|
|
writer.Write(struct12_1.float_0);
|
|
writer.Write(struct12_1.bool_4);
|
|
writer.Write(struct12_1.float_1);
|
|
writer.Write(struct12_1.bool_5);
|
|
writer.Write(struct12_1.float_2);
|
|
writer.Write(struct12_1.bool_6);
|
|
writer.Write(struct12_1.float_3);
|
|
writer.Write(struct12_1.bool_7);
|
|
writer.Write(struct12_1.float_4);
|
|
writer.Write(struct12_1.bool_8);
|
|
writer.Write(struct12_1.float_5);
|
|
writer.Write(struct12_1.bool_9);
|
|
writer.Write(struct12_1.float_6);
|
|
writer.Write(struct12_1.bool_10);
|
|
writer.Write(struct12_1.float_7);
|
|
writer.Write(struct12_1.float_8);
|
|
writer.Write(struct12_1.float_9);
|
|
writer.Write(struct12_1.byte_47);
|
|
writer.Close();
|
|
writer = null;
|
|
output.Close();
|
|
output.Dispose();
|
|
output = null;
|
|
|
|
/*if (this.delegate53_0 != null)
|
|
{
|
|
this.delegate53_0(this.long_2, this.method_64());
|
|
}*/
|
|
}
|
|
|
|
public void method_StartRecord()
|
|
{
|
|
if (this.method_50())
|
|
{
|
|
this.timer_0.Stop();
|
|
if (this.backgroundWorker_1.IsBusy)
|
|
{
|
|
this.backgroundWorker_1.CancelAsync();
|
|
}
|
|
while (this.backgroundWorker_1.IsBusy)
|
|
{
|
|
}
|
|
this.method_51(false);
|
|
this.queue_0.Clear();
|
|
this.method_4(DataloggingState.Connected);
|
|
if ((this.class10_settings_0.bool_26 && !this.method_23()) && !this.method_25())
|
|
{
|
|
this.method_67(this.string_0);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (this.method_54())
|
|
{
|
|
string text = "Temporary datalog file found." + Environment.NewLine + "" + Environment.NewLine + "Do you want to save the file?";
|
|
if (MessageBox.Show(text, "BMTune", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly, false) == DialogResult.Yes)
|
|
{
|
|
this.method_SaveDatalog();
|
|
}
|
|
else
|
|
{
|
|
File.Delete(this.string_0);
|
|
}
|
|
}
|
|
while ((this.queue_0.Count > 0) && this.backgroundWorker_1.IsBusy)
|
|
{
|
|
}
|
|
this.queue_0.Clear();
|
|
this.stopwatch_0.Reset();
|
|
this.stopwatch_1.Reset();
|
|
this.long_1 = 0L;
|
|
this.timer_0.Start();
|
|
this.method_51(true);
|
|
this.method_4(DataloggingState.Recording);
|
|
}
|
|
}
|
|
|
|
public bool method_54()
|
|
{
|
|
FileInfo info = new FileInfo(this.string_0);
|
|
bool flag = false;
|
|
if (info.Exists)
|
|
{
|
|
flag = true;
|
|
}
|
|
info = null;
|
|
return flag;
|
|
}
|
|
|
|
public void method_SaveDatalog()
|
|
{
|
|
if (this.method_63_HasLogsFileOpen())
|
|
{
|
|
this.method_75();
|
|
}
|
|
FileInfo info = new FileInfo(this.string_0);
|
|
if (info.Exists)
|
|
{
|
|
SaveFileDialog dialog = new SaveFileDialog();
|
|
/*if (Settings.Default.logFilePath != string.Empty)
|
|
{
|
|
if (Settings.Default.logFilePath == Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\")
|
|
Settings.Default.logFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
}
|
|
else
|
|
{
|
|
Settings.Default.logFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
}
|
|
dialog.InitialDirectory = Settings.Default.logFilePath;*/
|
|
|
|
if (this.class10_settings_0.logFilePath != string.Empty)
|
|
{
|
|
if (this.class10_settings_0.logFilePath == Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\")
|
|
this.class10_settings_0.logFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
}
|
|
else
|
|
{
|
|
this.class10_settings_0.logFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
}
|
|
dialog.InitialDirectory = this.class10_settings_0.logFilePath;
|
|
|
|
dialog.Filter = "BMTune datalog|*.bml";
|
|
dialog.OverwritePrompt = true;
|
|
dialog.AddExtension = true;
|
|
dialog.DefaultExt = ".bml";
|
|
if (dialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
FileInfo info2 = new FileInfo(dialog.FileName);
|
|
//Settings.Default.logFilePath = info2.DirectoryName;
|
|
this.class10_settings_0.logFilePath = info2.DirectoryName;
|
|
string fileName = dialog.FileName;
|
|
if (File.Exists(fileName)) File.Delete(fileName);
|
|
info.CopyTo(fileName);
|
|
byte[] byte_99_0 = this.class18_0.method_92(File.ReadAllBytes(fileName));
|
|
File.WriteAllBytes(fileName, byte_99_0);
|
|
info.Delete();
|
|
}
|
|
dialog.Dispose();
|
|
dialog = null;
|
|
}
|
|
info = null;
|
|
}
|
|
|
|
public void method_56()
|
|
{
|
|
if (this.method_63_HasLogsFileOpen())
|
|
{
|
|
SaveFileDialog dialog = new SaveFileDialog();
|
|
/*if (Settings.Default.logFilePath != string.Empty)
|
|
{
|
|
if (Settings.Default.logFilePath == Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\")
|
|
{
|
|
Settings.Default.logFilePath = Application.StartupPath;
|
|
}
|
|
dialog.InitialDirectory = Settings.Default.logFilePath;
|
|
}*/
|
|
if (this.class10_settings_0.logFilePath != string.Empty)
|
|
{
|
|
if (this.class10_settings_0.logFilePath == Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\")
|
|
{
|
|
this.class10_settings_0.logFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
}
|
|
dialog.InitialDirectory = this.class10_settings_0.logFilePath;
|
|
}
|
|
|
|
dialog.CheckFileExists = false;
|
|
dialog.AddExtension = true;
|
|
dialog.Filter = "CVS export|*.csv";
|
|
if (dialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
StreamWriter writer;
|
|
FileInfo info = new FileInfo(dialog.FileName);
|
|
//Settings.Default.logFilePath = info.DirectoryName;
|
|
this.class10_settings_0.logFilePath = info.DirectoryName;
|
|
string fileName = dialog.FileName;
|
|
dialog.Dispose();
|
|
dialog = null;
|
|
try
|
|
{
|
|
writer = new StreamWriter(fileName);
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, exception.Message, "BMTune", MessageBoxButtons.OK, MessageBoxIcon.Hand);
|
|
writer = null;
|
|
return;
|
|
}
|
|
writer.WriteLine("BMTune Datalog export of " + this.method_62());
|
|
writer.WriteLine("BMTune file: " + this.class18_0.method_23());
|
|
writer.WriteLine("Total Frames: " + this.method_65().ToString());
|
|
writer.WriteLine("Duration :" + this.method_64());
|
|
writer.WriteLine(this.method_59());
|
|
foreach (Struct12 struct2 in this.list_0)
|
|
{
|
|
writer.WriteLine(this.method_60(struct2));
|
|
}
|
|
writer.Close();
|
|
writer.Dispose();
|
|
writer = null;
|
|
}
|
|
}
|
|
}
|
|
|
|
private string method_57(SensorsX sensors_0)
|
|
{
|
|
return this.class10_settings_0.method_13(sensors_0).ToString();
|
|
}
|
|
|
|
private string method_58()
|
|
{
|
|
return CultureInfo.CurrentCulture.TextInfo.ListSeparator.ToString();
|
|
}
|
|
|
|
private string method_59()
|
|
{
|
|
return (this.method_57(SensorsX.frame) + this.method_58() + this.method_57(SensorsX.duration) + this.method_58() + this.method_57(SensorsX.rpmX) + this.method_58() + this.method_57(SensorsX.vssX) + "(" + this.class10_settings_0.vssUnits_0.ToString() + ")" + this.method_58() + this.method_57(SensorsX.gearX) + this.method_58() + this.method_57(SensorsX.mapX) + "(mBar)" + this.method_58() + this.method_57(SensorsX.boostX) + "(psi)" + this.method_58() + this.method_57(SensorsX.paX) + "(mBar)" + this.method_58() + this.method_57(SensorsX.tpsX) + "(%)" + this.method_58() + this.method_57(SensorsX.tpsV) + "(v)" + this.method_58() + this.method_57(SensorsX.injDur) + "(ms)" + this.method_58() + this.method_57(SensorsX.injDuty) + "(%)" + this.method_58() + this.method_57(SensorsX.injFV) + this.method_58() + this.method_57(SensorsX.ignTbl) + "(degrees)" + this.method_58() + this.method_57(SensorsX.ignFnl) + "(degrees)" + this.method_58() + this.method_57(SensorsX.ectX) + "(" + this.class10_settings_0.temperatureUnits_0.ToString() + ")" + this.method_58() + this.method_57(SensorsX.iatX) + "(" + this.class10_settings_0.temperatureUnits_0.ToString() + ")" + this.method_58() + this.method_57(SensorsX.afr) + this.method_58() + this.method_57(SensorsX.ecuO2V) + "(v)" + this.method_58() + this.method_57(SensorsX.batV) + "(v)" + this.method_58() + this.method_57(SensorsX.eldV) + "(v)" + this.method_58() + this.method_57(SensorsX.mapV) + "(v)" + this.method_58() + this.method_57(SensorsX.mil));
|
|
}
|
|
|
|
private void method_6(object sender, PowerModeChangedEventArgs e)
|
|
{
|
|
if (e.Mode == PowerModes.Suspend)
|
|
{
|
|
this.LogThis("Supsend detected and logging is connected: " + this.method_34_GetConnected().ToString());
|
|
this.bool_0 = this.method_34_GetConnected();
|
|
if (this.method_34_GetConnected())
|
|
{
|
|
this.method_36();
|
|
}
|
|
this.timer_1.Stop();
|
|
this.method_20();
|
|
}
|
|
else if (e.Mode == PowerModes.Resume)
|
|
{
|
|
this.bool_0 = false;
|
|
}
|
|
}
|
|
|
|
private string method_60(Struct12 struct12_1)
|
|
{
|
|
string str2;
|
|
string str = (((float) struct12_1.long_3) / 1000f).ToString();
|
|
if (this.class18_0.method_206(struct12_1.byte_4) >= this.class10_settings_0.int_6)
|
|
{
|
|
str2 = this.class18_0.method_245(this.class18_0.method_206(struct12_1.byte_4)).ToString();
|
|
}
|
|
else
|
|
{
|
|
str2 = "0";
|
|
}
|
|
int num = this.class18_0.method_218((long) struct12_1.ushort_0_E6_7);
|
|
return string.Concat(new object[] {
|
|
struct12_1.long_5, this.method_58(), str, this.method_58(), num.ToString(), this.method_58(), this.class18_0.method_197(struct12_1.byte_14_E16).ToString(), this.method_58(), struct12_1.byte_20.ToString(), this.method_58(), this.class18_0.method_206(struct12_1.byte_4).ToString(), this.method_58(), str2, this.method_58(), this.class18_0.method_206(struct12_1.byte_3).ToString(), this.method_58(),
|
|
this.class18_0.method_198(struct12_1.byte_5).ToString(), this.method_58(), this.class18_0.method_196(struct12_1.byte_5).ToString("0.00"), this.method_58(), this.class18_0.method_224((int) this.class18_0.method_223(struct12_1.ushort_1_E17_18)).ToString("0.00"), this.method_58(), this.class18_0.method_225((int) this.class18_0.method_223(struct12_1.ushort_1_E17_18), num, 0).ToString("0.00"), this.method_58(), this.class18_0.method_223(struct12_1.ushort_1_E17_18).ToString("0.00"), this.method_58(), this.class18_0.method_188(struct12_1.byte_16_E20).ToString("0.00"), this.method_58(), this.class18_0.method_188(struct12_1.byte_15_E19).ToString("0.00"), this.method_58(), this.class18_0.method_191(struct12_1.byte_0).ToString("0"), this.method_58(),
|
|
this.class18_0.method_191(struct12_1.byte_1).ToString("0"), this.method_58(), this.class18_0.method_200(struct12_1.byte_43).ToString("0.00"), this.method_58(), this.class18_0.method_196(struct12_1.byte_2).ToString("0.00"), this.method_58(), this.class18_0.method_208(struct12_1.byte_27_E25).ToString("0.00"), this.method_58(), this.class18_0.method_196(struct12_1.byte_24_E24).ToString("0.00"), this.method_58(), this.class18_0.method_196(struct12_1.byte_4).ToString("0.00"), this.method_58(), this.method_61(struct12_1.byte_19)
|
|
});
|
|
}
|
|
|
|
private string method_61(byte byte_1)
|
|
{
|
|
if (byte_1 == 0)
|
|
{
|
|
return "OFF";
|
|
}
|
|
return "ON";
|
|
}
|
|
|
|
public string method_62()
|
|
{
|
|
FileInfo info = new FileInfo(this.string_2);
|
|
string name = info.Name;
|
|
info = null;
|
|
return name;
|
|
}
|
|
|
|
public bool method_63_HasLogsFileOpen()
|
|
{
|
|
return this.bool_6;
|
|
}
|
|
|
|
public string method_64()
|
|
{
|
|
if (this.method_63_HasLogsFileOpen() || this.method_50())
|
|
{
|
|
string str = TimeSpan.FromMilliseconds((double)this.long_3).ToString();
|
|
//string str = TimeSpan.FromMilliseconds((double) 0).ToString();
|
|
return str.Remove(str.Length - 4, 4);
|
|
}
|
|
return "";
|
|
}
|
|
|
|
public long method_65()
|
|
{
|
|
if (this.method_34_GetConnected() && !this.method_63_HasLogsFileOpen())
|
|
{
|
|
this.long_2 = this.FrameCounts;
|
|
//this.long_2 = ((((this.FrameCounts * 51) + 0x7b) + 0x10L)) * (0x7b + 1);
|
|
//this.long_2 = ((int)((writer.BaseStream.Length - 0x7b) - 0x10L)) / (0x7b + 1);
|
|
return this.long_2;
|
|
}
|
|
|
|
//if (!this.method_63() && !this.method_34())
|
|
if (!this.method_63_HasLogsFileOpen())
|
|
{
|
|
this.class18_0.class17_0.frmMain_0.LogThis("log not open or not logging");
|
|
//throw new Exception("log not open or not logging");
|
|
}
|
|
if (this.long_2 == 0L)
|
|
{
|
|
this.class18_0.class17_0.frmMain_0.LogThis("log file open and frame max is 0");
|
|
//throw new Exception("log file open and frame max is 0");
|
|
}
|
|
|
|
return this.long_2;
|
|
}
|
|
|
|
public void method_OpenLog()
|
|
{
|
|
if (this.backgroundWorker_0.IsBusy)
|
|
{
|
|
this.backgroundWorker_0.CancelAsync();
|
|
}
|
|
while (this.backgroundWorker_0.IsBusy)
|
|
{
|
|
Application.DoEvents();
|
|
}
|
|
OpenFileDialog dialog = new OpenFileDialog();
|
|
if (this.class10_settings_0.logFilePath == string.Empty) this.class10_settings_0.logFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
if (this.class10_settings_0.logFilePath.Contains(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))) this.class10_settings_0.logFilePath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
|
|
dialog.InitialDirectory = this.class10_settings_0.logFilePath;
|
|
|
|
dialog.Filter = "BMTune datalog|*.bml|eCtune datalog|*.elf|HTS datalog|*.log;*.rlog|All files (*.*)|*.*";
|
|
dialog.DefaultExt = ".bml";
|
|
dialog.CheckFileExists = true;
|
|
dialog.CheckPathExists = true;
|
|
if (dialog.ShowDialog() == DialogResult.OK)
|
|
{
|
|
if (this.method_3() == DataloggingState.PlayingF)
|
|
{
|
|
this.method_71();
|
|
this.method_75();
|
|
GC.Collect(3, GCCollectionMode.Forced);
|
|
}
|
|
|
|
//Open bmtune datalog files
|
|
string path = "";
|
|
if (dialog.FilterIndex == 1)
|
|
{
|
|
path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\" + Path.GetFileName(dialog.FileName);
|
|
byte[] byte_99_0 = this.class18_0.method_93(File.ReadAllBytes(dialog.FileName));
|
|
File.WriteAllBytes(path, byte_99_0);
|
|
}
|
|
//Open eCtune datalog files
|
|
if (dialog.FilterIndex == 2)
|
|
{
|
|
path = dialog.FileName;
|
|
}
|
|
if (dialog.FilterIndex == 3 || dialog.FilterIndex == 4)
|
|
{
|
|
string extension = Path.GetExtension(dialog.FileName);
|
|
if (extension == ".bml")
|
|
{
|
|
path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + @"\BMTune\" + Path.GetFileName(dialog.FileName);
|
|
byte[] byte_99_0 = this.class18_0.method_93(File.ReadAllBytes(dialog.FileName));
|
|
File.WriteAllBytes(path, byte_99_0);
|
|
}
|
|
if (extension == ".elf")
|
|
{
|
|
path = dialog.FileName;
|
|
}
|
|
if (extension == ".rlog")
|
|
{
|
|
string str = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\BMTune\\";
|
|
if (File.Exists(str + "PROG")) File.Delete(str + "PROG");
|
|
if (File.Exists(str + "DL")) File.Delete(str + "DL");
|
|
if (File.Exists(str + "SET")) File.Delete(str + "SET");
|
|
if (File.Exists(str + "OLDSET")) File.Delete(str + "OLDSET");
|
|
|
|
//File.Create(str + "OLDSET").Dispose();
|
|
//this.class10_settings_0.method_3();
|
|
//File.WriteAllBytes(str + "OLDSET", File.ReadAllBytes(this.class10_settings_0.path));
|
|
if (File.Exists(dialog.FileName))
|
|
{
|
|
using (FileStream fileStream = new FileStream(dialog.FileName, FileMode.Open))
|
|
{
|
|
using (ZipArchive zipArchive = new ZipArchive(fileStream, ZipArchiveMode.Read))
|
|
{
|
|
foreach (ZipArchiveEntry zipArchiveEntry in zipArchive.Entries)
|
|
{
|
|
using (Stream stream = zipArchiveEntry.Open())
|
|
{
|
|
using (BinaryReader binaryReader = new BinaryReader(stream))
|
|
{
|
|
using (FileStream fileStream2 = new FileStream(str + zipArchiveEntry.Name.ToString(), FileMode.CreateNew))
|
|
{
|
|
using (BinaryWriter binaryWriter = new BinaryWriter(fileStream2))
|
|
{
|
|
binaryWriter.Write(binaryReader.ReadBytes((int)zipArchiveEntry.Length));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//this.class10_settings_0.LoadSettings(str + "SET");
|
|
//this.class10_settings_0.method_2();
|
|
//this.class18_0.method_195(str + "PROG");
|
|
//dialog.FileName = str + "DL";
|
|
}
|
|
|
|
//final HTS datalog loading
|
|
if (extension == ".rlog" || extension == ".log")
|
|
{
|
|
string text = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\BMTune\\" + Path.GetFileName(dialog.FileName);
|
|
byte[] bytes = this.class18_0.method_246_HTSCrypter(File.ReadAllBytes(dialog.FileName));
|
|
File.WriteAllBytes(text, bytes);
|
|
path = text;
|
|
}
|
|
}
|
|
|
|
this.class10_settings_0.logFilePath = Path.GetDirectoryName(dialog.FileName);
|
|
this.string_2 = path;
|
|
this.method_67(path);
|
|
if (this.class10_settings_0.bool_7) this.method_70();
|
|
if (File.Exists(path)) File.Delete(path);
|
|
}
|
|
dialog.Dispose();
|
|
dialog = null;
|
|
}
|
|
|
|
public void method_67(string string_3)
|
|
{
|
|
if (!this.bool_17)
|
|
{
|
|
if (this.method_63_HasLogsFileOpen())
|
|
{
|
|
this.method_75();
|
|
}
|
|
this.string_2 = string_3;
|
|
this.bool_17 = true; //set loading
|
|
this.method_4(DataloggingState.Loading);
|
|
this.thread_2 = new Thread(new ThreadStart(this.method_68));
|
|
this.thread_2.Priority = ThreadPriority.Highest;
|
|
this.thread_2.Start();
|
|
while (this.thread_2.IsAlive)
|
|
{
|
|
Application.DoEvents();
|
|
}
|
|
this.bool_6 = true;
|
|
this.long_1 = 0L;
|
|
if (this.delegate53_0 != null)
|
|
{
|
|
this.delegate53_0(this.long_2, this.method_64());
|
|
}
|
|
this.struct12_0 = this.method_76(0L);
|
|
this.method_39();
|
|
this.bool_17 = false; //set loading
|
|
if (this.class10_settings_0.bool_7)
|
|
{
|
|
this.method_70(); //play log on open
|
|
}
|
|
}
|
|
}
|
|
|
|
public void method_68()
|
|
{
|
|
this.list_1.Clear();
|
|
int num = 0x3a;
|
|
string str = null;
|
|
this.int_1 = 0;
|
|
bool flag = false;
|
|
if (this.backgroundWorker_0.IsBusy)
|
|
{
|
|
this.backgroundWorker_0.CancelAsync();
|
|
}
|
|
while (this.backgroundWorker_0.IsBusy)
|
|
{
|
|
Application.DoEvents();
|
|
}
|
|
this.fileStream_0 = new FileStream(this.string_2, FileMode.Open, FileAccess.Read);
|
|
try
|
|
{
|
|
if (this.fileStream_0 != null)
|
|
{
|
|
this.fileStream_0.Dispose();
|
|
this.fileStream_0 = null;
|
|
}
|
|
this.fileStream_0 = new FileStream(this.string_2, FileMode.Open, FileAccess.Read);
|
|
if (this.binaryReader_0 != null)
|
|
{
|
|
this.binaryReader_0.Close();
|
|
this.binaryReader_0 = null;
|
|
}
|
|
this.binaryReader_0 = new BinaryReader(this.fileStream_0);
|
|
try
|
|
{
|
|
for (int j = 0; j < 10; j++)
|
|
{
|
|
str = str + this.binaryReader_0.ReadChar().ToString();
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
if (str == "BMTune.bml" || str == "eCtune.dlf" || str == "DATALOGGER")
|
|
{
|
|
flag = true;
|
|
this.binaryReader_0.BaseStream.Position = 10L;
|
|
this.int_1 = this.binaryReader_0.ReadUInt16();
|
|
num = this.binaryReader_0.ReadByte();
|
|
this.binaryReader_0.ReadInt32();
|
|
|
|
/*
|
|
int num2 = 6;
|
|
int num3 = 0x7b;
|
|
int num = 0;
|
|
*/
|
|
}
|
|
|
|
|
|
if (flag) this.long_2 = ((int) ((this.binaryReader_0.BaseStream.Length - num) - 0x10L)) / (num + 1);
|
|
else this.long_2 = (((int) this.binaryReader_0.BaseStream.Length) - num) / (num + 1);
|
|
|
|
if (this.list_0 != null) this.list_0 = null;
|
|
int num3 = 0;
|
|
this.list_0 = new List<Struct12>();
|
|
Struct12 item = new Struct12();
|
|
bool FileLoadingError = false;
|
|
for (int i = 0; i <= this.long_2; i++)
|
|
{
|
|
try
|
|
{
|
|
if (flag)
|
|
{
|
|
this.binaryReader_0.BaseStream.Position = 0x11 + (i * (num + 1));
|
|
}
|
|
else
|
|
{
|
|
this.binaryReader_0.BaseStream.Position = i * (num + 1);
|
|
}
|
|
item.long_5 = i;
|
|
item.byte_0 = this.binaryReader_0.ReadByte();
|
|
item.byte_1 = this.binaryReader_0.ReadByte();
|
|
item.byte_2 = this.binaryReader_0.ReadByte();
|
|
item.byte_3 = this.binaryReader_0.ReadByte();
|
|
item.byte_4 = this.binaryReader_0.ReadByte();
|
|
item.byte_5 = this.binaryReader_0.ReadByte();
|
|
item.ushort_0_E6_7 = this.binaryReader_0.ReadUInt16();
|
|
item.byte_6_E8 = this.binaryReader_0.ReadByte();
|
|
item.byte_7_E9 = this.binaryReader_0.ReadByte();
|
|
item.byte_8_E10 = this.binaryReader_0.ReadByte();
|
|
item.byte_9_E11 = this.binaryReader_0.ReadByte();
|
|
item.byte_10_E12 = this.binaryReader_0.ReadByte();
|
|
item.byte_11_E13 = this.binaryReader_0.ReadByte();
|
|
item.byte_12_E14 = this.binaryReader_0.ReadByte();
|
|
item.byte_13_E15 = this.binaryReader_0.ReadByte();
|
|
item.byte_14_E16 = this.binaryReader_0.ReadByte();
|
|
item.ushort_1_E17_18 = this.binaryReader_0.ReadUInt16();
|
|
item.byte_15_E19 = this.binaryReader_0.ReadByte();
|
|
item.byte_16_E20 = this.binaryReader_0.ReadByte();
|
|
item.byte_20 = this.class18_0.method_215(item.byte_14_E16, (long) item.ushort_0_E6_7);
|
|
item.byte_21_E21 = this.binaryReader_0.ReadByte();
|
|
item.byte_22_E22 = this.binaryReader_0.ReadByte();
|
|
item.byte_23_E23 = this.binaryReader_0.ReadByte();
|
|
item.byte_24_E24 = this.binaryReader_0.ReadByte();
|
|
item.byte_27_E25 = this.binaryReader_0.ReadByte();
|
|
item.long_3 = this.binaryReader_0.ReadInt64() - this.long_4;
|
|
item.long_4 = this.binaryReader_0.ReadInt64();
|
|
item.byte_28_E26 = this.binaryReader_0.ReadByte();
|
|
item.long_0_E27_28 = this.binaryReader_0.ReadUInt16();
|
|
item.long_1_E29_30 = this.binaryReader_0.ReadUInt16();
|
|
item.long_2_E31_32 = this.binaryReader_0.ReadUInt16();
|
|
item.byte_29_E33 = this.binaryReader_0.ReadByte();
|
|
item.byte_30_E34 = this.binaryReader_0.ReadByte();
|
|
item.byte_31_E35 = this.binaryReader_0.ReadByte();
|
|
item.byte_32_E36 = this.binaryReader_0.ReadByte();
|
|
item.byte_33_E37 = this.binaryReader_0.ReadByte();
|
|
item.byte_34_E38 = this.binaryReader_0.ReadByte();
|
|
item.byte_35_E39 = this.binaryReader_0.ReadByte();
|
|
item.byte_37_E40 = this.binaryReader_0.ReadByte();
|
|
item.byte_38_E41 = this.binaryReader_0.ReadByte();
|
|
item.byte_39_E42 = this.binaryReader_0.ReadByte();
|
|
item.byte_40 = item.byte_24_E24;
|
|
if (this.int_1 > 1)
|
|
{
|
|
item.byte_36_E43 = this.binaryReader_0.ReadByte();
|
|
item.byte_25_E44 = this.binaryReader_0.ReadByte();
|
|
item.byte_26_E45 = this.binaryReader_0.ReadByte();
|
|
item.byte_44_E46 = this.binaryReader_0.ReadByte();
|
|
item.byte_45_E47 = this.binaryReader_0.ReadByte();
|
|
item.byte_46_E48 = this.binaryReader_0.ReadByte();
|
|
item.ushort_2_E49_50 = this.binaryReader_0.ReadUInt16();
|
|
}
|
|
item.byte_41 = item.byte_25_E44;
|
|
item.byte_42 = item.byte_26_E45;
|
|
if (this.int_1 > 2)
|
|
{
|
|
item.byte_43 = this.binaryReader_0.ReadByte();
|
|
}
|
|
else
|
|
{
|
|
switch (this.class10_settings_0.wbinput_0)
|
|
{
|
|
case WBinput.o2Input:
|
|
item.byte_43 = item.byte_2;
|
|
goto Label_061C;
|
|
|
|
case WBinput.eldInput:
|
|
item.byte_43 = item.byte_24_E24;
|
|
goto Label_061C;
|
|
|
|
case WBinput.egrInput:
|
|
item.byte_43 = item.byte_25_E44;
|
|
goto Label_061C;
|
|
|
|
case WBinput.b6Input:
|
|
item.byte_43 = item.byte_26_E45;
|
|
goto Label_061C;
|
|
}
|
|
|
|
this.class18_0.class17_0.frmMain_0.LogThis("wideband input error in selection");
|
|
item.byte_43 = item.byte_2;
|
|
goto Label_061C;
|
|
//throw new Exception("wideband input error in selection");
|
|
}
|
|
Label_061C:
|
|
if (this.int_1 > 3)
|
|
{
|
|
item.long_6 = this.binaryReader_0.ReadUInt16();
|
|
item.long_7 = this.binaryReader_0.ReadUInt16();
|
|
}
|
|
if (this.int_1 <= 4)
|
|
{
|
|
float num5 = 0f;
|
|
item.bool_0 = this.class10_settings_0.bool_36 && !this.method_88(AnalogInputs.analog1);
|
|
item.bool_1 = this.class10_settings_0.bool_38 && !this.method_88(AnalogInputs.analog2);
|
|
item.bool_2 = this.class10_settings_0.bool_40 && !this.method_88(AnalogInputs.analog3);
|
|
item.bool_3 = this.method_86(SensorsX.egt_cht1);
|
|
if (this.method_87(SensorsX.egt_cht1))
|
|
{
|
|
if (this.class10_settings_0.int_55 == 1)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog1, item.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_55 == 2)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog2, item.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_55 == 3)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog3, item.byte_42);
|
|
}
|
|
}
|
|
item.float_0 = num5;
|
|
item.bool_4 = this.method_86(SensorsX.egt_cht2);
|
|
if (this.method_87(SensorsX.egt_cht2))
|
|
{
|
|
if (this.class10_settings_0.int_56 == 1)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog1, item.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_56 == 2)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog2, item.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_56 == 3)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog3, item.byte_42);
|
|
}
|
|
}
|
|
this.struct12_0.float_1 = num5;
|
|
item.bool_5 = this.method_86(SensorsX.egt_cht3);
|
|
if (this.method_87(SensorsX.egt_cht3))
|
|
{
|
|
if (this.class10_settings_0.int_57 == 1)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog1, item.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_57 == 2)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog2, item.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_57 == 3)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog3, item.byte_42);
|
|
}
|
|
}
|
|
item.float_2 = num5;
|
|
item.bool_6 = this.method_86(SensorsX.egt_cht4);
|
|
if (this.method_87(SensorsX.egt_cht4))
|
|
{
|
|
if (this.class10_settings_0.int_58 == 1)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog1, item.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_58 == 2)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog2, item.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_58 == 3)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog3, item.byte_42);
|
|
}
|
|
}
|
|
item.float_3 = num5;
|
|
item.bool_7 = this.method_86(SensorsX.egt_chtAvg);
|
|
if (this.method_87(SensorsX.egt_chtAvg))
|
|
{
|
|
if (this.class10_settings_0.int_59 == 1)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog1, item.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_59 == 2)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog2, item.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_59 == 3)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog3, item.byte_42);
|
|
}
|
|
}
|
|
item.float_4 = num5;
|
|
item.bool_8 = this.method_86(SensorsX.backPres);
|
|
if (this.method_87(SensorsX.backPres))
|
|
{
|
|
if (this.class10_settings_0.int_60 == 1)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog1, item.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_60 == 2)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog2, item.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_60 == 3)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog3, item.byte_42);
|
|
}
|
|
}
|
|
item.float_5 = num5;
|
|
item.bool_9 = this.method_86(SensorsX.fuelPres);
|
|
if (this.method_87(SensorsX.fuelPres))
|
|
{
|
|
if (this.class10_settings_0.int_61 == 1)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog1, item.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_61 == 2)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog2, item.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_61 == 3)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog3, item.byte_42);
|
|
}
|
|
}
|
|
item.float_6 = num5;
|
|
item.bool_10 = this.method_86(SensorsX.iat2);
|
|
if (this.method_87(SensorsX.iat2))
|
|
{
|
|
if (this.class10_settings_0.int_62 == 1)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog1, item.byte_40);
|
|
}
|
|
else if (this.class10_settings_0.int_62 == 2)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog2, item.byte_41);
|
|
}
|
|
else if (this.class10_settings_0.int_62 == 3)
|
|
{
|
|
num5 = this.class18_0.method_201(AnalogInputs.analog3, item.byte_42);
|
|
}
|
|
}
|
|
item.float_7 = num5;
|
|
}
|
|
if (this.int_1 >= 6)
|
|
{
|
|
item.byte_47 = this.binaryReader_0.ReadByte();
|
|
}
|
|
num3++;
|
|
this.list_0.Add(item);
|
|
this.struct23_0.bool_0 = this.class18_0.method_258(item.byte_6_E8, 3);
|
|
this.struct23_0.bool_1 = this.class18_0.method_258(item.byte_35_E39, 5);
|
|
if (item.byte_9_E11 > (this.class10_settings_0.method_11_GetMAP_ColumnsNumber() - 1))
|
|
{
|
|
item.byte_9_E11 = (byte) (this.class10_settings_0.method_11_GetMAP_ColumnsNumber() - 1);
|
|
}
|
|
if (this.struct23_0.bool_0)
|
|
{
|
|
this.struct23_0.struct24_0.int_0 = item.byte_8_E10;
|
|
this.struct23_0.float_0 = ((float) item.byte_45_E47) / 255f;
|
|
}
|
|
else
|
|
{
|
|
this.struct23_0.struct24_0.int_0 = item.byte_7_E9;
|
|
this.struct23_0.float_0 = ((float) item.byte_44_E46) / 255f;
|
|
}
|
|
this.struct23_0.float_1 = ((float) item.byte_46_E48) / 255f;
|
|
this.struct23_0.struct24_0.int_1 = item.byte_9_E11;
|
|
this.struct23_0.struct24_1 = this.struct23_0.struct24_0;
|
|
if (this.struct23_0.float_0 >= 0.5) this.struct23_0.struct24_1.int_0++;
|
|
if (this.struct23_0.float_1 >= 0.5) this.struct23_0.struct24_1.int_1++;
|
|
item.struct24_0 = this.struct23_0.struct24_1;
|
|
this.struct23_0.struct24_2 = this.struct23_0.struct24_0;
|
|
this.struct23_0.method_0(this.struct23_0.struct24_0, ref this.class10_settings_0);
|
|
this.struct23_0.byte_0 = this.struct12_0.byte_43;
|
|
bool flag2 = this.class18_0.method_258(item.byte_6_E8, 4) || this.class18_0.method_258(item.byte_6_E8, 5);
|
|
this.struct17_0.bool_0 = this.struct23_0.bool_0;
|
|
this.struct17_0.bool_1 = this.struct23_0.bool_1;
|
|
if (this.class10_settings_0.bool_48)
|
|
{
|
|
this.struct17_0.bool_2 = flag2;
|
|
}
|
|
else
|
|
{
|
|
this.struct17_0.bool_2 = false;
|
|
}
|
|
this.struct17_0.struct24_0.int_0 = this.struct23_0.struct24_0.int_0;
|
|
this.struct17_0.struct24_0.int_1 = this.struct23_0.struct24_0.int_1;
|
|
this.struct17_0.float_0 = this.struct23_0.float_0;
|
|
this.struct17_0.float_1 = this.struct23_0.float_1;
|
|
this.struct17_0.struct24_1 = this.struct23_0.struct24_1;
|
|
this.struct17_0.method_1(this.struct17_0.struct24_0, ref this.class18_0);
|
|
this.struct17_0.byte_0 = item.byte_43;
|
|
this.struct17_0.long_1 = item.ushort_0_E6_7;
|
|
this.struct17_0.byte_2 = item.byte_4;
|
|
this.struct17_0.byte_1 = item.byte_5;
|
|
this.struct17_0.byte_3 = item.byte_0;
|
|
this.struct17_0.byte_4 = item.byte_1;
|
|
this.struct17_0.byte_5 = item.byte_20;
|
|
this.struct17_0.long_0 = item.long_3;
|
|
if (num3 == (this.class10_settings_0.int_25 + 1))
|
|
{
|
|
num3 = 0;
|
|
if (this.delegate48_0 != null)
|
|
{
|
|
this.delegate48_0(item);
|
|
}
|
|
if (this.delegate47_0 != null)
|
|
{
|
|
this.delegate47_0(this.struct17_0);
|
|
}
|
|
if (this.delegate50_0 != null)
|
|
{
|
|
this.delegate50_0(item);
|
|
}
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, exception.Message);
|
|
i = (int) this.long_2;
|
|
FileLoadingError = true;
|
|
}
|
|
}
|
|
if (!FileLoadingError)
|
|
{
|
|
this.long_3 = this.method_76(this.long_2).long_3;
|
|
this.struct12_0 = this.method_76(0L);
|
|
this.method_39();
|
|
}
|
|
}
|
|
catch (Exception exception2)
|
|
{
|
|
MessageBox.Show(Form.ActiveForm, "Error getting maxframe from log :" + exception2.ToString());
|
|
}
|
|
if (this.binaryReader_0 != null)
|
|
{
|
|
this.binaryReader_0.Close();
|
|
this.binaryReader_0 = null;
|
|
}
|
|
if (this.fileStream_0 != null)
|
|
{
|
|
this.fileStream_0.Close();
|
|
this.fileStream_0.Dispose();
|
|
this.fileStream_0 = null;
|
|
}
|
|
/*if (this.int_1 > 1) //load markers
|
|
{
|
|
this.method_83(this.string_2);
|
|
}*/
|
|
//REMOVE LOADING FILESTREAM HERE
|
|
if (File.Exists(this.string_2)) File.Delete(this.string_2);
|
|
this.method_4(DataloggingState.Disconnected);
|
|
}
|
|
|
|
public void method_69(long long_5)
|
|
{
|
|
this.struct12_0 = this.method_76(long_5);
|
|
this.long_1 = long_5;
|
|
if (this.class18_0.method_30_HasFileLoadedInBMTune())
|
|
{
|
|
this.method_40_SendBytes_Delegate();
|
|
}
|
|
}
|
|
|
|
public byte method_7()
|
|
{
|
|
byte num = 0;
|
|
if (!FakeDatalog)
|
|
{
|
|
//if (this.method_12(1)) num = (byte)this.serialPort_0.ReadByte();
|
|
//num = (byte)this.serialPort_0.ReadByte();
|
|
try
|
|
{
|
|
num = (byte)this.serialPort_0.ReadByte(); //here for datalog disconnected issue with bluetooth
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
throw exception;
|
|
}
|
|
}
|
|
return num;
|
|
}
|
|
|
|
//Datalog Play Button Clic
|
|
public void method_70()
|
|
{
|
|
if ((this.thread_0 == null) || (this.thread_0.ThreadState == System.Threading.ThreadState.Stopped))
|
|
{
|
|
this.thread_0 = new Thread(new ThreadStart(this.method_81));
|
|
this.thread_0.Name = "Log Player";
|
|
this.thread_0.Priority = ThreadPriority.AboveNormal;
|
|
this.thread_0.Start();
|
|
}
|
|
if (this.thread_0.ThreadState == System.Threading.ThreadState.Suspended)
|
|
{
|
|
this.thread_0.Resume();
|
|
}
|
|
this.bool_8 = false;
|
|
this.method_4(DataloggingState.PlayingF);
|
|
GC.Collect(3, GCCollectionMode.Optimized);
|
|
}
|
|
|
|
public void method_71()
|
|
{
|
|
this.long_1 = 0L;
|
|
this.int_2 = 0;
|
|
this.struct12_0 = this.method_76(0L);
|
|
this.method_4(DataloggingState.Stop);
|
|
this.bool_8 = false;
|
|
if (this.class18_0.method_30_HasFileLoadedInBMTune())
|
|
{
|
|
this.method_39();
|
|
}
|
|
if (this.thread_0 != null)
|
|
{
|
|
if (this.thread_0.IsAlive)
|
|
{
|
|
if (this.thread_0.ThreadState == System.Threading.ThreadState.Suspended)
|
|
{
|
|
this.thread_0.Resume();
|
|
}
|
|
this.thread_0.Abort();
|
|
this.thread_0 = null;
|
|
}
|
|
this.thread_0 = null;
|
|
}
|
|
GC.Collect(3, GCCollectionMode.Forced);
|
|
}
|
|
|
|
public void method_72()
|
|
{
|
|
if ((this.thread_0 != null) && this.thread_0.IsAlive)
|
|
{
|
|
this.thread_0.Suspend();
|
|
this.method_4(DataloggingState.Pause);
|
|
}
|
|
GC.Collect(3, GCCollectionMode.Forced);
|
|
}
|
|
|
|
public void method_73()
|
|
{
|
|
this.bool_7 = !this.bool_7;
|
|
}
|
|
|
|
public bool method_73_0()
|
|
{
|
|
return this.bool_7;
|
|
}
|
|
|
|
public void method_73_1()
|
|
{
|
|
this.bool_71 = !this.bool_71;
|
|
this.bool_7 = false;
|
|
this.bool_72 = false;
|
|
}
|
|
|
|
public void method_73_2()
|
|
{
|
|
this.bool_7 = false;
|
|
this.bool_71 = false;
|
|
this.bool_72 = !this.bool_72;
|
|
}
|
|
|
|
public void method_74()
|
|
{
|
|
if (this.long_1 != 0L)
|
|
{
|
|
this.bool_8 = !this.bool_8;
|
|
if (this.thread_0 == null)
|
|
{
|
|
this.thread_0 = new Thread(new ThreadStart(this.method_81));
|
|
this.thread_0.Name = "Log Player";
|
|
this.thread_0.Priority = ThreadPriority.AboveNormal;
|
|
this.thread_0.Start();
|
|
}
|
|
if (this.thread_0.ThreadState == System.Threading.ThreadState.Suspended)
|
|
{
|
|
this.thread_0.Resume();
|
|
}
|
|
this.method_4(DataloggingState.PlayingR);
|
|
}
|
|
}
|
|
|
|
public void method_75()
|
|
{
|
|
string str = this.string_2;
|
|
if ((this.thread_0 != null) && this.thread_0.IsAlive)
|
|
{
|
|
this.method_71();
|
|
}
|
|
this.string_2 = null;
|
|
if (this.binaryReader_0 != null)
|
|
{
|
|
this.binaryReader_0.Close();
|
|
this.binaryReader_0 = null;
|
|
}
|
|
if (this.fileStream_0 != null)
|
|
{
|
|
this.fileStream_0.Close();
|
|
this.fileStream_0.Dispose();
|
|
this.fileStream_0 = null;
|
|
}
|
|
/*if (!string.IsNullOrEmpty(str)) //save markers
|
|
{
|
|
this.method_82(str);
|
|
}*/
|
|
//REMOVE LOADING FILESTREAM HERE
|
|
if (File.Exists(this.string_2)) File.Delete(this.string_2);
|
|
this.list_1.Clear();
|
|
if (this.list_0 != null) this.list_0 = null;
|
|
this.bool_6 = false;
|
|
if (this.delegate53_0 != null)
|
|
{
|
|
this.delegate53_0(0L, string.Empty);
|
|
}
|
|
this.method_4(DataloggingState.Disconnected);
|
|
this.long_4 = 0L;
|
|
this.long_3 = 0L;
|
|
this.long_2 = 0L;
|
|
this.int_1 = 0;
|
|
this.FrameCounts = 0L;
|
|
GC.Collect(1, GCCollectionMode.Forced);
|
|
}
|
|
|
|
private Struct12 method_76(long long_5)
|
|
{
|
|
if ((this.list_0 == null) || (long_5 > this.long_2))
|
|
{
|
|
return new Struct12();
|
|
}
|
|
if (long_5 > this.long_2)
|
|
{
|
|
long_5 = this.long_2;
|
|
}
|
|
this.struct12_0 = this.list_0[(int) long_5];
|
|
if (this.class10_settings_0.bool_23 && (this.class18_0.GetByteAt(this.class18_0.class13_u_0.long_50) == 0))
|
|
{
|
|
if (this.struct12_0.byte_3 != 0)
|
|
{
|
|
int num = (int) Math.Round((double) ((((this.struct12_0.byte_3 / 2) + 0x18) * 7.221) - 59.0), 0);
|
|
if (this.class10_settings_0.int_6 != num)
|
|
{
|
|
this.class10_settings_0.int_6 = num;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.class10_settings_0.int_6 = 0x3f2;
|
|
}
|
|
}
|
|
this.struct23_0.bool_0 = this.class18_0.method_258(this.struct12_0.byte_6_E8, 3);
|
|
this.struct23_0.bool_1 = this.class18_0.method_258(this.struct12_0.byte_35_E39, 5);
|
|
if (this.struct12_0.byte_9_E11 > (this.class10_settings_0.method_11_GetMAP_ColumnsNumber() - 1))
|
|
{
|
|
this.struct12_0.byte_9_E11 = (byte) (this.class10_settings_0.method_11_GetMAP_ColumnsNumber() - 1);
|
|
}
|
|
if (this.struct23_0.bool_0)
|
|
{
|
|
this.struct23_0.struct24_0.int_0 = this.struct12_0.byte_8_E10;
|
|
this.struct23_0.float_0 = ((float) this.struct12_0.byte_45_E47) / 255f;
|
|
}
|
|
else
|
|
{
|
|
this.struct23_0.struct24_0.int_0 = this.struct12_0.byte_7_E9;
|
|
this.struct23_0.float_0 = ((float) this.struct12_0.byte_44_E46) / 255f;
|
|
}
|
|
this.struct23_0.float_1 = ((float) this.struct12_0.byte_46_E48) / 255f;
|
|
this.struct23_0.struct24_0.int_1 = this.struct12_0.byte_9_E11;
|
|
this.struct23_0.struct24_1 = this.struct23_0.struct24_0;
|
|
if (this.struct23_0.float_0 >= 0.5)
|
|
{
|
|
this.struct23_0.struct24_1.int_0++;
|
|
}
|
|
if (this.struct23_0.float_1 >= 0.5)
|
|
{
|
|
this.struct23_0.struct24_1.int_1++;
|
|
}
|
|
this.struct12_0.struct24_0 = this.struct23_0.struct24_1;
|
|
this.struct23_0.struct24_2 = this.struct23_0.struct24_0;
|
|
this.struct23_0.method_0(this.struct23_0.struct24_0, ref this.class10_settings_0);
|
|
this.struct23_0.byte_0 = this.struct12_0.byte_43;
|
|
bool flag = this.class18_0.method_258(this.struct12_0.byte_6_E8, 4) || this.class18_0.method_258(this.struct12_0.byte_6_E8, 5);
|
|
this.struct17_0.bool_0 = this.struct23_0.bool_0;
|
|
this.struct12_0.bool_11 = this.struct23_0.bool_0;
|
|
this.struct17_0.bool_1 = this.struct23_0.bool_1;
|
|
if (this.class10_settings_0.bool_48)
|
|
{
|
|
this.struct17_0.bool_2 = flag;
|
|
}
|
|
else
|
|
{
|
|
this.struct17_0.bool_2 = false;
|
|
}
|
|
this.struct12_0.bool_12 = this.struct23_0.bool_1;
|
|
this.struct17_0.struct24_0.int_0 = this.struct23_0.struct24_0.int_0;
|
|
this.struct17_0.struct24_0.int_1 = this.struct23_0.struct24_0.int_1;
|
|
this.struct17_0.float_0 = this.struct23_0.float_0;
|
|
this.struct17_0.float_1 = this.struct23_0.float_1;
|
|
this.struct17_0.method_1(this.struct17_0.struct24_0, ref this.class18_0);
|
|
this.struct17_0.struct24_1 = this.struct23_0.struct24_1;
|
|
this.struct17_0.byte_0 = this.struct12_0.byte_43;
|
|
this.struct17_0.long_1 = this.struct12_0.ushort_0_E6_7;
|
|
this.struct17_0.byte_2 = this.struct12_0.byte_4;
|
|
this.struct17_0.byte_1 = this.struct12_0.byte_5;
|
|
this.struct17_0.byte_3 = this.struct12_0.byte_0;
|
|
this.struct17_0.byte_4 = this.struct12_0.byte_1;
|
|
this.struct17_0.byte_5 = this.struct12_0.byte_20;
|
|
this.struct17_0.long_0 = this.struct12_0.long_3;
|
|
if (this.delegate47_0 != null)
|
|
{
|
|
this.delegate47_0(this.struct17_0);
|
|
}
|
|
if (this.delegate50_0 != null)
|
|
{
|
|
this.delegate50_0(this.struct12_0);
|
|
}
|
|
this.struct20_0.byte_0 = this.struct12_0.byte_10_E12;
|
|
this.struct20_0.byte_1 = this.struct12_0.byte_11_E13;
|
|
this.struct20_0.byte_2 = this.struct12_0.byte_12_E14;
|
|
this.struct20_0.byte_3 = this.struct12_0.byte_13_E15;
|
|
if (((this.struct20_0.byte_0 != 0) || (this.struct20_0.byte_1 != 0)) || ((this.struct20_0.byte_2 != 0) || (this.struct20_0.byte_3 != 0)))
|
|
{
|
|
this.struct12_0.byte_19 = 1;
|
|
}
|
|
else
|
|
{
|
|
this.struct12_0.byte_19 = 0;
|
|
}
|
|
return this.struct12_0;
|
|
}
|
|
|
|
public float method_77(SensorsX sensors_0, int int_3)
|
|
{
|
|
float num = 0f;
|
|
if (int_3 < 0 || int_3 > this.list_0.Count - 1)
|
|
{
|
|
return num;
|
|
}
|
|
|
|
switch (sensors_0)
|
|
{
|
|
case SensorsX.rpmX:
|
|
return (float) this.class18_0.method_218((long) this.list_0[int_3].ushort_0_E6_7);
|
|
|
|
case SensorsX.vssX:
|
|
return (float) this.class18_0.method_197(this.list_0[int_3].byte_14_E16);
|
|
|
|
case SensorsX.gearX:
|
|
return (float) this.list_0[int_3].byte_20;
|
|
|
|
case SensorsX.mapX:
|
|
return (float) this.class18_0.method_206(this.list_0[int_3].byte_4);
|
|
|
|
case SensorsX.boostX:
|
|
if (this.class18_0.method_206(this.list_0[int_3].byte_4) <= this.class10_settings_0.int_6)
|
|
{
|
|
return 0f;
|
|
}
|
|
return this.class18_0.method_193(this.list_0[int_3].byte_4);
|
|
|
|
case SensorsX.paX:
|
|
return (float) ((int) Math.Round((double) ((((this.list_0[int_3].byte_3 / 2) + 0x18) * 7.221) - 59.0), 0));
|
|
|
|
case SensorsX.tpsX:
|
|
return (float) this.class18_0.method_198(this.list_0[int_3].byte_5);
|
|
|
|
case SensorsX.tpsV:
|
|
return (float) this.class18_0.method_196(this.list_0[int_3].byte_5);
|
|
|
|
case SensorsX.injDur:
|
|
return (float) Math.Round((double) this.class18_0.method_224(this.list_0[int_3].ushort_1_E17_18), 2);
|
|
|
|
case SensorsX.injDuty:
|
|
return (float) Math.Round((double) this.class18_0.method_225(this.list_0[int_3].ushort_1_E17_18, this.class18_0.method_218((long) this.list_0[int_3].ushort_0_E6_7), 0), 0);
|
|
|
|
case SensorsX.injFV:
|
|
return (float) this.class18_0.method_223(this.list_0[int_3].ushort_1_E17_18);
|
|
|
|
case SensorsX.ignFnl:
|
|
return this.class18_0.method_188(this.list_0[int_3].byte_15_E19);
|
|
|
|
case SensorsX.ignTbl:
|
|
return this.class18_0.method_188(this.list_0[int_3].byte_16_E20);
|
|
|
|
case SensorsX.ectX:
|
|
return (float) this.class18_0.method_191(this.list_0[int_3].byte_0);
|
|
|
|
case SensorsX.iatX:
|
|
return (float) this.class18_0.method_191(this.list_0[int_3].byte_1);
|
|
|
|
case SensorsX.afr:
|
|
return (float) this.class18_0.method_200(this.list_0[int_3].byte_43);
|
|
|
|
case SensorsX.ecuO2V:
|
|
return (float) this.class18_0.method_196(this.list_0[int_3].byte_2);
|
|
|
|
case SensorsX.wbO2V:
|
|
return (float) this.class18_0.method_200(this.list_0[int_3].byte_43);
|
|
|
|
case SensorsX.batV:
|
|
return (float) this.class18_0.method_208(this.list_0[int_3].byte_27_E25);
|
|
|
|
case SensorsX.eldV:
|
|
return (float) this.class18_0.method_196(this.list_0[int_3].byte_24_E24);
|
|
|
|
case SensorsX.knockV:
|
|
case SensorsX.mil:
|
|
case SensorsX.frame:
|
|
case SensorsX.interval:
|
|
case SensorsX.loadType:
|
|
case SensorsX.overheatActive:
|
|
case SensorsX.test0:
|
|
return num;
|
|
|
|
case SensorsX.mapV:
|
|
return (float) this.class18_0.method_196(this.list_0[int_3].byte_4);
|
|
|
|
case SensorsX.duration:
|
|
//if (this.method_34() && !this.method_63()) this.long_2 = this.FrameCounts;
|
|
return (float) this.list_0[int_3].long_3;
|
|
|
|
case SensorsX.ectFc:
|
|
return (float) this.class18_0.method_205(this.list_0[int_3].byte_28_E26, Enum6.const_1);
|
|
|
|
case SensorsX.iatFc:
|
|
return (float) this.class18_0.method_203(this.list_0[int_3].long_2_E31_32, Enum6.const_0);
|
|
|
|
case SensorsX.o2Short:
|
|
return (float) this.class18_0.method_203(this.list_0[int_3].long_0_E27_28, Enum6.const_0);
|
|
|
|
case SensorsX.o2Long:
|
|
return (float) this.class18_0.method_203(this.list_0[int_3].long_1_E29_30, Enum6.const_0);
|
|
|
|
case SensorsX.veFc:
|
|
return (float) this.class18_0.method_205(this.list_0[int_3].byte_29_E33, Enum6.const_1);
|
|
|
|
case SensorsX.ectIc:
|
|
return this.class18_0.method_189(this.list_0[int_3].byte_31_E35);
|
|
|
|
case SensorsX.iatIc:
|
|
return this.class18_0.method_189(this.list_0[int_3].byte_30_E34);
|
|
|
|
case SensorsX.gearIc:
|
|
return this.class18_0.method_189(this.list_0[int_3].byte_32_E36);
|
|
|
|
case SensorsX.gearFc:
|
|
return (float) this.list_0[int_3].byte_29_E33;
|
|
|
|
case SensorsX.postFuel:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_6_E8, 0, false);
|
|
|
|
case SensorsX.outIab:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_22_E22, 2, false);
|
|
|
|
case SensorsX.outVtsX:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_23_E23, 7, false);
|
|
|
|
case SensorsX.outVtsM:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_6_E8, 3, false);
|
|
|
|
case SensorsX.outAc:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_22_E22, 7, false);
|
|
|
|
case SensorsX.outO2h:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_23_E23, 6, false);
|
|
|
|
case SensorsX.outMil:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_23_E23, 5, false);
|
|
|
|
case SensorsX.outPurge:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_22_E22, 6, false);
|
|
|
|
case SensorsX.outFanc:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_22_E22, 4, false);
|
|
|
|
case SensorsX.outFpump:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_22_E22, 0, false);
|
|
|
|
case SensorsX.outFuelCut:
|
|
if (!this.class18_0.method_258(this.list_0[int_3].byte_6_E8, 4) && !this.class18_0.method_258(this.list_0[int_3].byte_6_E8, 5))
|
|
{
|
|
return 0f;
|
|
}
|
|
return 1f;
|
|
|
|
case SensorsX.outAltCtrl:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_22_E22, 5, false);
|
|
|
|
case SensorsX.inPsp:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_21_E21, 7, false);
|
|
|
|
case SensorsX.inSCC:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_21_E21, 5, false);
|
|
|
|
case SensorsX.inAccs:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_21_E21, 2, false);
|
|
|
|
case SensorsX.inBksw:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_21_E21, 1, false);
|
|
|
|
case SensorsX.inVtp:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_21_E21, 3, false);
|
|
|
|
case SensorsX.inVtsFeedBack:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_21_E21, 6, false);
|
|
|
|
case SensorsX.inParkN:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_21_E21, 0, false);
|
|
|
|
case SensorsX.inStartS:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_21_E21, 4, false);
|
|
|
|
case SensorsX.inAtShift1:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_6_E8, 6, false);
|
|
|
|
case SensorsX.inAtShift2:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_6_E8, 7, false);
|
|
|
|
case SensorsX.secMaps:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_35_E39, 5, false);
|
|
|
|
case SensorsX.ftlInput:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_34_E38, 0, false);
|
|
|
|
case SensorsX.ftlActive:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_35_E39, 0, false);
|
|
|
|
case SensorsX.ftsClutchInput:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_34_E38, 1, false);
|
|
|
|
case SensorsX.ftsActive:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_35_E39, 2, false);
|
|
|
|
case SensorsX.boostcutActive:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_35_E39, 3, false);
|
|
|
|
case SensorsX.antilagActive:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_35_E39, 1, false);
|
|
|
|
case SensorsX.ignitionCut:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_6_E8, 2, false);
|
|
|
|
case SensorsX.sccChecker:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_6_E8, 1, false);
|
|
|
|
case SensorsX.ebcInput:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_34_E38, 2, false);
|
|
|
|
case SensorsX.ebcHiInput:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_34_E38, 3, false);
|
|
|
|
case SensorsX.ebcActive:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_35_E39, 4, false);
|
|
|
|
case SensorsX.ebcBaseDuty:
|
|
return (float) this.class18_0.method_207(this.list_0[int_3].byte_37_E40);
|
|
|
|
case SensorsX.ebcDutyX:
|
|
return (float) this.class18_0.method_207(this.list_0[int_3].byte_38_E41);
|
|
|
|
case SensorsX.ebcTarget:
|
|
return (float) this.class18_0.method_206(this.list_0[int_3].byte_39_E42);
|
|
|
|
case SensorsX.ebcCurrent:
|
|
return (float) this.class18_0.method_206(this.list_0[int_3].byte_4);
|
|
|
|
case SensorsX.gpo1_in:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_34_E38, 4, false);
|
|
|
|
case SensorsX.gpo1_out:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_36_E43, 0, false);
|
|
|
|
case SensorsX.gpo2_in:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_34_E38, 5, false);
|
|
|
|
case SensorsX.gpo2_out:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_36_E43, 1, false);
|
|
|
|
case SensorsX.gpo3_in:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_34_E38, 6, false);
|
|
|
|
case SensorsX.gpo3_out:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_36_E43, 2, false);
|
|
|
|
case SensorsX.fanCtrl:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_35_E39, 6, false);
|
|
|
|
case SensorsX.bstStage2:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_36_E43, 3, false);
|
|
|
|
case SensorsX.bstStage3:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_36_E43, 4, false);
|
|
|
|
case SensorsX.bstStage4:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_36_E43, 5, false);
|
|
|
|
case SensorsX.bstActive:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_35_E39, 7, false);
|
|
|
|
case SensorsX.bstInput:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_34_E38, 7, false);
|
|
|
|
case SensorsX.analog1:
|
|
return this.class18_0.method_201(AnalogInputs.analog1, this.list_0[int_3].byte_40);
|
|
|
|
case SensorsX.analog2:
|
|
return this.class18_0.method_201(AnalogInputs.analog2, this.list_0[int_3].byte_41);
|
|
|
|
case SensorsX.analog3:
|
|
return this.class18_0.method_201(AnalogInputs.analog3, this.list_0[int_3].byte_42);
|
|
|
|
case SensorsX.iacvDuty:
|
|
{
|
|
float num3 = ((float) this.list_0[int_3].ushort_2_E49_50) / 32768f;
|
|
return ((num3 * 100f) - 100f);
|
|
}
|
|
case SensorsX.leanProtection:
|
|
return (float) this.class18_0.method_260(this.list_0[int_3].byte_36_E43, 7, false);
|
|
|
|
case SensorsX.deltaRpm1:
|
|
return (float) this.list_0[int_3].long_6;
|
|
|
|
case SensorsX.deltaVss:
|
|
return (float) this.list_0[int_3].byte_47;
|
|
|
|
case SensorsX.deltaRpm2:
|
|
return (float) this.list_0[int_3].long_7;
|
|
}
|
|
return num;
|
|
}
|
|
|
|
public string method_79(SensorsX sensors_0, int int_3)
|
|
{
|
|
float num = 0f;
|
|
if (sensors_0 == SensorsX.mapX)
|
|
{
|
|
num = this.class18_0.method_193(this.list_0[int_3].byte_4);
|
|
}
|
|
else
|
|
{
|
|
num = this.method_77(sensors_0, int_3);
|
|
}
|
|
return num.ToString();
|
|
}
|
|
|
|
public float[] method_80(SensorsX sensors_0)
|
|
{
|
|
float[] numArray = new float[] { -1f, 2f };
|
|
switch (sensors_0)
|
|
{
|
|
case SensorsX.rpmX:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 10000f;
|
|
return numArray;
|
|
|
|
case SensorsX.vssX:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 255f;
|
|
return numArray;
|
|
|
|
case SensorsX.gearX:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 6f;
|
|
return numArray;
|
|
|
|
case SensorsX.mapX:
|
|
numArray[0] = this.class18_0.method_206(0);
|
|
numArray[1] = this.class18_0.method_206(0xff);
|
|
return numArray;
|
|
|
|
case SensorsX.boostX:
|
|
numArray[0] = this.class18_0.method_245(950);
|
|
numArray[1] = this.class18_0.method_245(this.class18_0.method_206(0xff));
|
|
return numArray;
|
|
|
|
case SensorsX.paX:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 1100f;
|
|
return numArray;
|
|
|
|
case SensorsX.tpsX:
|
|
numArray[0] = -5f;
|
|
numArray[1] = 115f;
|
|
return numArray;
|
|
|
|
case SensorsX.tpsV:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 5f;
|
|
return numArray;
|
|
|
|
case SensorsX.injDur:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 20f;
|
|
return numArray;
|
|
|
|
case SensorsX.injDuty:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 130f;
|
|
return numArray;
|
|
|
|
case SensorsX.injFV:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 2000f;
|
|
return numArray;
|
|
|
|
case SensorsX.ignFnl:
|
|
numArray[0] = -6f;
|
|
numArray[1] = 60f;
|
|
return numArray;
|
|
|
|
case SensorsX.ignTbl:
|
|
numArray[0] = -6f;
|
|
numArray[1] = 60f;
|
|
return numArray;
|
|
|
|
case SensorsX.ectX:
|
|
numArray[0] = (float) this.class18_0.method_191(0xff);
|
|
numArray[1] = (float) this.class18_0.method_191(0);
|
|
return numArray;
|
|
|
|
case SensorsX.iatX:
|
|
numArray[0] = (float) this.class18_0.method_191(0xff);
|
|
numArray[1] = (float) this.class18_0.method_191(0);
|
|
return numArray;
|
|
|
|
case SensorsX.afr:
|
|
numArray[0] = (float) this.class18_0.method_200(0);
|
|
numArray[1] = (float) this.class18_0.method_200(0xff);
|
|
return numArray;
|
|
|
|
case SensorsX.ecuO2V:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 5f;
|
|
return numArray;
|
|
|
|
case SensorsX.wbO2V:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 5f;
|
|
return numArray;
|
|
|
|
case SensorsX.batV:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 15f;
|
|
return numArray;
|
|
|
|
case SensorsX.eldV:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 5f;
|
|
return numArray;
|
|
|
|
case SensorsX.knockV:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 5f;
|
|
return numArray;
|
|
|
|
case SensorsX.mapV:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 5f;
|
|
return numArray;
|
|
|
|
case SensorsX.mil:
|
|
case SensorsX.frame:
|
|
case SensorsX.duration:
|
|
case SensorsX.interval:
|
|
case SensorsX.loadType:
|
|
case SensorsX.overheatActive:
|
|
case SensorsX.test0:
|
|
return numArray;
|
|
|
|
case SensorsX.ectFc:
|
|
if (this.class10_settings_0.correctionUnits_0 != CorrectionUnits.multi)
|
|
{
|
|
numArray[0] = -100f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
}
|
|
numArray[0] = 0f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.iatFc:
|
|
if (this.class10_settings_0.correctionUnits_0 != CorrectionUnits.multi)
|
|
{
|
|
numArray[0] = -100f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
}
|
|
numArray[0] = 0f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.o2Short:
|
|
if (this.class10_settings_0.correctionUnits_0 != CorrectionUnits.multi)
|
|
{
|
|
numArray[0] = -100f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
}
|
|
numArray[0] = 0f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.o2Long:
|
|
if (this.class10_settings_0.correctionUnits_0 != CorrectionUnits.multi)
|
|
{
|
|
numArray[0] = -100f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
}
|
|
numArray[0] = 0f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.veFc:
|
|
if (this.class10_settings_0.correctionUnits_0 != CorrectionUnits.multi)
|
|
{
|
|
numArray[0] = -100f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
}
|
|
numArray[0] = 0f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ectIc:
|
|
numArray[0] = -30f;
|
|
numArray[1] = 30f;
|
|
return numArray;
|
|
|
|
case SensorsX.iatIc:
|
|
numArray[0] = -30f;
|
|
numArray[1] = 30f;
|
|
return numArray;
|
|
|
|
case SensorsX.gearIc:
|
|
numArray[0] = -30f;
|
|
numArray[1] = 30f;
|
|
return numArray;
|
|
|
|
case SensorsX.gearFc:
|
|
if (this.class10_settings_0.correctionUnits_0 != CorrectionUnits.multi)
|
|
{
|
|
numArray[0] = -100f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
}
|
|
numArray[0] = 0f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.postFuel:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outIab:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outVtsX:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outVtsM:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outAc:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outO2h:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outMil:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outPurge:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outFanc:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outFpump:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outFuelCut:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.outAltCtrl:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inPsp:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inSCC:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inAccs:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inBksw:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inVtp:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inVtsFeedBack:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inParkN:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inStartS:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inAtShift1:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.inAtShift2:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.secMaps:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ftlInput:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ftlActive:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ftsClutchInput:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ftsActive:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.boostcutActive:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.antilagActive:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ignitionCut:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.sccChecker:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ebcInput:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ebcHiInput:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ebcActive:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.ebcBaseDuty:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
|
|
case SensorsX.ebcDutyX:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
|
|
case SensorsX.ebcTarget:
|
|
numArray[0] = this.class18_0.method_206(0);
|
|
numArray[1] = this.class18_0.method_206(0xff);
|
|
return numArray;
|
|
|
|
case SensorsX.ebcCurrent:
|
|
numArray[0] = this.class18_0.method_206(0);
|
|
numArray[1] = this.class18_0.method_206(0xff);
|
|
return numArray;
|
|
|
|
case SensorsX.gpo1_in:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.gpo1_out:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.gpo2_in:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.gpo2_out:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.gpo3_in:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.gpo3_out:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.fanCtrl:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.bstStage2:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.bstStage3:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.bstStage4:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.bstActive:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.bstInput:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.analog1:
|
|
numArray[0] = this.class18_0.method_201(AnalogInputs.analog1, 0);
|
|
numArray[1] = this.class18_0.method_201(AnalogInputs.analog1, 0xff);
|
|
return numArray;
|
|
|
|
case SensorsX.analog2:
|
|
numArray[0] = this.class18_0.method_201(AnalogInputs.analog2, 0);
|
|
numArray[1] = this.class18_0.method_201(AnalogInputs.analog2, 0xff);
|
|
return numArray;
|
|
|
|
case SensorsX.analog3:
|
|
numArray[0] = this.class18_0.method_201(AnalogInputs.analog3, 0);
|
|
numArray[1] = this.class18_0.method_201(AnalogInputs.analog3, 0xff);
|
|
return numArray;
|
|
|
|
case SensorsX.iacvDuty:
|
|
numArray[0] = -100f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
|
|
case SensorsX.leanProtection:
|
|
numArray[0] = -1f;
|
|
numArray[1] = 2f;
|
|
return numArray;
|
|
|
|
case SensorsX.deltaRpm1:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 50f;
|
|
return numArray;
|
|
|
|
case SensorsX.deltaVss:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 40f;
|
|
return numArray;
|
|
|
|
case SensorsX.deltaRpm2:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 50f;
|
|
return numArray;
|
|
|
|
case SensorsX.egt_cht1:
|
|
numArray[0] = 500f;
|
|
numArray[1] = 2000f;
|
|
return numArray;
|
|
|
|
case SensorsX.egt_cht2:
|
|
numArray[0] = 500f;
|
|
numArray[1] = 2000f;
|
|
return numArray;
|
|
|
|
case SensorsX.egt_cht3:
|
|
numArray[0] = 500f;
|
|
numArray[1] = 2000f;
|
|
return numArray;
|
|
|
|
case SensorsX.egt_cht4:
|
|
numArray[0] = 500f;
|
|
numArray[1] = 2000f;
|
|
return numArray;
|
|
|
|
case SensorsX.egt_chtAvg:
|
|
numArray[0] = 500f;
|
|
numArray[1] = 2000f;
|
|
return numArray;
|
|
|
|
case SensorsX.backPres:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 45f;
|
|
return numArray;
|
|
|
|
case SensorsX.fuelPres:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 150f;
|
|
return numArray;
|
|
|
|
case SensorsX.iat2:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 255f;
|
|
return numArray;
|
|
|
|
case SensorsX.accelTime:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
|
|
case SensorsX.fuelUsage:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
|
|
case SensorsX.egrV:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 5f;
|
|
return numArray;
|
|
|
|
case SensorsX.b6V:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 5f;
|
|
return numArray;
|
|
|
|
case SensorsX.flexFuel:
|
|
numArray[0] = 0f;
|
|
numArray[1] = 100f;
|
|
return numArray;
|
|
}
|
|
return numArray;
|
|
}
|
|
|
|
public void method_81()
|
|
{
|
|
Label_0005:
|
|
if (this.bool_8)
|
|
{
|
|
this.long_1 -= 1L;
|
|
}
|
|
else
|
|
{
|
|
this.long_1 += 1L;
|
|
}
|
|
if ((this.long_1 != this.method_65()) && (this.long_1 != 0L))
|
|
{
|
|
this.struct12_0 = this.method_76(this.long_1);
|
|
this.int_2++;
|
|
if (this.int_2 >= (this.class10_settings_0.int_25 + 1))
|
|
{
|
|
this.int_2 = 0;
|
|
this.method_40_SendBytes_Delegate();
|
|
}
|
|
if (this.bool_7)
|
|
{
|
|
this.stopwatch_2.Reset();
|
|
this.stopwatch_2.Start();
|
|
while (this.stopwatch_2.ElapsedMilliseconds < (this.struct12_0.long_4 / 2L))
|
|
{
|
|
Application.DoEvents();
|
|
}
|
|
this.stopwatch_2.Reset();
|
|
}
|
|
else if (this.bool_71)
|
|
{
|
|
this.stopwatch_2.Reset();
|
|
this.stopwatch_2.Start();
|
|
while (true)
|
|
{
|
|
if (this.stopwatch_2.ElapsedMilliseconds >= (this.struct12_0.long_4 * 2L))
|
|
{
|
|
this.stopwatch_2.Reset();
|
|
break;
|
|
}
|
|
Application.DoEvents();
|
|
}
|
|
}
|
|
else if (this.bool_72)
|
|
{
|
|
this.stopwatch_2.Reset();
|
|
this.stopwatch_2.Start();
|
|
while (true)
|
|
{
|
|
if (this.stopwatch_2.ElapsedMilliseconds >= (this.struct12_0.long_4 * 6L))
|
|
{
|
|
this.stopwatch_2.Reset();
|
|
break;
|
|
}
|
|
Application.DoEvents();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
this.stopwatch_2.Reset();
|
|
this.stopwatch_2.Start();
|
|
while (this.stopwatch_2.ElapsedMilliseconds < this.struct12_0.long_4)
|
|
{
|
|
Application.DoEvents();
|
|
}
|
|
this.stopwatch_2.Reset();
|
|
}
|
|
goto Label_0005;
|
|
}
|
|
this.method_71();
|
|
}
|
|
|
|
/*private void method_82(string string_3)
|
|
{
|
|
if (this.int_1 >= 1)
|
|
{
|
|
try
|
|
{
|
|
FileStream input = new FileStream(string_3, FileMode.OpenOrCreate, FileAccess.ReadWrite);
|
|
BinaryReader reader = new BinaryReader(input) {
|
|
BaseStream = { Position = 13L }
|
|
};
|
|
int count = reader.ReadInt32();
|
|
reader.Close();
|
|
reader = null;
|
|
input.Close();
|
|
input = null;
|
|
input = new FileStream(string_3, FileMode.OpenOrCreate, FileAccess.Write);
|
|
BinaryWriter writer = new BinaryWriter(input) {
|
|
BaseStream = { Position = 13L }
|
|
};
|
|
long length = 0L;
|
|
if (count == 0)
|
|
{
|
|
length = writer.BaseStream.Length;
|
|
}
|
|
else
|
|
{
|
|
length = count;
|
|
}
|
|
writer.Write((int) length);
|
|
writer.Close();
|
|
writer = null;
|
|
input.Close();
|
|
input.Dispose();
|
|
input = null;
|
|
if (count != 0)
|
|
{
|
|
input = new FileStream(string_3, FileMode.OpenOrCreate, FileAccess.Read);
|
|
reader = new BinaryReader(input) {
|
|
BaseStream = { Position = 0L }
|
|
};
|
|
byte[] buffer_0 = new byte[count];
|
|
reader.Read(buffer_0, 0, count);
|
|
reader.Close();
|
|
reader = null;
|
|
input.Close();
|
|
input.Dispose();
|
|
input = null;
|
|
input = new FileStream(string_3, FileMode.Truncate, FileAccess.ReadWrite);
|
|
writer = new BinaryWriter(input);
|
|
writer.Write(buffer_0, 0, buffer_0.Length);
|
|
writer.Close();
|
|
writer = null;
|
|
}
|
|
input = new FileStream(string_3, FileMode.Open, FileAccess.Write);
|
|
StreamWriter writer2 = new StreamWriter(input) {
|
|
BaseStream = { Position = (long) ((int) length) }
|
|
};
|
|
foreach (Struct22 struct2 in this.list_1)
|
|
{
|
|
writer2.WriteLine(struct2.int_0.ToString() + ";" + struct2.string_0);
|
|
}
|
|
writer2.Close();
|
|
writer2.Dispose();
|
|
writer2 = null;
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(new Form {TopMost = true}, string.Concat(new object[] { "save marker errored with: ", exception.Message, Environment.NewLine, exception.StackTrace, Environment.NewLine, exception.Source, Environment.NewLine, exception.TargetSite }));
|
|
}
|
|
}
|
|
}
|
|
|
|
private void method_83(string string_3)
|
|
{
|
|
this.list_1.Clear();
|
|
try
|
|
{
|
|
FileStream input = new FileStream(string_3, FileMode.Open, FileAccess.Read);
|
|
BinaryReader reader = new BinaryReader(input) {
|
|
BaseStream = { Position = 13L }
|
|
};
|
|
int num = reader.ReadInt32();
|
|
reader.Close();
|
|
reader = null;
|
|
input.Close();
|
|
input = null;
|
|
if (num != 0)
|
|
{
|
|
input = new FileStream(string_3, FileMode.Open, FileAccess.ReadWrite);
|
|
StreamReader reader2 = new StreamReader(input) {
|
|
BaseStream = { Position = (long) num }
|
|
};
|
|
string str = null;
|
|
for (str = reader2.ReadLine(); (str != "") && (str != null); str = reader2.ReadLine())
|
|
{
|
|
Struct22 item = new Struct22();
|
|
string[] strArray = str.Split(new char[] { ';' });
|
|
item.int_0 = int.Parse(strArray[0]);
|
|
item.string_0 = strArray[1];
|
|
this.list_1.Add(item);
|
|
}
|
|
reader2.Close();
|
|
reader2 = null;
|
|
input.Close();
|
|
input = null;
|
|
}
|
|
}
|
|
catch (Exception exception)
|
|
{
|
|
MessageBox.Show(new Form {TopMost = true}, "Load saved marker errored with: " + exception.Message + Environment.NewLine + exception.StackTrace);
|
|
}
|
|
}*/
|
|
|
|
public bool method_86(SensorsX sensors_0)
|
|
{
|
|
switch (sensors_0)
|
|
{
|
|
case SensorsX.egt_cht1:
|
|
return (this.class10_settings_0.int_55 != 0);
|
|
|
|
case SensorsX.egt_cht2:
|
|
return (this.class10_settings_0.int_56 != 0);
|
|
|
|
case SensorsX.egt_cht3:
|
|
return (this.class10_settings_0.int_57 != 0);
|
|
|
|
case SensorsX.egt_cht4:
|
|
return (this.class10_settings_0.int_58 != 0);
|
|
|
|
case SensorsX.egt_chtAvg:
|
|
return (this.class10_settings_0.int_59 != 0);
|
|
|
|
case SensorsX.backPres:
|
|
return (this.class10_settings_0.int_60 != 0);
|
|
|
|
case SensorsX.fuelPres:
|
|
return (this.class10_settings_0.int_61 != 0);
|
|
|
|
case SensorsX.iat2:
|
|
return (this.class10_settings_0.int_62 != 0);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public bool method_87(SensorsX sensors_0)
|
|
{
|
|
switch (sensors_0)
|
|
{
|
|
case SensorsX.egt_cht1:
|
|
return (this.class10_settings_0.int_55 <= 3);
|
|
|
|
case SensorsX.egt_cht2:
|
|
return (this.class10_settings_0.int_56 <= 3);
|
|
|
|
case SensorsX.egt_cht3:
|
|
return (this.class10_settings_0.int_57 <= 3);
|
|
|
|
case SensorsX.egt_cht4:
|
|
return (this.class10_settings_0.int_58 <= 3);
|
|
|
|
case SensorsX.egt_chtAvg:
|
|
return (this.class10_settings_0.int_59 <= 3);
|
|
|
|
case SensorsX.backPres:
|
|
return (this.class10_settings_0.int_60 <= 3);
|
|
|
|
case SensorsX.fuelPres:
|
|
return (this.class10_settings_0.int_61 <= 3);
|
|
|
|
case SensorsX.iat2:
|
|
return (this.class10_settings_0.int_62 <= 3);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
public bool method_88(AnalogInputs analogInputs_0)
|
|
{
|
|
switch (analogInputs_0)
|
|
{
|
|
case AnalogInputs.analog1:
|
|
return (((((this.class10_settings_0.int_60 == 1) || (this.class10_settings_0.int_55 == 1)) || ((this.class10_settings_0.int_56 == 1) || (this.class10_settings_0.int_57 == 1))) || ((this.class10_settings_0.int_58 == 1) || (this.class10_settings_0.int_59 == 1))) || ((this.class10_settings_0.int_61 == 1) | (this.class10_settings_0.int_62 == 1)));
|
|
|
|
case AnalogInputs.analog2:
|
|
return (((((this.class10_settings_0.int_60 == 2) || (this.class10_settings_0.int_55 == 2)) || ((this.class10_settings_0.int_56 == 2) || (this.class10_settings_0.int_57 == 1))) || ((this.class10_settings_0.int_58 == 1) || (this.class10_settings_0.int_59 == 2))) || ((this.class10_settings_0.int_61 == 2) | (this.class10_settings_0.int_62 == 2)));
|
|
|
|
case AnalogInputs.analog3:
|
|
return (((((this.class10_settings_0.int_60 == 3) || (this.class10_settings_0.int_55 == 3)) || ((this.class10_settings_0.int_56 == 3) || (this.class10_settings_0.int_57 == 1))) || ((this.class10_settings_0.int_58 == 1) || (this.class10_settings_0.int_59 == 3))) || ((this.class10_settings_0.int_61 == 3) | (this.class10_settings_0.int_62 == 3)));
|
|
}
|
|
return false;
|
|
}
|
|
|
|
private void timer_0_Elapsed(object sender, ElapsedEventArgs e)
|
|
{
|
|
this.timer_0.Stop();
|
|
if ((this.queue_0.Count > 0) && !this.backgroundWorker_1.IsBusy)
|
|
{
|
|
this.backgroundWorker_1.RunWorkerAsync();
|
|
}
|
|
else
|
|
{
|
|
this.timer_0.Start();
|
|
}
|
|
}
|
|
|
|
private void timer_1_Elapsed(object sender, ElapsedEventArgs e)
|
|
{
|
|
this.timer_1.Stop();
|
|
if (!this.class10_settings_0.IsBluetooth)
|
|
{
|
|
string[] portNames = SerialPort.GetPortNames();
|
|
bool flag = false;
|
|
for (int i = 0; i < portNames.Length; i++)
|
|
{
|
|
if ((this.serialPort_0 != null) && portNames[i].Contains(this.serialPort_0.PortName))
|
|
{
|
|
this.timer_1.Start();
|
|
this.IsUSBConnected = true;
|
|
flag = true;
|
|
return;
|
|
}
|
|
}
|
|
this.IsUSBConnected = false;
|
|
if (!flag)
|
|
{
|
|
try
|
|
{
|
|
this.serialPort_0.Close();
|
|
this.method_4(DataloggingState.Disconnected);
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
try
|
|
{
|
|
this.serialPort_0.Dispose();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
}
|
|
this.serialPort_0 = null;
|
|
this.method_35(false);
|
|
this.LogThis("USB might be disconnected!");
|
|
this.method_20();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void timer_2_Tick(object sender, EventArgs e)
|
|
{
|
|
this.bool_13 = true;
|
|
}
|
|
|
|
public delegate void Delegate45(Struct20 struct20_0);
|
|
|
|
public delegate void Delegate46(DataloggingState dataloggingState_0, bool bool_0);
|
|
|
|
public delegate void Delegate47(Struct17 struct17_0);
|
|
|
|
public delegate void Delegate48(Struct12 struct12_0);
|
|
|
|
public delegate void Delegate49(Struct23 struct23_0);
|
|
|
|
public delegate void Delegate50(Struct12 struct12_0);
|
|
|
|
private delegate void Delegate51();
|
|
|
|
private delegate void Delegate52(Struct12 struct12_0);
|
|
|
|
public delegate void Delegate53(long long_0, string string_0);
|
|
|
|
public delegate void Delegate54(Struct12 struct12_0);
|
|
|
|
internal enum Enum10
|
|
{
|
|
const_0,
|
|
const_1
|
|
}
|
|
|
|
internal enum Enum9
|
|
{
|
|
const_0,
|
|
const_1,
|
|
const_2,
|
|
const_3,
|
|
const_4,
|
|
const_5,
|
|
const_6,
|
|
const_7,
|
|
const_8,
|
|
const_9
|
|
}
|
|
}
|
|
|