Fuel ts reorder (#1699)

* reorder

* redo injector stuff

* reorder & deadtime limits

* make 2d table bounds reasonable

* more

* only allow bench if not running

Co-authored-by: Matthew Kennedy <makenne@microsoft.com>
This commit is contained in:
Matthew Kennedy 2020-08-18 10:51:20 -07:00 committed by GitHub
parent 8be90bbd0c
commit 1840afdd4a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 67 additions and 63 deletions

View File

@ -290,11 +290,13 @@ static void handleCommandX14(uint16_t index) {
void executeTSCommand(uint16_t subsystem, uint16_t index) {
scheduleMsg(logger, "IO test subsystem=%d index=%d", subsystem, index);
bool running = !ENGINE(rpmCalculator).isStopped();
if (subsystem == 0x11) {
clearWarnings();
} else if (subsystem == 0x12) {
} else if (subsystem == 0x12 && !running) {
doRunSpark(index, "300", "4", "400", "3");
} else if (subsystem == 0x13) {
} else if (subsystem == 0x13 && !running) {
doRunFuel(index, "300", "4", "400", "3");
} else if (subsystem == 0x14) {
handleCommandX14(index);

View File

@ -526,8 +526,8 @@ enable2ndByteCanID = false
curve = dwellCorrection, "Dwell time RPM based"
columnLabel = "RPM", "Dwell"
xAxis = 0, 8000, 10
yAxis = 0, 30, 10
xAxis = 0, 8000, 9
yAxis = 0, 8, 9
xBins = sparkDwellRpmBins, RPMValue
yBins = sparkDwellValues
gauge = RPMGauge
@ -548,13 +548,12 @@ enable2ndByteCanID = false
yBins = map_samplingWindow
gauge = MAPGauge
curve = injectorsDeadTime, "Injector Dead Time by VBatt"
curve = injectorsDeadTime, "Injector dead time"
columnLabel = "Voltage", "Dead Time"
xAxis = 8, 21, 10
yAxis = -3, 3, 10
xAxis = 8, 16, 9
yAxis = 0, 2, 5
xBins = injector_battLagCorrBins, VBatt
yBins = injector_battLagCorr
gauge = VBattGauge
curve = mafDecodingCurve, "MAF sensor"
columnLabel = "Voltage", "kg/hour"
@ -566,7 +565,7 @@ enable2ndByteCanID = false
curve = iatFuelCorrCurve, "Intake air temperature fuel Multiplier"
columnLabel = "Coolant", "Multiplier"
xAxis = -40, 120, 10
xAxis = -40, 120, 9
yAxis = 0, 2, 11
xBins = iatFuelCorrBins, intake
yBins = iatFuelCorr
@ -574,15 +573,15 @@ enable2ndByteCanID = false
curve = cltTimingCorrCurve, "Warmup timing correction"
columnLabel = "Coolant", "Extra"
xAxis = -40, 120, 10
yAxis = 0, 50, 10
xAxis = -40, 120, 9
yAxis = 0, 20, 9
xBins = cltTimingBins, coolant
yBins = cltTimingExtra
gauge = CLTGauge
curve = cltFuelCorrCurve, "Warmup fuel manual Multiplier"
columnLabel = "Coolant", "Multiplier"
xAxis = -40, 100, 10
xAxis = -40, 120, 9
yAxis = 0, 3, 10
xBins = cltFuelCorrBins, coolant
yBins = cltFuelCorr
@ -590,7 +589,7 @@ enable2ndByteCanID = false
curve = crankingCltCurve, "Cranking Coolant Temperature Multiplier"
columnLabel = "Coolant", "Multiplier"
xAxis = -40, 100, 10
xAxis = -40, 120, 9
yAxis = 0, 3, 10
xBins = crankingFuelBins, coolant
yBins = crankingFuelCoef
@ -606,7 +605,7 @@ enable2ndByteCanID = false
curve = crankingTpsCurve, "Cranking TPS Multiplier"
columnLabel = "TPS", "Multiplier"
xAxis = 0, 100, 10
xAxis = 0, 100, 11
yAxis = 0, 3, 10
xBins = crankingTpsBins, TPSValue
yBins = crankingTpsCoef
@ -614,8 +613,8 @@ enable2ndByteCanID = false
curve = crankingDurationCurve, "Cranking Duration Multiplier"
columnLabel = "Engine Cycle", "Multiplier"
xAxis = 0, 1000, 10
yAxis = 0, 3, 10
xAxis = 0, 50, 11
yAxis = 0, 5, 6
xBins = crankingCycleBins
yBins = crankingCycleCoef
@ -630,7 +629,7 @@ enable2ndByteCanID = false
curve = iacCoastingCurve, "Coasting IAC Position for Auto-Idle"
columnLabel = "Coolant", "Multiplier"
xAxis = -40, 120, 10
xAxis = -40, 120, 9
yAxis = 0, 100, 10
xBins = iacCoastingBins, coolant
yBins = iacCoasting
@ -638,7 +637,7 @@ enable2ndByteCanID = false
curve = cltCrankingCurve, "Cranking Idle Air multiplier"
columnLabel = "Coolant", "Multiplier"
xAxis = -40, 120, 10
xAxis = -40, 120, 9
yAxis = 0, 3, 10
xBins = cltCrankingCorrBins, coolant
yBins = cltCrankingCorr
@ -646,7 +645,7 @@ enable2ndByteCanID = false
curve = cltIdleRPMCurve, "Idle Target RPM"
columnLabel = "Coolant", "RPM"
xAxis = -40, 120, 10
xAxis = -40, 120, 9
yAxis = 0, 8000, 10
xBins = cltIdleRpmBins, coolant
yBins = cltIdleRpm, RPMValue
@ -1195,30 +1194,30 @@ menuDialog = main
menu = "Fuel"
# basic
subMenu = injectionSettings, "Injection settings"
subMenu = injectionDeadTime, "Injector dead time", 0, {isInjectionEnabled == 1}
subMenu = injectorConfig, "Injection configuration", 0, {isInjectionEnabled == 1}
subMenu = injectionSettings, "Injection hardware"
subMenu = std_separator
# Targets & closed loop
# Air mass model
subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1}
subMenu = tChargeSettings, "Charge temperature estimation", 0, {isInjectionEnabled == 1}
subMenu = baroCorrTbl, "Barometric pressure correction", 0, {isInjectionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY}
subMenu = std_separator
# Fuel model
subMenu = afrTableTbl, "Target AFR", 0, {isInjectionEnabled == 1}
subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1}
subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1}
subMenu = fuelClosedLoopDialog, "Closed loop fuel correction", 0, {isInjectionEnabled == 1}
subMenu = coastingFuelCutControl, "Deceleration fuel cutoff (DFCO)", 0, {isInjectionEnabled == 1}
subMenu = std_separator
# Fuel table/VE
subMenu = veTableDialog, "VE", 0, {isInjectionEnabled == 1}
# Injector model
subMenu = injPhaseTableTbl, "Injection phase", 0, {isInjectionEnabled == 1}
subMenu = std_separator
# Corrections
subMenu = cltFuelCorrCurve, "CLT multiplier", 0, {isInjectionEnabled == 1}
subMenu = iatFuelCorrCurve, "IAT multiplier", 0, {isInjectionEnabled == 1}
subMenu = baroCorrTbl, "Baro multiplier", 0, {isInjectionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY}
subMenu = tChargeSettings, "tCharge settings", 0, {isInjectionEnabled == 1}
subMenu = std_separator
# Accel enrichment
subMenu = AccelEnrich, "Accel/decel enrichment/enleanment", 0, {isInjectionEnabled == 1}
subMenu = AccelEnrich, "Acceleration enrichment", 0, {isInjectionEnabled == 1}
subMenu = tpsTpsAccelTbl, "TPS/TPS acceleration extra fuel", 0, {isInjectionEnabled == 1}
subMenu = mapAccelTaper, "Engine load AE taper", 0, {isInjectionEnabled == 1}
@ -1425,10 +1424,6 @@ cmd_test_inj9 = "@@TS_IO_TEST_COMMAND_char@@\x00\x13\x00\x09"
cmd_test_inj10 = "@@TS_IO_TEST_COMMAND_char@@\x00\x13\x00\x0a"
cmd_test_inj11 = "@@TS_IO_TEST_COMMAND_char@@\x00\x13\x00\x0b"
cmd_test_inj12 = "@@TS_IO_TEST_COMMAND_char@@\x00\x13\x00\x0c"
cmd_test_inj13 = "@@TS_IO_TEST_COMMAND_char@@\x00\x13\x00\x0d"
cmd_test_inj14 = "@@TS_IO_TEST_COMMAND_char@@\x00\x13\x00\x0e"
cmd_test_inj15 = "@@TS_IO_TEST_COMMAND_char@@\x00\x13\x00\x0f"
cmd_test_inj16 = "@@TS_IO_TEST_COMMAND_char@@\x00\x13\x00\x10"
cmd_test_fuel_pump = "@@TS_IO_TEST_COMMAND_char@@\x00\x14\x00\x01"
cmd_calibrate_tps_1_closed = "@@TS_IO_TEST_COMMAND_char@@\x00\x14\x00\x02"
@ -1523,8 +1518,6 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
field = "#Batch injection with individual wiring"
field = "Two wire batch emulation", twoWireBatchInjection, {isInjectionEnabled == 1 && injectionMode == 2}
field = "Use TPS instead of Load for VE table", useTPSBasedVeTable, {isInjectionEnabled == 1 && fuelAlgorithm == LM_SPEED_DENSITY}
field = "#Enabled for TPS-Based 'VE Autotune Mode' in Project Settings"
field = "Use TPS instead of Load for VE table", useTPSBasedVeTable, {0}
dialog = ignitionOutputs, "Ignition Outputs"
field = "Ignition Pin Mode", ignitionPinMode, {isIgnitionEnabled == 1}
@ -1612,10 +1605,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
field = "Injector Flow", injector_flow, {isInjectionEnabled == 1}
dialog = injectorOutputSettings, "Injector Outputs", yAxis
field = "!ECU reboot needed to apply these settings"
field = "injection Pin Mode", injectionPinMode, {isInjectionEnabled == 1}
field = "With batched injection without 'Two wire batch emulation'"
field = " fill only first count / 2 values"
field = "Use only first half of pins for batch mode"
field = "Injection Pin 1", injectionPins1, {isInjectionEnabled == 1}
field = "Injection Pin 2", injectionPins2, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 1}
field = "Injection Pin 3", injectionPins3, {isInjectionEnabled == 1 && injectionMode != 3 && cylindersCount > 2}
@ -1627,19 +1617,41 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
field = "Injection Pin 9 ", injectionPins9, {isInjectionEnabled == 1 && cylindersCount > 8}
field = "Injection Pin 10 ", injectionPins10, {isInjectionEnabled == 1 && cylindersCount > 9}
field = "Injection Pin 11 ", injectionPins11, {isInjectionEnabled == 1 && cylindersCount > 10}
field = "Injection Pin 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11}
dialog = injectionBasic, ""
field = "Injection Pin 12 ", injectionPins12, {isInjectionEnabled == 1 && cylindersCount > 11}
field = ""
field = "injection Pin Mode", injectionPinMode, {isInjectionEnabled == 1}
dialog = testInjectors, "Injector Test"
commandButton = "Injector #1", cmd_test_inj1
commandButton = "Injector #2", cmd_test_inj2
commandButton = "Injector #3", cmd_test_inj3
commandButton = "Injector #4", cmd_test_inj4
commandButton = "Injector #5", cmd_test_inj5
commandButton = "Injector #6", cmd_test_inj6
commandButton = "Injector #7", cmd_test_inj7
commandButton = "Injector #8", cmd_test_inj8
commandButton = "Injector #9", cmd_test_inj9
commandButton = "Injector #10", cmd_test_inj10
commandButton = "Injector #11", cmd_test_inj11
commandButton = "Injector #12", cmd_test_inj12
dialog = injectionSettingsEast, "", yAxis
panel = testInjectors
field = ""
dialog = injectionSettingsWest, "", yAxis
panel = injectorOutputSettings
field = ""
dialog = injectionSettings, "", xAxis
panel = injectionSettingsWest
panel = injectionSettingsEast
dialog = injectorConfig, "", yAxis
topicHelp = "fuelHelp"
panel = baseInjection
panel = injChars
dialog = injectionSettings, "", xAxis
panel = injectionBasic
panel = injectorOutputSettings
dialog = injectionDeadTime, "", yAxis
panel = injectorsDeadTime, East
panel = injectorsDeadTime
dialog = ignitionCylExtra, "Ignition Cylinder Extra Timing"
field = "Extra cyl #1", timing_offset_cylinder1
@ -2881,17 +2893,7 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
commandButton = "Spark #6", cmd_test_spk6
commandButton = "Spark #7", cmd_test_spk7
commandButton = "Spark #8", cmd_test_spk8
dialog = testInjectors, "Fuel"
commandButton = "Injector #1", cmd_test_inj1
commandButton = "Injector #2", cmd_test_inj2
commandButton = "Injector #3", cmd_test_inj3
commandButton = "Injector #4", cmd_test_inj4
commandButton = "Injector #5", cmd_test_inj5
commandButton = "Injector #6", cmd_test_inj6
commandButton = "Injector #7", cmd_test_inj7
commandButton = "Injector #8", cmd_test_inj8
dialog = testMisc, "Misc"
; commandButton = "Come To Pit", cmd_call_from_pit
commandButton = "Fuel Pump", cmd_test_fuel_pump