refactoring FSIO - reducing code duplication

This commit is contained in:
rusefi 2019-01-05 20:39:07 -05:00
parent eaf5cac206
commit 0db0360635
1 changed files with 5 additions and 7 deletions

View File

@ -411,7 +411,8 @@ static void setFsioFrequency(int index, int frequency) {
/** /**
* @param out param! current and new value as long as element is not NULL * @param out param! current and new value as long as element is not NULL
*/ */
static void updateValueOrWarning(LEElement * element, const char *msg, float *value DECLARE_ENGINE_PARAMETER_SUFFIX) { static void updateValueOrWarning(int fsioIndex, const char *msg, float *value DECLARE_ENGINE_PARAMETER_SUFFIX) {
LEElement * element = fsioLogics[fsioIndex];
if (element == NULL) { if (element == NULL) {
warning(CUSTOM_FSIO_INVALID_EXPRESSION, "invalid expression for %s", msg); warning(CUSTOM_FSIO_INVALID_EXPRESSION, "invalid expression for %s", msg);
} else { } else {
@ -420,8 +421,7 @@ static void updateValueOrWarning(LEElement * element, const char *msg, float *va
} }
static void useFsioForServo(int servoIndex DECLARE_ENGINE_PARAMETER_SUFFIX) { static void useFsioForServo(int servoIndex DECLARE_ENGINE_PARAMETER_SUFFIX) {
LEElement * element = fsioLogics[8 - 1 + servoIndex]; updateValueOrWarning(8 - 1 + servoIndex, "servo", &engine->servoValues[servoIndex] PASS_ENGINE_PARAMETER_SUFFIX);
updateValueOrWarning(element, "servo", &engine->servoValues[servoIndex] PASS_ENGINE_PARAMETER_SUFFIX);
} }
/** /**
@ -469,13 +469,11 @@ void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
} }
if (engineConfiguration->useFSIO15ForIdleRpmAdjustment) { if (engineConfiguration->useFSIO15ForIdleRpmAdjustment) {
LEElement * element = fsioLogics[MAGIC_OFFSET_FOR_IDLE_TARGET_RPM]; updateValueOrWarning(MAGIC_OFFSET_FOR_IDLE_TARGET_RPM, "RPM target", &engine->fsioIdleTargetRPMAdjustment PASS_ENGINE_PARAMETER_SUFFIX);
updateValueOrWarning(element, "RPM target", &engine->fsioIdleTargetRPMAdjustment PASS_ENGINE_PARAMETER_SUFFIX);
} }
if (engineConfiguration->useFSIO16ForTimingAdjustment) { if (engineConfiguration->useFSIO16ForTimingAdjustment) {
LEElement * element = fsioLogics[MAGIC_OFFSET_FOR_TIMING_FSIO]; updateValueOrWarning(MAGIC_OFFSET_FOR_TIMING_FSIO, "timing", &engine->fsioTimingAdjustment PASS_ENGINE_PARAMETER_SUFFIX);
updateValueOrWarning(element, "timing", &engine->fsioTimingAdjustment PASS_ENGINE_PARAMETER_SUFFIX);
} }
if (engineConfiguration->useFSIO8ForServo1) { if (engineConfiguration->useFSIO8ForServo1) {