From d2eb37c2f6d5d5c41e75d43eb864d6e05863a0aa Mon Sep 17 00:00:00 2001 From: rusEfi Date: Sun, 3 Jan 2016 01:01:37 -0500 Subject: [PATCH] auto-sync --- .../binary/tunerstudio_configuration.h | 10 ++-- firmware/console/status_loop.cpp | 13 ++--- firmware/controllers/algo/engine.h | 15 +++--- firmware/rusefi.cpp | 2 +- firmware/tunerstudio/rusefi.ini | 51 ++++++++++--------- .../models/src/com/rusefi/core/Sensor.java | 28 +++++----- .../src/com/rusefi/core/SensorCategory.java | 1 + java_console/ui/src/com/rusefi/Launcher.java | 2 +- 8 files changed, 69 insertions(+), 53 deletions(-) diff --git a/firmware/console/binary/tunerstudio_configuration.h b/firmware/console/binary/tunerstudio_configuration.h index 267859b336..abf37c78db 100644 --- a/firmware/console/binary/tunerstudio_configuration.h +++ b/firmware/console/binary/tunerstudio_configuration.h @@ -86,9 +86,13 @@ typedef struct { float rpmAcceleration; float massAirFlowValue; float veValue; // current volumetric efficiency, offset 112 - float deltaTps; - int triggerErrorsCounter; - float currentEngineLoadAccelDelta; + /** + * TPS value delta within specified number of cycles + * See tpsAccelFuel + */ + float deltaTps; // offset 116 + int triggerErrorsCounter; // offset 120 + float engineLoadAccelDelta; // offset 124 float tpsAccelFuel; // offset 128 float baroCorrection; float pedalPosition; diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index c342dae2d1..1dfa2dfacb 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -593,25 +593,26 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_ tsOutputChannels->manifold_air_pressure = getMap(); tsOutputChannels->engineLoad = engineLoad; tsOutputChannels->rpmAcceleration = engine->rpmCalculator.getRpmAcceleration(); - tsOutputChannels->currentEngineLoadAccelDelta = engine->engineLoadAccelEnrichment.getEngineLoadEnrichment(PASS_ENGINE_PARAMETER_F) * 100 / getMap(); - tsOutputChannels->tpsAccelFuel = engine->engineState.tpsAccelEnrich; tsOutputChannels->deltaTps = engine->tpsAccelEnrichment.getDelta(); tsOutputChannels->triggerErrorsCounter = engine->triggerCentral.triggerState.totalTriggerErrorCounter; tsOutputChannels->baroCorrection = engine->engineState.baroCorrection; tsOutputChannels->pedalPosition = hasPedalPositionSensor(PASS_ENGINE_PARAMETER_F) ? getPedalPosition(PASS_ENGINE_PARAMETER_F) : 0; tsOutputChannels->knockCount = engine->knockCount; tsOutputChannels->knockLevel = engine->knockVolts; - tsOutputChannels->injectorDutyCycle = getInjectorDutyCycle(rpm PASS_ENGINE_PARAMETER); tsOutputChannels->fuelTankGauge = engine->engineState.fuelTankGauge; + tsOutputChannels->hasFatalError = hasFirmwareError(); tsOutputChannels->totalTriggerErrorCounter = engine->triggerCentral.triggerState.totalTriggerErrorCounter; + + tsOutputChannels->injectorDutyCycle = getInjectorDutyCycle(rpm PASS_ENGINE_PARAMETER); + tsOutputChannels->runningFuel = ENGINE(engineState.runningFuel); tsOutputChannels->wallFuelAmount = wallFuel.getWallFuel(0); + tsOutputChannels->wallFuelCorrection = engine->wallFuelCorrection; + tsOutputChannels->engineLoadAccelDelta = engine->engineLoadAccelEnrichment.getEngineLoadEnrichment(PASS_ENGINE_PARAMETER_F) * 100 / getMap(); + tsOutputChannels->tpsAccelFuel = engine->engineState.tpsAccelEnrich; tsOutputChannels->iatCorrection = ENGINE(engineState.iatFuelCorrection); tsOutputChannels->cltCorrection = ENGINE(engineState.cltFuelCorrection); - tsOutputChannels->runningFuel = ENGINE(engineState.runningFuel); - - tsOutputChannels->wallFuelCorrection = engine->wallFuelCorrection; tsOutputChannels->checkEngine = hasErrorCodes(); #if EFI_PROD_CODE || defined(__DOXYGEN__) diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index 84194e7b66..a5c6b8bb5f 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -137,18 +137,18 @@ public: /** * pre-calculated value from simple fuel lookup */ - float baseTableFuel; + floatms_t baseTableFuel; /** - * fuel regardless of fuel logic mode + * fuel injection duration regardless of fuel logic mode */ - float baseFuel; + floatms_t baseFuel; /** - * Fuel with CLT, IAT and TPS acceleration corrections. + * Fuel with CLT, IAT and TPS acceleration corrections, as squirt duration. */ - float runningFuel; + floatms_t runningFuel; - float tpsAccelEnrich; + floatms_t tpsAccelEnrich; angle_t injectionOffset; }; @@ -218,6 +218,9 @@ public: * Fuel injection duration for current engine cycle, without wall wetting */ floatms_t fuelMs; + /** + * fuel injection time correction to account for wall wetting effect, for current cycle + */ floatms_t wallFuelCorrection; /** diff --git a/firmware/rusefi.cpp b/firmware/rusefi.cpp index 17f3cef309..f6a97f23f9 100644 --- a/firmware/rusefi.cpp +++ b/firmware/rusefi.cpp @@ -275,5 +275,5 @@ int getRusEfiVersion(void) { return 123; // this is here to make the compiler happy about the unused array if (UNUSED_CCM_SIZE[0] * 0 != 0) return 3211; // this is here to make the compiler happy about the unused array - return 20160101; + return 20160102; } diff --git a/firmware/tunerstudio/rusefi.ini b/firmware/tunerstudio/rusefi.ini index 9c8b1ec253..c9467a07dd 100644 --- a/firmware/tunerstudio/rusefi.ini +++ b/firmware/tunerstudio/rusefi.ini @@ -687,7 +687,7 @@ fileVersion = { 20151201 } veValue = scalar, F32, 112, "ratio", 1, 0 deltaTps = scalar, F32, 116, "ratio", 1, 0 triggerErrorsCounter = scalar, U32,120, "counter", 1, 0 - currentEngineLoadAccelDelta = scalar,F32, 124, "%", 1, 0 + engineLoadAccelDelta = scalar,F32, 124, "%", 1, 0 tpsAccelFuel = scalar, F32, 128, "ms", 1, 0 baroCorrection = scalar, F32, 132, "%", 1, 0 pedalPosition = scalar, F32, 136, "%", 1, 0 @@ -697,7 +697,7 @@ fileVersion = { 20151201 } ; knockLevel 152 ; totalTriggerErrorCounter 156 wallFuelAmount = scalar, F32, 160, "ms", 1, 0 - tempFuelCorrection = scalar, F32, 164, "%", 1, 0 + iatCorrection = scalar, F32, 164, "%", 1, 0 wallFuelCorrection = scalar, F32, 168, "ms", 1, 0 curIdlePosition = scalar, F32, 172, "percent", 1, 0 egoCorrection = { 100 } @@ -896,9 +896,6 @@ fileVersion = { 20151201 } tpsADCGauge = tpsADC, "tps ADC", "ADC", 0, 1024, 0, 0, 0, 0, 0, 0 atmPresCGauge = baroPressure, "Baro", "kPa", 0, 1024, 0, 0, 0, 0, 0, 0 mapGaugeValue = MAPValue, "MAP", "kPa", 0, 300, 10, 10, 200, 200, 0, 0 - pulseWidthGauge = pulseWidth, "final fuel squirt, per injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 - baseFuelGauge = baseFuel, "Base fuel duration, before corr", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 - crankingFuelGauge = crankingFuel, "crank Width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 ignadvGauge = ign_adv, "Ignition Advance 1", "degrees", -100, 100, -999, -999, 999, 999, 1, 1 ; warmupEnrichGauge = warmupEnrich, "Warmup Enrichment", "%", 100, 150, -1, -1, 101, 105, 0, 0 ; accelEnrichGauge = accDecEnrich, "Accel Enrich", "%", 50, 150, -1, -1, 999, 999, 0, 0 @@ -912,22 +909,27 @@ fileVersion = { 20151201 } egt7Gauge = egt7, "EGT#7", "C", 0, 2000 egt8Gauge = egt8, "EGT#8", "C", 0, 2000 vssGauge = vehicleSpeedKph, "Speed", "kmh", 0, 200, 0, 1, 3, 4, 1, 1 - rpmAccelerationGa = rpmAcceleration, "rpm d", "dRpm", 0, 3, 0, 1, 3, 4, 1, 1 + rpmAccelerationGa = rpmAcceleration, "rpm delta", "dRpm", 0, 3, 0, 1, 3, 4, 1, 1 massAirFlowValueGa = massAirFlowValue,"Air Flow", "kg/hr", 0, 50, -999, -999, 999, 999, 1, 1 veValueGauge = veValue, "%", "", 0, 120, 10, 10, 100, 100, 1, 1 deltaTpsGauge = deltaTps, "%", "", 0, 120, 10, 10, 100, 100, 1, 1 -; minDeltaGauge = minDelta, "%", "", 0, 120, 10, 10, 100, 100, 1, 1 - currentEngineLoadAccelDeltaGauge = currentEngineLoadAccelDelta,"EL enrich","%", 0, 120, 10, 10, 100, 100, 1, 1 - tpsAccelFuelGauge = tpsAccelFuel,"TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 baroCorrectionGauge = baroCorrection,"BaroCorr", "%", 0, 120, 10, 10, 100, 100, 1, 1 pedalPositionGauge = pedalPosition,"Pedal Position", "%", 0, 120, 10, 10, 100, 100, 1, 1 - injectorDutyCycleGauge=injectorDutyCycle, "injectorDutyCycle","%", 0, 120, 10, 10, 100, 100, 1, 1 knockCountGauge = knockCount,"Knock count", "count", 0, 120, 10, 10, 100, 100, 1, 1 triggerErrorsCounterGauge = triggerErrorsCounter, "trg err", "count", 0, 15000, 0, 0, 6000, 6000, 0, 0 - wallFuelAmountGauge = wallFuelAmount, "wall fuel", "ms", 0, 100, 0, 0, 100, 100, 0, 0 - tempFuelCorrectionGauge = tempFuelCorrection, "temp fuel corr", "mult", 0, 10, 0, 0, 10, 10, 0, 0 - wallFuelCorrectionGauge = wallFuelCorrection, "extra fuel", "ms", 0, 100, 0, 0, 100, 100, 0, 0 + + pulseWidthGauge = pulseWidth, "fuel final squirt, per injection", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + baseFuelGauge = baseFuel, "fuel: base duration, before corr", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + crankingFuelGauge = crankingFuel, "fuel: crank Width", "mSec", 0, 25.5, 1.0, 1.2, 20, 25, 3, 1 + iatCorrectionGauge = iatCorrection, "fuel: IAT corr", "mult", 0, 10, 0, 0, 10, 10, 0, 0 + injectorDutyCycleGauge=injectorDutyCycle, "fuel: injectorDutyCycle","%", 0, 120, 10, 10, 100, 100, 1, 1 + + engineLoadAccelDeltaGauge = engineLoadAccelDelta,"fuel: load enrich","%", 0, 120, 10, 10, 100, 100, 1, 1 + tpsAccelFuelGauge = tpsAccelFuel,"fuel: TPS enrich", "ms", 0, 120, 10, 10, 100, 100, 1, 1 + wallFuelAmountGauge = wallFuelAmount, "fuel: wall amount", "ms", 0, 100, 0, 0, 100, 100, 0, 0 + wallFuelCorrectionGauge = wallFuelCorrection, "fuel: wall correction extra", "ms", 0, 100, 0, 0, 100, 100, 0, 0 + curIdlePositionGauge = curIdlePosition, "idle position", "%", 0, 100, 0, 0, 100, 100, 0, 0 [FrontPage] @@ -989,21 +991,24 @@ fileVersion = { 20151201 } entry = AFRactual, "AFR", float, "%.2f" entry = VBatt, "vBatt", float, "%.2f" entry = engineLoad, "Load", float, "%d" - entry = pulseWidth, "injPulse", float, "%.3f" - entry = baseFuel, "baseFuel", float, "%.2f" entry = ign_adv, "ignAdv", float, "%.2f" entry = vehicleSpeedKph, "speed", float, "%.2f" entry = rpmAcceleration, "dRPM", float, "%.3f" - entry = massAirFlowValue,"Mass", float, "%.3f" - entry = veValue, "ratio", float, "%.3f" - entry = currentEngineLoadAccelDelta, "accel",float, "%.3f" - entry = tpsAccelFuel, "tpsAccel", float, "%.3f" - entry = baroCorrection "baroCorrection",float,"%.3f" + entry = massAirFlowValue,"airMass", float, "%.3f" entry = pedalPosition, "pedal", float, "%.3f" -; entry entry = triggerErrorsCounter, "trg err",int, "%d" - entry = tempFuelCorrection, "temp fuel corr", float, "%.3f" - entry = wallFuelCorrection, "wall fuel corr ms", float, "%.3f" + + entry = pulseWidth, "injPulse", float, "%.3f" + entry = baseFuel, "fuel: base", float, "%.2f" + entry = veValue, "fuel: VE", float, "%.3f" + entry = engineLoadAccelDelta, "fuel: EL accel",float, "%.3f" + entry = tpsAccelFuel, "fuel: tpsAccel", float, "%.3f" + entry = iatCorrection, "fuel: IAT corr", float, "%.3f" + entry = wallFuelCorrection, "fuel: wall corr ms", float, "%.3f" + entry = wallFuelAmount, "fuel: wall amout", float, "%.3f" + + entry = baroCorrection "baroCorrection",float,"%.3f" + ; tpsADC = U16, "ADC", diff --git a/java_console/models/src/com/rusefi/core/Sensor.java b/java_console/models/src/com/rusefi/core/Sensor.java index 85b3303452..461d560909 100644 --- a/java_console/models/src/com/rusefi/core/Sensor.java +++ b/java_console/models/src/com/rusefi/core/Sensor.java @@ -65,14 +65,14 @@ public enum Sensor { PERIOD0("Period", SensorCategory.SNIFFING, "dg", 0, 400), DUTY0("Duty0", SensorCategory.SNIFFING, "%", 0, 100, BackgroundColor.RED), DUTY1("Duty1", SensorCategory.SNIFFING, "%", 0, 100, BackgroundColor.RED), - FUEL("Fuel", SensorCategory.OPERATIONS, "ms", 0, 30), - FUEL_IAT("F IAT", SensorCategory.OPERATIONS, "", 0, 10), - FUEL_CLT("F CLT", SensorCategory.OPERATIONS, "", 0, 10), - FUEL_LAG("F Lag", SensorCategory.OPERATIONS, "", 0, 30), + FUEL("Fuel", SensorCategory.FUEL, "ms", 0, 30), + FUEL_IAT("F IAT", SensorCategory.FUEL, "", 0, 10), + FUEL_CLT("F CLT", SensorCategory.FUEL, "", 0, 10), + FUEL_LAG("F Lag", SensorCategory.FUEL, "", 0, 30), IDLE_SWITCH("idle switch", SensorCategory.OTHERS), - DEFAULT_FUEL("map fuel", SensorCategory.OPERATIONS, "ms", 0, 40), + DEFAULT_FUEL("map fuel", SensorCategory.FUEL, "ms", 0, 40), CHARTSIZE("CHARTSIZE", SensorCategory.OTHERS), CHART_STATUS("CHART_STATUS", SensorCategory.OTHERS), @@ -85,16 +85,18 @@ public enum Sensor { INJECTOR_3_DWELL("inj #3", SensorCategory.SNIFFING), INJECTOR_4_DWELL("inj #4", SensorCategory.SNIFFING), - FUEL_BASE(SensorCategory.OPERATIONS, FieldType.FLOAT, 48, BackgroundColor.MUD, 0, 30, "ms"), - T_CHARGE(SensorCategory.OPERATIONS, FieldType.FLOAT, 52, BackgroundColor.MUD, 30, 140), + FUEL_BASE(SensorCategory.FUEL, FieldType.FLOAT, 48, BackgroundColor.MUD, 0, 30, "ms"), + T_CHARGE(SensorCategory.FUEL, FieldType.FLOAT, 52, BackgroundColor.MUD, 30, 140), DWELL(SensorCategory.OPERATIONS, FieldType.FLOAT, 60, BackgroundColor.MUD, 1, 10), - CURRENT_VE(SensorCategory.OPERATIONS, FieldType.FLOAT, 112, BackgroundColor.MUD), - MAP_ACCEL_DELTA(SensorCategory.OPERATIONS, FieldType.FLOAT, 124, BackgroundColor.MUD), - TPS_ACCEL_FUEL(SensorCategory.OPERATIONS, FieldType.FLOAT, 128, BackgroundColor.MUD), + CURRENT_VE(SensorCategory.FUEL, FieldType.FLOAT, 112, BackgroundColor.MUD), + + TPS_DELTA(SensorCategory.FUEL, FieldType.FLOAT, 116, BackgroundColor.MUD), + ENGINE_LOAD_ACCEL_DELTA(SensorCategory.FUEL, FieldType.FLOAT, 124, BackgroundColor.MUD), + TPS_ACCEL_FUEL(SensorCategory.FUEL, FieldType.FLOAT, 128, BackgroundColor.MUD), Injector_duty(SensorCategory.OPERATIONS, FieldType.FLOAT, 140, BackgroundColor.MUD), - WALL_FUEL(SensorCategory.OPERATIONS, FieldType.FLOAT, 160, BackgroundColor.MUD), - iatCorrection(SensorCategory.OPERATIONS, FieldType.FLOAT, 164, BackgroundColor.MUD, 0, 5), - wallFuelCorrection(SensorCategory.OPERATIONS, FieldType.FLOAT, 168, BackgroundColor.MUD), + WALL_FUEL_AMOUNT(SensorCategory.FUEL, FieldType.FLOAT, 160, BackgroundColor.MUD), + iatCorrection(SensorCategory.FUEL, FieldType.FLOAT, 164, BackgroundColor.MUD, 0, 5), + WALL_FUEL_CORRECTION(SensorCategory.FUEL, FieldType.FLOAT, 168, BackgroundColor.MUD), idlePosition(SensorCategory.OPERATIONS, FieldType.FLOAT, 172, BackgroundColor.MUD), TARGET_AFR(SensorCategory.OPERATIONS, FieldType.FLOAT, 176, BackgroundColor.MUD), CHARGE_AIR_MASS(SensorCategory.OPERATIONS, FieldType.FLOAT, 180, BackgroundColor.MUD), diff --git a/java_console/models/src/com/rusefi/core/SensorCategory.java b/java_console/models/src/com/rusefi/core/SensorCategory.java index a70de4478f..75d1986566 100644 --- a/java_console/models/src/com/rusefi/core/SensorCategory.java +++ b/java_console/models/src/com/rusefi/core/SensorCategory.java @@ -2,6 +2,7 @@ package com.rusefi.core; public enum SensorCategory { OPERATIONS("Operations"), + FUEL("Fuel-related"), SNIFFING("Sniffing"), SENSOR_INPUTS("Sensor inputs"), OTHERS("Others"); diff --git a/java_console/ui/src/com/rusefi/Launcher.java b/java_console/ui/src/com/rusefi/Launcher.java index cf7cc8a454..6bc3d9c08f 100644 --- a/java_console/ui/src/com/rusefi/Launcher.java +++ b/java_console/ui/src/com/rusefi/Launcher.java @@ -32,7 +32,7 @@ import static com.rusefi.ui.storage.PersistentConfiguration.getConfig; * @see EngineSnifferPanel */ public class Launcher { - public static final int CONSOLE_VERSION = 20151227; + public static final int CONSOLE_VERSION = 20160102; public static final boolean SHOW_STIMULATOR = false; private static final String TAB_INDEX = "main_tab"; protected static final String PORT_KEY = "port";