Started work on output pll settings
This commit is contained in:
parent
be45b12b5a
commit
3ca1f112e7
|
@ -7,13 +7,15 @@ use std::time::Duration;
|
|||
|
||||
use crossbeam_channel::{select, unbounded, Receiver, Sender};
|
||||
|
||||
use eframe::egui;
|
||||
use egui_plot::{Line, Plot, PlotPoints};
|
||||
use eframe::egui::{self, RichText};
|
||||
|
||||
|
||||
|
||||
use cheapsdo_protocol::*;
|
||||
use postcard::{from_bytes_cobs, to_stdvec_cobs};
|
||||
|
||||
mod formatters;
|
||||
mod plots;
|
||||
|
||||
fn main() -> Result<(), eframe::Error> {
|
||||
let options = eframe::NativeOptions {
|
||||
|
@ -146,66 +148,56 @@ impl eframe::App for CheapsdoControl {
|
|||
ui.separator();
|
||||
|
||||
ui.horizontal(|ui| {
|
||||
ui.label(
|
||||
egui::RichText::new(format!(
|
||||
"Measured: {}",
|
||||
formatters::frequency(
|
||||
self.device_state.measured_frequency as f64 / 1_000_000_000.0
|
||||
)
|
||||
))
|
||||
.family(egui::FontFamily::Monospace)
|
||||
.size(20.0),
|
||||
);
|
||||
ui.vertical(|ui| {
|
||||
ui.vertical(|ui| ui.label(egui::RichText::new("TCXO Status").size(20.0)));
|
||||
ui.add_space(20.0);
|
||||
plots::show_freuqencies(ui, &self.device_state);
|
||||
ui.add_space(20.0);
|
||||
plots::show_plots(ui, &self.average_points, &self.pwm_points);
|
||||
});
|
||||
|
||||
ui.add_space(100.0);
|
||||
ui.separator();
|
||||
|
||||
ui.label(
|
||||
egui::RichText::new(format!(
|
||||
"Average: {}",
|
||||
formatters::frequency(
|
||||
self.device_state.average_frequency as f64 / 1_000_000_000.0
|
||||
)
|
||||
))
|
||||
.family(egui::FontFamily::Monospace)
|
||||
.size(20.0),
|
||||
);
|
||||
ui.vertical(|ui| {
|
||||
ui.label(egui::RichText::new("Output Settings").size(20.0));
|
||||
ui.add_space(20.0);
|
||||
|
||||
let mut my_string = String::new();
|
||||
|
||||
#[derive(PartialEq)]
|
||||
enum Enum {
|
||||
First,
|
||||
Second,
|
||||
}
|
||||
let mut my_enum = Enum::First;
|
||||
|
||||
egui::Grid::new("output_pll_settings")
|
||||
.spacing([20.0, 5.0])
|
||||
.show(ui, |ui| {
|
||||
ui.label("CLK1 Multisynth");
|
||||
ui.horizontal(|ui| {
|
||||
ui.selectable_value(&mut my_enum, Enum::First, "MS1");
|
||||
ui.selectable_value(&mut my_enum, Enum::Second, "MS2");
|
||||
});
|
||||
ui.end_row();
|
||||
|
||||
ui.label("CLK1 Frequency [Hz]");
|
||||
ui.add_sized([200.0, 20.0], egui::TextEdit::singleline(&mut my_string));
|
||||
ui.end_row();
|
||||
|
||||
ui.label("CLK1 Enable");
|
||||
ui.horizontal(|ui| {
|
||||
ui.add(egui::Button::new(
|
||||
RichText::new("On").color(egui::Color32::GREEN),
|
||||
));
|
||||
ui.add(egui::Button::new(
|
||||
RichText::new("Off").color(egui::Color32::RED),
|
||||
));
|
||||
});
|
||||
ui.end_row();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
ui.add_space(20.0);
|
||||
|
||||
let average_line = Line::new(PlotPoints::new(self.average_points.clone()));
|
||||
//let measured_line = Line::new(PlotPoints::new(self.measured_points.clone()));
|
||||
Plot::new("frequency_plot")
|
||||
.view_aspect(4.0)
|
||||
.allow_zoom(false)
|
||||
.allow_scroll(false)
|
||||
.allow_drag(false)
|
||||
.allow_boxed_zoom(false)
|
||||
.y_axis_width(12)
|
||||
.y_axis_formatter(|val, _, _| formatters::frequency(val))
|
||||
.label_formatter(|name, value| {
|
||||
format!("{}: {}", name, formatters::frequency(value.y))
|
||||
})
|
||||
.show(ui, |plot_ui| {
|
||||
plot_ui.set_auto_bounds([true, true].into());
|
||||
plot_ui.line(average_line);
|
||||
//plot_ui.line(measured_line);
|
||||
});
|
||||
|
||||
ui.add_space(20.0);
|
||||
|
||||
let pwm_line = Line::new(PlotPoints::new(self.pwm_points.clone()));
|
||||
Plot::new("pwm_plot")
|
||||
.view_aspect(4.0)
|
||||
.allow_zoom(false)
|
||||
.allow_scroll(false)
|
||||
.allow_drag(false)
|
||||
.allow_boxed_zoom(false)
|
||||
.y_axis_width(12)
|
||||
.show(ui, |plot_ui| {
|
||||
plot_ui.set_auto_bounds([true, true].into());
|
||||
plot_ui.line(pwm_line);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,65 @@
|
|||
use eframe::egui;
|
||||
use egui_plot::{Line, Plot, PlotPoints};
|
||||
|
||||
use crate::{formatters};
|
||||
|
||||
use crate::StatusMessage;
|
||||
|
||||
pub fn show_freuqencies(ui: &mut egui::Ui, state: &StatusMessage) {
|
||||
ui.horizontal(|ui| {
|
||||
ui.label(
|
||||
egui::RichText::new(format!(
|
||||
"Measured: {}",
|
||||
formatters::frequency(state.measured_frequency as f64/ 1_000_000_000.0)
|
||||
))
|
||||
.family(egui::FontFamily::Monospace)
|
||||
.size(20.0),
|
||||
);
|
||||
|
||||
ui.add_space(100.0);
|
||||
|
||||
ui.label(
|
||||
egui::RichText::new(format!(
|
||||
"Average: {}",
|
||||
formatters::frequency(state.average_frequency as f64 / 1_000_000_000.0)
|
||||
))
|
||||
.family(egui::FontFamily::Monospace)
|
||||
.size(20.0),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
pub fn show_plots(ui: &mut egui::Ui, average_points: &Vec<[f64; 2]>, pwm_points: &Vec<[f64; 2]>) {
|
||||
let average_line = Line::new(PlotPoints::new(average_points.clone()));
|
||||
Plot::new("frequency_plot")
|
||||
.width(900.0)
|
||||
.view_aspect(3.0)
|
||||
.allow_zoom(false)
|
||||
.allow_scroll(false)
|
||||
.allow_drag(false)
|
||||
.allow_boxed_zoom(false)
|
||||
.y_axis_width(12)
|
||||
.y_axis_formatter(|val, _, _| formatters::frequency(val))
|
||||
.label_formatter(|name, value| format!("{}: {}", name, formatters::frequency(value.y)))
|
||||
.show(ui, |plot_ui| {
|
||||
plot_ui.set_auto_bounds([true, true].into());
|
||||
plot_ui.line(average_line);
|
||||
//plot_ui.line(measured_line);
|
||||
});
|
||||
|
||||
ui.add_space(20.0);
|
||||
|
||||
let pwm_line = Line::new(PlotPoints::new(pwm_points.clone()));
|
||||
Plot::new("pwm_plot")
|
||||
.width(900.0)
|
||||
.view_aspect(3.0)
|
||||
.allow_zoom(false)
|
||||
.allow_scroll(false)
|
||||
.allow_drag(false)
|
||||
.allow_boxed_zoom(false)
|
||||
.y_axis_width(12)
|
||||
.show(ui, |plot_ui| {
|
||||
plot_ui.set_auto_bounds([true, true].into());
|
||||
plot_ui.line(pwm_line);
|
||||
});
|
||||
}
|
Loading…
Reference in New Issue