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 eframe::egui::{self};
|
||||||
|
|
||||||
use crate::serial;
|
use crate::serial;
|
||||||
use crate::widgets;
|
use crate::widgets;
|
||||||
use crate::CheapsdoControl;
|
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 {
|
impl CheapsdoControl {
|
||||||
pub fn output_control(&mut self, ui: &mut egui::Ui, ctx: &egui::Context) {
|
pub fn output_control(&mut self, ui: &mut egui::Ui, ctx: &egui::Context) {
|
||||||
ui.vertical(|ui| {
|
ui.vertical(|ui| {
|
||||||
|
@ -16,6 +23,8 @@ impl CheapsdoControl {
|
||||||
widgets::frequency_input(
|
widgets::frequency_input(
|
||||||
self.ms1_frequency_id,
|
self.ms1_frequency_id,
|
||||||
&mut self.pll_settings.ms1_frequency,
|
&mut self.pll_settings.ms1_frequency,
|
||||||
|
PLL_MIN_FREQ,
|
||||||
|
PLL_MAX_FREQ,
|
||||||
&ctx,
|
&ctx,
|
||||||
ui,
|
ui,
|
||||||
);
|
);
|
||||||
|
@ -25,6 +34,8 @@ impl CheapsdoControl {
|
||||||
widgets::frequency_input(
|
widgets::frequency_input(
|
||||||
self.ms2_frequency_id,
|
self.ms2_frequency_id,
|
||||||
&mut self.pll_settings.ms2_frequency,
|
&mut self.pll_settings.ms2_frequency,
|
||||||
|
PLL_MIN_FREQ,
|
||||||
|
PLL_MAX_FREQ,
|
||||||
&ctx,
|
&ctx,
|
||||||
ui,
|
ui,
|
||||||
);
|
);
|
||||||
|
@ -45,6 +56,8 @@ impl CheapsdoControl {
|
||||||
widgets::frequency_input(
|
widgets::frequency_input(
|
||||||
self.output_frequency_id[i],
|
self.output_frequency_id[i],
|
||||||
&mut self.pll_settings.outputs[i].frequency,
|
&mut self.pll_settings.outputs[i].frequency,
|
||||||
|
OUT_MIN_FREQ,
|
||||||
|
OUT_MAX_FREQ,
|
||||||
&ctx,
|
&ctx,
|
||||||
ui,
|
ui,
|
||||||
);
|
);
|
||||||
|
|
|
@ -1,11 +1,13 @@
|
||||||
use cheapsdo_protocol::Multisynth;
|
use cheapsdo_protocol::Multisynth;
|
||||||
use eframe::egui::{self, RichText};
|
use eframe::egui::{self, Color32, RichText};
|
||||||
|
|
||||||
use crate::formatters;
|
use crate::formatters;
|
||||||
|
|
||||||
pub fn frequency_input(
|
pub fn frequency_input(
|
||||||
id: egui::Id,
|
id: egui::Id,
|
||||||
freq: &mut u32,
|
freq: &mut u32,
|
||||||
|
min_freq: u32,
|
||||||
|
max_freq: u32,
|
||||||
ctx: &egui::Context,
|
ctx: &egui::Context,
|
||||||
ui: &mut egui::Ui,
|
ui: &mut egui::Ui,
|
||||||
) -> egui::Response {
|
) -> egui::Response {
|
||||||
|
@ -16,10 +18,18 @@ pub fn frequency_input(
|
||||||
} else {
|
} else {
|
||||||
formatters::format_frequency(*freq as f64)
|
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(
|
let resp = ui.add_sized(
|
||||||
[100.0, 20.0],
|
[100.0, 20.0],
|
||||||
egui::TextEdit::singleline(&mut tmp)
|
egui::TextEdit::singleline(&mut tmp)
|
||||||
.id(id)
|
.id(id)
|
||||||
|
.text_color_opt(color)
|
||||||
.horizontal_align(egui::Align::Max),
|
.horizontal_align(egui::Align::Max),
|
||||||
);
|
);
|
||||||
if has_focus {
|
if has_focus {
|
||||||
|
|
Loading…
Reference in New Issue