Merge initial implementation of Pedal and Leader Board widgets #3

Merged
hodasemi merged 16 commits from ui into master 2023-01-18 11:50:37 +00:00
2 changed files with 21 additions and 18 deletions
Showing only changes of commit 58d824977f - Show all commits

View file

@ -14,8 +14,10 @@ pub struct Pedals {
brake: Arc<ProgressBar>,
throttle: Arc<ProgressBar>,
fuel: Arc<Label>,
gear: Arc<Label>,
history: Arc<Icon>,
throttle_samples: Vec<f32>,
brake_samples: Vec<f32>,
}
impl Pedals {
@ -26,15 +28,17 @@ impl Pedals {
let brake = gui.element("brake")?;
let throttle = gui.element("throttle")?;
let fuel = gui.element("fuel")?;
let gear = gui.element("gear")?;
let history = gui.element("history")?;
Ok(Self {
gui,
brake,
throttle,
fuel,
gear,
history,
throttle_samples: Vec::new(),
brake_samples: Vec::new(),
})
}
}
@ -60,13 +64,14 @@ impl DataReceiver for Pedals {
self.gui.enable()?;
if let Some(telemetry) = telemetries.iter().find(|telemetry| telemetry.id == id) {
self.brake
.set_progress(1.0 - telemetry.unfiltered_brake as f32)?;
self.throttle
.set_progress(1.0 - telemetry.unfiltered_throttle as f32)?;
self.gear.set_text(telemetry.gear)?;
let fuel = telemetry.fuel;
self.fuel.set_text(format!("{:.2}", fuel))?;
let brake = 1.0 - telemetry.unfiltered_brake as f32;
let throttle = 1.0 - telemetry.unfiltered_throttle as f32;
self.throttle.set_progress(throttle)?;
self.brake.set_progress(brake)?;
self.throttle_samples.push(throttle);
self.brake_samples.push(brake);
}
}
None => {

View file

@ -7,10 +7,8 @@
<progressbar id="throttle"
x_slot="1" y_slot="0" y_size="2" background="#494949" direction="bottom_to_top"
foreground="#00b900"></progressbar>
<label id="fuel" x_slot="2"
x_size="5" y_slot="0"
text_color="black"></label>
<label id="gear" x_slot="2" x_size="5" y_slot="1"
text_color="black"></label>
<icon id="history" x_slot="2" x_size="5" y_slot="0"
y_size="2"></icon>
</grid>
</root>