Open FFBoard
Open source force feedback firmware
CanButtons.h
Go to the documentation of this file.
1/*
2 * CanButtons.h
3 *
4 * Created on: 06.04.2022
5 * Author: Yannick
6 */
7
8#ifndef USEREXTENSIONS_SRC_CANBUTTONS_H_
9#define USEREXTENSIONS_SRC_CANBUTTONS_H_
10
11#include "constants.h"
12#ifdef CANBUTTONS
13
14#include "ButtonSource.h"
15#include "PersistentStorage.h"
16#include "CAN.h"
17#include "CanHandler.h"
18#include "CommandHandler.h"
19#include "cpp_target_config.h"
20
21//class CanHandler;
22class CanButtons : public ButtonSource, public CanHandler, public CommandHandler {
23public:
24 enum class CanButtons_commands : uint32_t {
26 };
27
28 CanButtons();
29 virtual ~CanButtons();
30
33
34 void restoreFlash();
35 void saveFlash();
36
37 uint8_t readButtons(uint64_t* buf);
38 void setupCanPort();
39 void setBtnNum(uint8_t num);
40
41 CommandStatus command(const ParsedCommand& cmd,std::vector<CommandReply>& replies);
42
43 void canRxPendCallback(CANPort* port,CAN_rx_msg& msg) override;
44
45private:
46 bool invert = false;
47 uint32_t canId = 100;
48 int32_t filterId = -1;
50 uint64_t mask = 0xff;
51
52 volatile uint64_t currentButtons = 0;
53};
54
55
56#endif
57#endif /* USEREXTENSIONS_SRC_CANBUTTONS_H_ */
CommandStatus
Definition: CAN.h:119
volatile uint64_t currentButtons
Definition: CanButtons.h:52
int32_t filterId
Definition: CanButtons.h:48
uint64_t mask
Definition: CanButtons.h:50
void setBtnNum(uint8_t num)
Definition: CanButtons.cpp:84
virtual ~CanButtons()
Definition: CanButtons.cpp:58
CanButtons_commands
Definition: CanButtons.h:24
void setupCanPort()
Definition: CanButtons.cpp:31
uint8_t readButtons(uint64_t *buf)
Definition: CanButtons.cpp:95
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
Definition: CanButtons.cpp:105
const ClassIdentifier getInfo()
Definition: CanButtons.cpp:16
bool invert
Definition: CanButtons.h:46
void restoreFlash()
Definition: CanButtons.cpp:72
static ClassIdentifier info
Definition: CanButtons.h:32
void canRxPendCallback(CANPort *port, CAN_rx_msg &msg) override
Definition: CanButtons.cpp:135
uint32_t canId
Definition: CanButtons.h:47
CANPort * port
Definition: CanButtons.h:49
void saveFlash()
Definition: CanButtons.cpp:63
CANPort & canport
Definition: CAN.h:96