3个不稳定版本
0.2.1 | 2024年2月9日 |
---|---|
0.1.1 | 2024年2月3日 |
0.1.0 | 2024年1月31日 |
#424 in 硬件支持
180KB
203 行
G29rs
Logitech G29的Rust驱动程序
此库为Logitech G29方向盘/踏板和力反馈控制提供了Rust接口。
先决条件
- Hidapi : "2.5.0"
如何使用
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());
}
}
在不启动线程设置力反馈的情况下与驱动程序交互。
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);
}
在主线程中读取Logitech G29的输入,并获取以carla格式输入的状态
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 readed values
println!("Carla_controle = {:?}", g29.g29.lock().unwrap().carla_vehicle_controle());
}
}
待办事项
- 读取G29数据的线程
- 编写测试
- 测试完整代码后将其作为库
- 从G29控制器按钮中读取反向模式
- 为Carla用户提供转换状态的方 法 "油门 [0 -> 1] 刹车 [0 -> 1] 刹车[0->1]"
贡献
欢迎贡献!如果您有改进、错误修复或新功能建议,请提交拉取请求。
支持
目前仅支持G29 Logitech控制器方向盘/踏板,以及PS3模式的力反馈
支持力反馈
依赖关系
~0.4–10MB
~66K SLoC