implement ignition cut for shift torque reduction #5608

This commit is contained in:
kifir 2024-10-05 01:19:48 +03:00 committed by kifir23917
parent 896091ebae
commit 1a56187c57
5 changed files with 14 additions and 4 deletions

View File

@ -94,7 +94,7 @@ void EngineState::updateSparkSkip() {
* We are applying launch controller spark skip ratio only for hard skip limiter (see * We are applying launch controller spark skip ratio only for hard skip limiter (see
* https://github.com/rusefi/rusefi/issues/6566#issuecomment-2153149902). * https://github.com/rusefi/rusefi/issues/6566#issuecomment-2153149902).
*/ */
engine->launchController.getSparkSkipRatio() engine->launchController.getSparkSkipRatio() + engine->shiftTorqueReductionController.getSparkSkipRatio()
); );
#endif // EFI_LAUNCH_CONTROL #endif // EFI_LAUNCH_CONTROL
} }

View File

@ -164,7 +164,7 @@ SoftSparkLimiter::SoftSparkLimiter(const bool p_allowHardCut)
void SoftSparkLimiter::updateTargetSkipRatio( void SoftSparkLimiter::updateTargetSkipRatio(
const float luaSparkSkip, const float luaSparkSkip,
const float tractionControlSparkSkip, const float tractionControlSparkSkip,
const float launchControllerSparkSkipRatio const float launchOrShiftTorqueReductionControllerSparkSkipRatio
) { ) {
targetSkipRatio = luaSparkSkip; targetSkipRatio = luaSparkSkip;
if (engineConfiguration->useHardSkipInTraction) { if (engineConfiguration->useHardSkipInTraction) {
@ -180,7 +180,7 @@ void SoftSparkLimiter::updateTargetSkipRatio(
* We are applying launch controller spark skip ratio only for hard skip limiter (see * We are applying launch controller spark skip ratio only for hard skip limiter (see
* https://github.com/rusefi/rusefi/issues/6566#issuecomment-2153149902). * https://github.com/rusefi/rusefi/issues/6566#issuecomment-2153149902).
*/ */
targetSkipRatio += launchControllerSparkSkipRatio; targetSkipRatio += launchOrShiftTorqueReductionControllerSparkSkipRatio;
} }
} }

View File

@ -56,7 +56,7 @@ public:
void updateTargetSkipRatio( void updateTargetSkipRatio(
float luaSoftSparkSkip, float luaSoftSparkSkip,
float tractionControlSparkSkip, float tractionControlSparkSkip,
float launchControllerSparkSkipRatio = 0.0f float launchOrShiftTorqueReductionControllerSparkSkipRatio = 0.0f
); );
[[nodiscard]] float getTargetSkipRatio() const { return targetSkipRatio; } [[nodiscard]] float getTargetSkipRatio() const { return targetSkipRatio; }

View File

@ -25,6 +25,14 @@ void ShiftTorqueReductionController::update() {
} }
} }
float ShiftTorqueReductionController::getSparkSkipRatio() const {
float result = 0.0f;
if (engineConfiguration->torqueReductionEnabled && isFlatShiftConditionSatisfied) {
result = engineConfiguration->torqueReductionIgnitionCut / 100.0f;
}
return result;
}
void ShiftTorqueReductionController::updateTriggerPinState() { void ShiftTorqueReductionController::updateTriggerPinState() {
switch (engineConfiguration->torqueReductionActivationMode) { switch (engineConfiguration->torqueReductionActivationMode) {
case TORQUE_REDUCTION_BUTTON: { case TORQUE_REDUCTION_BUTTON: {

View File

@ -9,6 +9,8 @@
class ShiftTorqueReductionController : public shift_torque_reduction_state_s { class ShiftTorqueReductionController : public shift_torque_reduction_state_s {
public: public:
void update(); void update();
float getSparkSkipRatio() const;
private: private:
void updateTriggerPinState(); void updateTriggerPinState();
void updateTriggerPinState(switch_input_pin_e pin, bool isPinInverted); void updateTriggerPinState(switch_input_pin_e pin, bool isPinInverted);