From 65d8321ccf7531b56be2c409d697f35a91be9338 Mon Sep 17 00:00:00 2001 From: rusEfi Date: Mon, 23 May 2016 21:01:32 -0400 Subject: [PATCH] auto-sync --- firmware/console/binary/tunerstudio_configuration.h | 2 +- firmware/console/status_loop.cpp | 5 +++-- firmware/controllers/algo/engine.h | 6 +++++- .../io/src/com/rusefi/binaryprotocol/BinaryProtocol.java | 2 +- java_console/models/src/com/rusefi/core/Sensor.java | 1 + java_console/ui/src/com/rusefi/ui/FormulasPane.java | 5 ++--- .../ui/src/com/rusefi/ui/config/BaseConfigField.java | 3 ++- 7 files changed, 15 insertions(+), 9 deletions(-) diff --git a/firmware/console/binary/tunerstudio_configuration.h b/firmware/console/binary/tunerstudio_configuration.h index 04f25d1398..25f029a0b9 100644 --- a/firmware/console/binary/tunerstudio_configuration.h +++ b/firmware/console/binary/tunerstudio_configuration.h @@ -52,7 +52,7 @@ typedef struct { * this one contains total resulting fuel squirt time, per event * With all corrections. See also baseFuel */ - float pulseWidthMs; // 64 + float actualLastInjection; // 64 float debugFloatField1; // 68 /** * Yes, I do not really enjoy packing bits into integers but we simply have too many boolean flags and I cannot diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index c15e7b1423..ae1e08d259 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -622,6 +622,9 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_ tsOutputChannels->injectorDutyCycle = getInjectorDutyCycle(rpm PASS_ENGINE_PARAMETER); tsOutputChannels->runningFuel = ENGINE(engineState.runningFuel); tsOutputChannels->injectorLagMs = ENGINE(engineState.injectorLag); + tsOutputChannels->baseFuel = engine->engineState.baseFuel; + tsOutputChannels->actualLastInjection = ENGINE(actualLastInjection); + tsOutputChannels->timeSeconds = getTimeNowSeconds(); if (engineConfiguration->debugMode == DBG_TPS_ACCEL) { @@ -694,8 +697,6 @@ void updateTunerStudioState(TunerStudioOutputChannels *tsOutputChannels DECLARE_ float timing = engine->engineState.timingAdvance; tsOutputChannels->ignitionAdvance = timing > 360 ? timing - 720 : timing; tsOutputChannels->sparkDwell = ENGINE(engineState.sparkDwell); - tsOutputChannels->baseFuel = engine->engineState.baseFuel; - tsOutputChannels->pulseWidthMs = ENGINE(actualLastInjection); tsOutputChannels->crankingFuelMs = getCrankingFuel(PASS_ENGINE_PARAMETER_F); tsOutputChannels->chargeAirMass = engine->engineState.airMass; } diff --git a/firmware/controllers/algo/engine.h b/firmware/controllers/algo/engine.h index d28783843f..768dc0f3e7 100644 --- a/firmware/controllers/algo/engine.h +++ b/firmware/controllers/algo/engine.h @@ -174,7 +174,11 @@ public: floatms_t baseFuel; /** - * Fuel with CLT, IAT and TPS acceleration corrections, as squirt duration. + * Total fuel with CLT, IAT and TPS acceleration corrections per cycle, + * as squirt duration. + * Without injector lag. + * @see baseFule + * @see actualLastInjection */ floatms_t runningFuel; diff --git a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java index e4a95d0580..a3ee585843 100644 --- a/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java +++ b/java_console/io/src/com/rusefi/binaryprotocol/BinaryProtocol.java @@ -323,9 +323,9 @@ public class BinaryProtocol { offset += requestSize; } + setController(image); logger.info("Got configuration from controller."); ConnectionStatus.INSTANCE.setValue(ConnectionStatus.Value.CONNECTED); - setController(image); } /** diff --git a/java_console/models/src/com/rusefi/core/Sensor.java b/java_console/models/src/com/rusefi/core/Sensor.java index 82c2bd5ad4..af9f019d2f 100644 --- a/java_console/models/src/com/rusefi/core/Sensor.java +++ b/java_console/models/src/com/rusefi/core/Sensor.java @@ -92,6 +92,7 @@ public enum Sensor { 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), + actualLastInjection(SensorCategory.FUEL, FieldType.FLOAT, 64, BackgroundColor.MUD, 0, 30, "ms"), CURRENT_VE(SensorCategory.FUEL, FieldType.FLOAT, 112, BackgroundColor.MUD), deltaTps(SensorCategory.FUEL, FieldType.FLOAT, 116, BackgroundColor.MUD), diff --git a/java_console/ui/src/com/rusefi/ui/FormulasPane.java b/java_console/ui/src/com/rusefi/ui/FormulasPane.java index 59ff2691d9..0efe9eb6f5 100644 --- a/java_console/ui/src/com/rusefi/ui/FormulasPane.java +++ b/java_console/ui/src/com/rusefi/ui/FormulasPane.java @@ -181,16 +181,15 @@ public class FormulasPane { String CLTcorr = oneDecimal(Sensor.cltCorrection); String tpsAccel = oneDecimal(Sensor.tpsAccelFuel); - String runningFuel = oneDecimal(Sensor.runningFuel); - String tempCorrections = " * cltCorr(" + CLTcorr + ") * iatCorr(" + IATcorr + ")"; String injectorLag = "+ ( injectorLag(VBatt = " + vBatt + ") = " + oneDecimal(Sensor.injectorLagMs) + ")"; + String actualLastInjection = oneDecimal(Sensor.actualLastInjection); String injTime = "$Fuel (ms) = " + "(Base_Fuel (" + baseFuelStr + "ms) + Tps_Accel_Corr = (" + tpsAccel + "ms))" + tempCorrections + injectorLag + - " = " + runningFuel + "ms$"; + " = " + actualLastInjection + "ms_per_injection$"; return acceleration + tCharge + newLine + diff --git a/java_console/ui/src/com/rusefi/ui/config/BaseConfigField.java b/java_console/ui/src/com/rusefi/ui/config/BaseConfigField.java index 2bbdf21f2c..ad27b01ea6 100644 --- a/java_console/ui/src/com/rusefi/ui/config/BaseConfigField.java +++ b/java_console/ui/src/com/rusefi/ui/config/BaseConfigField.java @@ -33,7 +33,8 @@ public abstract class BaseConfigField { ConnectionStatus.INSTANCE.addListener(new ConnectionStatus.Listener() { @Override public void onConnectionStatus(boolean isConnected) { - processInitialValue(field); + if (ConnectionStatus.INSTANCE.getValue() == ConnectionStatus.Value.CONNECTED) + processInitialValue(field); } }); }