From 71172efaf3af219c3699316ee24e2745cd0f8fd4 Mon Sep 17 00:00:00 2001 From: erikkaashoek Date: Fri, 10 Jul 2020 10:21:16 +0200 Subject: [PATCH] speed menu improvements --- nanovna.h | 1 + sa_core.c | 11 +++++------ ui_sa.c | 29 ++++++++++++++++++----------- 3 files changed, 24 insertions(+), 17 deletions(-) diff --git a/nanovna.h b/nanovna.h index 0d41e96..3349edf 100644 --- a/nanovna.h +++ b/nanovna.h @@ -645,6 +645,7 @@ typedef struct setting int mute; int step_delay_mode; int offset_delay; + int fast_speedup; uint32_t checksum; }setting_t; diff --git a/sa_core.c b/sa_core.c index f5a6e1a..7fbabbb 100644 --- a/sa_core.c +++ b/sa_core.c @@ -97,6 +97,7 @@ void reset_settings(int m) setting.offset = 0.0; setting.trigger = T_AUTO; setting.trigger_direction = T_UP; + setting.fast_speedup = 0; setting.level_sweep = 0.0; setting.level = -15.0; setting.trigger_level = -150.0; @@ -789,11 +790,9 @@ void set_mode(int m) extern int SI4432_offset_delay; -int fast_speedup = 0; - void set_fast_speedup(int s) { - fast_speedup = s; + setting.fast_speedup = s; dirty = true; } @@ -831,8 +830,8 @@ void calculate_step_delay(void) #endif if (setting.step_delay_mode == SD_PRECISE) // In precise mode wait twice as long for RSSI to stabalize SI4432_step_delay *= 2; - if (fast_speedup >0) - SI4432_offset_delay = SI4432_step_delay / fast_speedup; + if (setting.fast_speedup >0) + SI4432_offset_delay = SI4432_step_delay / setting.fast_speedup; } if (setting.offset_delay != 0) // Override if set SI4432_offset_delay = setting.offset_delay; @@ -1159,7 +1158,7 @@ void update_rbw(void) // calculate the actual_rbw and the vbwSteps (# actual_rbw_x10 = setting.rbw_x10; // requested rbw if (actual_rbw_x10 == 0) { // if auto rbw if (setting.step_delay_mode==SD_FAST) { // if in fast scanning - if (fast_speedup > 2) + if (setting.fast_speedup > 2) actual_rbw_x10 = 6*setting.vbw_x10; // rbw is four the frequency step to ensure no gaps in coverage as there are some weird jumps else actual_rbw_x10 = 4*setting.vbw_x10; // rbw is four the frequency step to ensure no gaps in coverage as there are some weird jumps diff --git a/ui_sa.c b/ui_sa.c index 85502e0..3d6a8ae 100644 --- a/ui_sa.c +++ b/ui_sa.c @@ -1083,7 +1083,7 @@ static const menuitem_t menu_store_preset_high[8] = { MT_CANCEL, 255, "\032 BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; - +#if 0 static const menuitem_t menu_load_preset_high[] = { { MT_CALLBACK, 0, "LOAD\nSTARTUP",menu_load_preset_cb}, @@ -1095,6 +1095,7 @@ static const menuitem_t menu_load_preset_high[] = { MT_CANCEL, 255, "\032 BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; +#endif static const menuitem_t menu_store_preset[] = { @@ -1381,8 +1382,8 @@ static const menuitem_t menu_scanning_speed[] = { MT_CALLBACK, SD_PRECISE, "PRECISE", menu_scanning_speed_cb}, { MT_CALLBACK | MT_LOW,SD_FAST, "FAST", menu_scanning_speed_cb}, { MT_KEYPAD | MT_LOW,KM_FAST_SPEEDUP, "FAST\nSPEEDUP", "2..20"}, - { MT_KEYPAD, KM_SAMPLETIME, "SAMPLE\nDELAY", "300..30000"}, // item number must match SD_MANUAL - { MT_KEYPAD, KM_OFFSET_DELAY, "OFFSET\nDELAY", "300..30000"}, // item number must match SD_MANUAL + { MT_KEYPAD, KM_SAMPLETIME, "SAMPLE\nDELAY", "300..30000"}, // This must be item 4 to match highlighting + { MT_KEYPAD, KM_OFFSET_DELAY, "OFFSET\nDELAY", "300..30000"}, // This must be item 5 to match highlighting { MT_CANCEL, 0, "\032 BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1399,8 +1400,9 @@ static const menuitem_t menu_sweep_speed[] = { MT_CALLBACK, SD_NORMAL, "NORMAL", menu_scanning_speed_cb}, // order must match definition of enum { MT_CALLBACK, SD_PRECISE, "PRECISE", menu_scanning_speed_cb}, { MT_CALLBACK, SD_FAST, "FAST", menu_scanning_speed_cb}, - { MT_KEYPAD, KM_SWEEP_TIME, "SWEEP\nTIME", "0..600s"}, + { MT_KEYPAD, KM_SWEEP_TIME, "SWEEP\nTIME", "0..600s, 0=disable"}, // This must be item 3 to match highlighting { MT_SUBMENU, 0, "SWEEP\nPOINTS", menu_sweep_points}, + { MT_KEYPAD | MT_LOW,KM_FAST_SPEEDUP, "FAST\nSPEEDUP", "2..20, 0=disable"}, { MT_CANCEL, 0, "\032 BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1698,19 +1700,24 @@ static void menu_item_modify_attribute( } else if (item == 2 && setting.auto_IF) m_auto = true; } else if (menu == menu_scanning_speed) { - if (item == setting.step_delay_mode){ + if (item == setting.step_delay_mode && item < SD_MANUAL){ mark = true; - } - } else if (menu == menu_sweep_points) { - if (points_setting[data] == sweep_points){ + } else + if (item == 4 && setting.step_delay > 0) + mark = true; + if (item == 5 && setting.offset_delay > 0) mark = true; - } } else if (menu == menu_sweep_speed) { - if (item == 3 && setting.sweep_time_us != 0){ + if (item == setting.step_delay_mode && item < SD_MANUAL){ + mark = true; + } else if (item == 3 && setting.sweep_time_us != 0){ + mark = true; + } else if (item == 5 && setting.fast_speedup != 0){ mark = true; } - if (item == setting.step_delay_mode && setting.sweep_time_us == 0){ + } else if (menu == menu_sweep_points) { + if (points_setting[data] == sweep_points){ mark = true; } #ifdef __ULTRA__