Arduino Sim Racing Library v2.0.0
Loading...
Searching...
No Matches
SimRacing::LogitechPedals Class Reference

Interface with the Logitech pedals (Gas, Brake, and Clutch) More...

#include <SimRacing.h>

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

Public Types

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

Public Member Functions

 LogitechPedals (PinNum pinGas, PinNum pinBrake, PinNum pinClutch, PinNum pinDetect=UnusedPin)
 Class constructor.
 
void setCalibration (AnalogInput::Calibration gasCal, AnalogInput::Calibration brakeCal, AnalogInput::Calibration clutchCal)
 Sets the calibration data (min/max) for the pedals.
 
void setCalibration (PedalID pedal, AnalogInput::Calibration cal)
 Calibrate a pedal's min/max values for rescaling.
 
virtual void begin ()
 Initialize the hardware (if necessary)
 
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 serialCalibration (Stream &iface=Serial)
 Runs an interactive calibration tool using the serial interface.
 
bool update ()
 Perform a poll of the hardware to refresh the class state.
 
bool isConnected () const
 Check if the device is physically connected to the board.
 
void setStablePeriod (unsigned long t)
 Set how long the detection pin must be stable for before the device is considered to be 'connected'.
 

Static Public Member Functions

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

Protected Member Functions

virtual bool updateState (bool connected)
 Perform an internal poll of the hardware to refresh the class state.
 
void setDetectPtr (DeviceConnection *d)
 Sets the pointer to the detector object.
 

Detailed Description

Interface with the Logitech pedals (Gas, Brake, and Clutch)

See also
https://www.logitechg.com/en-us/products/driving/driving-force-racing-wheel.html
Examples
PedalsJoystick.ino, and PedalsPrint.ino.

Definition at line 835 of file SimRacing.h.

Member Typedef Documentation

◆ PedalID

Scoped alias for SimRacing::Pedal.

Definition at line 338 of file SimRacing.h.

Constructor & Destructor Documentation

◆ LogitechPedals()

SimRacing::LogitechPedals::LogitechPedals ( PinNum pinGas,
PinNum pinBrake,
PinNum pinClutch,
PinNum pinDetect = UnusedPin )

Class constructor.

Parameters
pinGasthe analog pin for the gas pedal potentiometer, DE-9 pin 2
pinBrakethe analog pin for the brake pedal potentiometer, DE-9 pin 3
pinClutchthe analog pin for the clutch pedal potentiometer, DE-9 pin 4
pinDetectthe digital pin for device detection, DE-9 pin 6. Requires a pull-down resistor.

Definition at line 701 of file SimRacing.cpp.

Member Function Documentation

◆ begin()

void SimRacing::Pedals::begin ( )
virtualinherited

Initialize the hardware (if necessary)

Reimplemented from SimRacing::Peripheral.

Examples
PedalsJoystick.ino, and PedalsPrint.ino.

Definition at line 478 of file SimRacing.cpp.

◆ getNumPedals()

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

Retrieves the number of pedals handled by the class.

Returns
the number of pedals handled by the class

Definition at line 390 of file SimRacing.h.

◆ getPedalName()

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

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 527 of file SimRacing.cpp.

◆ getPosition()

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

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 507 of file SimRacing.cpp.

◆ getPositionRaw()

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

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 512 of file SimRacing.cpp.

◆ hasPedal()

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

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 517 of file SimRacing.cpp.

◆ isConnected()

bool SimRacing::Peripheral::isConnected ( ) const
inherited

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

Definition at line 446 of file SimRacing.cpp.

◆ positionChanged()

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

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 397 of file SimRacing.h.

◆ serialCalibration()

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

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 547 of file SimRacing.cpp.

◆ setCalibration() [1/2]

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

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 521 of file SimRacing.cpp.

◆ setCalibration() [2/2]

void SimRacing::ThreePedals::setCalibration ( AnalogInput::Calibration gasCal,
AnalogInput::Calibration brakeCal,
AnalogInput::Calibration clutchCal )
inherited

Sets the calibration data (min/max) for the pedals.

Parameters
gasCalthe calibration data for the gas pedal
brakeCalthe calibration data for the brake pedal
clutchCalthe calibration data for the clutch pedal

Definition at line 694 of file SimRacing.cpp.

◆ setDetectPtr()

void SimRacing::Peripheral::setDetectPtr ( DeviceConnection * d)
protectedinherited

Sets the pointer to the detector object.

The detector object is used to check if the peripheral is connected to the microcontroller. The object is polled on every update.

Although the detector instance is accessed via the Peripheral class, it is the responsibility of the dervied class to store the DeviceConnection object and manage its lifetime.

Parameters
dpointer to the detector object

Definition at line 456 of file SimRacing.cpp.

◆ setStablePeriod()

void SimRacing::Peripheral::setStablePeriod ( unsigned long t)
inherited

Set how long the detection pin must be stable for before the device is considered to be 'connected'.

Parameters
tthe amount of time, in ms, the input must be stable for (no changes) before it's interpreted as 'detected'

Definition at line 460 of file SimRacing.cpp.

◆ update()

bool SimRacing::Peripheral::update ( )
inherited

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

Returns
'true' if device state changed, 'false' otherwise
Examples
HandbrakeJoystick.ino, HandbrakePrint.ino, LogitechShifterG25_Joystick.ino, LogitechShifterG25_Print.ino, LogitechShifterG27_Joystick.ino, LogitechShifterG27_Print.ino, LogitechShifter_Joystick.ino, LogitechShifter_Print.ino, PedalsJoystick.ino, and PedalsPrint.ino.

Definition at line 433 of file SimRacing.cpp.

◆ updateState()

bool SimRacing::Pedals::updateState ( bool connected)
protectedvirtualinherited

Perform an internal poll of the hardware to refresh the class state.

This function is called from within the public update() in order to refresh the cached state of the peripheral. It needs to be defined in every derived class. This function is the only place where the cached device state should be changed.

Parameters
connectedthe state of the device connection
Returns
'true' if device state changed, 'false' otherwise

Implements SimRacing::Peripheral.

Definition at line 482 of file SimRacing.cpp.


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