/** * @file controlPad.cpp * @author Alexander Klein (alex@kleiax.de) * @brief * @version 0.1 * @date 2023-03-30 * * @copyright Copyright (c) 2023 * */ #include "controlPad.h" ControlPad::ControlPad() { } bool ControlPad::loop() { this->receiveData(); if (millis() - this->lastLoopMillis < this->loopDelay) return false; this->lastLoopMillis = millis(); // if(!this->connected) // return false; // if (millis() - this->lastMessageReceive > this->disconnectTime) { // this->connected = false; // return false; // } // if (this->menuControl && this->controlInput.buttons > 0 && this->updated) // if (!this->firstButtonPress) // this->menuControl->printMenu(); // if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Left)) // this->menuControl->left(); // else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Right)) // this->menuControl->right(); // else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Up)) // this->menuControl->up(); // else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Down)) // this->menuControl->down(); // else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::Yes)) // this->menuControl->yes(); // else if (ControlPadButton::isControlPadButtonPressed(&this->controlInput, ControlPadButton::PadButton::No)) // this->menuControl->no(); // this->menuControl->update(); return true; } void ControlPad::insertData(const uint8_t *data) { uint8_t lastCount = this->controlInput.counter + 1; memcpy(&(this->controlInput), data, sizeof(this->controlInput)); if (lastCount != this->controlInput.counter) std::cout << "ControlPad::insertData counter wrong value" << std::endl; this->lastMessageReceive = millis(); std::cout << "data: " << (int) this->controlInput.counter << std::endl; } const ControlPadInput * ControlPad::getControlPadDataPtr(uint16_t maxElapsedTime) const { if (maxElapsedTime && millis() - this->lastMessageReceive > maxElapsedTime) return nullptr; return &this->controlInput; } void ControlPad::receiveData() { }