diff --git a/firmware/console/status_loop.cpp b/firmware/console/status_loop.cpp index 46b8318740..6b2c554dcf 100644 --- a/firmware/console/status_loop.cpp +++ b/firmware/console/status_loop.cpp @@ -378,7 +378,7 @@ class CommunicationBlinkingTask : public PeriodicTimerController { enginePins.communicationLedPin.setValue(0); #if HW_CHECK_SD extern int totalLoggedBytes; - if (totalLoggedBytes > 50000) { + if (totalLoggedBytes > 2000) { enginePins.communicationLedPin.setValue(1); } #endif // HW_CHECK_SD diff --git a/firmware/controllers/trigger/trigger_central.cpp b/firmware/controllers/trigger/trigger_central.cpp index 8d1ce5bbfe..bed8e1c891 100644 --- a/firmware/controllers/trigger/trigger_central.cpp +++ b/firmware/controllers/trigger/trigger_central.cpp @@ -288,14 +288,11 @@ int maxTriggerReentraint = 0; uint32_t triggerDuration; uint32_t triggerMaxDuration = 0; +/** + * this method is invoked only by real hardware call-backs + */ + void hwHandleShaftSignal(trigger_event_e signal, efitick_t timestamp) { - ScopePerf perf(PE::HandleShaftSignal); - - // Don't accept trigger input in case of some problems - if (!engine->limpManager.allowTriggerInput()) { - return; - } - #if VR_HW_CHECK_MODE // some boards do not have hardware VR input LEDs which makes such boards harder to validate // from experience we know that assembly mistakes happen and quality control is required @@ -315,6 +312,22 @@ void hwHandleShaftSignal(trigger_event_e signal, efitick_t timestamp) { palWritePad(criticalErrorLedPort, criticalErrorLedPin, 0); #endif // VR_HW_CHECK_MODE + handleShaftSignal(signal, timestamp); + +} + +/** + * this method is invoked by both real hardware and self-stimulator + */ +void handleShaftSignal(trigger_event_e signal, efitick_t timestamp) { + ScopePerf perf(PE::HandleShaftSignal); + + // Don't accept trigger input in case of some problems + if (!engine->limpManager.allowTriggerInput()) { + return; + } + + #if EFI_TOOTH_LOGGER // Log to the Tunerstudio tooth logger // We want to do this before anything else as we diff --git a/firmware/controllers/trigger/trigger_central.h b/firmware/controllers/trigger/trigger_central.h index e6d459343d..df21091853 100644 --- a/firmware/controllers/trigger/trigger_central.h +++ b/firmware/controllers/trigger/trigger_central.h @@ -84,6 +84,7 @@ public: }; void triggerInfo(void); +void handleShaftSignal(trigger_event_e signal, efitick_t timestamp); void hwHandleShaftSignal(trigger_event_e signal, efitick_t timestamp); void hwHandleVvtCamSignal(trigger_value_e front, efitick_t timestamp, int index DECLARE_ENGINE_PARAMETER_SUFFIX); diff --git a/firmware/controllers/trigger/trigger_emulator_algo.cpp b/firmware/controllers/trigger/trigger_emulator_algo.cpp index e5abf5c128..6cb9014fa8 100644 --- a/firmware/controllers/trigger/trigger_emulator_algo.cpp +++ b/firmware/controllers/trigger/trigger_emulator_algo.cpp @@ -63,7 +63,7 @@ void TriggerEmulatorHelper::handleEmulatorCallback(PwmConfig *state, int stateIn trigger_event_e event = (currentValue ? riseEvents : fallEvents)[i]; - hwHandleShaftSignal(event, stamp); + handleShaftSignal(event, stamp); } } }