Files
Bachelorarbeit-Rover/lib/ControllPad/controllPad.cpp
T

58 lines
1.9 KiB
C++

/**
* @file controllPad.cpp
* @author Alexander Klein (alex@kleiax.de)
* @brief
* @version 0.1
* @date 2023-03-30
*
* @copyright Copyright (c) 2023
*
*/
#include "controllPad.h"
ControllPad::ControllPad() {
}
bool ControllPad::loop() {
if (millis() - this->lastLoopMillis < this->loopDelay)
return false;
this->lastLoopMillis = millis();
if(!this->connected)
return false;
if (millis() - this->lastMessageRecive > this->disconnectTime) {
this->connected = false;
return false;
}
if (this->menuControl && this->controllInput.buttons > 0 && this->updated)
if (!this->firstButtonPress)
this->menuControl->printMenu();
if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Left))
this->menuControl->left();
else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Right))
this->menuControl->right();
else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Up))
this->menuControl->up();
else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Down))
this->menuControl->down();
else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::Yes))
this->menuControl->yes();
else if (ControllPadButton::isControllPadButtonPressed(&this->controllInput, ControllPadButton::PadButton::No))
this->menuControl->no();
this->menuControl->update();
return true;
}
const ControllPadInput * ControllPad::getControllPadDataPtr(uint16_t maxElapsedTime) const {
if (maxElapsedTime && millis() - this->lastMessageRecive > maxElapsedTime)
return nullptr;
return &this->controllInput;
}