reducing coupling between trigger emulation and FSIO
This commit is contained in:
parent
28acce56bf
commit
a8ed61c277
|
@ -504,6 +504,7 @@ private:
|
||||||
|
|
||||||
void prepareShapes(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void prepareShapes(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
void resetConfigurationExt(Logging * logger, engine_type_e engineType DECLARE_ENGINE_PARAMETER_SUFFIX);
|
void resetConfigurationExt(Logging * logger, engine_type_e engineType DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
void refreshTriggerShape(Logging * logger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
void applyNonPersistentConfiguration(Logging * logger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
void applyNonPersistentConfiguration(Logging * logger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
void prepareOutputSignals(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void prepareOutputSignals(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
|
||||||
|
|
|
@ -179,6 +179,9 @@ void incrementGlobalConfigurationVersion(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
#if EFI_EMULATE_POSITION_SENSORS || defined(__DOXYGEN__)
|
#if EFI_EMULATE_POSITION_SENSORS || defined(__DOXYGEN__)
|
||||||
onConfigurationChangeRpmEmulatorCallback(&activeConfiguration);
|
onConfigurationChangeRpmEmulatorCallback(&activeConfiguration);
|
||||||
#endif /* EFI_EMULATE_POSITION_SENSORS */
|
#endif /* EFI_EMULATE_POSITION_SENSORS */
|
||||||
|
|
||||||
|
onConfigurationChangeFsioCallback(&activeConfiguration PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
|
||||||
rememberCurrentConfiguration();
|
rememberCurrentConfiguration();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1276,12 +1279,7 @@ void validateConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void applyNonPersistentConfiguration(Logging * logger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
void refreshTriggerShape(Logging * logger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
|
||||||
efiAssertVoid(getRemainingStack(chThdGetSelfX()) > 256, "apply c");
|
|
||||||
scheduleMsg(logger, "applyNonPersistentConfiguration()");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
assertEngineReference();
|
assertEngineReference();
|
||||||
|
|
||||||
#if EFI_ENGINE_CONTROL || defined(__DOXYGEN__)
|
#if EFI_ENGINE_CONTROL || defined(__DOXYGEN__)
|
||||||
|
@ -1292,6 +1290,17 @@ void applyNonPersistentConfiguration(Logging * logger DECLARE_ENGINE_PARAMETER_S
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
engine->engineCycleEventCount = engine->triggerCentral.triggerShape.getLength();
|
engine->engineCycleEventCount = engine->triggerCentral.triggerShape.getLength();
|
||||||
|
}
|
||||||
|
|
||||||
|
void applyNonPersistentConfiguration(Logging * logger DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
|
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
||||||
|
efiAssertVoid(getRemainingStack(chThdGetSelfX()) > 256, "apply c");
|
||||||
|
scheduleMsg(logger, "applyNonPersistentConfiguration()");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
assertEngineReference();
|
||||||
|
refreshTriggerShape(logger PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
|
||||||
#if EFI_FSIO || defined(__DOXYGEN__)
|
#if EFI_FSIO || defined(__DOXYGEN__)
|
||||||
applyFsioConfiguration(PASS_ENGINE_PARAMETER_SIGNATURE);
|
applyFsioConfiguration(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -232,6 +232,12 @@ void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onConfigurationChangeFsioCallback(engine_configuration_s *previousConfiguration DECLARE_ENGINE_PARAMETER_SUFFIX) {
|
||||||
|
#if EFI_FSIO || defined(__DOXYGEN__)
|
||||||
|
applyFsioConfiguration(PASS_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
#if EFI_PROD_CODE || defined(__DOXYGEN__)
|
||||||
|
|
||||||
static SimplePwm fsioPwm[FSIO_COMMAND_COUNT] CCM_OPTIONAL;
|
static SimplePwm fsioPwm[FSIO_COMMAND_COUNT] CCM_OPTIONAL;
|
||||||
|
|
|
@ -26,6 +26,7 @@ void initFsioImpl(Logging *sharedLogger DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void runFsio(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
float getFsioOutputValue(int index DECLARE_ENGINE_PARAMETER_SUFFIX);
|
float getFsioOutputValue(int index DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
void applyFsioConfiguration(DECLARE_ENGINE_PARAMETER_SIGNATURE);
|
||||||
|
void onConfigurationChangeFsioCallback(engine_configuration_s *previousConfiguration DECLARE_ENGINE_PARAMETER_SUFFIX);
|
||||||
void prepareFsio(void);
|
void prepareFsio(void);
|
||||||
|
|
||||||
#endif /* LE_FUNCTIONS_H_ */
|
#endif /* LE_FUNCTIONS_H_ */
|
||||||
|
|
|
@ -121,7 +121,7 @@ static void updateTriggerShapeIfNeeded(PwmConfig *state) {
|
||||||
getGlobalConfigurationVersion(), currentTimeMillis());
|
getGlobalConfigurationVersion(), currentTimeMillis());
|
||||||
|
|
||||||
// kludge: this line affects not trigger emulation but actual trigger consumption
|
// kludge: this line affects not trigger emulation but actual trigger consumption
|
||||||
applyNonPersistentConfiguration(logger PASS_ENGINE_PARAMETER_SUFFIX);
|
refreshTriggerShape(logger PASS_ENGINE_PARAMETER_SUFFIX);
|
||||||
|
|
||||||
TriggerShape *s = &engine->triggerCentral.triggerShape;
|
TriggerShape *s = &engine->triggerCentral.triggerShape;
|
||||||
pin_state_t *pinStates[PWM_PHASE_MAX_WAVE_PER_PWM] = { s->wave.waves[0].pinStates, s->wave.waves[1].pinStates,
|
pin_state_t *pinStates[PWM_PHASE_MAX_WAVE_PER_PWM] = { s->wave.waves[0].pinStates, s->wave.waves[1].pinStates,
|
||||||
|
|
|
@ -276,5 +276,5 @@ int getRusEfiVersion(void) {
|
||||||
if (initBootloader() != 0)
|
if (initBootloader() != 0)
|
||||||
return 123;
|
return 123;
|
||||||
#endif /* EFI_BOOTLOADER_INCLUDE_CODE */
|
#endif /* EFI_BOOTLOADER_INCLUDE_CODE */
|
||||||
return 20180201;
|
return 20180202;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue