![]() |
Open FFBoard
Open source force feedback firmware
|
#include <FFBHIDMain.h>
Classes | |
| struct | FFB_update_rates |
Public Member Functions | |
| FFBHIDMain (uint8_t axisCount, bool hidAxis32b=false) | |
| virtual | ~FFBHIDMain () |
| void | setFFBEffectsCalc (std::shared_ptr< EffectsControlItf > ffb, std::shared_ptr< EffectsCalculator > effects_calc) |
| const ClassIdentifier | getInfo ()=0 |
| CommandStatus | command (const ParsedCommand &cmd, std::vector< CommandReply > &replies) |
| void | registerCommands () |
| virtual std::string | getHelpstring () |
| virtual void | usbInit ()=0 |
| void | usbSuspend () |
| void | usbResume () |
| void | saveFlash () |
| void | restoreFlash () |
| void | Run () |
| void | updateControl () |
| void | emergencyStop (bool reset) |
| uint32_t | getRate () |
| bool | getFfbActive () |
| void | exti (uint16_t GPIO_Pin) |
| void | errorCallback (const Error &error, bool cleared) |
| void | systick () |
| void | timerElapsed (TIM_HandleTypeDef *htim) |
| float | getCurFFBFreq () |
Public Member Functions inherited from FFBoardMain | |
| const ClassType | getClassType () override |
| returns the used classchooser selection id of this instance | |
| FFBoardMain () | |
| virtual | ~FFBoardMain () |
| virtual void | update () |
| virtual void | cdcRcv (char *Buf, uint32_t *Len) |
| virtual void | cdcRcvReady (uint8_t itf) |
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 CmdHandlerInfo * | getCommandHandlerInfo () |
| virtual bool | isValidCommandId (uint32_t cmdid, uint32_t ignoredFlags=0, uint32_t requiredFlag=0) |
| virtual CmdHandlerCommanddef * | getCommandFromName (const std::string &cmd, uint32_t ignoredFlags=0) |
| virtual CmdHandlerCommanddef * | getCommandFromId (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) |
| virtual void | postCmdhandlerInit () |
| template<typename ID> | |
| void | overrideCommandFlags (const ID cmdid, uint32_t flagmask=0) |
Public Member Functions inherited from cpp_freertos::Thread | |
| Thread (const std::string Name, uint16_t StackDepth, UBaseType_t Priority) | |
| Thread (const char *Name, uint16_t StackDepth, UBaseType_t Priority) | |
| Thread (uint16_t StackDepth, UBaseType_t Priority) | |
| bool | Start () |
| virtual | ~Thread () |
| TaskHandle_t | GetHandle () |
| void | Suspend () |
| void | Resume () |
| void | ResumeFromISR () |
| void | Notify () |
| void | NotifyFromISR () |
| uint32_t | WaitForNotification (TickType_t Timeout=portMAX_DELAY) |
| UBaseType_t | GetPriority () |
| UBaseType_t | GetPriorityFromISR () |
| void | SetPriority (UBaseType_t NewPriority) |
| std::string | GetName () |
| char * | GetName () |
Public Member Functions inherited from UsbHidHandler | |
| UsbHidHandler () | |
| virtual | ~UsbHidHandler () |
| virtual void | hidOut (uint8_t report_id, hid_report_type_t report_type, uint8_t const *buffer, uint16_t bufsize) |
| virtual uint16_t | hidGet (uint8_t report_id, hid_report_type_t report_type, uint8_t *buffer, uint16_t reqlen) |
| void | registerHidCallback () |
| void | transferComplete (uint8_t itf, uint8_t const *report, uint8_t len) |
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. | |
| static void | logSerialDebug (std::string string) |
| Send a log formatted sequence if debug is on. | |
| static bool | logsEnabled () |
| static void | setLogsEnabled (bool enabled) |
| static uint32_t | getClassIdFromName (const char *name) |
| static const char * | getClassNameFromId (const uint32_t id) |
| static CommandHandler * | getHandlerFromHandlerId (const uint16_t cmdhandlerID) |
| static CommandHandler * | getHandlerFromId (const uint16_t id, const uint8_t instance=0xFF) |
| static CommandHandler * | getHandlerFromClassName (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 Member Functions inherited from cpp_freertos::Thread | |
| static void | Yield () |
| static void | StartScheduler () |
| static void | EndScheduler () |
Static Public Member Functions inherited from UsbHidHandler | |
| static void | setHidDesc (const uint8_t *desc) |
| static const uint8_t * | getHidDesc () |
Protected Attributes | |
| std::shared_ptr< EffectsControlItf > | ffb |
| std::shared_ptr< EffectsCalculator > | effects_calc |
| uint8_t | axisCount =0 |
Protected Attributes inherited from FFBoardMain | |
| std::unique_ptr< USBdevice > | usbdev |
Protected Attributes inherited from ChoosableClass | |
| uint16_t | selectionId |
| Should only be written by ClassChooser during creation. | |
Protected Attributes inherited from CommandHandler | |
| bool | commandsEnabled = true |
| std::vector< CmdHandlerCommanddef > | registeredCommands |
| CmdHandlerInfo | cmdHandlerInfo |
Private Types | |
| enum class | FFBWheel_commands : uint32_t { ffbactive , axes , btntypes , lsbtn , addbtn , aintypes , lsain , addain , hidrate , hidsendspd , estop , cfrate } |
Private Member Functions | |
| void | send_report () |
| void | setReportRate (uint8_t rateidx) |
| std::string | usb_report_rates_names () |
Private Member Functions inherited from PersistentStorage | |
| PersistentStorage () | |
| virtual | ~PersistentStorage () |
| void | restoreFlashDelayed () |
Private Member Functions inherited from ExtiHandler | |
| ExtiHandler () | |
| virtual | ~ExtiHandler () |
Private Member Functions inherited from ErrorHandler | |
| ErrorHandler () | |
| virtual | ~ErrorHandler () |
Private Member Functions inherited from SelectableInputs | |
| SelectableInputs (const ClassChooser< ButtonSource > &btn_chooser, const ClassChooser< AnalogSource > &analog_chooser) | |
| virtual | ~SelectableInputs () |
| virtual void | setBtnTypes (uint16_t btntypes) |
| virtual void | addBtnType (uint16_t id) |
| virtual void | clearBtnTypes () |
| virtual void | setAinTypes (uint16_t aintypes) |
| virtual void | addAinType (uint16_t id) |
| virtual void | clearAinTypes () |
| virtual uint8_t | getButtonValues (uint64_t &values) |
| virtual std::vector< int32_t > * | getAnalogValues () |
Private Member Functions inherited from TimerHandler | |
| TimerHandler () | |
| virtual | ~TimerHandler () |
Static Private Attributes | |
| static const FFB_update_rates | ffbrates |
Static Private Attributes inherited from PersistentStorage | |
| static bool | startupComplete = false |
Static Private Attributes inherited from ExtiHandler | |
| static std::vector< ExtiHandler * > | extiHandlers |
Static Private Attributes inherited from ErrorHandler | |
| static std::vector< ErrorHandler * > | errorHandlers |
| static std::array< Error, ERRORHANDLER_MAXERRORS > | errors |
Static Private Attributes inherited from TimerHandler | |
| static std::vector< TimerHandler * > | timerHandlers |
Additional Inherited Members | |
Public Attributes inherited from FFBoardMain | |
| std::unique_ptr< FFBoardMainCommandThread > | commandThread |
| std::unique_ptr< CDC_CommandInterface > | cdcCmdInterface = std::make_unique<CDC_CommandInterface>() |
| ErrorPrinter | errorPrinter |
| SystemCommands | systemCommands |
| System command handler. | |
| std::unique_ptr< UART_CommandInterface > | uartCmdInterface = std::make_unique<UART_CommandInterface>(115200) |
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 |
Static Public Attributes inherited from UsbHidHandler | |
| static UsbHidHandler * | globalHidHandler = nullptr |
| static uint8_t * | hid_desc = nullptr |
Protected Member Functions inherited from CommandHandler | |
| void | setInstance (uint8_t instance) |
| virtual void | addCommandHandler () |
| virtual void | removeCommandHandler () |
| void | registerCommand_INT (const char *cmd, const uint32_t cmdid, const char *help=nullptr, uint32_t flags=0) |
| void | overrideCommandFlags_INT (const uint32_t cmdid, uint32_t flagmask=CMDFLAG_GET|CMDFLAG_GETADR) |
Protected Member Functions inherited from cpp_freertos::Thread | |
| virtual void | Cleanup () |
| void | Delay (const TickType_t Delay) |
| void | DelayUntil (const TickType_t Period) |
| void | ResetDelayUntil () |
| bool | Wait (ConditionVariable &Cv, Mutex &CvLock, TickType_t Timeout=portMAX_DELAY) |
Static Protected Member Functions inherited from CommandHandler | |
| static std::vector< uint16_t > & | getCommandHandlerIds () |
Static Protected Attributes inherited from FFBoardMain | |
| static char | cdcbuf [] |
Static Private Member Functions inherited from PersistentStorage | |
| static std::vector< PersistentStorage * > & | getFlashHandlers () |
| static void | restoreFlashStartupCb () |
Static Private Member Functions inherited from ErrorHandler | |
| static void | addError (const Error &error) |
| static void | clearError (const Error &error) |
| static void | clearError (ErrorCode errorcode) |
| static void | clearTemp () |
| static void | clearAll () |
| static std::span< Error > | getErrors () |
| static void | sortErrors () |
Definition at line 36 of file FFBHIDMain.h.
|
strongprivate |
| Enumerator | |
|---|---|
| ffbactive | |
| axes | |
| btntypes | |
| lsbtn | |
| addbtn | |
| aintypes | |
| lsain | |
| addain | |
| hidrate | |
| hidsendspd | |
| estop | |
| cfrate | |
Definition at line 41 of file FFBHIDMain.h.
| FFBHIDMain::FFBHIDMain | ( | uint8_t | axisCount, |
| bool | hidAxis32b = false ) |
setFFBEffectsCalc must be called in constructor of derived class to finish the setup
Definition at line 31 of file FFBHIDMain.cpp.
|
virtual |
Definition at line 62 of file FFBHIDMain.cpp.
|
virtual |
| [in] | cmd | The parsed command to be executed. |
| [out] | replies | A 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 32 of file FFBHIDMain_commmands.cpp.
| void FFBHIDMain::emergencyStop | ( | bool | reset | ) |
Definition at line 297 of file FFBHIDMain.cpp.
|
virtual |
Reimplemented from ErrorHandler.
Definition at line 360 of file FFBHIDMain.cpp.
|
virtual |
Reimplemented from ExtiHandler.
Definition at line 332 of file FFBHIDMain.cpp.
| float FFBHIDMain::getCurFFBFreq | ( | ) |
Returns current FFB update loop frequency in Hz
Definition at line 237 of file FFBHIDMain.cpp.
| bool FFBHIDMain::getFfbActive | ( | ) |
Definition at line 167 of file FFBHIDMain.cpp.
|
inlinevirtual |
Returns a description of this class
Reimplemented from FFBoardMain.
Definition at line 56 of file FFBHIDMain.h.
|
pure virtual |
Reimplemented from FFBoardMain.
Implemented in FFBHIDExt, FFBJoystick, and FFBWheel.
| uint32_t FFBHIDMain::getRate | ( | ) |
Definition at line 163 of file FFBHIDMain.cpp.
|
inlinestatic |
Definition at line 52 of file FFBHIDMain.h.
| void FFBHIDMain::registerCommands | ( | ) |
Definition at line 11 of file FFBHIDMain_commmands.cpp.
|
virtual |
Read parameters from flash and restore settings
Reimplemented from PersistentStorage.
Definition at line 69 of file FFBHIDMain.cpp.
|
virtual |
Implementation of your actual thread code. You must override this function.
Implements cpp_freertos::Thread.
Definition at line 101 of file FFBHIDMain.cpp.
|
virtual |
Save parameters to flash
Reimplemented from PersistentStorage.
Definition at line 89 of file FFBHIDMain.cpp.
|
private |
Sends periodic gamepad reports of buttons and analog axes
Definition at line 174 of file FFBHIDMain.cpp.
| void FFBHIDMain::setFFBEffectsCalc | ( | std::shared_ptr< EffectsControlItf > | ffb, |
| std::shared_ptr< EffectsCalculator > | effects_calc ) |
MUST be called in the constructor of the derived class. This finishes the construction because the constructor of this class will be called before the ffb and effects calc objects are created in the derived class.
Definition at line 53 of file FFBHIDMain.cpp.
|
private |
Changes the hid report rate based on the index for usb_report_rates
Definition at line 244 of file FFBHIDMain.cpp.
| void FFBHIDMain::systick | ( | ) |
|
virtual |
Reimplemented from TimerHandler.
Definition at line 375 of file FFBHIDMain.cpp.
| void FFBHIDMain::updateControl | ( | ) |
Main update loop
Definition at line 129 of file FFBHIDMain.cpp.
|
private |
Generates the speed strings to display to the user
Definition at line 277 of file FFBHIDMain.cpp.
|
pure virtual |
Called during the startup Should initialize a USBdevice and call registerUsb()
Reimplemented from FFBoardMain.
Implemented in FFBHIDExt, FFBJoystick, and FFBWheel.
|
virtual |
|
virtual |
USB unplugged Deactivates FFB
Reimplemented from FFBoardMain.
Definition at line 307 of file FFBHIDMain.cpp.
|
private |
Definition at line 95 of file FFBHIDMain.h.
|
private |
Definition at line 139 of file FFBHIDMain.h.
|
private |
Definition at line 145 of file FFBHIDMain.h.
|
private |
Definition at line 135 of file FFBHIDMain.h.
|
protected |
Definition at line 90 of file FFBHIDMain.h.
|
private |
Definition at line 138 of file FFBHIDMain.h.
|
private |
Definition at line 93 of file FFBHIDMain.h.
|
protected |
Definition at line 89 of file FFBHIDMain.h.
|
private |
Definition at line 97 of file FFBHIDMain.h.
|
protected |
Definition at line 88 of file FFBHIDMain.h.
|
private |
Definition at line 107 of file FFBHIDMain.h.
|
private |
Definition at line 106 of file FFBHIDMain.h.
|
staticprivate |
Definition at line 127 of file FFBHIDMain.h.
|
private |
Definition at line 129 of file FFBHIDMain.h.
|
private |
Definition at line 147 of file FFBHIDMain.h.
|
private |
Definition at line 151 of file FFBHIDMain.h.
|
private |
Definition at line 149 of file FFBHIDMain.h.
|
private |
Definition at line 133 of file FFBHIDMain.h.
|
private |
Definition at line 141 of file FFBHIDMain.h.
|
private |
Definition at line 143 of file FFBHIDMain.h.
|
private |
Definition at line 103 of file FFBHIDMain.h.
|
private |
Definition at line 104 of file FFBHIDMain.h.