Open FFBoard
Open source force feedback firmware
CanAnalog.h
Go to the documentation of this file.
1/*
2 * CanAnalog.h
3 *
4 * Created on: 06.04.2022
5 * Author: Yannick
6 */
7
8#ifndef USEREXTENSIONS_SRC_CanAnalog_H_
9#define USEREXTENSIONS_SRC_CanAnalog_H_
10
11#include "constants.h"
12#ifdef CANANALOG
13
14#include "AnalogSource.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
22class CanAnalogBase : public AnalogSource, public CanHandler, public CommandHandler{
23public:
24 enum class CanAnalog_commands : uint32_t {
26 };
27
28 CanAnalogBase(uint8_t maxAxes = 8);
29 virtual ~CanAnalogBase();
30
33
34 void restoreFlash();
35 void saveFlash();
36
37 std::string getHelpstring(){return "4 16b axes per 64b packet";}
38
39
40 void setupCanPort();
41 void setAxisNum(uint8_t num);
42
43 CommandStatus command(const ParsedCommand& cmd,std::vector<CommandReply>& replies);
44
45 void canRxPendCallback(CANPort* port,CAN_rx_msg& msg) override;
46
47private:
48 uint32_t canId = 110;
49 int32_t filterId = -1;
51 uint8_t axes = 1;
52 const uint8_t maxAxes;
53 uint8_t packets = 1;
54};
55
59template<uint8_t AMOUNT>
61{
62public:
65};
66
67
68#endif
69#endif /* USEREXTENSIONS_SRC_CanAnalog_H_ */
CommandStatus
Definition: CAN.h:119
const uint8_t maxAxes
Definition: CanAnalog.h:52
uint32_t canId
Definition: CanAnalog.h:48
static ClassIdentifier info
Definition: CanAnalog.h:32
void setupCanPort()
Definition: CanAnalog.cpp:31
void restoreFlash()
Definition: CanAnalog.cpp:58
std::string getHelpstring()
Definition: CanAnalog.h:37
virtual ~CanAnalogBase()
Definition: CanAnalog.cpp:45
int32_t filterId
Definition: CanAnalog.h:49
const ClassIdentifier getInfo()
Definition: CanAnalog.cpp:16
void setAxisNum(uint8_t num)
Definition: CanAnalog.cpp:68
uint8_t packets
Definition: CanAnalog.h:53
void canRxPendCallback(CANPort *port, CAN_rx_msg &msg) override
Definition: CanAnalog.cpp:108
uint8_t axes
Definition: CanAnalog.h:51
void saveFlash()
Definition: CanAnalog.cpp:50
CANPort * port
Definition: CanAnalog.h:50
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
Definition: CanAnalog.cpp:77
CanAnalogBase(uint8_t maxAxes=8)
Definition: CanAnalog.cpp:20
CanAnalog()
Definition: CanAnalog.h:63
~CanAnalog()
Definition: CanAnalog.h:64
CANPort & canport
Definition: CAN.h:96