Open FFBoard
Open source force feedback firmware
AxesManager.h
Go to the documentation of this file.
1/*
2 * AxesManager.h
3 *
4 * Created on: 30.01.2021
5 * Author: Jon Lidgard
6 */
7
8#ifndef AXESMANAGER_H_
9#define AXESMANAGER_H_
10#include "Axis.h"
11//#include "PersistentStorage.h"
12#include "ffb_defs.h"
13
14#include "CmdParser.h"
15#include "vector"
16#include "map"
17#include <memory>
18
20
21
23{
24public:
25 AxesManager(volatile Control_t* control,std::shared_ptr<EffectsCalculator> calc);
26 virtual ~AxesManager();
27
28// static ClassIdentifier info;
29// const ClassIdentifier getInfo();
30
31// void setEffectsCalculator(EffectsCalculator *ec);
32// void saveFlash();
33// void restoreFlash();
34
35 uint8_t getAxisCount();
36 bool setAxisCount(int8_t count);
37 bool validAxisRange(uint8_t val);
38
39 void usbResume();
40 void usbSuspend();
41
42 void update();
43 void updateTorque();
44
45 std::vector<int32_t>* getAxisValues();
46
47 void emergencyStop(bool reset);
48 void resetPosZero();
49
50private:
51 volatile Control_t* control;
52 volatile bool *p_usb_disabled;
53 volatile bool *p_emergency;
54 std::shared_ptr<EffectsCalculator> effects_calc;
55 uint16_t axis_count = 0;
56 std::vector<std::unique_ptr<Axis>> axes;
57 std::vector<int32_t> axisValues = std::vector<int32_t>(1,0);
58
59 void deleteAxes();
60};
61
62#endif /* AXESMANAGER_H_ */
void usbResume()
void updateTorque()
Definition: AxesManager.cpp:50
std::shared_ptr< EffectsCalculator > effects_calc
Definition: AxesManager.h:54
std::vector< std::unique_ptr< Axis > > axes
Definition: AxesManager.h:56
void emergencyStop(bool reset)
Definition: AxesManager.cpp:69
virtual ~AxesManager()
Definition: AxesManager.cpp:28
bool setAxisCount(int8_t count)
Definition: AxesManager.cpp:81
volatile bool * p_emergency
Definition: AxesManager.h:53
void deleteAxes()
Definition: AxesManager.cpp:32
std::vector< int32_t > axisValues
Definition: AxesManager.h:57
void usbSuspend()
volatile Control_t * control
Definition: AxesManager.h:51
AxesManager(volatile Control_t *control, std::shared_ptr< EffectsCalculator > calc)
Definition: AxesManager.cpp:24
void resetPosZero()
uint16_t axis_count
Definition: AxesManager.h:55
uint8_t getAxisCount()
Definition: AxesManager.cpp:75
std::vector< int32_t > * getAxisValues()
Definition: AxesManager.cpp:57
void update()
Definition: AxesManager.cpp:42
bool validAxisRange(uint8_t val)
Definition: AxesManager.cpp:77
volatile bool * p_usb_disabled
Definition: AxesManager.h:52
Definition: Axis.h:38