ui & config for fuel/ign trim tables (#3704)
* ui & config * bump flash version * compaction * s * make things happy * fsio too * OK, well those defaults were insane * b * why are these defaults insane * adjust cylinder offset ui * s * cleanup
This commit is contained in:
parent
7249ba3b01
commit
c176bbebc1
|
@ -18,8 +18,10 @@
|
|||
#error "Unexpected OS ACCESS HERE"
|
||||
#endif /* HAS_OS_ACCESS */
|
||||
|
||||
static fsio8_Map3D_u8t vvtTable1;
|
||||
static fsio8_Map3D_u8t vvtTable2;
|
||||
using vvt_map_t = Map3D<SCRIPT_TABLE_8, SCRIPT_TABLE_8, uint8_t, uint16_t, uint16_t>;
|
||||
|
||||
static vvt_map_t vvtTable1;
|
||||
static vvt_map_t vvtTable2;
|
||||
|
||||
void VvtController::init(int index, int bankIndex, int camIndex, const ValueProvider3D* targetMap) {
|
||||
this->index = index;
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
// see useFSIO5ForCriticalIssueEngineStop
|
||||
#define MAGIC_OFFSET_FOR_CRITICAL_ENGINE 5
|
||||
|
||||
typedef Map3D<SCRIPT_TABLE_8, SCRIPT_TABLE_8, float, float, float> fsio8_Map3D_f32t;
|
||||
typedef Map3D<SCRIPT_TABLE_8, SCRIPT_TABLE_8, uint8_t, float, float> fsio8_Map3D_u8t;
|
||||
typedef Map3D<SCRIPT_TABLE_8, SCRIPT_TABLE_8, float, uint16_t, uint16_t> fsio8_Map3D_f32t;
|
||||
typedef Map3D<SCRIPT_TABLE_8, SCRIPT_TABLE_8, uint8_t, uint16_t, uint16_t> fsio8_Map3D_u8t;
|
||||
|
||||
expected<float> getEngineValue(le_action_e action);
|
||||
|
||||
|
|
|
@ -1485,8 +1485,7 @@ int8_t[MAX_CYLINDER_COUNT iterate] fuelTrim;;"Percent", @@PERCENT_TRIM_BYTE_PACK
|
|||
uint16_t[TORQUE_CURVE_SIZE] torqueRpmBins;;"RPM", 1, 0, 0, 65000, 0
|
||||
|
||||
|
||||
|
||||
int[423] mainUnusedEnd;;"units", 1, 0, -20, 100, 0
|
||||
int[100] mainUnusedEnd;;"units", 1, 0, 0, 1, 0
|
||||
|
||||
! end of engine_configuration_s
|
||||
end_struct
|
||||
|
@ -1517,10 +1516,10 @@ uint8_t[PEDAL_TO_TPS_SIZE] pedalToTpsRpmBins;;"RPM", @@RPM_1_BYTE_PACKING_MULT@@
|
|||
float[CLT_CRANKING_CURVE_SIZE] cltCrankingCorrBins;CLT-based cranking position multiplier for simple manual idle controller;"C", 1, 0, -100, 250, 2
|
||||
float[CLT_CRANKING_CURVE_SIZE] cltCrankingCorr ;CLT-based cranking position multiplier for simple manual idle controller;"%", 1, 0, 0, 500, 2
|
||||
|
||||
uint8_t[IDLE_ADVANCE_CURVE_SIZE] autoscale idleAdvanceBins;Optional timing advance table for Idle (see useSeparateAdvanceForIdle);"RPM", @@RPM_1_BYTE_PACKING_MULT@@, 0, 0, 18000, 2
|
||||
float[IDLE_ADVANCE_CURVE_SIZE] idleAdvance ;Optional timing advance table for Idle (see useSeparateAdvanceForIdle);"deg", 1, 0, -20, 90, 2
|
||||
uint8_t[IDLE_VE_CURVE_SIZE] autoscale idleVeBins;Optional VE table for Idle (see useSeparateVEForIdle);"RPM", @@RPM_1_BYTE_PACKING_MULT@@, 0, 0, 18000, 2
|
||||
float[IDLE_VE_CURVE_SIZE] idleVe; Optional VE table for Idle (see useSeparateVEForIdle);"%", 1, 0, 0, 999, 2
|
||||
uint8_t[IDLE_ADVANCE_CURVE_SIZE] autoscale idleAdvanceBins;Optional timing advance table for Idle (see useSeparateAdvanceForIdle);"RPM", @@RPM_1_BYTE_PACKING_MULT@@, 0, 0, 18000, 0
|
||||
float[IDLE_ADVANCE_CURVE_SIZE] idleAdvance ;Optional timing advance table for Idle (see useSeparateAdvanceForIdle);"deg", 1, 0, -20, 90, 1
|
||||
uint8_t[IDLE_VE_CURVE_SIZE] autoscale idleVeBins;Optional VE table for Idle (see useSeparateVEForIdle);"RPM", @@RPM_1_BYTE_PACKING_MULT@@, 0, 0, 18000, 0
|
||||
float[IDLE_VE_CURVE_SIZE] idleVe; Optional VE table for Idle (see useSeparateVEForIdle);"%", 1, 0, 0, 999, 1
|
||||
|
||||
#define LUA_SCRIPT_SIZE 8000
|
||||
custom lua_script_t @@LUA_SCRIPT_SIZE@@ string, ASCII, @OFFSET@, @@LUA_SCRIPT_SIZE@@
|
||||
|
@ -1544,13 +1543,13 @@ float[CLT_CURVE_SIZE] cltIdleCorr; CLT-based idle position multiplier for sim
|
|||
float[MAF_DECODING_COUNT] mafDecoding;Also known as MAF transfer function.\nkg/hour value.\nBy the way 2.081989116 kg/h = 1 ft3/m;"kg/hour", 1, 0, -500, 4000, 2
|
||||
float[MAF_DECODING_COUNT] mafDecodingBins;;"V", 1, 0, -5, 150, 2
|
||||
|
||||
float[IGN_RPM_COUNT x IGN_LOAD_COUNT] ignitionIatCorrTable;;"deg", 1, 0, -720, 720, 2
|
||||
float[IGN_LOAD_COUNT] ignitionIatCorrLoadBins;;"Temperature", 1, 0, 0, 500, 2
|
||||
float[IGN_RPM_COUNT] ignitionIatCorrRpmBins;;"RPM", 1, 0, 0, 18000, 2
|
||||
float[IGN_RPM_COUNT x IGN_LOAD_COUNT] ignitionIatCorrTable;;"deg", 1, 0, -720, 720, 1
|
||||
float[IGN_LOAD_COUNT] ignitionIatCorrLoadBins;;"Temperature", 1, 0, 0, 500, 0
|
||||
uint16_t[IGN_RPM_COUNT] ignitionIatCorrRpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
float[IGN_RPM_COUNT x IGN_LOAD_COUNT] injectionPhase;;"deg", 1, 0, -720, 720, 2
|
||||
float[FUEL_LOAD_COUNT] injPhaseLoadBins;;"Load", 1, 0, 0, 500, 2
|
||||
float[FUEL_RPM_COUNT] injPhaseRpmBins;;"RPM", 1, 0, 0, 18000, 2
|
||||
float[IGN_RPM_COUNT x IGN_LOAD_COUNT] injectionPhase;;"deg", 1, 0, -720, 720, 0
|
||||
uint16_t[FUEL_LOAD_COUNT] injPhaseLoadBins;;"Load", 1, 0, 0, 500, 0
|
||||
uint16_t[FUEL_RPM_COUNT] injPhaseRpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
uint8_t[TCU_SOLENOID_COUNT x TCU_GEAR_COUNT] tcuSolenoidTable;;"onoff", 1, 0, 0, 1, 0
|
||||
|
||||
|
@ -1561,21 +1560,20 @@ uint16_t[FUEL_LOAD_COUNT] autoscale mapEstimateTpsBins;;"% TPS", {1/@@TPS_2_BYTE
|
|||
uint16_t[FUEL_RPM_COUNT] mapEstimateRpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
uint8_t[SCRIPT_TABLE_8 x SCRIPT_TABLE_8] vvtTable1;;"value", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] vvtTable1LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] vvtTable1RpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0, 25500, 2
|
||||
uint16_t[SCRIPT_TABLE_8] vvtTable1LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
uint16_t[SCRIPT_TABLE_8] vvtTable1RpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
uint8_t[SCRIPT_TABLE_8 x SCRIPT_TABLE_8] vvtTable2;;"value", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] vvtTable2LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] vvtTable2RpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0, 25500, 2
|
||||
uint16_t[SCRIPT_TABLE_8] vvtTable2LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
uint16_t[SCRIPT_TABLE_8] vvtTable2RpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
float[IGN_RPM_COUNT x IGN_LOAD_COUNT] ignitionTable;;"deg", 1, 0, -20, 90, 1
|
||||
uint16_t[IGN_LOAD_COUNT] ignitionLoadBins;;"Load", 1, 0, 0, 500, 0
|
||||
uint16_t[IGN_RPM_COUNT] ignitionRpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
float[IGN_RPM_COUNT x IGN_LOAD_COUNT] ignitionTable;;"deg", 1, 0, -20, 90, 2
|
||||
float[IGN_LOAD_COUNT] ignitionLoadBins;;"Load", 1, 0, 0, 500, 2
|
||||
float[IGN_RPM_COUNT] ignitionRpmBins;;"RPM", 1, 0, 0, 18000, 2
|
||||
|
||||
float[FUEL_RPM_COUNT x FUEL_LOAD_COUNT] veTable;;"%", 1, 0, 0, 999, 2
|
||||
float[FUEL_LOAD_COUNT] veLoadBins;;"kPa", 1, 0, 0, 400, 2
|
||||
float[FUEL_RPM_COUNT] veRpmBins;;"RPM", 1, 0, 0, 18000, 2
|
||||
float[FUEL_RPM_COUNT x FUEL_LOAD_COUNT] veTable;;"%", 1, 0, 0, 999, 1
|
||||
uint16_t[FUEL_LOAD_COUNT] veLoadBins;;"kPa", 1, 0, 0, 400, 0
|
||||
uint16_t[FUEL_RPM_COUNT] veRpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
#if LAMBDA
|
||||
uint8_t[FUEL_RPM_COUNT x FUEL_LOAD_COUNT] autoscale lambdaTable;;"lambda", {1/@@PACK_MULT_LAMBDA_CFG@@}, 0, 0.6, 1.5, 2
|
||||
|
@ -1588,29 +1586,44 @@ uint8_t[FUEL_RPM_COUNT x FUEL_LOAD_COUNT] lambdaTable;;"afr", {1/@@PACK_MULT_AFR
|
|||
! afr_table_t afrTable
|
||||
! end_union
|
||||
|
||||
float[FUEL_LOAD_COUNT] lambdaLoadBins;;"", 1, 0, 0, 500, 2
|
||||
float[FUEL_RPM_COUNT] lambdaRpmBins;;"RPM", 1, 0, 0, 18000, 2
|
||||
uint16_t[FUEL_LOAD_COUNT] lambdaLoadBins;;"", 1, 0, 0, 500, 0
|
||||
uint16_t[FUEL_RPM_COUNT] lambdaRpmBins;;"RPM", 1, 0, 0, 18000, 0
|
||||
|
||||
float[TPS_TPS_ACCEL_TABLE x TPS_TPS_ACCEL_TABLE] tpsTpsAccelTable;;"value", 1, 0, 0, 30000, 2
|
||||
float[TPS_TPS_ACCEL_TABLE] tpsTpsAccelFromRpmBins;;"from", 1, 0, 0, 30000, 2
|
||||
float[TPS_TPS_ACCEL_TABLE] tpsTpsAccelToRpmBins;RPM is float and not integer in order to use unified methods for interpolation;"to", 1, 0, 0, 25500, 2
|
||||
float[TPS_TPS_ACCEL_TABLE] tpsTpsAccelToRpmBins;;"to", 1, 0, 0, 25500, 2
|
||||
|
||||
float[SCRIPT_TABLE_8 x SCRIPT_TABLE_8] scriptTable1;;"value", 1, 0, 0, 30000, 2
|
||||
float[SCRIPT_TABLE_8] scriptTable1LoadBins;;"L", 1, 0, 0, 30000, 2
|
||||
float[SCRIPT_TABLE_8] scriptTable1RpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0, 25500, 2
|
||||
uint16_t[SCRIPT_TABLE_8] scriptTable1LoadBins;;"L", 1, 0, 0, 30000, 0
|
||||
uint16_t[SCRIPT_TABLE_8] scriptTable1RpmBins;;"RPM", 1, 0, 0, 25500, 0
|
||||
|
||||
uint8_t[SCRIPT_TABLE_8 x SCRIPT_TABLE_8] scriptTable2;;"value", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] scriptTable2LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] scriptTable2RpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0, 25500, 2
|
||||
uint16_t[SCRIPT_TABLE_8] scriptTable2LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
uint16_t[SCRIPT_TABLE_8] scriptTable2RpmBins;;"RPM", 1, 0, 0, 25500, 0
|
||||
|
||||
uint8_t[SCRIPT_TABLE_8 x SCRIPT_TABLE_8] scriptTable3;;"value", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] scriptTable3LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] scriptTable3RpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0, 25500, 2
|
||||
uint16_t[SCRIPT_TABLE_8] scriptTable3LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
uint16_t[SCRIPT_TABLE_8] scriptTable3RpmBins;;"RPM", 1, 0, 0, 25500, 0
|
||||
|
||||
uint8_t[SCRIPT_TABLE_8 x SCRIPT_TABLE_8] scriptTable4;;"value", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] scriptTable4LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
float[SCRIPT_TABLE_8] scriptTable4RpmBins;RPM is float and not integer in order to use unified methods for interpolation;"RPM", 1, 0, 0, 25500, 2
|
||||
uint16_t[SCRIPT_TABLE_8] scriptTable4LoadBins;;"L", 1, 0, 0, 255, 0
|
||||
uint16_t[SCRIPT_TABLE_8] scriptTable4RpmBins;;"RPM", 1, 0, 0, 25500, 0
|
||||
|
||||
#define TRIM_SIZE 4
|
||||
|
||||
struct cyl_trim_s
|
||||
int8_t[TRIM_SIZE x TRIM_SIZE] autoscale table;;"", 0.2, 0, -25, 25, 1
|
||||
end_struct
|
||||
|
||||
! All ign trim tables share axes
|
||||
uint16_t[TRIM_SIZE] ignTrimLoadBins;;"", 1, 0, 0, 400, 0
|
||||
uint16_t[TRIM_SIZE] ignTrimRpmBins;;"rpm", 1, 0, 0, 20000, 0
|
||||
cyl_trim_s[12 iterate] ignTrims
|
||||
|
||||
! All fuel trim tables share axes
|
||||
uint16_t[TRIM_SIZE] fuelTrimLoadBins;;"", 1, 0, 0, 400, 0
|
||||
uint16_t[TRIM_SIZE] fuelTrimRpmBins;;"rpm", 1, 0, 0, 20000, 0
|
||||
cyl_trim_s[12 iterate] fuelTrims
|
||||
end_struct
|
||||
|
||||
#define MOCK_MAP_COMMAND "mock_map_voltage"
|
||||
|
|
|
@ -711,6 +711,138 @@ enable2ndByteCanID = false
|
|||
gridOrient = 250, 0, 340 ; Space 123 rotation of grid in degrees.
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl1, fuelTrimMap1, "Fuel trim cyl 1", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims1_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl2, fuelTrimMap2, "Fuel trim cyl 2", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims2_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl3, fuelTrimMap3, "Fuel trim cyl 3", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims3_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl4, fuelTrimMap4, "Fuel trim cyl 4", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims4_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl5, fuelTrimMap5, "Fuel trim cyl 5", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims5_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl6, fuelTrimMap6, "Fuel trim cyl 6", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims6_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl7, fuelTrimMap7, "Fuel trim cyl 7", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims7_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl8, fuelTrimMap8, "Fuel trim cyl 8", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims8_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl9, fuelTrimMap9, "Fuel trim cyl 9", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims9_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl10, fuelTrimMap10, "Fuel trim cyl 10", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims10_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl11, fuelTrimMap11, "Fuel trim cyl 11", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims11_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = fuelTrimTbl12, fuelTrimMap12, "Fuel trim cyl 12", 1
|
||||
xBins = fuelTrimRpmBins, RPMValue
|
||||
yBins = fuelTrimLoadBins, veTableYAxis
|
||||
zBins = fuelTrims12_table
|
||||
upDownLabel = "(RICHER)", "(LEANER)"
|
||||
|
||||
table = ignTrimTbl1, ignTrimMap1, "Ign trim cyl 1", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims1_table
|
||||
|
||||
table = ignTrimTbl2, ignTrimMap2, "Ign trim cyl 2", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims2_table
|
||||
|
||||
table = ignTrimTbl3, ignTrimMap3, "Ign trim cyl 3", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims3_table
|
||||
|
||||
table = ignTrimTbl4, ignTrimMap4, "Ign trim cyl 4", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims4_table
|
||||
|
||||
table = ignTrimTbl5, ignTrimMap5, "Ign trim cyl 5", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims5_table
|
||||
|
||||
table = ignTrimTbl6, ignTrimMap6, "Ign trim cyl 6", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims6_table
|
||||
|
||||
table = ignTrimTbl7, ignTrimMap7, "Ign trim cyl 7", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims7_table
|
||||
|
||||
table = ignTrimTbl8, ignTrimMap8, "Ign trim cyl 8", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims8_table
|
||||
|
||||
table = ignTrimTbl9, ignTrimMap9, "Ign trim cyl 9", 1
|
||||
xBins =ignTrimRpmBins, RPMValue
|
||||
yBins =ignTrimLoadBins, ignitionLoad
|
||||
zBins =ignTrims9_table
|
||||
|
||||
table = ignTrimTbl10, ignTrimMap10, "Ign trim cyl 10", 1
|
||||
xBins = ignTrimRpmBins, RPMValue
|
||||
yBins = ignTrimLoadBins, ignitionLoad
|
||||
zBins = ignTrims10_table
|
||||
|
||||
table = ignTrimTbl11, ignTrimMap11, "Ign trim cyl 11", 1
|
||||
xBins = ignTrimRpmBins, RPMValue
|
||||
yBins = ignTrimLoadBins, ignitionLoad
|
||||
zBins = ignTrims11_table
|
||||
|
||||
table = ignTrimTbl12, ignTrimMap12, "Ign trim cyl 12", 1
|
||||
xBins = ignTrimRpmBins, RPMValue
|
||||
yBins = ignTrimLoadBins, ignitionLoad
|
||||
zBins = ignTrims12_table
|
||||
|
||||
table = mapEstimateTableTbl, mapEstimateTableMap, "MAP Estimate", 1
|
||||
xBins = mapEstimateRpmBins, RPMValue
|
||||
yBins = mapEstimateTpsBins, TPSValue
|
||||
|
@ -1188,7 +1320,6 @@ menuDialog = main
|
|||
subMenu = std_separator
|
||||
|
||||
subMenu = dwellSettings, "Dwell", 0, {isIgnitionEnabled == 1}
|
||||
subMenu = ignitionCylExtra, "Ignition cylinder trim", 0, {isIgnitionEnabled == 1}
|
||||
subMenu = multisparkSettings, "Multispark", 0, {isIgnitionEnabled == 1}
|
||||
subMenu = std_separator
|
||||
|
||||
|
@ -1230,7 +1361,10 @@ menuDialog = main
|
|||
subMenu = idleAdvanceCurve, "Ignition advance", 0, {useSeparateAdvanceForIdle == 1}
|
||||
|
||||
menu = "&Advanced"
|
||||
subMenu = boostDialog, "Boost Control"
|
||||
subMenu = ignitionCylExtra, "Cylinder offsets", 0
|
||||
|
||||
subMenu = std_separator
|
||||
subMenu = boostDialog, "Boost Control"
|
||||
subMenu = boostOpenLoopDialog, "Boost Control Open Loop", { isBoostControlEnabled && boostType == 0 }
|
||||
subMenu = boostPidDialog, "Boost Control Closed Loop PID", { isBoostControlEnabled && boostType == 1 }
|
||||
subMenu = boostTargetDialog, "Boost Control Closed Loop Target", { isBoostControlEnabled && boostType == 1 }
|
||||
|
@ -1364,6 +1498,33 @@ menuDialog = main
|
|||
# subMenu = antiLag, "Antilag Setup"
|
||||
# subMenu = std_separator
|
||||
|
||||
groupMenu = "Cylinder fuel trims"
|
||||
groupChildMenu = fuelTrimTbl1, "Fuel trim cyl 1"
|
||||
groupChildMenu = fuelTrimTbl2, "Fuel trim cyl 2"
|
||||
groupChildMenu = fuelTrimTbl3, "Fuel trim cyl 3"
|
||||
groupChildMenu = fuelTrimTbl4, "Fuel trim cyl 4"
|
||||
groupChildMenu = fuelTrimTbl5, "Fuel trim cyl 5"
|
||||
groupChildMenu = fuelTrimTbl6, "Fuel trim cyl 6"
|
||||
groupChildMenu = fuelTrimTbl7, "Fuel trim cyl 7"
|
||||
groupChildMenu = fuelTrimTbl8, "Fuel trim cyl 8"
|
||||
groupChildMenu = fuelTrimTbl9, "Fuel trim cyl 9"
|
||||
groupChildMenu = fuelTrimTbl10, "Fuel trim cyl 10"
|
||||
groupChildMenu = fuelTrimTbl11, "Fuel trim cyl 11"
|
||||
groupChildMenu = fuelTrimTbl12, "Fuel trim cyl 12"
|
||||
|
||||
groupMenu = "Cylinder ign trims"
|
||||
groupChildMenu = ignTrimTbl1, "Ignition trim cyl 1"
|
||||
groupChildMenu = ignTrimTbl2, "Ignition trim cyl 2"
|
||||
groupChildMenu = ignTrimTbl3, "Ignition trim cyl 3"
|
||||
groupChildMenu = ignTrimTbl4, "Ignition trim cyl 4"
|
||||
groupChildMenu = ignTrimTbl5, "Ignition trim cyl 5"
|
||||
groupChildMenu = ignTrimTbl6, "Ignition trim cyl 6"
|
||||
groupChildMenu = ignTrimTbl7, "Ignition trim cyl 7"
|
||||
groupChildMenu = ignTrimTbl8, "Ignition trim cyl 8"
|
||||
groupChildMenu = ignTrimTbl9, "Ignition trim cyl 9"
|
||||
groupChildMenu = ignTrimTbl10, "Ignition trim cyl 10"
|
||||
groupChildMenu = ignTrimTbl11, "Ignition trim cyl 11"
|
||||
groupChildMenu = ignTrimTbl12, "Ignition trim cyl 12"
|
||||
|
||||
menu = "Help"
|
||||
subMenu = helpGeneral, "rusEFI Info"
|
||||
|
@ -1863,19 +2024,22 @@ cmd_set_engine_type_default = "@@TS_IO_TEST_COMMAND_char@@\x00\x31\x00\x00"
|
|||
panel = fuelParams
|
||||
panel = injectorsDeadTime
|
||||
|
||||
dialog = ignitionCylExtra, "Ignition Cylinder Extra Timing"
|
||||
field = "Extra cyl #1", timing_offset_cylinder1
|
||||
field = "Extra cyl #2", timing_offset_cylinder2, {cylindersCount > 1}
|
||||
field = "Extra cyl #3", timing_offset_cylinder3, {cylindersCount > 2}
|
||||
field = "Extra cyl #4", timing_offset_cylinder4, {cylindersCount > 3}
|
||||
field = "Extra cyl #5", timing_offset_cylinder5, {cylindersCount > 4}
|
||||
field = "Extra cyl #6", timing_offset_cylinder6, {cylindersCount > 5}
|
||||
field = "Extra cyl #7", timing_offset_cylinder7, {cylindersCount > 6}
|
||||
field = "Extra cyl #8", timing_offset_cylinder8, {cylindersCount > 7}
|
||||
field = "Extra cyl #9", timing_offset_cylinder9, {cylindersCount > 8}
|
||||
field = "Extra cyl #10", timing_offset_cylinder10, {cylindersCount > 9}
|
||||
field = "Extra cyl #11", timing_offset_cylinder11, {cylindersCount > 10}
|
||||
field = "Extra cyl #12", timing_offset_cylinder12, {cylindersCount > 11}
|
||||
dialog = ignitionCylExtra, "Cylinder offsets"
|
||||
field = "Offset angle for each cylinder if you have an odd fire"
|
||||
field = "engine, like a v-twin or some V6/V10 engines"
|
||||
field = "#Positive numbers retard, negative numbers advance"
|
||||
field = "Offset cyl 1", timing_offset_cylinder1
|
||||
field = "Offset cyl 2", timing_offset_cylinder2, {cylindersCount > 1}
|
||||
field = "Offset cyl 3", timing_offset_cylinder3, {cylindersCount > 2}
|
||||
field = "Offset cyl 4", timing_offset_cylinder4, {cylindersCount > 3}
|
||||
field = "Offset cyl 5", timing_offset_cylinder5, {cylindersCount > 4}
|
||||
field = "Offset cyl 6", timing_offset_cylinder6, {cylindersCount > 5}
|
||||
field = "Offset cyl 7", timing_offset_cylinder7, {cylindersCount > 6}
|
||||
field = "Offset cyl 8", timing_offset_cylinder8, {cylindersCount > 7}
|
||||
field = "Offset cyl 9", timing_offset_cylinder9, {cylindersCount > 8}
|
||||
field = "Offset cyl 10", timing_offset_cylinder10, {cylindersCount > 9}
|
||||
field = "Offset cyl 11", timing_offset_cylinder11, {cylindersCount > 10}
|
||||
field = "Offset cyl 12", timing_offset_cylinder12, {cylindersCount > 11}
|
||||
|
||||
dialog = multisparkDwellParams, "Delay & Dwell"
|
||||
field = "Spark duration", multisparkSparkDuration, {multisparkEnable}
|
||||
|
|
|
@ -117,8 +117,9 @@ private:
|
|||
float m_colMult = 1;
|
||||
};
|
||||
|
||||
typedef Map3D<FUEL_RPM_COUNT, FUEL_LOAD_COUNT, uint8_t, float, float, efi::ratio<1, PACK_MULT_LAMBDA_CFG>> lambda_Map3D_t;
|
||||
typedef Map3D<FUEL_RPM_COUNT, FUEL_LOAD_COUNT, float, float, float> fuel_Map3D_t;
|
||||
typedef Map3D<FUEL_RPM_COUNT, FUEL_LOAD_COUNT, uint8_t, uint16_t, uint16_t, efi::ratio<1, PACK_MULT_LAMBDA_CFG>> lambda_Map3D_t;
|
||||
typedef Map3D<FUEL_RPM_COUNT, FUEL_LOAD_COUNT, float, uint16_t, uint16_t> fuel_Map3D_t;
|
||||
typedef Map3D<BARO_CORR_SIZE, BARO_CORR_SIZE, float, float, float> baroCorr_Map3D_t;
|
||||
typedef Map3D<PEDAL_TO_TPS_SIZE, PEDAL_TO_TPS_SIZE, uint8_t, uint8_t, uint8_t> pedal2tps_t;
|
||||
typedef Map3D<BOOST_RPM_COUNT, BOOST_LOAD_COUNT, uint8_t, uint8_t, uint8_t, efi::ratio<LOAD_1_BYTE_PACKING_MULT>> boostOpenLoop_Map3D_t;
|
||||
typedef Map3D<BOOST_RPM_COUNT, BOOST_LOAD_COUNT, uint8_t, uint8_t, uint8_t> boostClosedLoop_Map3D_t;
|
||||
|
|
|
@ -202,7 +202,7 @@ int findIndexMsgExt(const char *msg, const kType array[], int size, kType value)
|
|||
return middle;
|
||||
}
|
||||
|
||||
#define findIndexMsg(msg, array, size, value) findIndexMsgExt<float>(msg, array, size, value)
|
||||
#define findIndexMsg(msg, array, size, value) findIndexMsgExt(msg, array, size, value)
|
||||
|
||||
/**
|
||||
* Sets specified value for specified key in a correction curve
|
||||
|
|
Loading…
Reference in New Issue