Open FFBoard
Open source force feedback firmware
TMCDebugBridge Class Reference

#include <TMCDebugBridge.h>

Inheritance diagram for TMCDebugBridge:
FFBoardMain ChoosableClass CommandHandler

Public Member Functions

 TMCDebugBridge ()
 
virtual ~TMCDebugBridge ()
 
const ClassIdentifier getInfo ()
 
void cdcRcv (char *Buf, uint32_t *Len)
 
CommandStatus command (const ParsedCommand &cmd, std::vector< CommandReply > &replies)
 
void registerCommands ()
 
std::string getHelpstring ()
 
- Public Member Functions inherited from FFBoardMain
const ClassType getClassType () override
 returns the used classchooser selection id of this instance More...
 
 FFBoardMain ()
 
virtual ~FFBoardMain ()
 
virtual void usbInit ()
 
virtual void update ()
 
virtual void cdcRcvReady (uint8_t itf)
 
virtual void usbSuspend ()
 
virtual void usbResume ()
 
- Public Member Functions inherited from ChoosableClass
virtual ~ChoosableClass ()
 
uint16_t getSelectionID ()
 
- Public Member Functions inherited from CommandHandler
 CommandHandler (const char *clsname, uint16_t clsid, uint8_t instance=0)
 
virtual ~CommandHandler ()
 
virtual bool hasCommands ()
 
virtual void setCommandsEnabled (bool enable)
 
void registerCommands ()
 
virtual CommandStatus internalCommand (const ParsedCommand &cmd, std::vector< CommandReply > &replies)
 
virtual std::string getCommandsHelpstring ()
 
virtual std::string getCsvHelpstring ()
 
virtual uint8_t getCommandHandlerInstance ()
 
void broadcastCommandReply (CommandReply reply, uint32_t cmdId, CMDtype type)
 
void sendCommandReplyAsync (CommandReply reply, uint32_t cmdId, CMDtype type, CommandInterface *interface=nullptr)
 
virtual uint16_t getCommandHandlerID ()
 
virtual CmdHandlerInfogetCommandHandlerInfo ()
 
virtual bool isValidCommandId (uint32_t cmdid, uint32_t ignoredFlags=0, uint32_t requiredFlag=0)
 
virtual CmdHandlerCommanddefgetCommandFromName (const std::string &cmd, uint32_t ignoredFlags=0)
 
virtual CmdHandlerCommanddefgetCommandFromId (const uint32_t id, uint32_t ignoredFlags=0)
 
template<typename ID >
void registerCommand (const char *cmd, const ID cmdid, const char *help=nullptr, uint32_t flags=0)
 

Static Public Member Functions

static bool isCreatable ()
 
- Static Public Member Functions inherited from FFBoardMain
static bool isCreatable ()
 
- Static Public Member Functions inherited from ChoosableClass
static bool isCreatable ()
 
- Static Public Member Functions inherited from CommandHandler
static void logSerial (std::string string)
 Send a log formatted sequence. More...
 
static void logSerialDebug (std::string string)
 Send a log formatted sequence if debug is on. More...
 
static bool logsEnabled ()
 
static void setLogsEnabled (bool enabled)
 
static uint32_t getClassIdFromName (const char *name)
 
static const char * getClassNameFromId (const uint32_t id)
 
static CommandHandlergetHandlerFromHandlerId (const uint16_t cmdhandlerID)
 
static CommandHandlergetHandlerFromId (const uint16_t id, const uint8_t instance=0xFF)
 
static CommandHandlergetHandlerFromClassName (const char *name, const uint8_t instance=0xFF)
 
static std::vector< CommandHandler * > getHandlersFromClassName (const char *name)
 
static std::vector< CommandHandler * > getHandlersFromId (const uint16_t id)
 
static bool isInHandlerList (CommandHandler *handler)
 
static std::string getAllHelpstrings ()
 
static std::vector< CommandHandler * > & getCommandHandlers ()
 
template<typename TVal >
static CommandStatus handleGetSet (const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal &value)
 
template<typename TVal , class cls , class cls1 >
static CommandStatus handleGetSetFunc (const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal &value, void(cls1::*setfunc)(TVal), cls *obj)
 
template<typename TVal , class cls , class cls1 , class cls2 >
static CommandStatus handleGetFuncSetFunc (const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal(cls1::*getfunc)(), void(cls2::*setfunc)(TVal), cls *obj)
 
template<typename TVal , class cls , class cls1 >
static CommandStatus handleGetFuncSet (const ParsedCommand &cmd, std::vector< CommandReply > &replies, TVal &value, TVal(cls1::*getfunc)(), cls *obj)
 

Static Public Attributes

static ClassIdentifier info
 
- Static Public Attributes inherited from FFBoardMain
static ClassIdentifier info ={.name = "Basic (Failsafe)" ,.id=0}
 
- Static Public Attributes inherited from ChoosableClass
static ClassIdentifier info
 
- Static Public Attributes inherited from CommandHandler
static bool logEnabled = true
 

Private Types

enum class  TMCDebugBridge_commands : uint32_t {
  torque , pos , openloopspeed , velocity ,
  mode , reg , openloopspeedpwm
}
 

Private Member Functions

uint8_t checksum (std::vector< uint8_t > *buffer, uint8_t len)
 
HAL_StatusTypeDef SPI_transmit_receive (uint8_t *tx_data, uint8_t *rx_data, uint16_t len, uint32_t timeout)
 

Static Private Member Functions

static void sendCdc (char *dat, uint32_t len)
 

Private Attributes

const TMC4671PIDConf tmcpids
 
const TMC4671Limits tmclimits
 
std::unique_ptr< TMC4671drv
 

Additional Inherited Members

- Public Attributes inherited from FFBoardMain
std::unique_ptr< FFBoardMainCommandThreadcommandThread
 
std::unique_ptr< CDC_CommandInterfacecdcCmdInterface = std::make_unique<CDC_CommandInterface>()
 
ErrorPrinter errorPrinter
 
SystemCommands systemCommands
 System command handler. More...
 
std::unique_ptr< UART_CommandInterfaceuartCmdInterface = std::make_unique<UART_CommandInterface>(115200)
 
- Protected Member Functions inherited from CommandHandler
void setInstance (uint8_t instance)
 
virtual void addCommandHandler ()
 
virtual void removeCommandHandler ()
 
- Static Protected Member Functions inherited from CommandHandler
static std::vector< uint16_t > & getCommandHandlerIds ()
 
- Protected Attributes inherited from FFBoardMain
std::unique_ptr< USBdeviceusbdev
 
- Protected Attributes inherited from ChoosableClass
uint16_t selectionId
 Should only be written by ClassChooser during creation. More...
 
- Protected Attributes inherited from CommandHandler
bool commandsEnabled = true
 
std::vector< CmdHandlerCommanddefregisteredCommands
 
CmdHandlerInfo cmdHandlerInfo
 
- Static Protected Attributes inherited from FFBoardMain
static char cdcbuf []
 

Detailed Description

Definition at line 24 of file TMCDebugBridge.h.

Member Enumeration Documentation

◆ TMCDebugBridge_commands

enum class TMCDebugBridge::TMCDebugBridge_commands : uint32_t
strongprivate
Enumerator
torque 
pos 
openloopspeed 
velocity 
mode 
reg 
openloopspeedpwm 

Definition at line 25 of file TMCDebugBridge.h.

Constructor & Destructor Documentation

◆ TMCDebugBridge()

TMCDebugBridge::TMCDebugBridge ( )

Definition at line 236 of file TMCDebugBridge.cpp.

◆ ~TMCDebugBridge()

TMCDebugBridge::~TMCDebugBridge ( )
virtual

Definition at line 254 of file TMCDebugBridge.cpp.

Member Function Documentation

◆ cdcRcv()

void TMCDebugBridge::cdcRcv ( char *  Buf,
uint32_t *  Len 
)
virtual

Called when data is received on the CDC port

Reimplemented from FFBoardMain.

Definition at line 133 of file TMCDebugBridge.cpp.

◆ checksum()

uint8_t TMCDebugBridge::checksum ( std::vector< uint8_t > *  buffer,
uint8_t  len 
)
private

Definition at line 25 of file TMCDebugBridge.cpp.

◆ command()

CommandStatus TMCDebugBridge::command ( const ParsedCommand cmd,
std::vector< CommandReply > &  replies 
)
virtual
Parameters
[in]cmdThe parsed command to be executed.
[out]repliesA vector to return one or multiple reply objects into. Replies to the interface will be generated based on the reply objects. A string reply may not contain start, end and separation markers: [,],| Other characters are allowed.

Reimplemented from FFBoardMain.

Definition at line 47 of file TMCDebugBridge.cpp.

◆ getHelpstring()

std::string TMCDebugBridge::getHelpstring ( )
inlinevirtual

Returns a description of this class

Reimplemented from FFBoardMain.

Definition at line 40 of file TMCDebugBridge.h.

◆ getInfo()

const ClassIdentifier TMCDebugBridge::getInfo ( )
virtual

Reimplemented from FFBoardMain.

Definition at line 21 of file TMCDebugBridge.cpp.

◆ isCreatable()

static bool TMCDebugBridge::isCreatable ( )
inlinestatic

Definition at line 35 of file TMCDebugBridge.h.

◆ registerCommands()

void TMCDebugBridge::registerCommands ( )

Definition at line 34 of file TMCDebugBridge.cpp.

◆ sendCdc()

void TMCDebugBridge::sendCdc ( char *  dat,
uint32_t  len 
)
staticprivate

Definition at line 128 of file TMCDebugBridge.cpp.

◆ SPI_transmit_receive()

HAL_StatusTypeDef TMCDebugBridge::SPI_transmit_receive ( uint8_t *  tx_data,
uint8_t *  rx_data,
uint16_t  len,
uint32_t  timeout 
)
private

Member Data Documentation

◆ drv

std::unique_ptr<TMC4671> TMCDebugBridge::drv
private

Definition at line 65 of file TMCDebugBridge.h.

◆ info

ClassIdentifier TMCDebugBridge::info
static
Initial value:
= {
.name = "TMC Debug Bridge" ,
.id=CLSID_MAIN_TMCDBG,
.visibility = ClassVisibility::debug
}

Definition at line 33 of file TMCDebugBridge.h.

◆ tmclimits

const TMC4671Limits TMCDebugBridge::tmclimits
private
Initial value:
.pid_torque_flux_ddt = 32767,
.pid_uq_ud = 30000,
.pid_torque_flux = 32767,
.pid_acc_lim = 50,
.pid_vel_lim = 2147483647,
.pid_pos_low = -2147483647,
.pid_pos_high = 2147483647
})

Definition at line 55 of file TMCDebugBridge.h.

◆ tmcpids

const TMC4671PIDConf TMCDebugBridge::tmcpids
private
Initial value:
.fluxI = 400,
.fluxP = 400,
.torqueI = 400,
.torqueP = 300,
.velocityI = 10,
.velocityP = 500,
.positionI = 0,
.positionP = 40,
.sequentialPI = true})

Definition at line 44 of file TMCDebugBridge.h.


The documentation for this class was generated from the following files: