Open FFBoard
Open source force feedback firmware
SerialFFB.h
Go to the documentation of this file.
1/*
2 * SerialFFB.h
3 *
4 * Created on: 30.11.2022
5 * Author: Yannick
6 */
7
8#ifndef SRC_SERIALFFB_H_
9#define SRC_SERIALFFB_H_
10
11#include "CommandHandler.h"
12#include "EffectsCalculator.h"
13
18
19 enum class SerialEffects_commands : uint32_t {
21 };
22
23public:
24 SerialFFB(std::shared_ptr<EffectsCalculator> ec,uint8_t instance=0);
25 virtual ~SerialFFB();
26
27 CommandStatus command(const ParsedCommand& cmd,std::vector<CommandReply>& replies);
29
30 bool getFfbActive();
31
32 void reset_ffb();
33 void set_FFB(bool state);
34 void set_gain(uint8_t gain);
35
36 int32_t newEffect(uint8_t effectType);
37 void setMagnitude(uint8_t idx,int16_t magnitude);
38
39 void setEffectState(uint8_t id, bool state);
40
41private:
43 std::shared_ptr<EffectsCalculator> effects_calc;
44 std::array<FFB_Effect,EffectsCalculator::max_effects> &effects; // Direct access to effects calculator effect array
45
46 static constexpr FFB_Effect_Condition defaultCond = {
47 .cpOffset = 0,
48 .positiveCoefficient = 0x7fff,
49 .negativeCoefficient = 0x7fff,
50 .positiveSaturation = 0x7fff,
51 .negativeSaturation = 0x7fff,
52 .deadBand = 0
53 };
54};
55
56#endif /* SRC_SERIALFFB_H_ */
CommandStatus
int32_t newEffect(uint8_t effectType)
Definition: SerialFFB.cpp:76
void setMagnitude(uint8_t idx, int16_t magnitude)
Definition: SerialFFB.cpp:95
static ClassIdentifier info
Definition: SerialFFB.h:42
virtual ~SerialFFB()
Definition: SerialFFB.cpp:40
std::array< FFB_Effect, EffectsCalculator::max_effects > & effects
Definition: SerialFFB.h:44
bool getFfbActive()
Definition: SerialFFB.cpp:45
void setEffectState(uint8_t id, bool state)
Definition: SerialFFB.cpp:114
SerialFFB(std::shared_ptr< EffectsCalculator > ec, uint8_t instance=0)
Definition: SerialFFB.cpp:22
void set_gain(uint8_t gain)
Definition: SerialFFB.cpp:68
SerialEffects_commands
Definition: SerialFFB.h:19
static constexpr FFB_Effect_Condition defaultCond
Definition: SerialFFB.h:46
void set_FFB(bool state)
Definition: SerialFFB.cpp:62
const ClassIdentifier getInfo()
Command handlers always have class infos. Works well with ChoosableClass.
Definition: SerialFFB.cpp:15
std::shared_ptr< EffectsCalculator > effects_calc
Definition: SerialFFB.h:43
void reset_ffb()
Definition: SerialFFB.cpp:52
CommandStatus command(const ParsedCommand &cmd, std::vector< CommandReply > &replies)
Definition: SerialFFB.cpp:124