2022-09-01 16:18:26 -07:00
|
|
|
#pragma once
|
|
|
|
#include "rusefi_types.h"
|
2023-01-14 13:08:25 -08:00
|
|
|
struct running_fuel_s {
|
2023-03-27 01:38:48 -07:00
|
|
|
// offset 0
|
2023-01-14 13:08:25 -08:00
|
|
|
float postCrankingFuelCorrection = (float)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// @@GAUGE_NAME_FUEL_IAT_CORR@@
|
|
|
|
// offset 4
|
2023-01-14 13:08:25 -08:00
|
|
|
float intakeTemperatureCoefficient = (float)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// @@GAUGE_NAME_FUEL_CLT_CORR@@
|
|
|
|
// offset 8
|
2023-01-14 13:08:25 -08:00
|
|
|
float coolantTemperatureCoefficient = (float)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// secs
|
|
|
|
// offset 12
|
2023-01-14 13:08:25 -08:00
|
|
|
float timeSinceCrankingInSecs = (float)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 16
|
2023-01-14 13:08:25 -08:00
|
|
|
floatms_t baseFuel = (floatms_t)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// Fuel: actual
|
|
|
|
// Actual injection duration with CLT, IAT and TPS acceleration corrections per cycle, as squirt duration.
|
|
|
|
// Without injector lag.
|
|
|
|
// @see baseFuel
|
|
|
|
// @see actualLastInjection
|
|
|
|
// offset 20
|
2023-01-14 13:08:25 -08:00
|
|
|
floatms_t fuel = (floatms_t)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
2023-01-14 13:08:25 -08:00
|
|
|
};
|
|
|
|
static_assert(sizeof(running_fuel_s) == 24);
|
|
|
|
|
2022-09-01 16:18:26 -07:00
|
|
|
struct fuel_computer_s {
|
2023-03-27 01:38:48 -07:00
|
|
|
// mult
|
|
|
|
// offset 0
|
2023-01-14 02:42:09 -08:00
|
|
|
float totalFuelCorrection = (float)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 4
|
2023-01-14 13:08:25 -08:00
|
|
|
running_fuel_s running;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// %
|
|
|
|
// offset 28
|
2022-11-05 17:28:03 -07:00
|
|
|
scaled_channel<uint16_t, 100, 1> afrTableYAxis = (uint16_t)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// @@GAUGE_NAME_TARGET_LAMBDA@@
|
|
|
|
// offset 30
|
2022-11-05 17:28:03 -07:00
|
|
|
scaled_channel<uint16_t, 10000, 1> targetLambda = (uint16_t)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// @@GAUGE_NAME_TARGET_AFR@@
|
|
|
|
// ratio
|
|
|
|
// offset 32
|
2022-11-05 17:28:03 -07:00
|
|
|
scaled_channel<uint16_t, 1000, 1> targetAFR = (uint16_t)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// fuel: stoich ratio
|
|
|
|
// ratio
|
|
|
|
// offset 34
|
2022-11-05 17:28:03 -07:00
|
|
|
scaled_channel<uint16_t, 1000, 1> stoichiometricRatio = (uint16_t)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 36
|
2022-09-03 04:44:24 -07:00
|
|
|
float sdTcharge_coff = (float)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// SD cylinder mass
|
|
|
|
// Speed-density logic: calculated air mass in one cylinder, in grams
|
|
|
|
// offset 40
|
2022-09-03 04:44:24 -07:00
|
|
|
float sdAirMassInOneCylinder = (float)0;
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 0
|
2022-09-03 04:44:24 -07:00
|
|
|
bool sdIsTChargeAirModel : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 1
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_1 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 2
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_2 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 3
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_3 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 4
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_4 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 5
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_5 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 6
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_6 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 7
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_7 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 8
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_8 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 9
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_9 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 10
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_10 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 11
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_11 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 12
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_12 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 13
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_13 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 14
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_14 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 15
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_15 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 16
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_16 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 17
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_17 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 18
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_18 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 19
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_19 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 20
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_20 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 21
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_21 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 22
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_22 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 23
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_23 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 24
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_24 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 25
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_25 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 26
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_26 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 27
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_27 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 28
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_28 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 29
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_29 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 30
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_30 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
|
|
|
// offset 44 bit 31
|
2023-01-14 13:08:25 -08:00
|
|
|
bool unusedBit_9_31 : 1 {};
|
2023-03-27 01:38:48 -07:00
|
|
|
|
2022-09-01 16:18:26 -07:00
|
|
|
};
|
2023-01-14 13:08:25 -08:00
|
|
|
static_assert(sizeof(fuel_computer_s) == 48);
|
2022-09-01 16:18:26 -07:00
|
|
|
|