diff --git a/firmware/console/binary/live_data.cpp b/firmware/console/binary/live_data.cpp index f6947b7ea2..32f666e08a 100644 --- a/firmware/console/binary/live_data.cpp +++ b/firmware/console/binary/live_data.cpp @@ -120,6 +120,11 @@ const engine_state_s* getLiveData(size_t) { return &engine->engineState; } +template<> +const prime_injection_s* getLiveData(size_t) { + return &engine->module().unmock(); +} + template<> const tps_accel_state_s* getLiveData(size_t) { return &engine->module().unmock(); diff --git a/firmware/controllers/engine_cycle/prime_injection.h b/firmware/controllers/engine_cycle/prime_injection.h index 1f0e53e6e0..4a9ffb31a9 100644 --- a/firmware/controllers/engine_cycle/prime_injection.h +++ b/firmware/controllers/engine_cycle/prime_injection.h @@ -8,8 +8,9 @@ #include "engine_module.h" #include "rusefi_types.h" #include "scheduler.h" +#include "prime_injection_generated.h" -class PrimeController : public EngineModule { +class PrimeController : public EngineModule, public prime_injection_s { public: void onIgnitionStateChanged(bool ignitionOn) override; void onSlowCallback() override; @@ -24,7 +25,6 @@ public: } private: - bool m_isPriming = false; static void onPrimeStartAdapter(PrimeController* instance) { instance->onPrimeStart(); diff --git a/firmware/controllers/engine_cycle/prime_injection.txt b/firmware/controllers/engine_cycle/prime_injection.txt new file mode 100644 index 0000000000..1e44bb25b3 --- /dev/null +++ b/firmware/controllers/engine_cycle/prime_injection.txt @@ -0,0 +1,4 @@ +struct_no_prefix prime_injection_s + bit m_isPriming;"IsFuelPriming" +end_struct + diff --git a/firmware/docs_enums.mk b/firmware/docs_enums.mk index cf320ededd..6ebed2d496 100644 --- a/firmware/docs_enums.mk +++ b/firmware/docs_enums.mk @@ -3,6 +3,7 @@ DOCS_ENUMS_INPUTS = \ $(PROJECT_DIR)/integration/rusefi_config.txt \ $(PROJECT_DIR)/console/binary/output_channels.txt \ $(PROJECT_DIR)/controllers/engine_cycle/knock_controller.txt \ + $(PROJECT_DIR)/controllers/engine_cycle/prime_injection.txt \ $(PROJECT_DIR)/controllers/trigger/trigger_central.txt \ $(PROJECT_DIR)/controllers/trigger/trigger_state.txt \ $(PROJECT_DIR)/controllers/actuators/idle_state.txt \ diff --git a/firmware/integration/LiveData.yaml b/firmware/integration/LiveData.yaml index 10c45b4aa8..8262e15991 100644 --- a/firmware/integration/LiveData.yaml +++ b/firmware/integration/LiveData.yaml @@ -35,6 +35,14 @@ Usages: prepend: integration/rusefi_config_shared.txt constexpr: "engine->ignitionState" + - name: prime_injection + cppFileName: prime_injection + java: PrimeController.java + folder: controllers/engine_cycle + prepend: integration/rusefi_config_shared.txt + constexpr: "___engine.module()" + isPtr: true + - name: knock_controller java: KnockController.java folder: controllers/engine_cycle diff --git a/firmware/live_data_generated/prime_injection_generated.h b/firmware/live_data_generated/prime_injection_generated.h new file mode 100644 index 0000000000..01b0298ceb --- /dev/null +++ b/firmware/live_data_generated/prime_injection_generated.h @@ -0,0 +1,108 @@ +// this section was generated automatically by rusEFI tool config_definition_base-all.jar based on (unknown script) controllers/engine_cycle/prime_injection.txt +// by class com.rusefi.output.CHeaderConsumer +// begin +#pragma once +#include "rusefi_types.h" +// start of prime_injection_s +struct prime_injection_s { + /** + offset 0 bit 0 */ + bool m_isPriming : 1 {}; + /** + offset 0 bit 1 */ + bool unusedBit_1_1 : 1 {}; + /** + offset 0 bit 2 */ + bool unusedBit_1_2 : 1 {}; + /** + offset 0 bit 3 */ + bool unusedBit_1_3 : 1 {}; + /** + offset 0 bit 4 */ + bool unusedBit_1_4 : 1 {}; + /** + offset 0 bit 5 */ + bool unusedBit_1_5 : 1 {}; + /** + offset 0 bit 6 */ + bool unusedBit_1_6 : 1 {}; + /** + offset 0 bit 7 */ + bool unusedBit_1_7 : 1 {}; + /** + offset 0 bit 8 */ + bool unusedBit_1_8 : 1 {}; + /** + offset 0 bit 9 */ + bool unusedBit_1_9 : 1 {}; + /** + offset 0 bit 10 */ + bool unusedBit_1_10 : 1 {}; + /** + offset 0 bit 11 */ + bool unusedBit_1_11 : 1 {}; + /** + offset 0 bit 12 */ + bool unusedBit_1_12 : 1 {}; + /** + offset 0 bit 13 */ + bool unusedBit_1_13 : 1 {}; + /** + offset 0 bit 14 */ + bool unusedBit_1_14 : 1 {}; + /** + offset 0 bit 15 */ + bool unusedBit_1_15 : 1 {}; + /** + offset 0 bit 16 */ + bool unusedBit_1_16 : 1 {}; + /** + offset 0 bit 17 */ + bool unusedBit_1_17 : 1 {}; + /** + offset 0 bit 18 */ + bool unusedBit_1_18 : 1 {}; + /** + offset 0 bit 19 */ + bool unusedBit_1_19 : 1 {}; + /** + offset 0 bit 20 */ + bool unusedBit_1_20 : 1 {}; + /** + offset 0 bit 21 */ + bool unusedBit_1_21 : 1 {}; + /** + offset 0 bit 22 */ + bool unusedBit_1_22 : 1 {}; + /** + offset 0 bit 23 */ + bool unusedBit_1_23 : 1 {}; + /** + offset 0 bit 24 */ + bool unusedBit_1_24 : 1 {}; + /** + offset 0 bit 25 */ + bool unusedBit_1_25 : 1 {}; + /** + offset 0 bit 26 */ + bool unusedBit_1_26 : 1 {}; + /** + offset 0 bit 27 */ + bool unusedBit_1_27 : 1 {}; + /** + offset 0 bit 28 */ + bool unusedBit_1_28 : 1 {}; + /** + offset 0 bit 29 */ + bool unusedBit_1_29 : 1 {}; + /** + offset 0 bit 30 */ + bool unusedBit_1_30 : 1 {}; + /** + offset 0 bit 31 */ + bool unusedBit_1_31 : 1 {}; +}; +static_assert(sizeof(prime_injection_s) == 4); + +// end +// this section was generated automatically by rusEFI tool config_definition_base-all.jar based on (unknown script) controllers/engine_cycle/prime_injection.txt diff --git a/java_console/models/src/main/java/com/rusefi/config/generated/PrimeController.java b/java_console/models/src/main/java/com/rusefi/config/generated/PrimeController.java new file mode 100644 index 0000000000..d8550af69e --- /dev/null +++ b/java_console/models/src/main/java/com/rusefi/config/generated/PrimeController.java @@ -0,0 +1,187 @@ +package com.rusefi.config.generated; + +// this file was generated automatically by rusEFI tool config_definition_base-all.jar based on (unknown script) controllers/engine_cycle/prime_injection.txt + +// by class com.rusefi.output.FileJavaFieldsConsumer +import com.rusefi.config.*; + +public class PrimeController { + public static final int BANKS_COUNT = 2; + public static final int BOOST_BLEND_COUNT = 2; + public static final int CAM_INPUTS_COUNT = 4; + public static final int CAMS_PER_BANK = 2; + public static final int EGT_CHANNEL_COUNT = 8; + public static final String GAUGE_CATEGORY_BOOST_CONTROL = "Boost Control"; + public static final String GAUGE_CATEGORY_ETB = "ETB more"; + public static final String GAUGE_CATEGORY_FUEL_MATH = "Fuel: math"; + public static final String GAUGE_CATEGORY_SENT = "Sensors - SENT"; + public static final String GAUGE_CATEGORY_SYNC = "Sync"; + public static final String GAUGE_CATEGORY_TIMING = "Timing"; + public static final String GAUGE_COIL_DWELL_TIME = "Ignition: coil charge time"; + public static final String GAUGE_NAME_AC_PRESSURE = "A/C pressure"; + public static final String GAUGE_NAME_ACCEL_LAT = "Accel: Lateral"; + public static final String GAUGE_NAME_ACCEL_LON = "Accel: Longitudinal"; + public static final String GAUGE_NAME_ACCEL_VERT = "Accel: Vertical"; + public static final String GAUGE_NAME_ADJUSTED_TIMING = "Timing: ignition"; + public static final String GAUGE_NAME_AFR = "Air/Fuel Ratio"; + public static final String GAUGE_NAME_AFR2 = "Air/Fuel Ratio 2"; + public static final String GAUGE_NAME_AFR2_GAS_SCALE = "Air/Fuel Ratio 2 (Gas Scale)"; + public static final String GAUGE_NAME_AFR_GAS_SCALE = "Air/Fuel Ratio (Gas Scale)"; + public static final String GAUGE_NAME_AIR_FLOW_ESTIMATE = "Air: Flow estimate"; + public static final String GAUGE_NAME_AIR_FLOW_MEASURED = "MAF"; + public static final String GAUGE_NAME_AIR_FLOW_MEASURED_2 = "MAF #2"; + public static final String GAUGE_NAME_AIR_MASS = "Air: Cylinder airmass"; + public static final String GAUGE_NAME_AUX_LINEAR_1 = "Aux linear #1"; + public static final String GAUGE_NAME_AUX_LINEAR_2 = "Aux linear #2"; + public static final String GAUGE_NAME_AUX_LINEAR_3 = "Aux linear #3"; + public static final String GAUGE_NAME_AUX_LINEAR_4 = "Aux linear #4"; + public static final String GAUGE_NAME_AUX_TEMP1 = "Aux temp 1"; + public static final String GAUGE_NAME_AUX_TEMP2 = "Aux temp 2"; + public static final String GAUGE_NAME_BARO_PRESSURE = "Barometric pressure"; + public static final String GAUGE_NAME_BOOST_CLOSED_LOOP = "Boost: Closed loop"; + public static final String GAUGE_NAME_BOOST_OPEN_LOOP = "Boost: Open loop"; + public static final String GAUGE_NAME_BOOST_OUTPUT = "Boost: Output"; + public static final String GAUGE_NAME_BOOST_TARGET = "Boost: Target"; + public static final String GAUGE_NAME_CAN_READ_OK = "CAN: Rx"; + public static final String GAUGE_NAME_CAN_WRITE_ERR = "CAN: Tx err"; + public static final String GAUGE_NAME_CAN_WRITE_OK = "CAN: Tx OK"; + public static final String GAUGE_NAME_CLT = "CLT"; + public static final String GAUGE_NAME_CPU_TEMP = "CPU Temperature"; + public static final String GAUGE_NAME_CURRENT_GEAR = "TCU: Current Gear"; + public static final String GAUGE_NAME_DEBUG_F1 = "debug f1"; + public static final String GAUGE_NAME_DEBUG_F2 = "debug f2: iTerm"; + public static final String GAUGE_NAME_DEBUG_F3 = "debug f3: prevError"; + public static final String GAUGE_NAME_DEBUG_F4 = "debug f4: iParam"; + public static final String GAUGE_NAME_DEBUG_F5 = "debug f5: dParam"; + public static final String GAUGE_NAME_DEBUG_F6 = "debug f6: dTerm"; + public static final String GAUGE_NAME_DEBUG_F7 = "debug f7"; + public static final String GAUGE_NAME_DEBUG_I1 = "debug i1: pParam"; + public static final String GAUGE_NAME_DEBUG_I2 = "debug i2: offset"; + public static final String GAUGE_NAME_DEBUG_I3 = "debug i3"; + public static final String GAUGE_NAME_DEBUG_I4 = "debug i4"; + public static final String GAUGE_NAME_DEBUG_I5 = "debug i5"; + public static final String GAUGE_NAME_DESIRED_GEAR = "TCU: Desired Gear"; + public static final String GAUGE_NAME_DETECTED_GEAR = "Detected Gear"; + public static final String GAUGE_NAME_DWELL_DUTY = "Ignition: coil duty cycle"; + public static final String GAUGE_NAME_ECU_TEMPERATURE = "ECU temperature"; + public static final String GAUGE_NAME_ENGINE_CRC16 = "Engine CRC16"; + public static final String GAUGE_NAME_ETB_DUTY = "ETB: Duty"; + public static final String GAUGE_NAME_ETB_ERROR = "ETB: position error"; + public static final String GAUGE_NAME_ETB_TARGET = "ETB: position target"; + public static final String GAUGE_NAME_FLEX = "Flex Ethanol %"; + public static final String GAUGE_NAME_FUEL_BARO_CORR = "Fuel: Barometric pressure mult"; + public static final String GAUGE_NAME_FUEL_BASE = "Fuel: base cycle mass"; + public static final String GAUGE_NAME_FUEL_CHARGE_TEMP = "Fuel: Estimated charge temperature"; + public static final String GAUGE_NAME_FUEL_CLT_CORR = "Fuel: CLT correction"; + public static final String GAUGE_NAME_FUEL_CONSUMPTION = "Fuel: Total consumed"; + public static final String GAUGE_NAME_FUEL_CRANKING = "Fuel: cranking"; + public static final String GAUGE_NAME_FUEL_FLOW = "Fuel: Flow rate"; + public static final String GAUGE_NAME_FUEL_IAT_CORR = "Fuel: IAT correction"; + public static final String GAUGE_NAME_FUEL_INJ_DUTY = "Fuel: injector duty cycle"; + public static final String GAUGE_NAME_FUEL_INJ_DUTY_STAGE_2 = "Fuel: injector duty cycle stage 2"; + public static final String GAUGE_NAME_FUEL_INJECTION_TIMING = "Fuel: Injection timing SOI"; + public static final String GAUGE_NAME_FUEL_LAST_INJECTION = "Fuel: Last inj pulse width"; + public static final String GAUGE_NAME_FUEL_LAST_INJECTION_STAGE_2 = "Fuel: Last inj pulse width stg 2"; + public static final String GAUGE_NAME_FUEL_LEVEL = "Fuel level"; + public static final String GAUGE_NAME_FUEL_LOAD = "Fuel: Load"; + public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH = "Fuel pressure (high)"; + public static final String GAUGE_NAME_FUEL_PRESSURE_HIGH_UNITS = "bar"; + public static final String GAUGE_NAME_FUEL_PRESSURE_LOW = "Fuel pressure (low)"; + public static final String GAUGE_NAME_FUEL_PRESSURE_LOW_UNITS = "kPa"; + public static final String GAUGE_NAME_FUEL_RUNNING = "Fuel: running"; + public static final String GAUGE_NAME_FUEL_TEMPERATURE = "Fuel Temperature"; + public static final String GAUGE_NAME_FUEL_TPS_EXTRA = "Fuel: TPS AE add fuel ms"; + public static final String GAUGE_NAME_FUEL_TRIM = "Fuel: fuel trim"; + public static final String GAUGE_NAME_FUEL_TRIM_2 = "Fuel: fuel trim 2"; + public static final String GAUGE_NAME_FUEL_VE = "Fuel: VE"; + public static final String GAUGE_NAME_FUEL_WALL_AMOUNT = "Fuel: wall amount"; + public static final String GAUGE_NAME_FUEL_WALL_CORRECTION = "Fuel: wall correction"; + public static final String GAUGE_NAME_FW_VERSION = "ECU Software Version"; + public static final String GAUGE_NAME_GEAR_RATIO = "Gearbox Ratio"; + public static final String GAUGE_NAME_GYRO_YAW = "Gyro: Yaw rate"; + public static final String GAUGE_NAME_IAC = "Idle: Position"; + public static final String GAUGE_NAME_IAT = "IAT"; + public static final String GAUGE_NAME_IDLE_POSITION = "Idle: Position sensor"; + public static final String GAUGE_NAME_IGNITION_LOAD = "Ignition: load"; + public static final String GAUGE_NAME_IGNITION_MODE = "Ignition: Mode"; + public static final String GAUGE_NAME_INJECTION_MODE = "Fuel: Injection mode"; + public static final String GAUGE_NAME_INJECTOR_LAG = "Fuel: injector lag"; + public static final String GAUGE_NAME_ISS = "TCU: Input Shaft Speed"; + public static final String GAUGE_NAME_KNOCK_COUNTER = "Knock: Count"; + public static final String GAUGE_NAME_KNOCK_FREQ = "knock: frequency"; + public static final String GAUGE_NAME_KNOCK_LEVEL = "Knock: Current level"; + public static final String GAUGE_NAME_KNOCK_RETARD = "Knock: Retard"; + public static final String GAUGE_NAME_LAMBDA = "Lambda"; + public static final String GAUGE_NAME_LAMBDA2 = "Lambda 2"; + public static final String GAUGE_NAME_LAST_ERROR = "Warning: last"; + public static final String GAUGE_NAME_MAF = "MAF"; + public static final String GAUGE_NAME_MAP = "MAP"; + public static final String GAUGE_NAME_OIL_PRESSURE = "Oil Pressure"; + public static final String GAUGE_NAME_OIL_PRESSURE_UNITS = "kPa"; + public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_HIGH = "Fuel pressure raw (high)"; + public static final String GAUGE_NAME_RAW_FUEL_PRESSURE_LOW = "Fuel pressure raw (low)"; + public static final String GAUGE_NAME_RPM = "RPM"; + public static final String GAUGE_NAME_TARGET_AFR = "Fuel: target AFR"; + public static final String GAUGE_NAME_TARGET_LAMBDA = "Fuel: target lambda"; + public static final String GAUGE_NAME_TC_RATIO = "TCU: Torque Converter Ratio"; + public static final String GAUGE_NAME_TCHARGE = "Air: SD tCharge"; + public static final String GAUGE_NAME_THROTTLE_PEDAL = "Throttle pedal position"; + public static final String GAUGE_NAME_TIME = "Time"; + public static final String GAUGE_NAME_TIMING_ADVANCE = "Timing: base ignition"; + public static final String GAUGE_NAME_TPS = "TPS"; + public static final String GAUGE_NAME_TPS2 = "TPS2"; + public static final String GAUGE_NAME_TRG_ERR = "Trigger Error Counter"; + public static final String GAUGE_NAME_TRG_GAP = "Sync: Trigger Latest Ratio"; + public static final String GAUGE_NAME_TUNE_CRC16 = "Tune CRC16"; + public static final String GAUGE_NAME_TURBO_SPEED = "Turbocharger Speed"; + public static final String GAUGE_NAME_UPTIME = "Uptime"; + public static final String GAUGE_NAME_VBAT = "VBatt"; + public static final String GAUGE_NAME_VERSION = "firmware"; + public static final String GAUGE_NAME_VVS = "Vehicle Speed"; + public static final String GAUGE_NAME_VVT_B1E = "VVT: bank 1 exhaust"; + public static final String GAUGE_NAME_VVT_B1I = "VVT: bank 1 intake"; + public static final String GAUGE_NAME_VVT_B2E = "VVT: bank 2 exhaust"; + public static final String GAUGE_NAME_VVT_B2I = "VVT: bank 2 intake"; + public static final String GAUGE_NAME_VVT_TARGET_B1E = "VVT: bank 1 exhaust target"; + public static final String GAUGE_NAME_VVT_TARGET_B1I = "VVT: bank 1 intake target"; + public static final String GAUGE_NAME_VVT_TARGET_B2E = "VVT: bank 2 exhaust target"; + public static final String GAUGE_NAME_VVT_TARGET_B2I = "VVT: bank 2 intake target"; + public static final String GAUGE_NAME_WARNING_COUNTER = "Warning: counter"; + public static final String GAUGE_NAME_WARNING_LAST = "Warning: last"; + public static final String GAUGE_NAME_WG_POSITION = "Wastegate position sensor"; + public static final int IGN_BLEND_COUNT = 4; + public static final String INDICATOR_NAME_AC_SWITCH = "AC switch"; + public static final String INDICATOR_NAME_BRAKE_DOWN = "Brake switch"; + public static final String INDICATOR_NAME_CLUTCH_DOWN = "Clutch: down"; + public static final String INDICATOR_NAME_CLUTCH_UP = "Clutch: up"; + public static final int LUA_ANALOG_INPUT_COUNT = 8; + public static final int LUA_GAUGE_COUNT = 8; + public static final int MAX_CYLINDER_COUNT = 12; + public static final int PACK_ADD_TEMPERATURE = 40; + public static final int PACK_MULT_AFR = 1000; + public static final int PACK_MULT_AFR_CFG = 10; + public static final int PACK_MULT_ANGLE = 50; + public static final int PACK_MULT_EGTEMPERATURE = 4; + public static final int PACK_MULT_FLEX = 2; + public static final int PACK_MULT_FUEL_FLOW = 200; + public static final int PACK_MULT_FUEL_MASS = 100; + public static final int PACK_MULT_HIGH_PRESSURE = 10; + public static final int PACK_MULT_LAMBDA = 10000; + public static final int PACK_MULT_LAMBDA_CFG = 147; + public static final int PACK_MULT_MASS_FLOW = 10; + public static final int PACK_MULT_MS = 300; + public static final int PACK_MULT_PERCENT = 100; + public static final int PACK_MULT_PRESSURE = 30; + public static final int PACK_MULT_TEMPERATURE = 100; + public static final int PACK_MULT_VOLTAGE = 1000; + public static final int PACK_MULT_VSS = 100; + public static final int STFT_BANK_COUNT = 2; + public static final int TARGET_AFR_BLEND_COUNT = 2; + public static final int TCU_GEAR_COUNT = 10; + public static final int TPS_2_BYTE_PACKING_MULT = 100; + public static final int VE_BLEND_COUNT = 4; + public static final Field M_ISPRIMING = Field.create("M_ISPRIMING", 0, FieldType.BIT, 0).setBaseOffset(956); + public static final Field[] VALUES = { + M_ISPRIMING, + }; +}