put testmode into operation

This commit is contained in:
2023-01-09 15:35:49 +01:00
parent 26d010c6f0
commit 534b1f93d0
4 changed files with 129 additions and 58 deletions
@@ -22,6 +22,7 @@ class MenuTestMode : public MenuDriveMode {
MenuTestMode(DriveManager *driveManager);
~MenuTestMode();
void printMenu();
void printManeuverTime();
void down() override;
void up() override;
@@ -30,26 +31,36 @@ class MenuTestMode : public MenuDriveMode {
void yes() override;
void no() override;
void update() override;
TestMode* getTestMode() const { return this->testMode; }
private:
void init();
bool checkInput();
TestMode* testMode;
Menu* mainMenu;
bool isInit = false;
bool maneuverInAction = false;
uint32_t lastUpdateTime = 0;
uint16_t updateDelay = 1000;
};
typedef bool (TestMode::*TestModeFunctionSingle)(int16_t);
typedef bool (TestMode::*TestModeFunctionDouble)(int16_t, int16_t);
class MenuTestModeWrapper : public MenuIntInputWrapper {
public:
MenuTestModeWrapper(TestMode* testMode, TestModeFunctionSingle testModeFunction);
MenuTestModeWrapper(TestMode* testMode, TestModeFunctionDouble testModeFunction);
MenuTestModeWrapper(MenuTestMode* menu, TestModeFunctionSingle testModeFunction);
MenuTestModeWrapper(MenuTestMode* menu, TestModeFunctionDouble testModeFunction);
void action(int16_t* values, uint8_t length) override;
private:
TestMode* testMode;
MenuTestMode* menu;
TestMode* testMode;
TestModeFunctionSingle testModeFunctionSingle = nullptr;
TestModeFunctionDouble testModeFunctionDouble = nullptr;
};