Open FFBoard
Open source force feedback firmware
MotorDriver.cpp
Go to the documentation of this file.
1/*
2 * MotorDriver.cpp
3 *
4 * Created on: Feb 1, 2020
5 * Author: Yannick
6 */
7
8#include <ODriveCAN.h>
9#include "MotorDriver.h"
10#include "ClassChooser.h"
11
12#include "TMC4671.h"
13#include "MotorPWM.h"
14#include "VescCAN.h"
15#include "MotorSimplemotion.h"
16#include "RmdMotorCAN.h"
17
18ClassIdentifier MotorDriver::info ={.name = "None" , .id=CLSID_MOT_NONE, .visibility = ClassVisibility::visible};
19
24const std::vector<class_entry<MotorDriver>> MotorDriver::all_drivers =
25{
26 add_class<MotorDriver, MotorDriver>(0),
27
28#ifdef TMC4671DRIVER
29
30// add_class<TMC4671, MotorDriver>(),
31 add_class<TMC_1, MotorDriver>(1),
32 add_class<TMC_2, MotorDriver>(2),
33// add_class<TMC_3, MotorDriver>(),
34#endif
35#ifdef PWMDRIVER
36 add_class<MotorPWM, MotorDriver>(4),
37#endif
38#ifdef ODRIVE
39 add_class<ODriveCAN1,MotorDriver>(5),
40 add_class<ODriveCAN2,MotorDriver>(6),
41#endif
42#ifdef VESC
43 add_class<VESC_1,MotorDriver>(7),
44 add_class<VESC_2,MotorDriver>(8),
45#endif
46#ifdef SIMPLEMOTION
47 add_class<MotorSimplemotion1,MotorDriver>(9),
48 add_class<MotorSimplemotion2,MotorDriver>(10),
49#endif
50#ifdef RMDCAN
51 add_class<RmdMotorCAN1,MotorDriver>(11),
52 add_class<RmdMotorCAN2,MotorDriver>(12),
53#endif
54};
55
61 if(reset){
62 startMotor();
63 }else{
64 stopMotor();
65 }
66}
67
69 return true;
70}
71
76 return false;
77}
78
79
81 return info;
82}
83
84
90void MotorDriver::turn(int16_t val){
91
92}
93
98
99}
104 turn(0);
105}
106
112 return this->drvEncoder.get();
113}
virtual void turn(int16_t power)
Definition: MotorDriver.cpp:90
const ClassIdentifier getInfo()
Definition: MotorDriver.cpp:80
virtual bool motorReady()
Definition: MotorDriver.cpp:68
virtual void emergencyStop(bool reset=false)
Definition: MotorDriver.cpp:60
virtual void startMotor()
Definition: MotorDriver.cpp:97
static ClassIdentifier info
Definition: MotorDriver.h:21
virtual bool hasIntegratedEncoder()
Definition: MotorDriver.cpp:75
static const std::vector< class_entry< MotorDriver > > all_drivers
Definition: MotorDriver.h:25
std::shared_ptr< Encoder > drvEncoder
Definition: MotorDriver.h:46
virtual Encoder * getEncoder()
virtual void stopMotor()
const char * name