diff --git a/Arduino/libraries/BM_Devs/Ecu.cpp b/Arduino/libraries/BM_Devs/Ecu.cpp deleted file mode 100644 index e552adc..0000000 --- a/Arduino/libraries/BM_Devs/Ecu.cpp +++ /dev/null @@ -1,866 +0,0 @@ -//################################################################################ -//################################################################################ -//#### #### -//#### ARDUINO ECTUNE DATALOGGER V1.4 #### -//#### #### -//#### THIS IS A HONDA OBD1 DATALOGGER TO BE USED ON THE CN2 DATALOG PORT #### -//#### OF THE ECU. THE DATALOGGING PROTOCOL IS ONLY FOR ECTUNE, SO YOU MUST #### -//#### HAVE A CHIPPED ECU AND TUNED UNDER ECTUNE TUNING MANAGMENT. #### -//#### #### -//#### MADE BY BOULETMARC AND AGE-TUNING #### -//#### #### -//################################################################################ -//################################################################################ - -#include "Arduino.h" -#include "Ecu.h" -#include "math.h" - -//SET modable variables -int Injectors_Size = 240; //Set the injectors size, used for consumptions -int mBarSeaLevel = 1013; -bool UseCelcius = true; -bool UseKMH = true; -String Unit_Map = "mBar"; // mBar, Bar, inHgG, inHg, psi, kPa (type it with specifics caps) -String WBinput = "o2Input"; //o2Input, eldInput, egrInput, b6Input -long Timeout_Time = 500; //Wait 500ms until the read array can be received otherwise call TimeOut - - -//################################################################################ -//#### DONT EDIT ANYTHING BELLOW THIS LINE #### -//################################################################################ -//SET unmodable variables -float ReadTime = 0; -int CurrentTranny = 0; -bool J12_Cut = true; -bool Error = false; -const int Array_Size = 52; -byte Datalog_Bytes[Array_Size]; -byte Tranny_Bytes[10] = {0x46, 0x00, 0x67, 0x00, 0x8E, 0x00, 0xB8, 0x00, 0x52, 0xDE}; -//Tranny_Bytes = {0x46, 0x00, 0x67, 0x00, 0x8E, 0x00, 0xB8, 0x00, 0x52, 0xDE}; - -//JUST SOMES TRANNY BYES INFOS -//0 = 'Y21/Y80/S80' {0x46, 0x00, 0x67, 0x00, 0x8E, 0x00, 0xB8, 0x00, 0x52, 0xDE}; -//1 = 'ITR S80 JDM 98-01' {0x42, 0x00, 0x5D, 0x00, 0x87, 0x00, 0xB6, 0x00, 0x52, 0xDE}; -//2 = 'ITR S80 USDM 97-01 ' {0x46, 0x00, 0x64, 0x00, 0x91, 0x00, 0xB8, 0x00, 0x52, 0xDE}; -//3 = 'Z6/Y8' {0x48, 0x00, 0x71, 0x00, 0xAA, 0x00, 0xE3, 0x00, 0x52, 0xDE}; -//4 = 'GSR' {0x46, 0x00, 0x6E, 0x00, 0x9A, 0x00, 0xC4, 0x00, 0x52, 0xDE}; -//5 = 'LS/RS/GS/SE' {0x48, 0x00, 0x71, 0x00, 0xB2, 0x00, 0xD6, 0x00, 0x52, 0xDE}; -//6 = 'H22 JDM' {0x47, 0x00, 0x6E, 0x00, 0x9E, 0x00, 0xC3, 0x00, 0x52, 0xDE}; -//7 = 'H22 USDM/H23 JDM' {0x47, 0x00, 0x6E, 0x00, 0x9E, 0x00, 0xC9, 0x00, 0x52, 0xDE}; -//8 = 'H23 USDM' {0x4A, 0x00, 0x7B, 0x00, 0xAF, 0x00, 0xE0, 0x00, 0x52, 0xDE}; -//9 = 'D16Y7' {0x4B, 0x00, 0x7D, 0x00, 0xBC, 0x00, 0xED, 0x00, 0x52, 0xDE}; - -//################################################################################ -//################################################################################ -//SET MAIN FUNCTIONS - -Ecu::Ecu(){ -} - -void Ecu::Connect() { - Serial.begin(38400); - Error = false; -} - -void Ecu::Disconnect() { - Serial.end(); - Error = false; -} - -bool Ecu::GetJ12Cut() { - J12_Cut = true; - - Serial.write((byte) 171); - if ((int) Serial.read() != 205) { - //Serial.end(); - J12_Cut = false; - Error = true; - } - return J12_Cut; -} - -void Ecu::GetData(){ - while(Serial.available()) { - for (int i = 0; i < Array_Size; i++){ - Datalog_Bytes[i] = Serial.read(); - delay(1); - } - } - Serial.flush(); - Serial.write(" "); -} - -void Ecu::SendRead(){ - unsigned long PreviousTimeRead = millis(); - - Serial.flush(); - Serial.write(" "); - - unsigned long PreviousTime = millis(); - unsigned long Time = millis() - PreviousTime; - while(Serial.available() != Array_Size && (Time < Timeout_Time)) Time = millis() - PreviousTime; - - if (Time >= Timeout_Time) { - for (int i = 0; i < Array_Size; i++) - Datalog_Bytes[i] = 0; - - ReadTime = (int) (millis() - PreviousTimeRead); - Error = true; - } - - for (int i = 0; i < Array_Size; i++){ - Datalog_Bytes[i] = Serial.read(); - delay(1); - } - - ReadTime = (int) (millis() - PreviousTimeRead); - - Error = false; -} - -/*void Ecu::Send(){ - Serial.flush(); - Serial.write(" "); -} - -void Ecu::Read(){ - Error = false; - unsigned long PreviousTimeRead = millis(); - - if (Serial.available() >= Array_Size) { - for (int i = 0; i < Array_Size; i++){ - Datalog_Bytes[i] = Serial.read(); - //delay(1); - } - } else { - Error = true; - } - - ReadTime = (int) (millis() - PreviousTimeRead); -} - -void Ecu::ReadAvailable(){ - Error = false; - unsigned long PreviousTimeRead = millis(); - - if (Serial.available() > 0) { - for (int i = 0; i < Serial.available(); i++){ - Datalog_Bytes[i] = Serial.read(); - //delay(1); - } - } else { - Error = true; - } - - ReadTime = (int) (millis() - PreviousTimeRead); -} - -int Ecu::GetAvailable() { - return (int) Serial.available(); -} - -int Ecu::GetReadTime() { - return ReadTime; -}*/ - -//################################################################################ -//################################################################################ -//SET VARIABLES FUNCTIONS - -//int variables -void Ecu::SetInjSize(int Size) { - Injectors_Size = Size; -} - -int Ecu::GetInjSize() { - return Injectors_Size; -} - -void Ecu::SetSeaLevel(int Size) { - mBarSeaLevel = Size; -} - -int Ecu::GetSeaLevel() { - return mBarSeaLevel; -} - -void Ecu::SetTimeoutTime(int Size) { - Timeout_Time = (long) Size; -} - -int Ecu::GetTimeoutTime() { - return (int) Timeout_Time; -} - -//bool variables -void Ecu::SetUseCelcius(bool Use) { - UseCelcius = Use; -} - -bool Ecu::GetUseCelcius() { - return UseCelcius; -} - -void Ecu::SetUseKMH(bool Use) { - UseKMH = Use; -} - -bool Ecu::GetUseKMH() { - return UseKMH; -} - -bool Ecu::GetError() { - return Error; -} - -//string variables -void Ecu::SetUnitMap(String This) { - Unit_Map = This; -} - -String Ecu::GetUnitMap() { - return Unit_Map; -} - -void Ecu::SetWBinput(String This) { - WBinput = This; -} - -String Ecu::GetWBinput() { - return WBinput; -} - -void Ecu::SetTranny(int ThisTranny) { - CurrentTranny = ThisTranny; - if (ThisTranny == 0) { - Tranny_Bytes[0] = 0x46; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x67; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0x8E; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xB8; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x46, 0x00, 0x67, 0x00, 0x8E, 0x00, 0xB8, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 1) { - Tranny_Bytes[0] = 0x42; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x5D; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0x87; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xB6; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x42, 0x00, 0x5D, 0x00, 0x87, 0x00, 0xB6, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 2) { - Tranny_Bytes[0] = 0x46; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x64; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0x91; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xB8; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x46, 0x00, 0x64, 0x00, 0x91, 0x00, 0xB8, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 3) { - Tranny_Bytes[0] = 0x48; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x71; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0xAA; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xE3; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x48, 0x00, 0x71, 0x00, 0xAA, 0x00, 0xE3, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 4) { - Tranny_Bytes[0] = 0x46; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x6E; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0x9A; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xC4; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x46, 0x00, 0x6E, 0x00, 0x9A, 0x00, 0xC4, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 5) { - Tranny_Bytes[0] = 0x48; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x71; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0xB2; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xD6; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x48, 0x00, 0x71, 0x00, 0xB2, 0x00, 0xD6, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 6) { - Tranny_Bytes[0] = 0x47; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x6E; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0x9E; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xC3; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x47, 0x00, 0x6E, 0x00, 0x9E, 0x00, 0xC3, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 7) { - Tranny_Bytes[0] = 0x47; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x6E; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0x9E; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xC9; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x47, 0x00, 0x6E, 0x00, 0x9E, 0x00, 0xC9, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 8) { - Tranny_Bytes[0] = 0x4A; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x7B; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0xAF; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xE0; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x4A, 0x00, 0x7B, 0x00, 0xAF, 0x00, 0xE0, 0x00, 0x52, 0xDE}; - } else if (ThisTranny == 9) { - Tranny_Bytes[0] = 0x4B; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x7D; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0xBC; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xED; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x4B, 0x00, 0x7D, 0x00, 0xBC, 0x00, 0xED, 0x00, 0x52, 0xDE}; - } else if (ThisTranny > 9) { - Tranny_Bytes[0] = 0x46; - Tranny_Bytes[1] = 0x00; - Tranny_Bytes[2] = 0x67; - Tranny_Bytes[3] = 0x00; - Tranny_Bytes[4] = 0x8E; - Tranny_Bytes[5] = 0x00; - Tranny_Bytes[6] = 0xB8; - Tranny_Bytes[7] = 0x00; - Tranny_Bytes[8] = 0x52; - Tranny_Bytes[9] = 0xDE; - //Tranny_Bytes = {0x46, 0x00, 0x67, 0x00, 0x8E, 0x00, 0xB8, 0x00, 0x52, 0xDE}; - CurrentTranny = 0; - } -} - -String Ecu::GetTranny() { - if (CurrentTranny == 0) - return "Y21/Y80/S80"; - else if (CurrentTranny == 1) - return "ITR S80 JDM 98-01"; - else if (CurrentTranny == 2) - return "ITR S80 USDM 97-01"; - else if (CurrentTranny == 3) - return "Z6/Y8"; - else if (CurrentTranny == 4) - return "GSR"; - else if (CurrentTranny == 5) - return "LS/RS/GS/SE"; - else if (CurrentTranny == 6) - return "H22 JDM"; - else if (CurrentTranny == 7) - return "H22 USDM/H23 JDM"; - else if (CurrentTranny == 8) - return "H23 USDM"; - else if (CurrentTranny == 9) - return "D16Y7"; -} -//################################################################################ -//################################################################################ -//SET MULTI USED FUNCTIONS - -long Ecu::Long2Bytes(byte ThisByte1, byte ThisByte2) { - return (long) ((long) ThisByte2 * 256 + (long) ThisByte1); -} - -float Ecu::GetTemperature(byte ThisByte) { - float ThisTemp = (float) ThisByte / 51; - ThisTemp = (0.1423*pow(ThisTemp,6)) - (2.4938*pow(ThisTemp,5)) + (17.837*pow(ThisTemp,4)) - (68.698*pow(ThisTemp,3)) + (154.69*pow(ThisTemp,2)) - (232.75*ThisTemp) + 284.24; - ThisTemp = ((ThisTemp - 32)*5)/9; - - if (!UseCelcius) - ThisTemp = ThisTemp * 1.8 + 32.0; - - return ThisTemp; - /*if (UseCelcius) - return round(double_Temperature[(int) ThisByte]); - return round(GetTemperatureF(double_Temperature[(int) ThisByte]));*/ -} - -double Ecu::GetVolt(byte ThisByte) { - return round(((double) ThisByte * 0.0196078438311815) * 100) / 100; -} - -float Ecu::GetDuration(int ThisInt) { - return (float) ThisInt * 3.20000004768372 / 1000.0; -} - -/*float Ecu::GetIC(byte ThisByte) { - if ((int) ThisByte == 128) - return 0.0f; - if ((int) ThisByte < 128) - return (float) (128 - (int) ThisByte) * -0.25f; - return (float) ((int) ThisByte - 128) * 0.25f; -} - -double Ecu::GetFC(long ThisByte, long ThisLong) { - double num = (double) ThisByte / (double) ThisLong; - //if (CorrectionUnits == "multi") - return round((num) * 100) / 100; - //return round(num * 100.0 - 100.0); -} - -double Ecu::GetEBC(byte ThisByte) { - double num = (double) ThisByte / 2.0; - if (num > 100.0) - num = 100.0; - return round((num * 10)) / 10; -}*/ - -byte Ecu::GetActivated(byte ThisByte, int ThisPos, bool Reversed) { - int bitArray[8]; - for (int i=0; i < 8; ++i ) { - bitArray[i] = ThisByte & 1; - ThisByte = ThisByte >> 1; - } - - if (Reversed) - return bitArray[ThisPos] ? (byte) 0 : (byte) 1; - return bitArray[ThisPos] ? (byte) 1 : (byte) 0; -} - -float Ecu::GetInstantConsumption(){ - float hundredkm = ((60 / GetVss()) * 100) / 60; //minutes needed to travel 100km - float fuelc = (hundredkm * ((Injectors_Size / 100) * GetDuty())) / 1000; - return constrain(fuelc, 0.0001, 50.0); -} - -float Ecu::GetDuty(){ - return ((float) GetRpm() * (float) GetInj()) / 1200; -} - -float Ecu::GetValueHG(int ThisInt) { - return (float) round(((double) ThisInt * 0.02952999) * 10) / 10; -} - -//################################################################################ -//################################################################################ -//SET 'GET' FUNCTIONS - -unsigned int Ecu::GetEct(){ - return GetTemperature(Datalog_Bytes[0]); -} - -unsigned int Ecu::GetIat(){ - return GetTemperature(Datalog_Bytes[1]); -} - -float Ecu::GetO2(){ - //unsigned byte O2Byte = 0; - if (WBinput == "o2Input") return round((float) GetVolt(Datalog_Bytes[2]) * 100) / 100;//O2Byte = Datalog_Bytes[2]; - if (WBinput == "eldInput") return round((float) GetVolt(Datalog_Bytes[24]) * 100) / 100;//O2Byte = Datalog_Bytes[24]; - if (WBinput == "egrInput") return round((float) GetVolt(Datalog_Bytes[44]) * 100) / 100;//O2Byte = Datalog_Bytes[44]; //byte_25 - if (WBinput == "b6Input") return round((float) GetVolt(Datalog_Bytes[45]) * 100) / 100;//O2Byte = Datalog_Bytes[45]; - //return round((float) GetVolt(O2Byte) * 100) / 100; - //return ((2 * (float) O2Byte[2]) + 10) / 10f; -} - -unsigned int Ecu::GetBaro(){ - return (int) round((double) ((int) Datalog_Bytes[3] / 2 + 24) * 7.221 - 59.0); -} - -float Ecu::GetMap(){ - int ThisInt = (int) Datalog_Bytes[4]; - //if (Unit_Map == "mBar") return ((float) ThisInt * 2041) / 255; //(1764/255) * (float) ThisInt; - if (Unit_Map == "mBar") return 6.9176 * (float) ThisInt; - else if (Unit_Map == "Bar") return (float) (ThisInt / 1000); - else if (Unit_Map == "inHgG") return (float) round(-((double) GetValueHG(mBarSeaLevel) + (double) GetValueHG(ThisInt)) * 10) / 10; - else if (Unit_Map == "inHg") return GetValueHG(ThisInt); - else if (Unit_Map == "psi") return (float) round(((double) (ThisInt - mBarSeaLevel) * 0.0145037695765495) * 100) / 100; //GetValuePSI(ThisInt); - else if (Unit_Map == "kPa") return (float) round((double) ThisInt * 0.1); //GetValueKPa(ThisInt); - else return 0; - - //float mapRaw = Datalog_Bytes[4]; - //return (1764/255)*mapRaw; -} - -unsigned int Ecu::GetTps(){ - return (int) round(((double) Datalog_Bytes[5] - 25.0) / 2.04); - //return constrain((0.4716 * Datalog_Bytes[5]) - 11.3184, 0, 100); -} - -unsigned int Ecu::GetRpm(){ - //return (int) (1875000/Long2Bytes(Datalog_Bytes[6], Datalog_Bytes[7])); - return (int) (1851562/Long2Bytes(Datalog_Bytes[6], Datalog_Bytes[7])); -} -//#### -/*bool Ecu::GetPostFuel(){ - return (bool) GetActivated(Datalog_Bytes[8], 0, false); -} - -bool Ecu::GetSCCChecker(){ - return (bool) GetActivated(Datalog_Bytes[8], 1, false); -}*/ - -bool Ecu::GetIgnCut(){ - return (bool) GetActivated(Datalog_Bytes[8], 2, false); -} - -bool Ecu::GetVTSM(){ - return (bool) GetActivated(Datalog_Bytes[8], 3, false); -} - -bool Ecu::GetFuelCut1(){ - return (bool) GetActivated(Datalog_Bytes[8], 4, false); -} - -bool Ecu::GetFuelCut2(){ - return (bool) GetActivated(Datalog_Bytes[8], 5, false); -} - -/*bool Ecu::GetATShift1(){ - return (bool) GetActivated(Datalog_Bytes[8], 6, false); -} - -bool Ecu::GetATShift2(){ - return (bool) GetActivated(Datalog_Bytes[8], 7, false); -}*/ -//#### -unsigned int Ecu::GetVss(){ - if (UseKMH) - return (int) Datalog_Bytes[16]; - return (int) round((float) Datalog_Bytes[16] / 1.6f); -} - -double Ecu::GetInjFV() { - return round(((double) Long2Bytes(Datalog_Bytes[17], Datalog_Bytes[18]) / 4.0) * 100) / 100; -} - -float Ecu::GetInjectorDuty() { - //Get rpm scalars for menus, not extracted the method yet - //if (GetRpm() == 0) - // return this.method_159(ReturnRPM); - - return (float) ((double) GetRpm() * (double) GetDuration(Long2Bytes(Datalog_Bytes[17], Datalog_Bytes[18])) / 1200.0); -} - -float Ecu::GetInj(){ - return (float) (Long2Bytes(Datalog_Bytes[17], Datalog_Bytes[18]) / 352); -} - -unsigned int Ecu::GetIgn(){ - return (0.25 * Datalog_Bytes[19]) - 6; -} - -/*int Ecu::GetIgnTable(){ - return (0.25 * Datalog_Bytes[20]) - 6; -} -//#### -bool Ecu::GetParkN(){ - return (bool) GetActivated(Datalog_Bytes[21], 0, false); -} - -bool Ecu::GetBKSW(){ - return (bool) GetActivated(Datalog_Bytes[21], 1, false); -} - -bool Ecu::GetACC(){ - return (bool) GetActivated(Datalog_Bytes[21], 2, false); -}*/ - -bool Ecu::GetVTP(){ - return (bool) GetActivated(Datalog_Bytes[21], 3, false); -} - -/*bool Ecu::GetStart(){ - return (bool) GetActivated(Datalog_Bytes[21], 4, false); -} - -bool Ecu::GetSCC(){ - return (bool) GetActivated(Datalog_Bytes[21], 5, false); -} - -bool Ecu::GetVTSFeedBack(){ - return (bool) GetActivated(Datalog_Bytes[21], 6, false); -} - -bool Ecu::GetPSP(){ - return (bool) GetActivated(Datalog_Bytes[21], 7, false); -} -//#### -bool Ecu::GetFuelPump(){ - return (bool) GetActivated(Datalog_Bytes[22], 0, false); -} - -bool Ecu::GetIAB(){ - return (bool) GetActivated(Datalog_Bytes[22], 2, false); -}*/ - -bool Ecu::GetFanCtrl(){ - return (bool) GetActivated(Datalog_Bytes[22], 4, false); -} - -bool Ecu::GetAtlCtrl(){ - return (bool) GetActivated(Datalog_Bytes[22], 5, false); -} - -/*bool Ecu::GetPurge(){ - return (bool) GetActivated(Datalog_Bytes[22], 6, false); -} - -bool Ecu::GetAC(){ - return (bool) GetActivated(Datalog_Bytes[22], 7, false); -}*/ -//#### -bool Ecu::GetMIL(){ - return (bool) GetActivated(Datalog_Bytes[23], 5, false); -} - -/*bool Ecu::GetO2Heater(){ - return (bool) GetActivated(Datalog_Bytes[23], 6, false); -} - -bool Ecu::GetVTS(){ - return (bool) GetActivated(Datalog_Bytes[23], 7, false); -} -//#### -double Ecu::GetELDVolt(){ - return GetVolt(Datalog_Bytes[24]); -}*/ - -float Ecu::GetBattery(){ - return (26.0 * Datalog_Bytes[25]) / 270.0; -} - -/*double Ecu::GetECTFC(){ - return GetFC(Datalog_Bytes[26], 128); -} - -long Ecu::GetO2Short(){ - return (long) GetFC(Long2Bytes(Datalog_Bytes[27], Datalog_Bytes[28]), 32768); -} - -long Ecu::GetO2Long(){ - return (long) GetFC(Long2Bytes(Datalog_Bytes[29], Datalog_Bytes[30]), 32768); -} - -long Ecu::GetIATFC(){ - return (long) GetFC(Long2Bytes(Datalog_Bytes[31], Datalog_Bytes[32]), 32768); -} - -double Ecu::GetVEFC(){ - return GetFC(Datalog_Bytes[33], 128); -} - -float Ecu::GetIATIC(){ - return GetIC(Datalog_Bytes[34]); -} - -float Ecu::GetECTIC(){ - return GetIC(Datalog_Bytes[35]); -} - -float Ecu::GetGEARIC(){ - return GetIC(Datalog_Bytes[36]); -}*/ -//#### -bool Ecu::GetInputFTL(){ - return (bool) GetActivated(Datalog_Bytes[38], 0, false); -} - -bool Ecu::GetInputFTS(){ - return (bool) GetActivated(Datalog_Bytes[38], 1, false); -} - -bool Ecu::GetInputEBC(){ - return (bool) GetActivated(Datalog_Bytes[38], 2, false); -} - -/*bool Ecu::GetInputEBCHi(){ - return (bool) GetActivated(Datalog_Bytes[38], 3, false); -} - -bool Ecu::GetInputGPO1(){ - return (bool) GetActivated(Datalog_Bytes[38], 4, false); -} - -bool Ecu::GetInputGPO2(){ - return (bool) GetActivated(Datalog_Bytes[38], 5, false); -} - -bool Ecu::GetInputGPO3(){ - return (bool) GetActivated(Datalog_Bytes[38], 6, false); -}*/ - -bool Ecu::GetInputBST(){ - return (bool) GetActivated(Datalog_Bytes[38], 7, false); -} -//#### -bool Ecu::GetOutputFTL(){ - return (bool) GetActivated(Datalog_Bytes[39], 0, false); -} - -bool Ecu::GetOutputAntilag(){ - return (bool) GetActivated(Datalog_Bytes[39], 1, false); -} - -bool Ecu::GetOutputFTS(){ - return (bool) GetActivated(Datalog_Bytes[39], 2, false); -} - -bool Ecu::GetOutputBoostCut(){ - return (bool) GetActivated(Datalog_Bytes[39], 3, false); -} - -bool Ecu::GetOutputEBC(){ - return (bool) GetActivated(Datalog_Bytes[39], 4, false); -} - -bool Ecu::GetOutput2ndMap(){ - return (bool) GetActivated(Datalog_Bytes[39], 5, false); -} - -bool Ecu::GetOutputFanCtrl(){ - return (bool) GetActivated(Datalog_Bytes[39], 6, false); -} - -bool Ecu::GetOutputBST(){ - return (bool) GetActivated(Datalog_Bytes[39], 7, false); -} -//#### -/*double Ecu::GetEBCBaseDuty(){ - return GetEBC(Datalog_Bytes[40]); -} - -double Ecu::GetEBCDuty(){ - return GetEBC(Datalog_Bytes[41]); -} -//#### -bool Ecu::GetOutputGPO1(){ - return (bool) GetActivated(Datalog_Bytes[43], 0, false); -} - -bool Ecu::GetOutputGPO2(){ - return (bool) GetActivated(Datalog_Bytes[43], 1, false); -} - -bool Ecu::GetOutputGPO3(){ - return (bool) GetActivated(Datalog_Bytes[43], 2, false); -} - -bool Ecu::GetOutputBSTStage2(){ - return (bool) GetActivated(Datalog_Bytes[43], 3, false); -} - -bool Ecu::GetOutputBSTStage3(){ - return (bool) GetActivated(Datalog_Bytes[43], 4, false); -} - -bool Ecu::GetOutputBSTStage4(){ - return (bool) GetActivated(Datalog_Bytes[43], 5, false); -}*/ - -bool Ecu::GetLeanProtect(){ - return (bool) GetActivated(Datalog_Bytes[43], 7, false); -} -//#### -double Ecu::GetIACVDuty(){ - return ((double) ((float) Long2Bytes(Datalog_Bytes[49], Datalog_Bytes[50]) / 32768) * 100.0 - 100.0); -} - -//################################################################################ -//################################################################################ -//ADDED FUNCTIONS -double Ecu::GetMapVolt(){ - return GetVolt(Datalog_Bytes[4]); -} - -double Ecu::GetTPSVolt(){ - return GetVolt(Datalog_Bytes[5]); -} - -double Ecu::GetInjDuration(){ - return round(((double) GetDuration((int) Long2Bytes(Datalog_Bytes[17], Datalog_Bytes[18]))) * 100) / 100; -} - -unsigned int Ecu::GetGear(){ - if (GetVss() == 0) - return 0; - - long ThisRatio = (long) (GetVss() * 256) * (long) GetRpm() / (long) 256; - byte Gear = 0; - - for (int i = 0; i < 4; i++) { - int ThisIndex = i * 2; - - if (ThisRatio >= Tranny_Bytes[ThisIndex]) { - Gear = i + 1; - //return ThisRPM; - } else { - //Gear = ThisRPM; - break; - } - } - - return Gear; -} - -//################################################################################ -//################################################################################ -// OLD UNUSED FUNCTIONS - -/*float Ecu::GetValuePSI(int ThisInt) { - return (float) round(((double) (ThisInt - mBarSeaLevel) * 0.0145037695765495) * 100) / 100; -} - -float Ecu::GetValueKPa(int ThisInt) { - return (float) round((double) ThisInt * 0.1); -}*/ - -/*float Ecu::GetTemperatureF(float ThisTemp) { - return ThisTemp * 1.8f + 32.0f; -}*/ - -/*float Ecu::calcTempInCelsius(float Datalog_Bytes){ - Datalog_Bytes = Datalog_Bytes / 51; - Datalog_Bytes = (0.1423*pow(Datalog_Bytes,6)) - (2.4938*pow(Datalog_Bytes,5)) + (17.837*pow(Datalog_Bytes,4)) - (68.698*pow(Datalog_Bytes,3)) + (154.69*pow(Datalog_Bytes,2)) - (232.75*Datalog_Bytes) + 284.24; - return ((Datalog_Bytes - 32)*5)/9; -}*/ - -/*int Ecu::Getbit(){ - int firsteightbit = Datalog_Bytes[8]; - return firsteightbit; -} - -int Ecu::Getbit2(){ - int firsteightbit2 = Datalog_Bytes[23]; - return firsteightbit2; -}*/ - -