Open FFBoard
Open source force feedback firmware
LocalButtons.h
Go to the documentation of this file.
1
/*
2
* LocalButtons.h
3
*
4
* Created on: 09.02.2020
5
* Author: Yannick
6
*/
7
8
#ifndef LOCALBUTTONS_H_
9
#define LOCALBUTTONS_H_
10
11
#include <
ButtonSource.h
>
12
#include "
ChoosableClass.h
"
13
#include "
CommandHandler.h
"
14
#include "
constants.h
"
15
#include <array>
16
#include "
GPIOPin.h
"
17
18
class
LocalButtons
:
public
ButtonSource
,
CommandHandler
{
19
enum class
LocalButtons_commands
: uint32_t{
20
mask
,
polarity
,
pins
,
values
,
pulse
21
};
22
private
:
23
uint32_t
mask
= 0xff;
// Can have 16 bits stored
24
uint32_t
pulsemask
= 0;
25
static
constexpr
uint32_t
pulseTimeout
= 50;
// Update only every 50 ms
26
uint32_t
lastPulseTime
= 0;
27
void
setMask
(uint32_t
mask
);
28
bool
polarity
=
false
;
29
static
const
std::array<InputPin,BUTTON_PINS>
button_pins
;
30
uint64_t
lastOutputs
= 0;
31
uint64_t
lastButtons
= 0;
32
public
:
33
LocalButtons
();
34
virtual
~LocalButtons
();
35
uint8_t
readButtons
(uint64_t* buf);
36
uint8_t
getButtonInputs
(uint64_t* buf,
bool
pol);
37
38
const
ClassIdentifier
getInfo
();
39
static
ClassIdentifier
info
;
40
static
bool
isCreatable
() {
return
true
;};
41
42
static
constexpr
uint16_t
maxButtons
{BUTTON_PINS};
43
44
CommandStatus
command
(
const
ParsedCommand
& cmd,std::vector<CommandReply>& replies);
45
46
std::string
getHelpstring
(){
return
"Digital pin button source"
;};
47
48
void
saveFlash
();
// Write to flash here
49
void
restoreFlash
();
// Load from flash
50
51
static
inline
bool
readButton
(
int
button_num) {
52
if
(button_num >=
maxButtons
|| button_num < 0) {
53
return
false
;
54
}
55
// return HAL_GPIO_ReadPin(button_ports[button_num], button_pins[button_num]);
56
return
button_pins
[button_num].read();
57
}
58
const
ClassType
getClassType
() {
return
ClassType::Buttonsource
;};
59
};
60
61
#endif
/* LOCALBUTTONS_H_ */
ButtonSource.h
ChoosableClass.h
ClassType
ClassType
Definition:
ClassIDs.h:12
ClassType::Buttonsource
@ Buttonsource
CommandHandler.h
CommandStatus
CommandStatus
Definition:
CommandHandler.h:39
GPIOPin.h
ButtonSource
Definition:
ButtonSource.h:19
CommandHandler
Definition:
CommandHandler.h:128
LocalButtons
Definition:
LocalButtons.h:18
LocalButtons::lastPulseTime
uint32_t lastPulseTime
Definition:
LocalButtons.h:26
LocalButtons::LocalButtons_commands
LocalButtons_commands
Definition:
LocalButtons.h:19
LocalButtons::LocalButtons_commands::pulse
@ pulse
LocalButtons::LocalButtons_commands::polarity
@ polarity
LocalButtons::LocalButtons_commands::pins
@ pins
LocalButtons::LocalButtons_commands::values
@ values
LocalButtons::LocalButtons_commands::mask
@ mask
LocalButtons::pulsemask
uint32_t pulsemask
Definition:
LocalButtons.h:24
LocalButtons::getButtonInputs
uint8_t getButtonInputs(uint64_t *buf, bool pol)
Definition:
LocalButtons.cpp:46
LocalButtons::maxButtons
static constexpr uint16_t maxButtons
Definition:
LocalButtons.h:42
LocalButtons::getHelpstring
std::string getHelpstring()
Definition:
LocalButtons.h:46
LocalButtons::button_pins
static const std::array< InputPin, BUTTON_PINS > button_pins
Definition:
LocalButtons.h:29
LocalButtons::saveFlash
void saveFlash()
Definition:
LocalButtons.cpp:86
LocalButtons::setMask
void setMask(uint32_t mask)
Definition:
LocalButtons.cpp:35
LocalButtons::readButton
static bool readButton(int button_num)
Definition:
LocalButtons.h:51
LocalButtons::~LocalButtons
virtual ~LocalButtons()
Definition:
LocalButtons.cpp:27
LocalButtons::info
static ClassIdentifier info
Definition:
LocalButtons.h:39
LocalButtons::readButtons
uint8_t readButtons(uint64_t *buf)
Definition:
LocalButtons.cpp:61
LocalButtons::command
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
Definition:
LocalButtons.cpp:112
LocalButtons::restoreFlash
void restoreFlash()
Definition:
LocalButtons.cpp:97
LocalButtons::isCreatable
static bool isCreatable()
Definition:
LocalButtons.h:40
LocalButtons::lastButtons
uint64_t lastButtons
Definition:
LocalButtons.h:31
LocalButtons::lastOutputs
uint64_t lastOutputs
Definition:
LocalButtons.h:30
LocalButtons::polarity
bool polarity
Definition:
LocalButtons.h:28
LocalButtons::getInfo
const ClassIdentifier getInfo()
Definition:
LocalButtons.cpp:31
LocalButtons::LocalButtons
LocalButtons()
Definition:
LocalButtons.cpp:15
LocalButtons::mask
uint32_t mask
Definition:
LocalButtons.h:23
LocalButtons::getClassType
const ClassType getClassType()
returns the used classchooser selection id of this instance
Definition:
LocalButtons.h:58
LocalButtons::pulseTimeout
static constexpr uint32_t pulseTimeout
Definition:
LocalButtons.h:25
constants.h
ClassIdentifier
Definition:
ChoosableClass.h:15
ParsedCommand
Definition:
CommandHandler.h:67
Firmware
FFBoard
UserExtensions
Inc
LocalButtons.h
Generated by
1.9.2