#wheel #racing #controller #logitech #g29

lib-g29

A library for interfacing with the Logitech G29 racing wheel

2 stable releases

1.0.1 Apr 18, 2024
1.0.0 Apr 3, 2024

#1 in #racing

MIT license

59KB
1.5K SLoC

G29

Description

Rust crate for using the logitech G29 steering wheel with force feedback. More Force Feedback options coming soon.

Thanks to @nightmode for their NodeJS library that I frequently referenced. logitech-g29

Example

use lib_g29::{Options, G29, events::Event};

fn main() {
    let g29 = G29::connect(Options::default());

    g29.register_event_handler(
        Event::PlaystationButtonReleased,
        playstation_button_released_handler,
    );

    g29.register_event_handler(Event::Throttle, throttle_handler);

    g29.register_event_handler(Event::Brake, brake_handler);

    g29.register_event_handler(Event::Clutch, clutch_handler);

    while g29.connected() {}
}

fn playstation_button_released_handler(g29: &mut G29) {
    g29.disconnect();
    println!("Playstation button released");
}

fn throttle_handler(g29: &mut G29) {
    println!("Throttle: {}", g29.throttle());
}

fn brake_handler(g29: &mut G29) {
    println!("Brake: {}", g29.brake());
}

fn clutch_handler(g29: &mut G29) {
    println!("Clutch: {}", g29.clutch());
}

Dependencies

~2–12MB
~92K SLoC