aboutsummaryrefslogtreecommitdiffstats
path: root/sw/picardy/src/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'sw/picardy/src/state.rs')
-rw-r--r--sw/picardy/src/state.rs30
1 files changed, 18 insertions, 12 deletions
diff --git a/sw/picardy/src/state.rs b/sw/picardy/src/state.rs
index ed99087..239cf18 100644
--- a/sw/picardy/src/state.rs
+++ b/sw/picardy/src/state.rs
@@ -3,6 +3,8 @@ pub const VHF_INITIAL_VFO : u32 = 144_300_000;
pub const VHF_LO : u32 = 114_286_400;
pub const BFO_LSB : u32 = 6_000_700 + 1_100;
pub const BFO_USB : u32 = 6_000_700 - 1_100;
+pub const BFO_CW : u32 = 6_000_700 - 1_100;
+pub const QRG_CORRECTION : i32 = -1_600;
// Defines which parameter is changed by the encoder
#[derive(Clone, Copy, PartialEq, Eq)]
@@ -18,20 +20,22 @@ pub enum VFOSelection {
B,
}
+#[derive(Clone)]
pub enum TuneSpeed {
Slow,
Mid,
Fast
}
-#[derive(Clone, Copy)]
-pub enum FilterShift {
+#[derive(PartialEq, Eq, Clone, Copy)]
+pub enum Mode {
LSB,
USB,
- Custom(u32),
+ CustomShift(u32),
+ CW,
}
-#[derive(PartialEq, Eq)]
+#[derive(Clone, PartialEq, Eq)]
pub enum SequenceState {
Rx,
Switching,
@@ -44,16 +48,17 @@ impl SequenceState {
}
}
+#[derive(Clone)]
pub struct State {
pub ui_sel : UISelection,
pub vfo_a : u32,
pub vfo_b : u32,
pub vfo_sel : VFOSelection,
pub rit : i32,
- pub filter_shift : FilterShift,
- pub bfo_tune_fail : bool,
+ pub mode : Mode,
pub tune_speed : TuneSpeed,
pub sequence_state : SequenceState,
+ pub update_disp_counter : u8,
}
impl State {
@@ -61,21 +66,22 @@ impl State {
State {
rit : 0,
ui_sel : UISelection::VFO,
- filter_shift : FilterShift::USB,
- bfo_tune_fail : false,
+ mode : Mode::USB,
vfo_sel : VFOSelection::A,
vfo_a : VHF_INITIAL_VFO,
vfo_b : VHF_INITIAL_VFO,
tune_speed : TuneSpeed::Mid,
sequence_state : SequenceState::Rx,
+ update_disp_counter : 0,
}
}
pub fn bfo(&self) -> u32 {
- match self.filter_shift {
- FilterShift::LSB => BFO_LSB,
- FilterShift::USB => BFO_USB,
- FilterShift::Custom(fs) => fs,
+ match self.mode {
+ Mode::LSB => BFO_LSB,
+ Mode::USB => BFO_USB,
+ Mode::CustomShift(fs) => fs,
+ Mode::CW => BFO_CW,
}
}