Arduino Sim Racing Library v1.1.5
Loading...
Searching...
No Matches
SimRacing::Pedals Class Reference

Base class for all pedals instances. More...

#include <SimRacing.h>

Inheritance diagram for SimRacing::Pedals:
SimRacing::Peripheral SimRacing::ThreePedals SimRacing::TwoPedals SimRacing::LogitechPedals SimRacing::LogitechDrivingForceGT_Pedals

Public Types

using PedalID = SimRacing::Pedal
 Scoped alias for SimRacing::Pedal.
 

Public Member Functions

 Pedals (AnalogInput *dataPtr, uint8_t nPedals, PinNum detectPin)
 Class constructor.
 
virtual void begin ()
 Initialize the hardware (if necessary)
 
virtual bool update ()
 Perform a poll of the hardware to refresh the class state.
 
long getPosition (PedalID pedal, long rMin=0, long rMax=100) const
 Retrieves the buffered position for the pedal, rescaled to a nominal range using the calibration values.
 
int getPositionRaw (PedalID pedal) const
 Retrieves the buffered position for the pedal, ignoring the calibration data.
 
bool hasPedal (PedalID pedal) const
 Checks if a given pedal is present in the class.
 
int getNumPedals () const
 Retrieves the number of pedals handled by the class.
 
bool positionChanged () const
 Checks whether the current pedal positions have changed since the last update.
 
void setCalibration (PedalID pedal, AnalogInput::Calibration cal)
 Calibrate a pedal's min/max values for rescaling.
 
void serialCalibration (Stream &iface=Serial)
 Runs an interactive calibration tool using the serial interface.
 
bool isConnected () const
 Check if the device is physically connected to the board.
 

Static Public Member Functions

static String getPedalName (PedalID pedal)
 Utility function to get the string name for each pedal.
 

Detailed Description

Base class for all pedals instances.

Definition at line 288 of file SimRacing.h.

Member Typedef Documentation

◆ PedalID

Scoped alias for SimRacing::Pedal.

Definition at line 291 of file SimRacing.h.

Constructor & Destructor Documentation

◆ Pedals()

SimRacing::Pedals::Pedals ( AnalogInput * dataPtr,
uint8_t nPedals,
PinNum detectPin )

Class constructor.

Parameters
dataPtrpointer to the analog input data managed by the class, stored elsewhere
nPedalsthe number of pedals stored in said data pointer
detectPinthe digital pin for device detection (high is detected)

Definition at line 353 of file SimRacing.cpp.

Member Function Documentation

◆ begin()

void SimRacing::Pedals::begin ( )
virtual

Initialize the hardware (if necessary)

Reimplemented from SimRacing::Peripheral.

Examples
PedalsJoystick.ino, and PedalsPrint.ino.

Definition at line 361 of file SimRacing.cpp.

◆ getNumPedals()

int SimRacing::Pedals::getNumPedals ( ) const
inline

Retrieves the number of pedals handled by the class.

Returns
the number of pedals handled by the class

Definition at line 344 of file SimRacing.h.

◆ getPedalName()

String SimRacing::Pedals::getPedalName ( PedalID pedal)
static

Utility function to get the string name for each pedal.

Parameters
pedalthe pedal to get the name of
Returns
the name of the pedal, as a String

Definition at line 407 of file SimRacing.cpp.

◆ getPosition()

long SimRacing::Pedals::getPosition ( PedalID pedal,
long rMin = 0,
long rMax = 100 ) const

Retrieves the buffered position for the pedal, rescaled to a nominal range using the calibration values.

By default this is rescaled to an integer percentage.

Parameters
pedalthe pedal to retrieve position for
rMinthe minimum output value for the rescaling function
rMaxthe maximum output value for the rescaling function
Returns
the pedal position, buffered and rescaled
Examples
PedalsJoystick.ino, and PedalsPrint.ino.

Definition at line 387 of file SimRacing.cpp.

◆ getPositionRaw()

int SimRacing::Pedals::getPositionRaw ( PedalID pedal) const

Retrieves the buffered position for the pedal, ignoring the calibration data.

Parameters
pedalthe pedal to retrieve position for
Returns
the axis position, buffered

Definition at line 392 of file SimRacing.cpp.

◆ hasPedal()

bool SimRacing::Pedals::hasPedal ( PedalID pedal) const

Checks if a given pedal is present in the class.

Parameters
pedalthe pedal to check
Returns
'true' if there is data for the pedal, 'false' otherwise
Examples
PedalsJoystick.ino, and PedalsPrint.ino.

Definition at line 397 of file SimRacing.cpp.

◆ isConnected()

bool SimRacing::Pedals::isConnected ( ) const
inlinevirtual

Check if the device is physically connected to the board.

That means it is both present and detected long enough to be considered 'stable'.

Returns
'true' if the device is connected, 'false' otherwise

Reimplemented from SimRacing::Peripheral.

Definition at line 370 of file SimRacing.h.

◆ positionChanged()

bool SimRacing::Pedals::positionChanged ( ) const
inline

Checks whether the current pedal positions have changed since the last update.

Returns
'true' if position has changed, 'false' otherwise
Examples
PedalsJoystick.ino.

Definition at line 351 of file SimRacing.h.

◆ serialCalibration()

void SimRacing::Pedals::serialCalibration ( Stream & iface = Serial)

Runs an interactive calibration tool using the serial interface.

Parameters
ifacethe serial interface to send and receive prompts. Defaults to Serial (CDC USB on most boards).
Examples
PedalsPrint.ino.

Definition at line 427 of file SimRacing.cpp.

◆ setCalibration()

void SimRacing::Pedals::setCalibration ( PedalID pedal,
AnalogInput::Calibration cal )

Calibrate a pedal's min/max values for rescaling.

Parameters
pedalthe pedal to set the calibration of
calthe calibration data to set

Definition at line 401 of file SimRacing.cpp.

◆ update()

bool SimRacing::Pedals::update ( )
virtual

Perform a poll of the hardware to refresh the class state.

Returns
'true' if device state changed, 'false' otherwise

Implements SimRacing::Peripheral.

Examples
PedalsJoystick.ino, and PedalsPrint.ino.

Definition at line 365 of file SimRacing.cpp.


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