From ee3529296deb0e6b35eb61dd639ad88bc74aee7f Mon Sep 17 00:00:00 2001 From: rusefi Date: Tue, 20 Jun 2017 05:29:03 +0300 Subject: [PATCH] TS project progress --- firmware/tunerstudio/rusefi.ini | 138 +++++++++++++++++++----------- firmware/tunerstudio/rusefi.input | 136 +++++++++++++++++++---------- 2 files changed, 179 insertions(+), 95 deletions(-) diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 1d88ff36cb..f1c5ced3a1 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -5,17 +5,17 @@ enable2ndByteCanID = false #unset tuneByMAF -[SettingGroups] +;[SettingGroups] ; the referenceName will over-ride previous, so if you are creating a ; settingGroup with a reference name of lambdaSensor, it will replace the ; setting group defined in the settingGroups.xml of the TunerStudio config ; folder. If is is an undefined referenceName, it will be added. ; keyword = referenceName, DisplayName - settingGroup = fAlgorithmSetting, "Fuel Logic / Tables" - settingOption = FA_PLAIN_MAF, "Plain MAF" - settingOption = FA_TPS, "AlphaN/TPS" - settingOption = DEFAULT, "Speed Density" ; DEFAULT will be over looked and this will fall into the #else block of the statement. +; settingGroup = fAlgorithmSetting, "Fuel Logic / Tables" +; settingOption = FA_PLAIN_MAF, "Plain MAF" +; settingOption = FA_TPS, "AlphaN/TPS" +; settingOption = DEFAULT, "Speed Density" ; DEFAULT will be over looked and this will fall into the #else block of the statement. @@ -59,7 +59,7 @@ enable2ndByteCanID = false ; see PAGE_0_SIZE in C source code ; CONFIG_DEFINITION_START -; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Jun 20 00:07:43 MSK 2017 +; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Tue Jun 20 05:27:17 MSK 2017 pageSize = 16376 page = 1 @@ -841,7 +841,7 @@ page = 1 gaugeColumns = 1 ; Only 1 or 2 are valid. pageButtons = "&EGO" - gauge1 = tachometer + gauge1 = RPMGauge gauge2 = afr1Gauge gauge3 = MAPGauge gauge4 = veValueGauge @@ -851,14 +851,14 @@ page = 1 ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition #if tuneByMAF - veAnalyzeMap = fuelTableTbl, afrTableTbl, AFRactual, egoCorrection, { 1 } + veAnalyzeMap = fuelTableTbl, afrTableTbl, AFRValue, egoCorrection, { 1 } #else - veAnalyzeMap = veTableTbl, afrTableTbl, AFRactual, egoCorrection, { 1 } + veAnalyzeMap = veTableTbl, afrTableTbl, AFRValue, egoCorrection, { 1 } #endif ;lambdaTargetTables = afrTable1Tbl, afrTable2Tbl, afrTSCustom ; filter = Name, "DisplayName", outputChannel, operator, defaultVal, userAdjustable - filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true + filter = minRPMFilter, "Minimum RPM", RPMValue, < , 500, , true #if CELSIUS filter = minCltFilter, "Minimum CLT", coolant, < , 60, , true @@ -874,8 +874,8 @@ page = 1 ;[VeAnalyze] -; fuelAnalyzeMap = fuelTableTbl, afrTableTbl, AFRactual, egoCorrection , { 1 } -; filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true +; fuelAnalyzeMap = fuelTableTbl, afrTableTbl, AFRValue, egoCorrection , { 1 } +; filter = minRPMFilter, "Minimum RPM", RPMValue, < , 500, , true @@ -889,7 +889,7 @@ fileVersion = { 20161225 } ; see TS_OUTPUT_SIZE in console source code ochBlockSize = 356 - rpm = scalar, U32, 0, "RPM", 1, 0.00000 + RPMValue = scalar, U32, 0, "RPM", 1, 0.00000 #if CELSIUS coolant = scalar, F32, 4, "°C", 1, 0.0 #else @@ -902,7 +902,7 @@ fileVersion = { 20161225 } #endif TPSValue = scalar, F32, 12, "%", 1, 0 MAFValue = scalar, F32, 16, "V", 1, 0 - AFRactual = scalar, F32, 20, "AFR", 1, 0.0 + AFRValue = scalar, F32, 20, "AFR", 1, 0.0 engineLoad = scalar, F32, 24, "%", 1, 0.0 ; Blend of MAP and TPS, depends on algorithm VBatt = scalar, F32, 28, "V", 1, 0.0 ; 10 bit TPS ADC value (from 0 to 1023 in 5v scale) @@ -996,6 +996,13 @@ fileVersion = { 20161225 } fuelPidCorrection = scalar, F32, 268, "ms", 1, 0 coilDutyCycle = scalar, F32, 272, "perc", 1, 0 +; todo: generate this section programatically + LM_PLAIN_MAF = {0}, + LM_ALPHA_N = {1}, + LM_MAP = {2}, + LM_SPEED_DENSITY = {3}, + LM_REAL_MAF = {4} + egoCorrection = { 100 } time = { timeNow } ; engineLoad = { fuleAlgorithm == 0 ? MAF : TPS } @@ -1009,9 +1016,9 @@ fileVersion = { 20161225 } columnLabel = "RPM", "Threshold" xAxis = 0, 8000, 10 yAxis = 0, 8, 10 - xBins = knockNoiseRpmBins, rpm + xBins = knockNoiseRpmBins, RPMValue yBins = knockNoise - gauge = rpm + gauge = RPMValue curve = mapAccelTaper, "Engine Load Acceleration Enrichment Taper" columnLabel = "Distance", "Multiplier" @@ -1024,25 +1031,25 @@ fileVersion = { 20161225 } columnLabel = "RPM", "Dwell" xAxis = 0, 8000, 10 yAxis = 0, 30, 10 - xBins = sparkDwellRpmBins, rpm + xBins = sparkDwellRpmBins, RPMValue yBins = sparkDwellValues - gauge = rpm + gauge = RPMValue curve = map_samplingAngleCurve, "MAP Sampling Start Angle" columnLabel = "RPM", "Angle" xAxis = 0, 8000, 10 yAxis = 0, 180, 10 - xBins = map_samplingAngleBins, rpm + xBins = map_samplingAngleBins, RPMValue yBins = map_samplingAngle - gauge = rpm + gauge = RPMValue curve = map_samplingWindowCurve, "MAP Sampling Duration" columnLabel = "RPM", "Window" xAxis = 0, 8000, 10 yAxis = 0, 180, 10 - xBins = map_samplingWindowBins, rpm + xBins = map_samplingWindowBins, RPMValue yBins = map_samplingWindow - gauge = rpm + gauge = RPMValue curve = injectorsDeadTime, "Injector Dead Time by VBatt" columnLabel = "Voltage", "Dead Time" @@ -1126,16 +1133,29 @@ fileVersion = { 20161225 } [TableEditor] ; table_id, map3d_id, "title", page - table = fuelTableTbl, fuelTableMap, "Fuel Table", 1 + + table = fuelTableMAFTbl, fuelTableMAFMap, "Fuel Table", 1 ; constant, variable - xBins = fuelRpmBins, rpm -#if FA_PLAIN_MAF + xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, MAFValue -#elif FA_TPS + zBins = fuelTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTableTPSTbl, fuelTableTPSMap, "Fuel Table", 1 + ; constant, variable + xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, TPSValue -#else + zBins = fuelTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTableELTbl, fuelTableELMap, "Fuel Table", 1 + ; constant, variable + xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, engineLoad -#endif zBins = fuelTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. @@ -1148,28 +1168,28 @@ fileVersion = { 20161225 } table = fsioTable1Tbl, fsioTable1Map, "FSIO Table #1", 1 - xBins = fsioTable1RpmBins, rpm + xBins = fsioTable1RpmBins, RPMValue yBins = fsioTable1LoadBins, engineLoad zBins = fsioTable1 table = fsioTable2Tbl, fsioTable2Map, "FSIO Table #2", 1 - xBins = fsioTable2RpmBins, rpm + xBins = fsioTable2RpmBins, RPMValue yBins = fsioTable2LoadBins, engineLoad zBins = fsioTable2 table = fsioTable3Tbl, fsioTable3Map, "FSIO Table #3", 1 - xBins = fsioTable3RpmBins, rpm + xBins = fsioTable3RpmBins, RPMValue yBins = fsioTable3LoadBins, engineLoad zBins = fsioTable3 table = fsioTable4Tbl, fsioTable4Map, "FSIO Table #4", 1 - xBins = fsioTable4RpmBins, rpm + xBins = fsioTable4RpmBins, RPMValue yBins = fsioTable4LoadBins, engineLoad zBins = fsioTable4 table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 ; constant, variable - xBins = baroCorrRpmBins, rpm + xBins = baroCorrRpmBins, RPMValue yBins = baroCorrPressureBins, baroPressure zBins = baroCorrTable ; gridHeight = 2.0 @@ -1178,7 +1198,7 @@ fileVersion = { 20161225 } table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 ; constant, variable - xBins = ignitionRpmBins, rpm + xBins = ignitionRpmBins, RPMValue #if FA_PLAIN_MAF yBins = ignitionLoadBins, MAFValue #elif FA_TPS @@ -1194,7 +1214,7 @@ fileVersion = { 20161225 } table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 ; constant, variable - xBins = ignitionIatCorrRpmBins, rpm + xBins = ignitionIatCorrRpmBins, RPMValue yBins = ignitionIatCorrLoadBins, intake zBins = ignitionIatCorrTable ; gridHeight = 2.0 @@ -1203,7 +1223,7 @@ fileVersion = { 20161225 } table = veTableTbl, veTableMap, "VE Table", 1 ; constant, variable - xBins = veRpmBins, rpm + xBins = veRpmBins, RPMValue yBins = veLoadBins, MAPValue zBins = veTable ; gridHeight = 2.0 @@ -1213,7 +1233,7 @@ fileVersion = { 20161225 } table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 ; constant, variable - xBins = injPhaseRpmBins, rpm + xBins = injPhaseRpmBins, RPMValue yBins = injPhaseLoadBins, engineLoad zBins = injectionPhase ; gridHeight = 2.0 @@ -1222,7 +1242,7 @@ fileVersion = { 20161225 } table = afrTableTbl, afrTableMap, "Target AFR Table", 1 ; constant, variable - xBins = afrRpmBins, rpm + xBins = afrRpmBins, RPMValue yBins = afrLoadBins, MAPValue zBins = afrTable ; gridHeight = 2.0 @@ -1278,7 +1298,7 @@ gaugeCategory = Debug debugIntField3Gauge = debugIntField3, "debug i3", "%", 0, 100, 0, 0, 100, 100, 0, 0 gaugeCategory = Sensors - tachometer = rpm, "Engine Speed", "RPM", 0, 15000, 200, 500, 6000, 6000, 0, 0 + RPMGauge = RPMValue, "Engine Speed", "RPM", 0, 15000, 200, 500, 6000, 6000, 0, 0 #if CELSIUS CLTGauge = coolant, "Coolant Temp", "°C", -40, 140, -15, 1, 95, 110, 1, 1 #else @@ -1290,7 +1310,7 @@ gaugeCategory = Sensors IATGauge = intake, "Intake Air Temp", "°F", -40, 285, 5, 35, 205, 230, 1, 1 #endif TPSGauge = TPSValue, "Throttle Position", "%", 0, 100, 0, 0, 100, 100, 2, 2 - afr1Gauge = AFRactual, "Air:Fuel Ratio 1", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afr1Gauge = AFRValue, "Air:Fuel Ratio 1", "", 10, 19.4, 12, 13, 15, 16, 2, 2 MAFGauge = MAFValue, "Mass Air Flow", "v", 0, 5, 0, 1, 3, 4, 1, 1 VBattGauge = VBatt, "Battery Voltage", "V", 8, 21, 9, 10, 17, 19, 1, 1 MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 @@ -1334,7 +1354,7 @@ gaugeCategory = Fuel Data ; 5 6 7 8 ; currently a minimum of 6 gauges must be on the dash, this appears to be an old not needed limitation. next release 1 will work. - gauge1 = tachometer + gauge1 = RPMGauge gauge2 = CLTGauge gauge3 = TPSGauge gauge4 = MAFGauge @@ -1379,14 +1399,14 @@ gaugeCategory = Fuel Data [Datalog] ; Channel Label Type Format entry = time, "Time", float, "%.3f" - entry = rpm, "RPM", int, "%d" + entry = RPMValue, "RPM", int, "%d" entry = firmwareVersion, "firmware", int, "%d" entry = coolant, "CLT", float, "%.2f" entry = intake, "IAT", float, "%.2f" entry = TPSValue, "TPS", float, "%.2f" entry = MAFValue, "MAF", float, "%.2f" entry = MAPValue, "MAP", float, "%.1f" - entry = AFRactual, "Air/Fuel Ratio", float, "%.2f" + entry = AFRValue, "Air/Fuel Ratio", float, "%.2f" entry = VBatt, "VBatt", float, "%.2f" entry = engineLoad, "Engine Load", float, "%.1f" entry = ignitionAdvance, "timing", float, "%.2f" @@ -1528,9 +1548,9 @@ gaugeCategory = Fuel Data subMenu = cltIdleCurve, "Warmup IAC position manual Multiplier" subMenu = cltTimingCorrCurve, "Warmup timing correction" subMenu = std_separator - subMenu = fuelTableTbl, "Fuel Table", 0, {fuelAlgorithm != 3} - subMenu = veTableDialog, "VE Table", 0, {fuelAlgorithm == 3} - subMenu = afrTableTbl, "Target AFR Table", 0, {fuelAlgorithm == 3} + subMenu = fuelTableDialog, "Fuel Table", 0, {fuelAlgorithm != LM_SPEED_DENSITY} + subMenu = veTableDialog, "VE Table", 0, {fuelAlgorithm == LM_SPEED_DENSITY} + subMenu = afrTableTbl, "Target AFR Table", 0, {fuelAlgorithm == LM_SPEED_DENSITY} subMenu = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" subMenu = injPhaseTableTbl, "Injection Phase" subMenu = mapAccelTaper, "Engine Load Acceleration Enrichment Taper" @@ -1541,7 +1561,7 @@ gaugeCategory = Fuel Data subMenu = std_separator subMenu = ignitionTableTbl, "Ignition Table" subMenu = ignitionIatCorrTableTbl, "Ignition Intake Air Temp correction" - subMenu = baroCorrTbl, "Baro Correction", 0, {fuelAlgorithm == 3} + subMenu = baroCorrTbl, "Baro Correction", 0, {fuelAlgorithm == LM_SPEED_DENSITY} subMenu = std_separator subMenu = std_realtime, "&Realtime Display", 0 subMenu = tChargeSettings, "tCharge Settings" @@ -1549,7 +1569,7 @@ gaugeCategory = Fuel Data menu = "3D Map Tuning" ; subMenu = std_realtime, "Realtime Display" ; subMenu = std_warmup, "Warmup Wizard" - subMenu = fuelTableMap, "Fuel Table", 0, {fuelAlgorithm != 3} + subMenu = fuelTableELMap, "Fuel Table", 0, {fuelAlgorithm != 3} subMenu = veTableDialog3D, "VE Table", 0, {fuelAlgorithm == 3} subMenu = afrTableMap, "Target AFR Table", 0, {fuelAlgorithm == 3} subMenu = injPhaseTableMap, "Injection Phase" @@ -1632,6 +1652,28 @@ cmd_call_from_pit = "w\x00\x20\x34\x56" [UserDefined] + dialog = fuelTableBottomDialog, "", card + panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF} + panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N} + panel = fuelTableELTbl, Center + + dialog = fuelTableRight, "", yAxis + topicHelp = "http://rusefi.com/fuel" + displayOnlyField = "Fuel Algorithm", fuelAlgorithm + panel = fuelTableBottomDialog, Center + liveGraph = fuelLive, "Fuel", South + graphLine = AFRValue + graphLine = RPMValue + + dialog = fuelTableGaugesPanel, yAxis + gauge = TPSGauge + gauge = MAFGauge + gauge = MAPGauge + + dialog = fuelTableDialog, "Fuel Table", xAxis + panel = fuelTableGaugesPanel + panel = fuelTableRight + dialog = tChargeSettings, "tChart Settings" field = "MinRpm MinTps", tChargeMinRpmMinTps field = "MinRpm MaxTps", tChargeMinRpmMaxTps diff --git a/firmware/tunerstudio/rusefi.input b/firmware/tunerstudio/rusefi.input index 3d297b2c9f..3b28839321 100644 --- a/firmware/tunerstudio/rusefi.input +++ b/firmware/tunerstudio/rusefi.input @@ -5,17 +5,17 @@ enable2ndByteCanID = false #unset tuneByMAF -[SettingGroups] +;[SettingGroups] ; the referenceName will over-ride previous, so if you are creating a ; settingGroup with a reference name of lambdaSensor, it will replace the ; setting group defined in the settingGroups.xml of the TunerStudio config ; folder. If is is an undefined referenceName, it will be added. ; keyword = referenceName, DisplayName - settingGroup = fAlgorithmSetting, "Fuel Logic / Tables" - settingOption = FA_PLAIN_MAF, "Plain MAF" - settingOption = FA_TPS, "AlphaN/TPS" - settingOption = DEFAULT, "Speed Density" ; DEFAULT will be over looked and this will fall into the #else block of the statement. +; settingGroup = fAlgorithmSetting, "Fuel Logic / Tables" +; settingOption = FA_PLAIN_MAF, "Plain MAF" +; settingOption = FA_TPS, "AlphaN/TPS" +; settingOption = DEFAULT, "Speed Density" ; DEFAULT will be over looked and this will fall into the #else block of the statement. @@ -76,7 +76,7 @@ enable2ndByteCanID = false gaugeColumns = 1 ; Only 1 or 2 are valid. pageButtons = "&EGO" - gauge1 = tachometer + gauge1 = RPMGauge gauge2 = afr1Gauge gauge3 = MAPGauge gauge4 = veValueGauge @@ -86,14 +86,14 @@ enable2ndByteCanID = false ; tableName, lambdaTargetTableName, lambdaChannel, egoCorrectionChannel, activeCondition #if tuneByMAF - veAnalyzeMap = fuelTableTbl, afrTableTbl, AFRactual, egoCorrection, { 1 } + veAnalyzeMap = fuelTableTbl, afrTableTbl, AFRValue, egoCorrection, { 1 } #else - veAnalyzeMap = veTableTbl, afrTableTbl, AFRactual, egoCorrection, { 1 } + veAnalyzeMap = veTableTbl, afrTableTbl, AFRValue, egoCorrection, { 1 } #endif ;lambdaTargetTables = afrTable1Tbl, afrTable2Tbl, afrTSCustom ; filter = Name, "DisplayName", outputChannel, operator, defaultVal, userAdjustable - filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true + filter = minRPMFilter, "Minimum RPM", RPMValue, < , 500, , true #if CELSIUS filter = minCltFilter, "Minimum CLT", coolant, < , 60, , true @@ -109,8 +109,8 @@ enable2ndByteCanID = false ;[VeAnalyze] -; fuelAnalyzeMap = fuelTableTbl, afrTableTbl, AFRactual, egoCorrection , { 1 } -; filter = minRPMFilter, "Minimum RPM", rpm, < , 500, , true +; fuelAnalyzeMap = fuelTableTbl, afrTableTbl, AFRValue, egoCorrection , { 1 } +; filter = minRPMFilter, "Minimum RPM", RPMValue, < , 500, , true @@ -124,7 +124,7 @@ fileVersion = { 20161225 } ; see TS_OUTPUT_SIZE in console source code ochBlockSize = 356 - rpm = scalar, U32, 0, "RPM", 1, 0.00000 + RPMValue = scalar, U32, 0, "RPM", 1, 0.00000 #if CELSIUS coolant = scalar, F32, 4, "°C", 1, 0.0 #else @@ -137,7 +137,7 @@ fileVersion = { 20161225 } #endif TPSValue = scalar, F32, 12, "%", 1, 0 MAFValue = scalar, F32, 16, "V", 1, 0 - AFRactual = scalar, F32, 20, "AFR", 1, 0.0 + AFRValue = scalar, F32, 20, "AFR", 1, 0.0 engineLoad = scalar, F32, 24, "%", 1, 0.0 ; Blend of MAP and TPS, depends on algorithm VBatt = scalar, F32, 28, "V", 1, 0.0 ; 10 bit TPS ADC value (from 0 to 1023 in 5v scale) @@ -231,6 +231,13 @@ fileVersion = { 20161225 } fuelPidCorrection = scalar, F32, 268, "ms", 1, 0 coilDutyCycle = scalar, F32, 272, "perc", 1, 0 +; todo: generate this section programatically + LM_PLAIN_MAF = {0}, + LM_ALPHA_N = {1}, + LM_MAP = {2}, + LM_SPEED_DENSITY = {3}, + LM_REAL_MAF = {4} + egoCorrection = { 100 } time = { timeNow } ; engineLoad = { fuleAlgorithm == 0 ? MAF : TPS } @@ -244,9 +251,9 @@ fileVersion = { 20161225 } columnLabel = "RPM", "Threshold" xAxis = 0, 8000, 10 yAxis = 0, 8, 10 - xBins = knockNoiseRpmBins, rpm + xBins = knockNoiseRpmBins, RPMValue yBins = knockNoise - gauge = rpm + gauge = RPMValue curve = mapAccelTaper, "Engine Load Acceleration Enrichment Taper" columnLabel = "Distance", "Multiplier" @@ -259,25 +266,25 @@ fileVersion = { 20161225 } columnLabel = "RPM", "Dwell" xAxis = 0, 8000, 10 yAxis = 0, 30, 10 - xBins = sparkDwellRpmBins, rpm + xBins = sparkDwellRpmBins, RPMValue yBins = sparkDwellValues - gauge = rpm + gauge = RPMValue curve = map_samplingAngleCurve, "MAP Sampling Start Angle" columnLabel = "RPM", "Angle" xAxis = 0, 8000, 10 yAxis = 0, 180, 10 - xBins = map_samplingAngleBins, rpm + xBins = map_samplingAngleBins, RPMValue yBins = map_samplingAngle - gauge = rpm + gauge = RPMValue curve = map_samplingWindowCurve, "MAP Sampling Duration" columnLabel = "RPM", "Window" xAxis = 0, 8000, 10 yAxis = 0, 180, 10 - xBins = map_samplingWindowBins, rpm + xBins = map_samplingWindowBins, RPMValue yBins = map_samplingWindow - gauge = rpm + gauge = RPMValue curve = injectorsDeadTime, "Injector Dead Time by VBatt" columnLabel = "Voltage", "Dead Time" @@ -361,16 +368,29 @@ fileVersion = { 20161225 } [TableEditor] ; table_id, map3d_id, "title", page - table = fuelTableTbl, fuelTableMap, "Fuel Table", 1 + + table = fuelTableMAFTbl, fuelTableMAFMap, "Fuel Table", 1 ; constant, variable - xBins = fuelRpmBins, rpm -#if FA_PLAIN_MAF + xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, MAFValue -#elif FA_TPS + zBins = fuelTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTableTPSTbl, fuelTableTPSMap, "Fuel Table", 1 + ; constant, variable + xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, TPSValue -#else + zBins = fuelTable +; gridHeight = 2.0 + gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. + upDownLabel = "(RICHER)", "(LEANER)" + + table = fuelTableELTbl, fuelTableELMap, "Fuel Table", 1 + ; constant, variable + xBins = fuelRpmBins, RPMValue yBins = fuelLoadBins, engineLoad -#endif zBins = fuelTable ; gridHeight = 2.0 gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees. @@ -383,28 +403,28 @@ fileVersion = { 20161225 } table = fsioTable1Tbl, fsioTable1Map, "FSIO Table #1", 1 - xBins = fsioTable1RpmBins, rpm + xBins = fsioTable1RpmBins, RPMValue yBins = fsioTable1LoadBins, engineLoad zBins = fsioTable1 table = fsioTable2Tbl, fsioTable2Map, "FSIO Table #2", 1 - xBins = fsioTable2RpmBins, rpm + xBins = fsioTable2RpmBins, RPMValue yBins = fsioTable2LoadBins, engineLoad zBins = fsioTable2 table = fsioTable3Tbl, fsioTable3Map, "FSIO Table #3", 1 - xBins = fsioTable3RpmBins, rpm + xBins = fsioTable3RpmBins, RPMValue yBins = fsioTable3LoadBins, engineLoad zBins = fsioTable3 table = fsioTable4Tbl, fsioTable4Map, "FSIO Table #4", 1 - xBins = fsioTable4RpmBins, rpm + xBins = fsioTable4RpmBins, RPMValue yBins = fsioTable4LoadBins, engineLoad zBins = fsioTable4 table = baroCorrTbl, baroCorrMap, "Baro Correction", 1 ; constant, variable - xBins = baroCorrRpmBins, rpm + xBins = baroCorrRpmBins, RPMValue yBins = baroCorrPressureBins, baroPressure zBins = baroCorrTable ; gridHeight = 2.0 @@ -413,7 +433,7 @@ fileVersion = { 20161225 } table = ignitionTableTbl, ignitionTableMap, "Ignition Table", 1 ; constant, variable - xBins = ignitionRpmBins, rpm + xBins = ignitionRpmBins, RPMValue #if FA_PLAIN_MAF yBins = ignitionLoadBins, MAFValue #elif FA_TPS @@ -429,7 +449,7 @@ fileVersion = { 20161225 } table = ignitionIatCorrTableTbl, ignitionIatCorrTableMap, "Ignition Intake Air Temp correction", 1 ; constant, variable - xBins = ignitionIatCorrRpmBins, rpm + xBins = ignitionIatCorrRpmBins, RPMValue yBins = ignitionIatCorrLoadBins, intake zBins = ignitionIatCorrTable ; gridHeight = 2.0 @@ -438,7 +458,7 @@ fileVersion = { 20161225 } table = veTableTbl, veTableMap, "VE Table", 1 ; constant, variable - xBins = veRpmBins, rpm + xBins = veRpmBins, RPMValue yBins = veLoadBins, MAPValue zBins = veTable ; gridHeight = 2.0 @@ -448,7 +468,7 @@ fileVersion = { 20161225 } table = injPhaseTableTbl, injPhaseTableMap, "Injection Phase", 1 ; constant, variable - xBins = injPhaseRpmBins, rpm + xBins = injPhaseRpmBins, RPMValue yBins = injPhaseLoadBins, engineLoad zBins = injectionPhase ; gridHeight = 2.0 @@ -457,7 +477,7 @@ fileVersion = { 20161225 } table = afrTableTbl, afrTableMap, "Target AFR Table", 1 ; constant, variable - xBins = afrRpmBins, rpm + xBins = afrRpmBins, RPMValue yBins = afrLoadBins, MAPValue zBins = afrTable ; gridHeight = 2.0 @@ -513,7 +533,7 @@ gaugeCategory = Debug debugIntField3Gauge = debugIntField3, "debug i3", "%", 0, 100, 0, 0, 100, 100, 0, 0 gaugeCategory = Sensors - tachometer = rpm, "Engine Speed", "RPM", 0, 15000, 200, 500, 6000, 6000, 0, 0 + RPMGauge = RPMValue, "Engine Speed", "RPM", 0, 15000, 200, 500, 6000, 6000, 0, 0 #if CELSIUS CLTGauge = coolant, "Coolant Temp", "°C", -40, 140, -15, 1, 95, 110, 1, 1 #else @@ -525,7 +545,7 @@ gaugeCategory = Sensors IATGauge = intake, "Intake Air Temp", "°F", -40, 285, 5, 35, 205, 230, 1, 1 #endif TPSGauge = TPSValue, "Throttle Position", "%", 0, 100, 0, 0, 100, 100, 2, 2 - afr1Gauge = AFRactual, "Air:Fuel Ratio 1", "", 10, 19.4, 12, 13, 15, 16, 2, 2 + afr1Gauge = AFRValue, "Air:Fuel Ratio 1", "", 10, 19.4, 12, 13, 15, 16, 2, 2 MAFGauge = MAFValue, "Mass Air Flow", "v", 0, 5, 0, 1, 3, 4, 1, 1 VBattGauge = VBatt, "Battery Voltage", "V", 8, 21, 9, 10, 17, 19, 1, 1 MAPGauge = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 @@ -569,7 +589,7 @@ gaugeCategory = Fuel Data ; 5 6 7 8 ; currently a minimum of 6 gauges must be on the dash, this appears to be an old not needed limitation. next release 1 will work. - gauge1 = tachometer + gauge1 = RPMGauge gauge2 = CLTGauge gauge3 = TPSGauge gauge4 = MAFGauge @@ -614,14 +634,14 @@ gaugeCategory = Fuel Data [Datalog] ; Channel Label Type Format entry = time, "Time", float, "%.3f" - entry = rpm, "RPM", int, "%d" + entry = RPMValue, "RPM", int, "%d" entry = firmwareVersion, @@GAUGE_NAME_VERSION@@, int, "%d" entry = coolant, "CLT", float, "%.2f" entry = intake, "IAT", float, "%.2f" entry = TPSValue, "TPS", float, "%.2f" entry = MAFValue, "MAF", float, "%.2f" entry = MAPValue, "MAP", float, "%.1f" - entry = AFRactual, @@GAUGE_NAME_AFR@@, float, "%.2f" + entry = AFRValue, @@GAUGE_NAME_AFR@@, float, "%.2f" entry = VBatt, @@GAUGE_NAME_VBAT@@, float, "%.2f" entry = engineLoad, @@GAUGE_NAME_ENGINE_LOAD@@, float, "%.1f" entry = ignitionAdvance, @@GAUGE_NAME_TIMING_ADVANCE@@, float, "%.2f" @@ -763,9 +783,9 @@ gaugeCategory = Fuel Data subMenu = cltIdleCurve, "Warmup IAC position manual Multiplier" subMenu = cltTimingCorrCurve, "Warmup timing correction" subMenu = std_separator - subMenu = fuelTableTbl, "Fuel Table", 0, {fuelAlgorithm != 3} - subMenu = veTableDialog, "VE Table", 0, {fuelAlgorithm == 3} - subMenu = afrTableTbl, "Target AFR Table", 0, {fuelAlgorithm == 3} + subMenu = fuelTableDialog, "Fuel Table", 0, {fuelAlgorithm != LM_SPEED_DENSITY} + subMenu = veTableDialog, "VE Table", 0, {fuelAlgorithm == LM_SPEED_DENSITY} + subMenu = afrTableTbl, "Target AFR Table", 0, {fuelAlgorithm == LM_SPEED_DENSITY} subMenu = iatFuelCorrCurve, "Intake air temperature fuel Multiplier" subMenu = injPhaseTableTbl, "Injection Phase" subMenu = mapAccelTaper, "Engine Load Acceleration Enrichment Taper" @@ -776,7 +796,7 @@ gaugeCategory = Fuel Data subMenu = std_separator subMenu = ignitionTableTbl, "Ignition Table" subMenu = ignitionIatCorrTableTbl, "Ignition Intake Air Temp correction" - subMenu = baroCorrTbl, "Baro Correction", 0, {fuelAlgorithm == 3} + subMenu = baroCorrTbl, "Baro Correction", 0, {fuelAlgorithm == LM_SPEED_DENSITY} subMenu = std_separator subMenu = std_realtime, "&Realtime Display", 0 subMenu = tChargeSettings, "tCharge Settings" @@ -784,7 +804,7 @@ gaugeCategory = Fuel Data menu = "3D Map Tuning" ; subMenu = std_realtime, "Realtime Display" ; subMenu = std_warmup, "Warmup Wizard" - subMenu = fuelTableMap, "Fuel Table", 0, {fuelAlgorithm != 3} + subMenu = fuelTableELMap, "Fuel Table", 0, {fuelAlgorithm != 3} subMenu = veTableDialog3D, "VE Table", 0, {fuelAlgorithm == 3} subMenu = afrTableMap, "Target AFR Table", 0, {fuelAlgorithm == 3} subMenu = injPhaseTableMap, "Injection Phase" @@ -867,6 +887,28 @@ cmd_call_from_pit = "w\x00\x20\x34\x56" [UserDefined] + dialog = fuelTableBottomDialog, "", card + panel = fuelTableMAFTbl, Center, {fuelAlgorithm==LM_PLAIN_MAF} + panel = fuelTableTPSTbl, Center, {fuelAlgorithm==LM_ALPHA_N} + panel = fuelTableELTbl, Center + + dialog = fuelTableRight, "", yAxis + topicHelp = "http://rusefi.com/fuel" + displayOnlyField = "Fuel Algorithm", fuelAlgorithm + panel = fuelTableBottomDialog, Center + liveGraph = fuelLive, "Fuel", South + graphLine = AFRValue + graphLine = RPMValue + + dialog = fuelTableGaugesPanel, yAxis + gauge = TPSGauge + gauge = MAFGauge + gauge = MAPGauge + + dialog = fuelTableDialog, "Fuel Table", xAxis + panel = fuelTableGaugesPanel + panel = fuelTableRight + dialog = tChargeSettings, "tChart Settings" field = "MinRpm MinTps", tChargeMinRpmMinTps field = "MinRpm MaxTps", tChargeMinRpmMaxTps