52 lines
1.0 KiB
C++
52 lines
1.0 KiB
C++
/**
|
|
* @file controlPad.h
|
|
* @author Alexander Klein (alex@kleiax.de)
|
|
* @brief
|
|
* @version 0.1
|
|
* @date 2023-03-30
|
|
*
|
|
* @copyright Copyright (c) 2023
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <menuControl.h>
|
|
|
|
#include "controlPadInput.h"
|
|
|
|
class ControlPad {
|
|
public:
|
|
ControlPad();
|
|
|
|
bool loop();
|
|
|
|
void insertData(const uint8_t *data);
|
|
|
|
void setMenuControl(MenuControl* menuControl) { this->menuControl = menuControl; }
|
|
|
|
const ControlPadInput * getControlPadDataPtr(uint16_t maxElapsedTime = 0) const;
|
|
|
|
bool isControlPadConnected() const { return this->connected; }
|
|
|
|
private:
|
|
MenuControl* menuControl = nullptr;
|
|
ControlPadInput controlInput;
|
|
|
|
void receiveData();
|
|
|
|
bool connected = false;
|
|
bool updated = false;
|
|
bool firstButtonPress = false;
|
|
|
|
const uint8_t address[2][6] = { "rover", "ardui" };
|
|
|
|
uint16_t disconnectTime = 50;
|
|
uint16_t loopDelay = 5;
|
|
|
|
uint32_t lastMessageReceive = 0;
|
|
uint32_t lastLoopMillis = 0;
|
|
|
|
|
|
};
|