lib-g29

Crates.iolib-g29
lib.rslib-g29
version1.0.1
sourcesrc
created_at2024-04-03 20:45:39.970059
updated_at2024-04-18 17:23:38.562943
descriptionA library for interfacing with the Logitech G29 racing wheel
homepage
repositoryhttps://github.com/EzraEllette/g29
max_upload_size
id1195543
size59,539
Ezra Ellette (EzraEllette)

documentation

README

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());
}
Commit count: 22

cargo fmt