tasks: safetyui: move one more animator into a global const
This commit is contained in:
@@ -72,21 +72,20 @@ impl<S: Debug + Surface<Uniforms = Uniforms, CoordinateSpace = SegmentSpace, Pix
|
|||||||
// FIXME: This deadlocks :(
|
// FIXME: This deadlocks :(
|
||||||
//self.display.render_is_running.wait().await;
|
//self.display.render_is_running.wait().await;
|
||||||
|
|
||||||
let fade_in = Animation::default().duration(Duration::from_secs(3)).from(Fract8::MIN).to(Fract8::MAX);
|
|
||||||
trace!("Fading in brightness with overlay={:?}", self.overlay);
|
trace!("Fading in brightness with overlay={:?}", self.overlay);
|
||||||
self.overlay.set_opacity(Fract8::MAX);
|
self.overlay.set_opacity(Fract8::MAX);
|
||||||
self.overlay.set_visible(true);
|
self.overlay.set_visible(true);
|
||||||
fade_in.apply([&mut AnimDisplay(&mut self.display)]).await;
|
TURN_ON_SLOW.apply([&mut AnimDisplay(&mut self.display)]).await;
|
||||||
|
|
||||||
warn!("Turning on safety lights");
|
warn!("Turning on safety lights");
|
||||||
self.headlight.set_opacity(Fract8::MIN);
|
self.headlight.set_opacity(Fract8::MIN);
|
||||||
self.headlight.set_visible(true);
|
self.headlight.set_visible(true);
|
||||||
self.brakelight.set_opacity(Fract8::MIN);
|
self.brakelight.set_opacity(Fract8::MIN);
|
||||||
self.brakelight.set_visible(true);
|
self.brakelight.set_visible(true);
|
||||||
fade_in.apply([&mut self.headlight, &mut self.brakelight]).await;
|
TURN_ON_SLOW.apply([&mut self.headlight, &mut self.brakelight]).await;
|
||||||
|
|
||||||
info!("Fade out overlay");
|
info!("Fade out overlay");
|
||||||
TURN_OFF.apply([&mut self.overlay]).await;
|
TURN_OFF_FAST.apply([&mut self.overlay]).await;
|
||||||
self.overlay.set_visible(false);
|
self.overlay.set_visible(false);
|
||||||
info!("Wakeup complete!");
|
info!("Wakeup complete!");
|
||||||
}
|
}
|
||||||
@@ -96,14 +95,14 @@ impl<S: Debug + Surface<Uniforms = Uniforms, CoordinateSpace = SegmentSpace, Pix
|
|||||||
Personality::Active => {
|
Personality::Active => {
|
||||||
// FIXME: These should be a Off/Low/High enum, so the stopping brake looks different from the dayrunning brake.
|
// FIXME: These should be a Off/Low/High enum, so the stopping brake looks different from the dayrunning brake.
|
||||||
warn!("Active personality: Turning on safety lights");
|
warn!("Active personality: Turning on safety lights");
|
||||||
TURN_ON.apply([
|
TURN_ON_FAST.apply([
|
||||||
&mut self.brakelight,
|
&mut self.brakelight,
|
||||||
&mut self.headlight
|
&mut self.headlight
|
||||||
]).await;
|
]).await;
|
||||||
},
|
},
|
||||||
Personality::Parked => {
|
Personality::Parked => {
|
||||||
warn!("Idle personality: Turning off safety lights");
|
warn!("Idle personality: Turning off safety lights");
|
||||||
TURN_OFF.apply([
|
TURN_OFF_FAST.apply([
|
||||||
&mut self.brakelight,
|
&mut self.brakelight,
|
||||||
&mut self.headlight
|
&mut self.headlight
|
||||||
]).await;
|
]).await;
|
||||||
@@ -120,8 +119,9 @@ impl<S: Debug + Surface<Uniforms = Uniforms, CoordinateSpace = SegmentSpace, Pix
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const TURN_ON: Animation<Fract8> = Animation::new().duration(Duration::from_secs(1)).from(Fract8::MIN).to(Fract8::MAX);
|
const TURN_ON_FAST: Animation<Fract8> = Animation::new().duration(Duration::from_secs(1)).from(Fract8::MIN).to(Fract8::MAX);
|
||||||
const TURN_OFF: Animation<Fract8> = Animation::new().duration(Duration::from_secs(1)).from(Fract8::MAX).to(Fract8::MIN);
|
const TURN_OFF_FAST: Animation<Fract8> = Animation::new().duration(Duration::from_secs(1)).from(Fract8::MAX).to(Fract8::MIN);
|
||||||
|
const TURN_ON_SLOW: Animation<Fract8> = Animation::new().duration(Duration::from_secs(3)).from(Fract8::MIN).to(Fract8::MAX);
|
||||||
|
|
||||||
#[embassy_executor::task]
|
#[embassy_executor::task]
|
||||||
pub async fn safety_ui_main(mut events: DynSubscriber<'static, Prediction>, mut ui: SafetyUi<<UiSurfacePool as Surfaces>::Surface>) {
|
pub async fn safety_ui_main(mut events: DynSubscriber<'static, Prediction>, mut ui: SafetyUi<<UiSurfacePool as Surfaces>::Surface>) {
|
||||||
|
|||||||
Reference in New Issue
Block a user