Skip to content
Merged
Show file tree
Hide file tree
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
30 changes: 26 additions & 4 deletions src/CommandMessenger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
CmdMessenger cmdMessenger = CmdMessenger(Serial);
unsigned long lastCommand;

void OnSetPowerSavingMode();
void OnTrigger();
void OnUnknownCommand();

Expand Down Expand Up @@ -77,6 +78,7 @@ void attachCommandCallbacks()
cmdMessenger.attach(kSetName, OnSetName);
cmdMessenger.attach(kGenNewSerial, OnGenNewSerial);
cmdMessenger.attach(kTrigger, OnTrigger);
cmdMessenger.attach(kSetPowerSavingMode, OnSetPowerSavingMode);

#if MF_LCD_SUPPORT == 1
cmdMessenger.attach(kSetLcdDisplayI2C, LCDDisplay::OnSet);
Expand All @@ -102,14 +104,34 @@ void OnUnknownCommand()
cmdMessenger.sendCmd(kStatus, F("n/a"));
}

uint32_t getLastCommandMillis()
// Handles requests from the desktop app to disable power saving mode
void OnSetPowerSavingMode()
{
return lastCommand;
bool enablePowerSavingMode = cmdMessenger.readBoolArg();

// If the request is to enable powersaving mode then set the last command time
// to the earliest possible time. The next time loop() is called in mobiflight.cpp
// this will cause power saving mode to get turned on.
if (enablePowerSavingMode) {
#ifdef DEBUG2CMDMESSENGER
cmdMessenger.sendCmd(kDebug, F("Enabling power saving mode via request"));
#endif
lastCommand = 0;
}
// If the request is to disable power saving mode then simply set the last command
// to now. The next time loop() is called in mobiflight.cpp this will cause
// power saving mode to get turned off.
else {
#ifdef DEBUG2CMDMESSENGER
cmdMessenger.sendCmd(kDebug, F("Disabling power saving mode via request"));
#endif
lastCommand = millis();
}
}

void setLastCommandMillis()
uint32_t getLastCommandMillis()
{
lastCommand = millis();
return lastCommand;
}

void OnTrigger()
Expand Down
3 changes: 0 additions & 3 deletions src/Config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ void OnSetConfig()
#ifdef DEBUG2CMDMESSENGER
cmdMessenger.sendCmd(kDebug, F("Setting config start"));
#endif
setLastCommandMillis();
char *cfg = cmdMessenger.readStringArg();
uint8_t cfgLen = strlen(cfg);

Expand Down Expand Up @@ -533,7 +532,6 @@ void readConfig()

void OnGetConfig()
{
setLastCommandMillis();
cmdMessenger.sendCmdStart(kInfo);
if (configLength > 0) {
cmdMessenger.sendCmdArg((char)MFeeprom.read_byte(MEM_OFFSET_CONFIG));
Expand All @@ -551,7 +549,6 @@ void OnGetInfo()
// OnGetInfo() is called from the connector and the time is very likely always different
// Therefore millis() can be used for randomSeed
generateSerial(false);
setLastCommandMillis();
cmdMessenger.sendCmdStart(kInfo);
cmdMessenger.sendCmdArg(F(MOBIFLIGHT_TYPE));
cmdMessenger.sendCmdArg(name);
Expand Down
9 changes: 4 additions & 5 deletions src/MF_Button/MFButton.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,16 @@
//
// (C) MobiFlight Project 2022
//

#include "MFButton.h"

buttonEvent MFButton::_handler = NULL;

MFButton::MFButton(uint8_t pin, const char *name)
{
_pin = pin;
_name = name;
pinMode(_pin, INPUT_PULLUP); // set pin to input
_state = digitalRead(_pin); // initialize on actual status
_pin = pin;
_name = name;
pinMode(_pin, INPUT_PULLUP); // set pin to input
_state = digitalRead(_pin); // initialize on actual status
}

void MFButton::update()
Expand Down
6 changes: 2 additions & 4 deletions src/MF_CustomDevice/CustomDevice.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ namespace CustomDevice
{
if (!FitInMemory(sizeof(MFCustomDevice) * count))
return false;
customDevice = new (allocateMemory(sizeof(MFCustomDevice) * count)) MFCustomDevice(0,0,0);
customDevice = new (allocateMemory(sizeof(MFCustomDevice) * count)) MFCustomDevice(0, 0, 0);
maxCustomDevices = count;
return true;
}
Expand Down Expand Up @@ -80,9 +80,7 @@ namespace CustomDevice
int16_t messageID = cmdMessenger.readInt16Arg(); // get the messageID number
char *output = cmdMessenger.readStringArg(); // get the pointer to the new raw string
cmdMessenger.unescape(output); // and unescape the string if escape characters are used
customDevice[device].set(messageID, output); // send the string to your custom device

setLastCommandMillis();
customDevice[device].set(messageID, output); // send the string to your custom device
}

} // end of namespace
2 changes: 1 addition & 1 deletion src/MF_Encoder/MFEncoder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ void MFEncoder::tick(void)
int _speed = 0;
uint32_t currentMs = millis();

int8_t thisState = sig1 | (sig2 << 1);
int8_t thisState = sig1 | (sig2 << 1);

if (currentMs - _lastFastDec > 100 && _detentCounter > 1) {
_lastFastDec = currentMs;
Expand Down
2 changes: 0 additions & 2 deletions src/MF_InputShifter/InputShifter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,12 @@ namespace InputShifter
for (uint8_t i = 0; i < inputShiftersRegistered; i++) {
inputShifters[i].retrigger();
}
setLastCommandMillis();
}

void OnInit() // not used anywhere!?
{
int module = cmdMessenger.readInt16Arg();
inputShifters[module].clear();
setLastCommandMillis();
}

} // namespace
Expand Down
1 change: 0 additions & 1 deletion src/MF_LCDDisplay/LCDDisplay.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ namespace LCDDisplay
char *output = cmdMessenger.readStringArg();
cmdMessenger.unescape(output);
lcd_I2C[address].display(output);
setLastCommandMillis();
}
} // namespace

Expand Down
1 change: 0 additions & 1 deletion src/MF_Output/Output.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,6 @@ namespace Output
// Set led
analogWrite(pin, state); // why does the UI sends the pin number and not the x.th output number like other devices?
// output[pin].set(state); // once this is changed uncomment this
setLastCommandMillis();
}

void PowerSave(bool state)
Expand Down
2 changes: 0 additions & 2 deletions src/MF_OutputShifter/OutputShifter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ namespace OutputShifter
{
int module = cmdMessenger.readInt16Arg();
outputShifters[module].clear();
setLastCommandMillis();
}

void OnSet()
Expand All @@ -63,7 +62,6 @@ namespace OutputShifter
char *pins = cmdMessenger.readStringArg();
int value = cmdMessenger.readInt16Arg();
outputShifters[module].setPins(pins, value);
setLastCommandMillis();
}
} // namespace

Expand Down
3 changes: 0 additions & 3 deletions src/MF_Segment/LedSegment.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,6 @@ namespace LedSegment
int subModule = cmdMessenger.readInt16Arg();
int brightness = cmdMessenger.readInt16Arg();
ledSegments[module].setBrightness(subModule, brightness);
setLastCommandMillis();
}

void OnSetModule()
Expand All @@ -70,7 +69,6 @@ namespace LedSegment
uint8_t points = (uint8_t)cmdMessenger.readInt16Arg();
uint8_t mask = (uint8_t)cmdMessenger.readInt16Arg();
ledSegments[module].display(subModule, value, points, mask);
setLastCommandMillis();
}

void OnSetModuleBrightness()
Expand All @@ -79,7 +77,6 @@ namespace LedSegment
int subModule = cmdMessenger.readInt16Arg();
int brightness = cmdMessenger.readInt16Arg();
ledSegments[module].setBrightness(subModule, brightness);
setLastCommandMillis();
}
} // namespace

Expand Down
1 change: 0 additions & 1 deletion src/MF_Servo/Servos.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ namespace Servos
if (servo >= servosRegistered)
return;
servos[servo].moveTo(newValue);
setLastCommandMillis();
}

void update()
Expand Down
3 changes: 0 additions & 3 deletions src/MF_Stepper/Stepper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ namespace Stepper
if (stepper >= steppersRegistered)
return;
steppers[stepper].moveTo(newPos);
setLastCommandMillis();
}

void OnReset()
Expand All @@ -72,7 +71,6 @@ namespace Stepper
if (stepper >= steppersRegistered)
return;
steppers[stepper].reset();
setLastCommandMillis();
}

void OnSetZero()
Expand All @@ -82,7 +80,6 @@ namespace Stepper
if (stepper >= steppersRegistered)
return;
steppers[stepper].setZero();
setLastCommandMillis();
}

void OnSetSpeedAccel()
Expand Down
5 changes: 2 additions & 3 deletions src/mobiflight.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -123,9 +123,9 @@ void SetPowerSavingMode(bool state)

#ifdef DEBUG2CMDMESSENGER
if (state)
cmdMessenger.sendCmd(kDebug, F("On"));
cmdMessenger.sendCmd(kDebug, F("Power saving mode on"));
else
cmdMessenger.sendCmd(kDebug, F("Off"));
cmdMessenger.sendCmd(kDebug, F("Power saving mode off"));
#endif
}

Expand All @@ -145,7 +145,6 @@ void updatePowerSaving()
// ************************************************************
void ResetBoard()
{
setLastCommandMillis();
restoreName();
loadConfig();
}
Expand Down