Open FFBoard
Open source force feedback firmware
CanButtons Class Reference

#include <CanButtons.h>

Inheritance diagram for CanButtons:
ButtonSource CanHandler CommandHandler ChoosableClass PersistentStorage

Public Types

enum class  CanButtons_commands : uint32_t { btnnum , invert , canid }
 

Public Member Functions

 CanButtons ()
 
virtual ~CanButtons ()
 
const ClassIdentifier getInfo ()
 
void restoreFlash ()
 
void saveFlash ()
 
uint8_t readButtons (uint64_t *buf)
 
void setupCanPort ()
 
void setBtnNum (uint8_t num)
 
CommandStatus command (const ParsedCommand &cmd, std::vector< CommandReply > &replies)
 
void canRxPendCallback (CANPort *port, CAN_rx_msg &msg) override
 
- Public Member Functions inherited from ButtonSource
 ButtonSource ()
 
virtual ~ButtonSource ()
 
virtual uint16_t getBtnNum ()
 
virtual const ClassType getClassType ()
 returns the used classchooser selection id of this instance More...
 
- Public Member Functions inherited from ChoosableClass
virtual ~ChoosableClass ()
 
uint16_t getSelectionID ()
 
- Public Member Functions inherited from PersistentStorage
 PersistentStorage ()
 
virtual ~PersistentStorage ()
 
void restoreFlashDelayed ()
 
- Public Member Functions inherited from CanHandler
 CanHandler ()
 
virtual ~CanHandler ()
 
virtual void canErrorCallback (CANPort *port, uint32_t errcode)
 
virtual void canRxFullCallback (CANPort *port, uint32_t fifo)
 
virtual void canTxCpltCallback (CANPort *port, uint32_t mailbox)
 
virtual void canTxAbortCallback (CANPort *port, uint32_t mailbox)
 
- Public Member Functions inherited from CommandHandler
virtual const ClassType getClassType ()
 
 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 getHelpstring ()
 
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 Attributes

static ClassIdentifier info
 
- Static Public Attributes inherited from ButtonSource
static ClassIdentifier info
 
static const std::vector< class_entry< ButtonSource > > all_buttonsources
 
- Static Public Attributes inherited from ChoosableClass
static ClassIdentifier info
 
- Static Public Attributes inherited from CommandHandler
static bool logEnabled = true
 

Private Attributes

bool invert = false
 
uint32_t canId = 100
 
int32_t filterId = -1
 
CANPortport = &canport
 
uint64_t mask = 0xff
 
volatile uint64_t currentButtons = 0
 

Additional Inherited Members

- Static Public Member Functions inherited from ButtonSource
static bool isCreatable ()
 
- Static Public Member Functions inherited from ChoosableClass
static bool isCreatable ()
 
- Static Public Member Functions inherited from PersistentStorage
static std::vector< PersistentStorage * > & getFlashHandlers ()
 
static void restoreFlashStartupCb ()
 
- Static Public Member Functions inherited from CanHandler
static std::vector< CanHandler * > & getCANHandlers ()
 
- 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)
 
- 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 ButtonSource
uint16_t btnnum = 0
 
- Protected Attributes inherited from ChoosableClass
uint16_t selectionId
 Should only be written by ClassChooser during creation. More...
 
- Protected Attributes inherited from PersistentStorage
bool restoreDelayedFlag = false
 
- Protected Attributes inherited from CommandHandler
bool commandsEnabled = true
 
std::vector< CmdHandlerCommanddefregisteredCommands
 
CmdHandlerInfo cmdHandlerInfo
 
- Static Protected Attributes inherited from PersistentStorage
static bool startupComplete = false
 

Detailed Description

Definition at line 22 of file CanButtons.h.

Member Enumeration Documentation

◆ CanButtons_commands

enum class CanButtons::CanButtons_commands : uint32_t
strong
Enumerator
btnnum 
invert 
canid 

Definition at line 24 of file CanButtons.h.

Constructor & Destructor Documentation

◆ CanButtons()

CanButtons::CanButtons ( )

Definition at line 20 of file CanButtons.cpp.

◆ ~CanButtons()

CanButtons::~CanButtons ( )
virtual

Definition at line 58 of file CanButtons.cpp.

Member Function Documentation

◆ canRxPendCallback()

void CanButtons::canRxPendCallback ( CANPort port,
CAN_rx_msg msg 
)
overridevirtual

New message received in fifo number

Reimplemented from CanHandler.

Definition at line 135 of file CanButtons.cpp.

◆ command()

CommandStatus CanButtons::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 CommandHandler.

Definition at line 105 of file CanButtons.cpp.

◆ getInfo()

const ClassIdentifier CanButtons::getInfo ( )
virtual

Implements ButtonSource.

Definition at line 16 of file CanButtons.cpp.

◆ readButtons()

uint8_t CanButtons::readButtons ( uint64_t *  buf)
virtual

Return a bit field without offset of pressed buttons in the supplied buffer. Returns amount of button read.

Implements ButtonSource.

Definition at line 95 of file CanButtons.cpp.

◆ restoreFlash()

void CanButtons::restoreFlash ( )
virtual

Should be implemented to restore settings. This is not automatically called and should be called when appropriate.

Reimplemented from PersistentStorage.

Definition at line 72 of file CanButtons.cpp.

◆ saveFlash()

void CanButtons::saveFlash ( )
virtual

Called when the user uses the "save" command and presses the save button in the configurator Automatically called by the command parser thread for every class that inherits from PersistentStorage

Reimplemented from PersistentStorage.

Definition at line 63 of file CanButtons.cpp.

◆ setBtnNum()

void CanButtons::setBtnNum ( uint8_t  num)

Definition at line 84 of file CanButtons.cpp.

◆ setupCanPort()

void CanButtons::setupCanPort ( )

Definition at line 31 of file CanButtons.cpp.

Member Data Documentation

◆ canId

uint32_t CanButtons::canId = 100
private

Definition at line 47 of file CanButtons.h.

◆ currentButtons

volatile uint64_t CanButtons::currentButtons = 0
private

Definition at line 52 of file CanButtons.h.

◆ filterId

int32_t CanButtons::filterId = -1
private

Definition at line 48 of file CanButtons.h.

◆ info

ClassIdentifier CanButtons::info
static
Initial value:
= {
.name = "CAN Buttons" ,
.id=CLSID_BTN_CAN,
}

Definition at line 32 of file CanButtons.h.

◆ invert

bool CanButtons::invert = false
private

Definition at line 46 of file CanButtons.h.

◆ mask

uint64_t CanButtons::mask = 0xff
private

Definition at line 50 of file CanButtons.h.

◆ port

CANPort* CanButtons::port = &canport
private

Definition at line 49 of file CanButtons.h.


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