This commit is contained in:
rusefi 2018-07-29 18:02:37 -04:00
parent a7bb960b47
commit 36ba17ac1c
10 changed files with 29 additions and 11 deletions

View File

@ -115,6 +115,7 @@ void Engine::reset() {
sensorChartMode = SC_OFF; sensorChartMode = SC_OFF;
actualLastInjection = 0; actualLastInjection = 0;
fsioTimingAdjustment = 0; fsioTimingAdjustment = 0;
fsioIdleTargetRPMAdjustment = 0;
isAlternatorControlEnabled = false; isAlternatorControlEnabled = false;
callFromPitStopEndTime = 0; callFromPitStopEndTime = 0;
rpmHardLimitTimestamp = 0; rpmHardLimitTimestamp = 0;

View File

@ -380,6 +380,7 @@ public:
bool isRunningPwmTest; bool isRunningPwmTest;
float fsioTimingAdjustment; float fsioTimingAdjustment;
float fsioIdleTargetRPMAdjustment;
float servoValues[SERVO_COUNT]; float servoValues[SERVO_COUNT];

View File

@ -1,4 +1,4 @@
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 26 15:39:48 EDT 2018 // this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jul 29 17:54:43 EDT 2018
// begin // begin
#ifndef ENGINE_CONFIGURATION_GENERATED_H_ #ifndef ENGINE_CONFIGURATION_GENERATED_H_
#define ENGINE_CONFIGURATION_GENERATED_H_ #define ENGINE_CONFIGURATION_GENERATED_H_
@ -1341,7 +1341,7 @@ typedef struct {
bool useFSIO12ForServo5 : 1; bool useFSIO12ForServo5 : 1;
/** /**
offset 1472 bit 26 */ offset 1472 bit 26 */
bool unused_bit_1472_26 : 1; bool useFSIO15ForIdleRpmAdjustment : 1;
/** /**
offset 1472 bit 27 */ offset 1472 bit 27 */
bool unused_bit_1472_27 : 1; bool unused_bit_1472_27 : 1;
@ -2390,4 +2390,4 @@ typedef struct {
#endif #endif
// end // end
// this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 26 15:39:48 EDT 2018 // this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jul 29 17:54:43 EDT 2018

View File

@ -918,8 +918,8 @@
#define useFSIO11ForServo4_offset_hex 5c0 #define useFSIO11ForServo4_offset_hex 5c0
#define useFSIO12ForServo5_offset 1472 #define useFSIO12ForServo5_offset 1472
#define useFSIO12ForServo5_offset_hex 5c0 #define useFSIO12ForServo5_offset_hex 5c0
#define unused_bit_1472_26_offset 1472 #define useFSIO15ForIdleRpmAdjustment_offset 1472
#define unused_bit_1472_26_offset_hex 5c0 #define useFSIO15ForIdleRpmAdjustment_offset_hex 5c0
#define unused_bit_1472_27_offset 1472 #define unused_bit_1472_27_offset 1472
#define unused_bit_1472_27_offset_hex 5c0 #define unused_bit_1472_27_offset_hex 5c0
#define hipOutputChannel_offset 1476 #define hipOutputChannel_offset 1476

View File

@ -25,6 +25,8 @@
#define NO_PWM 0 #define NO_PWM 0
// see useFSIO15ForIdleRpmAdjustment
#define MAGIC_OFFSET_FOR_IDLE_TARGET_RPM 14
// see useFSIO16ForTimingAdjustment // see useFSIO16ForTimingAdjustment
#define MAGIC_OFFSET_FOR_TIMING_FSIO 15 #define MAGIC_OFFSET_FOR_TIMING_FSIO 15
@ -436,6 +438,16 @@ void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
if (boardConfiguration->fanPin != GPIO_UNASSIGNED) { if (boardConfiguration->fanPin != GPIO_UNASSIGNED) {
setPinState("fan", &enginePins.fanRelay, radiatorFanLogic); setPinState("fan", &enginePins.fanRelay, radiatorFanLogic);
} }
if (engineConfiguration->useFSIO15ForIdleRpmAdjustment) {
LEElement * element = fsioLogics[MAGIC_OFFSET_FOR_IDLE_TARGET_RPM];
if (element == NULL) {
warning(CUSTOM_FSIO_INVALID_EXPRESSION, "invalid expression for %s", "RPM targer");
} else {
engine->fsioIdleTargetRPMAdjustment = calc.getValue2(engine->fsioIdleTargetRPMAdjustment, element PASS_ENGINE_PARAMETER_SUFFIX);
}
}
if (engineConfiguration->useFSIO16ForTimingAdjustment) { if (engineConfiguration->useFSIO16ForTimingAdjustment) {
LEElement * element = fsioLogics[MAGIC_OFFSET_FOR_TIMING_FSIO]; LEElement * element = fsioLogics[MAGIC_OFFSET_FOR_TIMING_FSIO];

View File

@ -211,6 +211,8 @@ static percent_t automaticIdleController() {
} else { } else {
targetRpm = interpolate2d("cltRpm", clt, CONFIG(cltIdleRpmBins), CONFIG(cltIdleRpm), CLT_CURVE_SIZE); targetRpm = interpolate2d("cltRpm", clt, CONFIG(cltIdleRpmBins), CONFIG(cltIdleRpm), CLT_CURVE_SIZE);
} }
targetRpm += engine->fsioIdleTargetRPMAdjustment;
// check if within the dead zone // check if within the dead zone
int rpm = getRpmE(engine); int rpm = getRpmE(engine);

View File

@ -664,7 +664,7 @@ bit hasFrequencyReportingMapSensor;
bit useFSIO10ForServo3 bit useFSIO10ForServo3
bit useFSIO11ForServo4 bit useFSIO11ForServo4
bit useFSIO12ForServo5 bit useFSIO12ForServo5
bit unused_bit_1472_26; bit useFSIO15ForIdleRpmAdjustment;
bit unused_bit_1472_27; bit unused_bit_1472_27;
adc_channel_e hipOutputChannel; adc_channel_e hipOutputChannel;

View File

@ -63,7 +63,7 @@ enable2ndByteCanID = false
; see PAGE_0_SIZE in C source code ; see PAGE_0_SIZE in C source code
; CONFIG_DEFINITION_START ; CONFIG_DEFINITION_START
; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 26 15:39:48 EDT 2018 ; this section was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jul 29 17:54:43 EDT 2018
pageSize = 20000 pageSize = 20000
page = 1 page = 1
@ -477,7 +477,7 @@ page = 1
useFSIO10ForServo3 = bits, U32, 1472, [23:23], "false", "true" useFSIO10ForServo3 = bits, U32, 1472, [23:23], "false", "true"
useFSIO11ForServo4 = bits, U32, 1472, [24:24], "false", "true" useFSIO11ForServo4 = bits, U32, 1472, [24:24], "false", "true"
useFSIO12ForServo5 = bits, U32, 1472, [25:25], "false", "true" useFSIO12ForServo5 = bits, U32, 1472, [25:25], "false", "true"
unused_bit_1472_26 = bits, U32, 1472, [26:26], "false", "true" useFSIO15ForIdleRpmAdjustment= bits, U32, 1472, [26:26], "false", "true"
unused_bit_1472_27 = bits, U32, 1472, [27:27], "false", "true" unused_bit_1472_27 = bits, U32, 1472, [27:27], "false", "true"
hipOutputChannel = bits, U32, 1476, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID" hipOutputChannel = bits, U32, 1476, [0:4] "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PB0", "PB1", "PC0", "PC1", "PC2", "PC3", "PC4", "PC5", "Disabled", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID", "INVALID"
idleMode = bits, U32, 1480, [0:0], "Automatic", "Manual" idleMode = bits, U32, 1480, [0:0], "Automatic", "Manual"
@ -2893,6 +2893,7 @@ cmd_stop_engine = "w\x00\x99\x00\x00"
field = "#12", fsioFormulas12 field = "#12", fsioFormulas12
field = "#13", fsioFormulas13 field = "#13", fsioFormulas13
field = "#14", fsioFormulas14 field = "#14", fsioFormulas14
field = "use FSIO #15 for idle RPM adjustment", useFSIO15ForIdleRpmAdjustment
field = "#15", fsioFormulas15 field = "#15", fsioFormulas15
field = "use FSIO #16 for timing adjustment", useFSIO16ForTimingAdjustment field = "use FSIO #16 for timing adjustment", useFSIO16ForTimingAdjustment
field = "#16", fsioFormulas16 field = "#16", fsioFormulas16

View File

@ -2052,6 +2052,7 @@ cmd_stop_engine = "w\x00\x99\x00\x00"
field = "#12", fsioFormulas12 field = "#12", fsioFormulas12
field = "#13", fsioFormulas13 field = "#13", fsioFormulas13
field = "#14", fsioFormulas14 field = "#14", fsioFormulas14
field = "use FSIO #15 for idle RPM adjustment", useFSIO15ForIdleRpmAdjustment
field = "#15", fsioFormulas15 field = "#15", fsioFormulas15
field = "use FSIO #16 for timing adjustment", useFSIO16ForTimingAdjustment field = "use FSIO #16 for timing adjustment", useFSIO16ForTimingAdjustment
field = "#16", fsioFormulas16 field = "#16", fsioFormulas16

View File

@ -1,6 +1,6 @@
package com.rusefi.config; package com.rusefi.config;
// this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Thu Jul 26 15:39:48 EDT 2018 // this file was generated automatically by ConfigDefinition.jar based on rusefi_config.txt Sun Jul 29 17:54:43 EDT 2018
public class Fields { public class Fields {
public static final int LE_COMMAND_LENGTH = 200; public static final int LE_COMMAND_LENGTH = 200;
public static final int BLOCKING_FACTOR = 400; public static final int BLOCKING_FACTOR = 400;
@ -629,7 +629,7 @@ public class Fields {
public static final int useFSIO10ForServo3_offset = 1472; public static final int useFSIO10ForServo3_offset = 1472;
public static final int useFSIO11ForServo4_offset = 1472; public static final int useFSIO11ForServo4_offset = 1472;
public static final int useFSIO12ForServo5_offset = 1472; public static final int useFSIO12ForServo5_offset = 1472;
public static final int unused_bit_1472_26_offset = 1472; public static final int useFSIO15ForIdleRpmAdjustment_offset = 1472;
public static final int unused_bit_1472_27_offset = 1472; public static final int unused_bit_1472_27_offset = 1472;
public static final int hipOutputChannel_offset = 1476; public static final int hipOutputChannel_offset = 1476;
public static final int idleMode_offset = 1480; public static final int idleMode_offset = 1480;
@ -1581,7 +1581,7 @@ public class Fields {
public static final Field USEFSIO10FORSERVO3 = Field.create("USEFSIO10FORSERVO3", 1472, FieldType.BIT, 23); public static final Field USEFSIO10FORSERVO3 = Field.create("USEFSIO10FORSERVO3", 1472, FieldType.BIT, 23);
public static final Field USEFSIO11FORSERVO4 = Field.create("USEFSIO11FORSERVO4", 1472, FieldType.BIT, 24); public static final Field USEFSIO11FORSERVO4 = Field.create("USEFSIO11FORSERVO4", 1472, FieldType.BIT, 24);
public static final Field USEFSIO12FORSERVO5 = Field.create("USEFSIO12FORSERVO5", 1472, FieldType.BIT, 25); public static final Field USEFSIO12FORSERVO5 = Field.create("USEFSIO12FORSERVO5", 1472, FieldType.BIT, 25);
public static final Field UNUSED_BIT_1472_26 = Field.create("UNUSED_BIT_1472_26", 1472, FieldType.BIT, 26); public static final Field USEFSIO15FORIDLERPMADJUSTMENT = Field.create("USEFSIO15FORIDLERPMADJUSTMENT", 1472, FieldType.BIT, 26);
public static final Field UNUSED_BIT_1472_27 = Field.create("UNUSED_BIT_1472_27", 1472, FieldType.BIT, 27); public static final Field UNUSED_BIT_1472_27 = Field.create("UNUSED_BIT_1472_27", 1472, FieldType.BIT, 27);
public static final Field HIPOUTPUTCHANNEL = Field.create("HIPOUTPUTCHANNEL", 1476, FieldType.INT, adc_channel_e); public static final Field HIPOUTPUTCHANNEL = Field.create("HIPOUTPUTCHANNEL", 1476, FieldType.INT, adc_channel_e);
public static final Field IDLEMODE = Field.create("IDLEMODE", 1480, FieldType.INT); public static final Field IDLEMODE = Field.create("IDLEMODE", 1480, FieldType.INT);