Skip to content

Commit 9d6ed1e

Browse files
committed
dead zones
1 parent 43dc987 commit 9d6ed1e

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

tools/twix/src/panels/remote_control.rs

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ impl<'a> Panel<'a> for RemotePanel {
6969

7070
if gilrs.gamepads().next().is_none() {
7171
let _ = sender.send(Step::default());
72-
i w if enabled_clone.load(Ordering::Relaxed) {
72+
if enabled_clone.load(Ordering::Relaxed) {
7373
reset(&nao_clone);
7474
}
7575
continue;
@@ -85,12 +85,14 @@ impl<'a> Panel<'a> for RemotePanel {
8585
last_gamepad_id = Some(gamepad.id());
8686
egui_context_clone.request_repaint();
8787

88-
let right = get_axis_value(gamepad, Axis::LeftStickX).unwrap_or(0.0);
89-
let forward = get_axis_value(gamepad, Axis::LeftStickY).unwrap_or(0.0);
88+
let right =
89+
apply_dead_zone(get_axis_value(gamepad, Axis::LeftStickX).unwrap_or(0.0));
90+
let forward =
91+
apply_dead_zone(get_axis_value(gamepad, Axis::LeftStickY).unwrap_or(0.0));
9092

9193
let left = -right;
9294

93-
let turn_right = gamepad
95+
let turn_right = gamepad
9496
.button_data(Button::RightTrigger2)
9597
.map(|button| button.value())
9698
.unwrap_or_default();
@@ -150,6 +152,15 @@ impl<'a> Panel<'a> for RemotePanel {
150152
}
151153
}
152154

155+
fn apply_dead_zone(value: f32) -> f32 {
156+
const DEAD_ZONE: f32 = 0.1;
157+
if value.abs() < DEAD_ZONE {
158+
0.0
159+
} else {
160+
value
161+
}
162+
}
163+
153164
fn get_axis_value(gamepad: Gamepad, axis: Axis) -> Option<f32> {
154165
Some(gamepad.axis_data(axis)?.value())
155166
}

0 commit comments

Comments
 (0)