Open FFBoard
Open source force feedback firmware
Loading...
Searching...
No Matches
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
32 static ClassIdentifier info;
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:120
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)
virtual ~CanButtons()
void setupCanPort()
uint8_t readButtons(uint64_t *buf)
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
const ClassIdentifier getInfo()
bool invert
Definition CanButtons.h:46
void restoreFlash()
void canRxPendCallback(CANPort *port, CAN_rx_msg &msg) override
uint32_t canId
Definition CanButtons.h:47
CANPort * port
Definition CanButtons.h:49
void saveFlash()
CommandHandler(const char *clsname, uint16_t clsid, uint8_t instance=0)
CANPort & canport