diff --git a/firmware/controllers/trigger/trigger_emulator_algo.cpp b/firmware/controllers/trigger/trigger_emulator_algo.cpp index 8e09a85117..db3d2e8484 100644 --- a/firmware/controllers/trigger/trigger_emulator_algo.cpp +++ b/firmware/controllers/trigger/trigger_emulator_algo.cpp @@ -55,6 +55,8 @@ void TriggerEmulatorHelper::handleEmulatorCallback(PwmConfig *state, int stateIn bool thirdWheelState = state->multiWave.waves[2].pinStates[prevIndex]; int new3rdWheelState = state->multiWave.waves[2].pinStates[stateIndex]; + // todo: code duplication with TriggerStimulatorHelper::nextStep? + if (primaryWheelState != newPrimaryWheelState) { primaryWheelState = newPrimaryWheelState; fireShaftSignal(primaryWheelState ? SHAFT_PRIMARY_RISING : SHAFT_PRIMARY_FALLING); diff --git a/firmware/controllers/trigger/trigger_simulator.cpp b/firmware/controllers/trigger/trigger_simulator.cpp index 2ec233c518..b05fc50d88 100644 --- a/firmware/controllers/trigger/trigger_simulator.cpp +++ b/firmware/controllers/trigger/trigger_simulator.cpp @@ -35,6 +35,8 @@ void TriggerStimulatorHelper::nextStep(TriggerState *state, TriggerShape * shape bool thirdWheelState = shape->wave.getChannelState(2, prevIndex); bool new3rdWheelState = shape->wave.getChannelState(2, stateIndex); + // todo: code duplication with TriggerEmulatorHelper::handleEmulatorCallback? + if (primaryWheelState != newPrimaryWheelState) { primaryWheelState = newPrimaryWheelState; trigger_event_e s = primaryWheelState ? SHAFT_PRIMARY_RISING : SHAFT_PRIMARY_FALLING;