Expand description
Rust driver for Logitech G29
This library provides a Rust interface for Logitech G29 wheel/pedal and force feedback control.
§Example
use g29::controller::Controller;
fn main() {
// Create a new G29 instance
let mut g29 = Controller::new();
// Set force feedback for G29 controller - make sure to set the Logitech to PS3 Mode
g29.g29.lock().unwrap().force_feedback_constant(0.6);
// Start the reading thread to continuously read input from the G29 device
g29.start_pumping();
loop {
println!("steering = {:?}", g29.g29.lock().unwrap().get_state());
}
}
Interacting with the driver without starting a thread to set force feedback.
use g29::interface::G29Interface;
fn main() {
// Create a new G29 driver instance
let mut g29 = G29Interface::new();
// Set ForceFeedback
g29.force_feedback_constant(0.5);
// Reset the G29 device, including steering wheel calibration
g29.reset();
// Example: Set autocenter with a strength of 0.5 and a rate of 0.05
g29.set_autocenter(0.5, 0.05);
}
Reading input from the Logitech G29 in the main thread, and getting the state input in carla format
use g29::controller::Controller;
fn main() {
// Create a new G29 instance
let mut g29 = Controller::new();
// Set G29 Steer to the center
g29.g29.lock().unwrap().set_autocenter(0.5, 0.05);
// Reading
loop {
// Reading every 10ms from the G29
g29.g29.lock().unwrap().pump(10);
// Get the read values
println!("Carla_controle = {:?}", g29.g29.lock().unwrap().carla_vehicle_controle());
}
}
Modules§
- This module provides functionality to run a separate thread and initiate reading from the G29 controller
- Interfaces to interacting with the G29 controller to set force feedback , Autocenter …