-
-
Notifications
You must be signed in to change notification settings - Fork 160
Expand file tree
/
Copy pathAxesManager.h
More file actions
63 lines (48 loc) · 1.18 KB
/
AxesManager.h
File metadata and controls
63 lines (48 loc) · 1.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
* AxesManager.h
*
* Created on: 30.01.2021
* Author: Jon Lidgard
*/
#ifndef AXESMANAGER_H_
#define AXESMANAGER_H_
#include "Axis.h"
//#include "PersistentStorage.h"
#include "ffb_defs.h"
#include "CmdParser.h"
#include "vector"
#include "map"
#include <memory>
class EffectsCalculator;
class AxesManager
{
public:
AxesManager(volatile Control_t* control);
virtual ~AxesManager();
// static ClassIdentifier info;
// const ClassIdentifier getInfo();
void setEffectsCalculator(EffectsCalculator *ec);
// void saveFlash();
// void restoreFlash();
uint8_t getAxisCount();
bool setAxisCount(int8_t count);
bool validAxisRange(uint8_t val);
void usbResume();
void usbSuspend();
void update();
void updateTorque();
std::vector<int32_t>* getAxisValues();
void emergencyStop(bool reset);
void resetPosZero();
void cfEffectsFreqToEffectsCalc(uint16_t freq);
private:
volatile Control_t* control;
volatile bool *p_usb_disabled;
volatile bool *p_emergency;
EffectsCalculator *effects_calc;
uint16_t axis_count = 0;
std::vector<std::unique_ptr<Axis>> axes;
std::vector<int32_t> axisValues = std::vector<int32_t>(1,0);
void deleteAxes();
};
#endif /* AXESMANAGER_H_ */