Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 71 additions & 6 deletions src/CommandMessenger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,71 @@ void OnSetPowerSavingMode();
void OnTrigger();
void OnUnknownCommand();

void trackCommand()
{
lastCommand = millis();
}

void PowerSavingWrapper_Output_OnSet()
{
trackCommand();
Output::OnSet();
}

#ifdef MF_SEGMENT_SUPPORT
void PowerSavingWrapper_LedSegmentModule_OnSet()
{
trackCommand();
LedSegment::OnSetModule();
}
void PowerSavingWrapper_LedSegmentSingleSegment_OnSet()
{
trackCommand();
LedSegment::OnSetModuleSingleSegment();
}
#endif

#ifdef MF_STEPPER_SUPPORT
void PowerSavingWrapper_Stepper_OnSet()
{
trackCommand();
Stepper::OnSet();
}
#endif

#ifdef MF_LCD_SUPPORT
void PowerSavingWrapper_LCD_OnSet()
{
trackCommand();
LCDDisplay::OnSet();
}
#endif

#ifdef MF_OUTPUT_SHIFTER_SUPPORT
void PowerSavingWrapper_OutputShifter_OnSet()
{
trackCommand();
OutputShifter::OnSet();
}
#endif

#ifdef MF_SERVO_SUPPORT
void PowerSavingWrapper_Servo_OnSet()
{
trackCommand();
Servos::OnSet();
}
#endif

#ifdef MF_CUSTOMDEVICE_SUPPORT
void PowerSavingWrapper_CustomDevice_OnSet()
{
trackCommand();
CustomDevice::OnSet();
}
#endif


// Callbacks define on which received commands we take action
void attachCommandCallbacks()
{
Expand All @@ -52,22 +117,22 @@ void attachCommandCallbacks()

#ifdef MF_SEGMENT_SUPPORT
cmdMessenger.attach(kInitModule, LedSegment::OnInitModule);
cmdMessenger.attach(kSetModule, LedSegment::OnSetModule);
cmdMessenger.attach(kSetModule, PowerSavingWrapper_LedSegmentModule_OnSet);
cmdMessenger.attach(kSetModuleBrightness, LedSegment::OnSetModuleBrightness);
cmdMessenger.attach(kSetModuleSingleSegment, LedSegment::OnSetModuleSingleSegment);
cmdMessenger.attach(kSetModuleSingleSegment, PowerSavingWrapper_LedSegmentSingleSegment_OnSet);
#endif

cmdMessenger.attach(kSetPin, Output::OnSet);

#ifdef MF_STEPPER_SUPPORT
cmdMessenger.attach(kSetStepper, Stepper::OnSet);
cmdMessenger.attach(kSetStepper, PowerSavingWrapper_Stepper_OnSet);
cmdMessenger.attach(kResetStepper, Stepper::OnReset);
cmdMessenger.attach(kSetZeroStepper, Stepper::OnSetZero);
cmdMessenger.attach(kSetStepperSpeedAccel, Stepper::OnSetSpeedAccel);
#endif

#ifdef MF_SERVO_SUPPORT
cmdMessenger.attach(kSetServo, Servos::OnSet);
cmdMessenger.attach(kSetServo, PowerSavingWrapper_Servo_OnSet);
#endif

cmdMessenger.attach(kGetInfo, OnGetInfo);
Expand All @@ -82,11 +147,11 @@ void attachCommandCallbacks()
cmdMessenger.attach(kSetPowerSavingMode, OnSetPowerSavingMode);

#ifdef MF_LCD_SUPPORT
cmdMessenger.attach(kSetLcdDisplayI2C, LCDDisplay::OnSet);
cmdMessenger.attach(kSetLcdDisplayI2C, PowerSavingWrapper_LCD_OnSet);
#endif

#ifdef MF_OUTPUT_SHIFTER_SUPPORT
cmdMessenger.attach(kSetShiftRegisterPins, OutputShifter::OnSet);
cmdMessenger.attach(kSetShiftRegisterPins, PowerSavingWrapper_OutputShifter_OnSet);
#endif

#ifdef MF_CUSTOMDEVICE_SUPPORT
Expand Down