From 3493e82d83c5794b8dab935d7e42c59d5952bcd5 Mon Sep 17 00:00:00 2001 From: erikkaashoek Date: Sat, 30 May 2020 19:17:42 +0200 Subject: [PATCH] Small ui corrections --- main.c | 9 +++++---- nanovna.h | 3 ++- sa_cmd.c | 18 ++++++++++++++++++ sa_core.c | 5 +++-- ui.c | 14 ++++++++++++-- ui_sa.c | 35 ++++++++++++++++++++--------------- 6 files changed, 60 insertions(+), 24 deletions(-) diff --git a/main.c b/main.c index 5665021..8bee288 100644 --- a/main.c +++ b/main.c @@ -2267,6 +2267,7 @@ static const VNAShellCommand commands[] = #endif { "if", cmd_if, 0 }, { "attenuate", cmd_attenuate, 0 }, + { "reflevel", cmd_reflevel, 0 }, { "rbw", cmd_rbw, 0 }, { "mode", cmd_mode, 0 }, { "spur", cmd_spur, 0 }, @@ -2637,10 +2638,9 @@ int main(void) //Initialize graph plotting plot_init(); - if (setting.mode != -1) { - menu_mode_cb(setting.mode,0); - ui_mode_normal(); // Do not show menu when autostarting mode - } +// if (setting.mode != -1) { +// menu_mode_cb(setting.mode,0); +// } redraw_frame(); set_mode(M_HIGH); @@ -2650,6 +2650,7 @@ int main(void) set_mode(M_LOW); sweep(true); + ui_mode_menu(); // Show menu when autostarting mode chThdCreateStatic(waThread1, sizeof(waThread1), NORMALPRIO-1, Thread1, NULL); diff --git a/nanovna.h b/nanovna.h index fa3318d..d04e66f 100644 --- a/nanovna.h +++ b/nanovna.h @@ -174,7 +174,7 @@ void set_harmonic(int); //extern int setting.harmonic; int search_is_greater(void); void set_auto_attenuation(void); -void set_auto_reflevel(void); +void set_auto_reflevel(int); int is_paused(void); void set_actual_power(float); void SetGenerate(int); @@ -698,6 +698,7 @@ int current_menu_is_form(void); void menu_mode_cb(int, uint8_t); void ui_mode_normal(void); +void ui_mode_menu(void); // Irq operation process set #define OP_NONE 0x00 diff --git a/sa_cmd.c b/sa_cmd.c index a533a6c..3477c71 100644 --- a/sa_cmd.c +++ b/sa_cmd.c @@ -63,6 +63,24 @@ VNA_SHELL_FUNCTION(cmd_attenuate) } } +VNA_SHELL_FUNCTION(cmd_reflevel) +{ + if (argc != 1) { + usage: + shell_printf("usage: reflevel |auto\r\n"); + return; + } + if (strcmp(argv[0],"auto") == 0) { + set_auto_reflevel(true); + } else { + float r = my_atof(argv[0]); + if (r < -150.0 || r>100.0) + goto usage; + set_auto_reflevel(false); + set_reflevel(r); + } +} + VNA_SHELL_FUNCTION(cmd_rbw) { if (argc != 1) { diff --git a/sa_core.c b/sa_core.c index 33afc62..71e401c 100644 --- a/sa_core.c +++ b/sa_core.c @@ -229,9 +229,9 @@ void set_auto_attenuation(void) setting.attenuate = 30; } -void set_auto_reflevel(void) +void set_auto_reflevel(int v) { - setting.auto_reflevel = true; + setting.auto_reflevel = v; } void set_attenuation(int a) @@ -269,6 +269,7 @@ void set_attenuation(int a) a=31; // if (setting.attenuate == a) // return; + setting.auto_attenuation = false; setting.attenuate = a; dirty = true; } diff --git a/ui.c b/ui.c index 9bd2a80..a07f9fe 100644 --- a/ui.c +++ b/ui.c @@ -120,7 +120,7 @@ static int16_t last_touch_y; #define KP_CANCEL 2 void ui_mode_normal(void); -static void ui_mode_menu(void); +//static void ui_mode_menu(void); static void ui_mode_numeric(int _keypad_mode); static void ui_mode_keypad(int _keypad_mode); static void draw_menu(void); @@ -1145,6 +1145,16 @@ menu_move_back(void) if (selection >= 0) selection = 0; ensure_selection(); + + if (current_menu_is_form()) { + redraw_frame(); + area_width = 0; + } else { + redraw_frame(); + request_to_redraw_grid(); + area_width = AREA_WIDTH_NORMAL - MENU_BUTTON_WIDTH; + } + draw_menu(); } @@ -1802,7 +1812,7 @@ draw_numeric_area(void) draw_numeric_input(buf); } -static void +void ui_mode_menu(void) { if (ui_mode == UI_MENU) diff --git a/ui_sa.c b/ui_sa.c index c4e145e..412b9e3 100644 --- a/ui_sa.c +++ b/ui_sa.c @@ -748,7 +748,7 @@ static void menu_reflevel_cb(int item, uint8_t data) { (void)item; (void)data; - set_auto_reflevel(); + set_auto_reflevel(true); menu_move_back(); ui_mode_normal(); } @@ -978,7 +978,7 @@ static const menuitem_t menu_load_preset_high[] = static const menuitem_t menu_store_preset[] = { - { MT_CALLBACK, 0, "\2STORE\0STARTUP",menu_store_preset_cb}, + { MT_CALLBACK, 0, "\2STORE AS\0STARTUP",menu_store_preset_cb}, { MT_CALLBACK, 1, "STORE 1" , menu_store_preset_cb}, { MT_CALLBACK, 2, "STORE 2" , menu_store_preset_cb}, { MT_CALLBACK, 3, "STORE 3" , menu_store_preset_cb}, @@ -1138,7 +1138,9 @@ static const menuitem_t menu_reffer[] = { { MT_FORM | MT_CALLBACK, 2, "15MHz", menu_reffer_cb}, { MT_FORM | MT_CALLBACK, 3, "10MHz", menu_reffer_cb}, { MT_FORM | MT_CALLBACK, 4, "4MHz" , menu_reffer_cb}, - { MT_FORM | MT_SUBMENU, 0, S_RARROW" MORE", menu_reffer2}, + { MT_FORM | MT_CALLBACK, 6, "2MHz" , menu_reffer_cb}, + { MT_FORM | MT_CALLBACK, 7, "1MHz" , menu_reffer_cb}, +// { MT_FORM | MT_SUBMENU, 0, S_RARROW" MORE", menu_reffer2}, { MT_FORM | MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_FORM | MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1170,7 +1172,7 @@ const menuitem_t menu_marker_search[] = { }; const menuitem_t menu_marker_modify[] = { - { MT_CALLBACK, M_REFERENCE, "REFERENCE", menu_marker_modify_cb}, + { MT_CALLBACK, M_REFERENCE, "REFER", menu_marker_modify_cb}, { MT_CALLBACK, M_DELTA, "DELTA", menu_marker_modify_cb}, { MT_CALLBACK, M_NOISE, "NOISE", menu_marker_modify_cb}, { MT_CALLBACK, M_TRACKING, "TRACKING", menu_marker_modify_cb}, @@ -1304,12 +1306,12 @@ static const menuitem_t menu_settingshigh[] = static const menuitem_t menu_measure[] = { { MT_CALLBACK, M_OFF, "OFF", menu_measure_cb}, - { MT_CALLBACK, M_IMD, "MARMONICS", menu_measure_cb}, + { MT_CALLBACK, M_IMD, "HARMONIC", menu_measure_cb}, { MT_CALLBACK, M_OIP3, "OIP3", menu_measure_cb}, { MT_CALLBACK, M_PHASE_NOISE,"\2PHASE\0NOISE", menu_measure_cb}, { MT_CALLBACK, M_STOP_BAND, "\2STOP\0BAND", menu_measure_cb}, { MT_CALLBACK, M_PASS_BAND, "\2PASS\0BAND", menu_measure_cb}, - { MT_CALLBACK | MT_LOW, M_LINEARITY, "LINEARITY", menu_measure_cb}, + { MT_CALLBACK | MT_LOW, M_LINEARITY, "LINEAR", menu_measure_cb}, { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel }; @@ -1337,9 +1339,9 @@ static const menuitem_t menu_config[] = { static const menuitem_t menu_display[] = { { MT_CALLBACK,0, "\2PAUSE\0SWEEP", menu_pause_cb}, - { MT_CALLBACK,0, "STORE", menu_storage_cb}, - { MT_CALLBACK,1, "CLEAR", menu_storage_cb}, - { MT_CALLBACK,2, "SUBTRACT", menu_storage_cb}, + { MT_CALLBACK,0, "\2STORE\0TRACE", menu_storage_cb}, + { MT_CALLBACK,1, "\2CLEAR\0STORED", menu_storage_cb}, + { MT_CALLBACK,2, "\2SUBTRACT\0STORED",menu_storage_cb}, { MT_CALLBACK,3, "WATERFALL", menu_storage_cb}, { MT_CANCEL, 0, S_LARROW" BACK", NULL }, { MT_NONE, 0, NULL, NULL } // sentinel @@ -1424,10 +1426,10 @@ static const menuitem_t menu_stimulus[] = { static const menuitem_t menu_mode[] = { // { MT_FORM | MT_TITLE, 0, "tinySA MODE", NULL}, - { MT_FORM | MT_CALLBACK | MT_ICON, I_LOW_INPUT+I_SA, "LOW INPUT", menu_mode_cb}, - { MT_FORM | MT_CALLBACK | MT_ICON, I_HIGH_INPUT+I_SA, "HIGH INPUT", menu_mode_cb}, - { MT_FORM | MT_CALLBACK | MT_ICON, I_LOW_OUTPUT+I_SINUS, "LOW OUTPUT", menu_mode_cb}, - { MT_FORM | MT_CALLBACK | MT_ICON, I_HIGH_OUTPUT+I_GEN, "HIGH OUTPUT", menu_mode_cb}, + { MT_FORM | MT_CALLBACK | MT_ICON, I_LOW_INPUT+I_SA, "%s TO LOW INPUT", menu_mode_cb}, + { MT_FORM | MT_CALLBACK | MT_ICON, I_HIGH_INPUT+I_SA, "%s TO HIGH INPUT", menu_mode_cb}, + { MT_FORM | MT_CALLBACK | MT_ICON, I_LOW_OUTPUT+I_SINUS, "%s TO LOW OUTPUT", menu_mode_cb}, + { MT_FORM | MT_CALLBACK | MT_ICON, I_HIGH_OUTPUT+I_GEN, "%s TO HIGH OUTPUT", menu_mode_cb}, { MT_FORM | MT_SUBMENU | MT_ICON, I_CONNECT+I_GEN, "CAL OUTPUT: %s", menu_reffer}, #ifdef __ULTRA__ { MT_FORM | MT_CALLBACK | MT_ICON, I_LOW_INPUT+I_SA, "ULTRA HIGH INPUT",menu_mode_cb}, @@ -1502,8 +1504,11 @@ static void menu_item_modify_attribute( int data = menu[item].data; if (menu == menu_mode) { if (item == GetMode()) { + plot_printf(uistat.text, sizeof uistat.text, "RETURN"); mark = true; - } else if (item == 4) { + } else if (item < 4){ + plot_printf(uistat.text, sizeof uistat.text, "SWITCH"); + } else if (item == 4) { plot_printf(uistat.text, sizeof uistat.text, menu_reffer_text[get_refer_output()+1]); } } else if (menu == menu_highoutputmode && item == 2) { @@ -1755,7 +1760,7 @@ set_numeric_value(void) set_scale(uistat.value); break; case KM_REFPOS: - setting.auto_reflevel = false; + set_auto_reflevel(false); set_reflevel(uistat.value); break; case KM_ATTENUATION: