Added basic validation for frequencies
This commit is contained in:
parent
c55704dbdd
commit
47330b11fd
|
@ -1,9 +1,16 @@
|
|||
use eframe::egui::Color32;
|
||||
use eframe::egui::{self};
|
||||
|
||||
use crate::serial;
|
||||
use crate::widgets;
|
||||
use crate::CheapsdoControl;
|
||||
|
||||
const PLL_MIN_FREQ: u32 = 600_000_000;
|
||||
const PLL_MAX_FREQ: u32 = 900_000_000;
|
||||
|
||||
const OUT_MIN_FREQ: u32 = 500_000;
|
||||
const OUT_MAX_FREQ: u32 = 225_000_000;
|
||||
|
||||
impl CheapsdoControl {
|
||||
pub fn output_control(&mut self, ui: &mut egui::Ui, ctx: &egui::Context) {
|
||||
ui.vertical(|ui| {
|
||||
|
@ -16,6 +23,8 @@ impl CheapsdoControl {
|
|||
widgets::frequency_input(
|
||||
self.ms1_frequency_id,
|
||||
&mut self.pll_settings.ms1_frequency,
|
||||
PLL_MIN_FREQ,
|
||||
PLL_MAX_FREQ,
|
||||
&ctx,
|
||||
ui,
|
||||
);
|
||||
|
@ -25,6 +34,8 @@ impl CheapsdoControl {
|
|||
widgets::frequency_input(
|
||||
self.ms2_frequency_id,
|
||||
&mut self.pll_settings.ms2_frequency,
|
||||
PLL_MIN_FREQ,
|
||||
PLL_MAX_FREQ,
|
||||
&ctx,
|
||||
ui,
|
||||
);
|
||||
|
@ -45,6 +56,8 @@ impl CheapsdoControl {
|
|||
widgets::frequency_input(
|
||||
self.output_frequency_id[i],
|
||||
&mut self.pll_settings.outputs[i].frequency,
|
||||
OUT_MIN_FREQ,
|
||||
OUT_MAX_FREQ,
|
||||
&ctx,
|
||||
ui,
|
||||
);
|
||||
|
|
|
@ -1,11 +1,13 @@
|
|||
use cheapsdo_protocol::Multisynth;
|
||||
use eframe::egui::{self, RichText};
|
||||
use eframe::egui::{self, Color32, RichText};
|
||||
|
||||
use crate::formatters;
|
||||
|
||||
pub fn frequency_input(
|
||||
id: egui::Id,
|
||||
freq: &mut u32,
|
||||
min_freq: u32,
|
||||
max_freq: u32,
|
||||
ctx: &egui::Context,
|
||||
ui: &mut egui::Ui,
|
||||
) -> egui::Response {
|
||||
|
@ -16,10 +18,18 @@ pub fn frequency_input(
|
|||
} else {
|
||||
formatters::format_frequency(*freq as f64)
|
||||
};
|
||||
|
||||
let color = if !has_focus && (*freq <= min_freq || *freq >= max_freq) {
|
||||
Some(Color32::DARK_RED)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
|
||||
let resp = ui.add_sized(
|
||||
[100.0, 20.0],
|
||||
egui::TextEdit::singleline(&mut tmp)
|
||||
.id(id)
|
||||
.text_color_opt(color)
|
||||
.horizontal_align(egui::Align::Max),
|
||||
);
|
||||
if has_focus {
|
||||
|
|
Loading…
Reference in New Issue