@@ -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+
153164fn get_axis_value ( gamepad : Gamepad , axis : Axis ) -> Option < f32 > {
154165 Some ( gamepad. axis_data ( axis) ?. value ( ) )
155166}
0 commit comments